贪心算法的一个例子是爬山算法,随机算法就不用举例了,贪心+随机的一个典型例子就是模拟退火算法,能解决的问题很多,可以搜索一下模拟退火的应用,简单来说就是求问题的近似最优解。
模拟退火:
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也降低,不再轻易的接受差解。
学习了。。。