首页 新闻 会员 周边

贪心算法和随机算法

0
[待解决问题]

怎样把贪心算法和随机算法结合在一起,它们可以解决什么样的问题?

C#
吴其蔓的主页 吴其蔓 | 菜鸟二级 | 园豆:202
提问于:2012-03-20 00:10
< >
分享
所有回答(2)
1

贪心算法的一个例子是爬山算法,随机算法就不用举例了,贪心+随机的一个典型例子就是模拟退火算法,能解决的问题很多,可以搜索一下模拟退火的应用,简单来说就是求问题的近似最优解。

模拟退火:

1: 初始温度设定为T,算法结束温度为TMin,初始解为S[0],评价函数为Value。
2: 既然是退火算法,那么将温度衰减设定为一个(0,1)之间的数值x,T= T*x。x如果比较小,那么降退火速度会比较快,可能陷入局部最优解; 如果x比较大,退火速度慢,搜索时间长,但是找到最优解的概率大。
3: 算法执行过程中的解状态S[i],S[i+1], 如果评价函数Value(S[i+1]) > Value(S[i]),说明找到了一个更好的解,无条件接受; 如果Value(S[i+1]) < Value(S[i]), 也不能完全不接受,不然就是鼠目寸光的爬山算法,这时候以一定的概率接受,设这个概率为P,但是这个P不能是一个恒定数值,那样造成求解过程不稳定,所以P要在算法执行过程中降低,和2中的T相关,T较高的时候,P也较大,可以接受差解,T较低的时候(算法趋于结束,求解过程要稳定一些了),这时候P也降低,不再轻易的接受差解。

zsounder | 园豆:2819 (老鸟四级) | 2012-03-20 00:21
0

学习了。。。

KivenRo | 园豆:1734 (小虾三级) | 2012-03-21 20:32
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册