我已经阅读了许多教程、论文,并且理解了遗传算法的概念,但是在 Matlab 中实现该问题时遇到了一些问题。
总之,我有:
包含三个基因 [ abc ] 的染色体,每个基因受一些不同的限制。
要评估的目标函数以找到最佳解决方案
我做了什么:
生成 a、b 和 c 的随机值,例如 20 个总体。即
[a1 b1 c1] [a2 b2 c2]…..[a20 b20 c20]在每个解决方案中,我评估了目标函数并将解决方案从最佳到最差进行了排序。
我遇到的困难:
现在,我们为什么要进行交叉和变异?我发现的最佳解决方案还不够吗?
我知道进行交叉的概念(生成随机数、概率……等),但是将选择哪些父母以及其中多少人进行交叉或突变?
我应该为整个 20 个解决方案(父母)做交叉还是只做两个?