遗传算法示例
看到论坛现在没什么新玩意,扔块砖头上来砸人玩玩。
对于遗传算法的理论描述网上有很多,在此不再赘述,只谈谈个人理解。一个需推导的未知问题可能有1个或多个解,如果将所有可能的结果一一罗列验证,时间代价太高。因此希望能尽可能的缩小答案范围,并最终找出合理解。遗传算法首先随机生成多个结果,然后对这些结果进行评价,其结果越接近理想结果评价越高。如果都未达到目标,则选择一部分结果开始“进化”,生成一组新的随机结果,然后重新开始上述工作,直到最后找到合理的结果,当然,很多时候根本找不到合理的结果。
遗传算法的程序框架:1。生成N个随机解(基因)2。对每个结果进行评价3。如果找到合理解,就返回结果4。否则,按优选算法任意选择两个解,进行杂交,生成其孩子5。对新子代解结果按一定几率产生变异6。保存新子代解,重复第4步,直到子代数量和父代数量相同7。重新开始第2步。
[attachment=66071]