700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > 启发式算法详解——遗传算法

启发式算法详解——遗传算法

时间:2018-08-30 13:57:39

相关推荐

启发式算法详解——遗传算法

启发式算法详解——遗传算法

算法原理算法详解算法详解算法总结

算法原理

遗传算法(Genetic Algorithm)遵循『适者生存』、『优胜劣汰』的原则,是一类借鉴生物界自然选择和自然遗传机制的随机化搜索算法。通过选择、交叉以及变异等机制,在每次迭代中都保留一组候选个体,重复此过程,种群经过若干代进化后,理想情况下其适应度达到近似最优的状态。

用大白话说,遗传算法就是模拟一个人工种群的进化过程,进化会有淘汰、交配、生殖、基因突变。我们的一维数组在这里就相当于是一个基因,交配相对于两个数组互相交叉,产生出一个新的数组,基因突变则是随机交互数组中一对元素的位置。淘汰则是从一堆数组中丢弃那些表现不好的数组。

算法详解

1.初始化种群:对输入的数组进行打乱,每个打乱后的数组就是一个种群。

2.评估个体适应度:计算这个数组一维装箱的解,可以选择 first-fit、best-fit等贪心算法来计算.

3.选择:从种群中选取若干个解,这里有很多选择方式,例如轮盘赌选择、随机选择、最佳保留选择

4.交叉:从第3步选择出的数组中,进行两个数组元素的交叉。交叉必须保证只有数组的顺序发生变化

5.变异:以一定概率将第4步产生的数组进行元素交互

算法详解

代码比较长就不贴了

算法总结

从其他地方看到关于启发式算法的总结,觉得很有意思:

为了找出地球上最高的山,一群有志气的兔子们开始想办法:兔子朝着比现在高的地方跳去。他们找到了不远处的最高山峰。但是这座山不一定是珠穆朗玛峰。这就是贪心算法,它不能保证局部最优值就是全局最优值。

兔子喝醉了。他随机地跳了很长时间。这期间,它可能走向高处,也可能踏入平地。但是,他渐渐清醒了并朝他踏过的最高方向跳去。这就是模拟退火

兔子们知道一个兔的力量是渺小的。他们互相转告着,哪里的山已经找过,并且找过的每一座山他们都留下一只兔子做记号。他们制定了下一步去哪里寻找的策略。这就是禁忌搜索

兔子们吃了失忆药片,并被发射到太空,然后随机落到了地球上的某些地方。他们不知道自己的使命是什么。但是,如果你过几年就杀死一部分海拔低的兔子,多产的兔子们自己就会找到珠穆朗玛峰。这就是遗传算法

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。