关闭

争取几句话描述一下爬山法,模拟退火,遗传算法

标签: 机器学习爬山算法模拟退火算法遗传算法
1884人阅读 评论(0) 收藏 举报
分类:

转自http://blog.csdn.net/lvhao92/article/details/50826709

首先,这仨算法都是求成本函数最优的方法。

爬山法:成本函数抽象成了一座山(想象一下一个2维坐标系,横轴为变量,纵轴为成本函数,成本函数随着横轴的递增而上下起伏绵延不绝,好似一座山),某人可在山中一任意位置左右移动(取该函数中的一点),因此,随着某人水平方向的变化(变量的变化),这哥们的海拔高度也在变化(成本函数随着变量的变化而变化)。可惜,这哥们一心想去山的最底处。所以他总喜欢走下坡路,一旦发现各个方向再走都是上坡的时候,那这哥们认为他终于走到了山的最底处,他不再走了并返回此时他的位置。(该例子的成本函数仅和一个变量有关,但现实生活中,成本函数是和多个变量有关。道理也是一样,就好像这个哥们每次走路的时候有N个方向供他选择(N个变量))

明眼的人都能看出来,这哥们非常容易的会把局部最小值当成全局最小值。以为山的小凹谷就是整座山的最低处了(这座山绵延不绝,并不是两头连接大地的那种,是长度无限长的那种),too navie。

有什么办法呢?就是随机重复爬山法,让你每次初始位置都随机的多试几次。说不定还真能蒙到正确结果。

模拟退火算法:这哥们突然变聪明了,认为有时候退一步海阔天空,我有的时候稍微走点上坡路,指不定后面会有一个大下坡等着我呢,于是这哥们开始只要上坡路不是上升的特别离谱,他都会试着去尝试一下,走走看。不过,随着时间的流逝,这哥们开始越来越不愿意走上坡路,一开始可能这是上坡路还会去尝试着走一下呢。到后来,越来越不愿意去尝试。这个愿不愿意去尝试走上坡路的心态就跟刚出炉放在空气中的铁一样,随着时间的流逝而渐渐降温,渐渐冷却,渐渐退火。公式表示就是这样:.,如果新的成本函数降低了,当然欣然接受一开始,不多说。但是如果新的成本函数增高了,那么就开始考虑要不要试一下要不要走,一开始的时候,温度很高,高低成本之差显得很小,除了个温度接近为0,这个P值接近为1,一般程序当中都是用一个0和1之间的随机数与P值比较,如果比P小那么就尝试,如果比P大那么不尝试。所以很明显,一开始肯定是乐意尝试的,后来随着时间的增加,温度的下降,P值越来越小接近于0。因此,更加不愿意去尝试上坡路了。

这个方法的问题和爬山法其实差不多,每次结果可能都会不同,尝试着每次改下参数(初始温度和温度下降的速度)来试试。

遗传算法:这时候,想象成人类吧。人类的生存环境十分的残酷,只有优秀的一拨人才能活下来(优秀的人意为成本函数小的最优解),一代一代,每代之中会有变异(对既有解进行微小的,简单的,随机的改变)也会有交叉(选取最优解中的两个解,然后将他们按照某种方式进行结合)。很显然,变异和交叉会产生新的种群(会对成本函数产生或增或减的影响)。同样,这些新的种群有的能适应这个世界而存活下去,有的就消失在人类的进化长河里。正所谓物竞天择适者生存。真是残酷。


1
0
查看评论
发表评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场

关于爬山算法、模拟退火算法和遗传算法区别

这三种算法都是用来求解函数“最大值”问题的算法,我们可以把函数曲线理解成一个一个山峰和山谷组成的山脉(如图片所示)。那么我们可以设想所得到的每一个解就是一只青蛙,我们希望它们不断的向着更高处跳去,直到...
  • wubin0721
  • wubin0721
  • 2015-02-16 15:36
  • 1387

