爬山算法顾名思义就是不断需找自变量使得当前的函数值小于新的自变量对应的函数值。他和模拟退火算法很像,可以说模拟退火算法也是爬山算法的一类。
爬山算法,是一种局部贪心的最优算法. 该算法的主要思想是:每次拿相邻点对应函数值与当前点对应函数值进行比对,取两者中较优者,作为爬坡的下一步。爬山算法有很多类,下面简单介绍。
1. 首选爬山算法
依次寻找该点X的邻近点中首次出现的比点X价值高的点,并将该点作为爬山的点(此处说的价值高,在该题中是指Z或f(x,y)值较大). 依次循环,直至该点的邻近点中不再有比其大的点. 我们成为该点就是山的顶点,又称为最优点.
2.最陡爬山算法
最陡爬山算法是在首选爬山算法上的一种改良,它规定每次选取邻近点价值最大的那个点作为爬上的点.
3.随机重新开始爬山算法
随机重新开始爬山算法是基于最陡爬山算法,其实就是加一个达到全局最优解的条件,如果满足该条件,就结束运算,反之则无限次重复运算最陡爬山算法(选取新的点重新开始)
4.模拟退火算法
模拟退火算法以一定概率选择比当前差的点,所以可以跳出局部最大。在我的博客模拟退火算法的定义和应用中有详细介绍。.