如何通俗易懂地解释遗传算法?

如题所述

遗传算法,核心是达尔文优胜劣汰适者生存的进化理论的思想。

我们都知道一个种群,通过长时间的繁衍,种群的基因会向着更适应环境的趋势进化,牛B个体的基因被保留,后代越来越多,适应能力低个体的基因被淘汰,后代越来越少。经过几代的繁衍进化,留下来的少数个体,就是相对能力最强的个体了。

那么在解决一些问题的时候,我们能不能学习这样的思想,比如先随机创造很多很多的解,然后找一个靠谱的评价体系,去筛选比较好的解,再用这些好的解像生小宝宝一样生一堆可能更好的解,然后再筛再生,反复弄个几代,得到的说不定就是近似最优解哟

说干就干,有一个经典组合问题叫“背包问题”,我们拿这种思路来试试

“背包问题(Knapsack Problem)是一种组合优化的NP完全问题。问题可以描述为:给定一组物品,每种物品都有自己的重量和价格,在限定的总重量内,我们如何选择,才能使得物品的总价格最高。问题的名称来源于如何选择最合适的物品放置于给定背包中。”

这个问题的衍生简化问题“0-1背包问题” 增加了限制条件:每件物品只有一件,可以选择放或者不放,更适合我们来举例

这样的问题如果数量少,当然最好选择穷举法

比如一共3件商品,用0表示不取,1表示取,那么就一共有

000 001 010

011 100 101

110 111

 这样方案,然后让计算机去累加和,与重量上限比较,留下来的解里取最大即可。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2017-12-06

精英主义:这是基本遗传算法的一种优化。目的是防止进化过程中产生的最优解被变异和交叉所破坏。《遗传算法原理及应用》介绍的最优保存策略是:即当前种群中适应度最高的个体不参与交叉运算和变异运算,而是用它来替换掉本代群体中经过交叉、变异等遗传操作后所产生的适应度最低的个体。其实不管是遗传算法,还是模拟退火算法或者其他算法,其本质都是借鉴自然界中的规则规律,人为的为问题设置了一个模拟模型,然后用大自然告诉我们的规律去找最优解,在理解这些算法的时候,可以照着这个思路去走,一般能让你快速拨云见日,了解算法的核心思想。

本回答被网友采纳
第2个回答  2017-12-06

我其实一直在想,教材面向的明明就是望门欲入的初学者,你不弄得生动活泼一点招徕门徒就算了,在一群幼儿园小朋友面前卖弄之乎者也还显本事了是么!我是还记得我们学校的高数书编的有多么生涩难懂,结果第一节课老教授上课时还说“我们不用同济的版本,那本书太浅,不适合我们学校的学生” 可是在我和大多数同学看来,同济版本的高数倒更像是为了要入门的同学编写的教材,自己学校编的那本却更像是给同行评阅炫耀作者深度的大部头。

相似回答