【发布时间】:2018-01-17 06:33:00
【问题描述】:
这是我的遗传算法,一步一步来:
随机生成两个初始种群,并从两者中选择最合适的游览。
执行有序交叉,它选择第一个适合游览的随机部分,并按顺序从第二个开始填充其余部分。
-
如果巡演的效果仅为初始人群中前 10% 巡演的 1.3 倍,则通过随机交换两个城市来改变巡演(我实际上只是通过归纳来完成的,挑选出产生的差的巡演) - 我很想改变这一点,但想不出更好的方法。
- 突变选自多个突变的群体。
返回生成的游览。
然而,突变几乎总是更糟,如果与交叉不同的话。
非常感谢一些帮助。谢谢!
【问题讨论】:
-
不要做交叉。没必要。
-
交叉实际上改进了从初始种群(父母)中选择的那些 - 但不会产生最好的游览。
-
交叉和突变不会产生更好的基因;他们制造不同的基因。选择让事情变得更好。交叉是不必要的并发症。
-
我也是这么想的,但是去掉了交叉和变异,你所拥有的只是蛮力。我需要设计一个遗传算法。
-
你还在做变异。在顶级基因中随机“选择”并对其进行突变。这不是蛮力,它是随机的。它是遗传的,因为你的变异“基因”。
标签: python genetic-algorithm traveling-salesman mutation crossover