有没有讲遗传算法的具体计算方法(手算,不借助于计算机)的图书或文献
发布网友
发布时间:2022-05-16 16:31
我来回答
共2个回答
热心网友
时间:2023-10-31 15:49
Barricelli, Nils Aall (1957). "Symbiogenetic evolution processes realized by artificial methods". Methodos: 143–182.
这篇文章是我能找到的最早介绍遗传算法的文献。
首先是遗传算法本身不难,但是计算过程极其繁琐。遗传算法本身需要用过随机手段或者通过特定的种群算法得到一批次的种群,这个种群的数量越大,进化的速度就越快。生物进化过程中,变异(mutation)是最为重要的一个过程。在一个大的种群基础上,出现的变异绝对数量就会比小种群高出很多。这样就会有更大的概率值把这种变化延续下去。但是这里面出现一个矛盾,手算,如果你有10个个体作为一个种群,如果两个个体通过杂交生成两个新的个体,那么这个计算量你可以大概估算一下,C10-2,这个组合不是个小数目。这个决定了你手算不可能有很高的效率。
第二点,种群的进化过程中,一代一代的延续把其中的优秀特性保存下来,这个在遗传算法上的体现就是你的误差值越来越小。但是这个需要一代一代的计算。如果你的种群总数量是10,也就是这个族群始终保持10个个体的数量。那么得到的结果就是,如果你要计算100代,那么就是C10-2*100。这个计算量就非常可观了。
我刚刚用的两个例子,种群总人口数10,进化100代,实际上在遗传算法中基本上不存在这么简单的情况。举一个例子,如果你想找到一个开口向上的抛物线的顶点,只用10个人口,需要50几代才能计算出来。从这个角度讲,手算本身就已经很不现实了。
这篇1957年的论文,都没有使用手算的方法。其中,如果你仔细想一下为什么遗传算法在最近几年才开始流行,而在之前始终作为一种先进的算法但是没有得到很大的发展,就是因为计算机技术的*。计算机技术的普及,和程序员数量的增加,才最终推动这种算法从理论走的现实中来。这种纯粹的体力劳动,人工进行运算的时代已经结束了。
希望你能明白这一点。
就好像在集成电路告诉发展的今天,你依然希望通过机械式计算机完成气象系统预测一样,不现实。。。也没人能这样做。
热心网友
时间:2023-10-31 15:49
这样吧,你把邮箱给我,我给你个ppt十分详细哦,追问teresaforever 的163 de you xiang