流水车间调度的遗传算法

时间:2016-04-16 16:59:07

标签: matlab genetic-algorithm

我在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

交叉应该是这样的,每个数字不会在后代序列中重复。谁能告诉我怎么做?

1 个答案:

答案 0 :(得分:0)

为排列编码定义了许多现有的交叉。其中以下内容对您有用:

  • Cyclic Crossover
  • Partially Matched Crossover
  • Uniform-like Crossover
  • 基于位置的交叉

这些交叉旨在保持作业在排列中的位置。您可以在HeuristicLab的PermutationEncoding插件中找到C#中的实现。浏览源文件,您还可以找到描述这些交叉的科学文章的参考文献。