基于fortran的算法系列--14.遗传算法
注:大部分内容来自网络,包括部分代码逻辑。遗传算法不依赖于梯度信息,而是通过模拟自然进化过程来搜索最优解,它利用某种编码技术,作用于称为染色体的数字串,模拟由这些串组成的群体的进化过程。遗传算法通过有组织的、随机的信息交换来重新组合那些适应性好的串,生成新的串的群体。
步骤:
Step1:采用二进制编码对搜索空间进行编码,随机产生个个体组成初始群体;
Step2:采用适应度函数评估个体适应度;
Step3:采用轮盘赌选择方法选择个个体进行繁殖;
Step4:随机配对,按一定交叉概率进行单点交叉操作,生成两个子个体;
Step5:按照一定变异概率进行基本位变异,生成子个体;
Step6:若不满足终止条件,转到Step2,否则,终止运算,输出最优解。
实例:
初始化:
计算适应度:
选择:
交叉:
变异:
遗传算法是上个世纪的科研成果……真的是非常厉害 感谢楼主 顶帖,不仅谢谢楼主,也能赚HB 感谢楼主分享,我瞧瞧 感谢楼主 感谢楼主 我觉得楼主这帖很强! 看着很不错,回复一个看看 感谢大佬的分享