我在Matlab中需要帮助:我需要了解如何在FlowShop中对任何两个遗传算法序列进行交叉,例如
交叉后,应该是第1序列= 1 5 4 7 3 2 9 8 10 6
第二序列= 7 8 9 10 5 4 2 1 3 6
后代1 = 1 5 4 7 3 2 8 9 10 6
后代2 = 7 8 9 10 1 5 4 3 2 6
交叉应该是这样的,每个数字不会在后代序列中重复。谁能告诉我怎么做?
答案 0 :(得分:0)
为排列编码定义了许多现有的交叉。其中以下内容对您有用:
这些交叉旨在保持作业在排列中的位置。您可以在HeuristicLab的PermutationEncoding插件中找到C#中的实现。浏览源文件,您还可以找到描述这些交叉的科学文章的参考文献。