【最优化方法】穷举法 vs. 爬山法 vs. 模拟退火算法 vs. 遗传算法 vs. 蚁群算法

一、 穷举法   列举所有可能,然后一个个去,得到最优的结果。如图一,需要从A点一直走到G点,才能知道,F是最高的(最优解)。这种算法得到的最优解肯定是最好的,但也是效率最低的。穷举法虽...
  • GarfieldEr007
  • GarfieldEr007
  • 2016-04-25 19:03
  • 3594

集体智慧编程——优化搜索算法:爬山法,模拟退火算法,遗传算法-Python实现

在优化问题中,有两个关键点 代价函数:确定问题的形式和规模之后,根据不同的问题,选择要优化的目标。如本文涉及的两个问题中,一个优化目标是使得航班选择最优,共计12个航班,要使得总的票价最少且每个人的等...
  • bcj296050240
  • bcj296050240
  • 2016-03-09 23:12
  • 3891

【最优化方法】穷举法 vs. 爬山法 vs. 模拟退火算法 vs. 遗传算法 vs. 蚁群算法

一、 穷举法   列举所有可能,然后一个个去,得到最优的结果。如图一,需要从A点一直走到G点,才能知道,F是最高的(最优解)。这种算法得到的最优解肯定是最好的,但也是效率最低的。穷举法虽...
  • GarfieldEr007
  • GarfieldEr007
  • 2016-04-25 19:03
  • 3594

【最优化方法】穷举法 vs. 爬山法 vs. 模拟退火算法 vs. 遗传算法 vs. 蚁群算法

优化算法入门系列文章目录(更新中):   1. 模拟退火算法   2. 遗传算法   一. 爬山算法 ( Hill Climbing )          介绍...
  • kuvinxu
  • kuvinxu
  • 2014-06-29 08:46
  • 2187

利用Python实现基于模拟退火算法和遗传算法的最佳航班选择

本文利用Python2.7实现了基于模拟退火算法和遗传算法这两种最优化算法的最佳航班选择。具体过程如下:首先使用字典收集航班数据,其次利用数字序列来描述题解,然后建立一个恰当的成本函数,接着利用模拟退...
  • weixin_37325825
  • weixin_37325825
  • 2017-06-16 14:54
  • 1771

大白话解析模拟退火算法、遗传算法

优化算法入门系列文章目录(更新中):   1. 模拟退火算法   2. 遗传算法   一. 爬山算法 ( Hill Climbing )          介绍...
  • riverflowrand
  • riverflowrand
  • 2016-09-28 15:44
  • 219

模拟退火算法和遗传算法的学习

在网上找到了几个比较好的描述,总结在在这里,以后如果用的到,再来深入研究一下。 优化算法入门系列文章目录:   1. 模拟退火算法   2. 遗传算法   一. 爬山算法 ( Hill C...
  • u010159842
  • u010159842
  • 2015-07-04 21:31
  • 1039

大白话解析模拟退火算法、遗传算法入门

优化算法入门系列文章目录(更新中):   1. 模拟退火算法   2. 遗传算法   一. 爬山算法 ( Hill Climbing )          介绍...
  • GarfieldEr007
  • GarfieldEr007
  • 2016-04-01 17:43
  • 8498

蚁群算法、遗传算法、模拟退火算法介绍

蚁群算法、遗传算法、模拟退火算法介绍 穷举法 列举所有可能,然后一个个去,得到最优的结果。如图一,需要从A点一直走到G点,才能知道,F是最高的(最优解)。这种算法得到的最优解肯定是...
  • u010159842
  • u010159842
  • 2017-03-28 17:15
  • 343
    个人资料
    • 访问:33732次
    • 积分:892
    • 等级:
    • 排名:千里之外
    • 原创:53篇
    • 转载:5篇
    • 译文:0篇
    • 评论:48条
    文章分类
    最新评论