下面我们分别介绍相关步骤。
初始解生成
初始解生成采用随机生成的方式。
交叉OS
OS String介绍两种crossover方法,分别为POX(precedence operation crossover )和JBX(job-basedcrossover ),每次迭代分别以50%的概率选择其中一个实行。
先介绍POX。
记父代为P1,P2,子代为O1,O2。
将工件随机分配成两组,Jobset1和Jobset12;将P1中属于JS1的部分插入O1相同位置处,将P2中属于JS1的部分插入O1相同位置处;将P1中属于JS2的部分按顺序插入O1的空余位置中(如图所示),P2同。
JBX非常类似:
将工件随机分配成两组,Jobset1和Jobset12;将P1中属于JS1的部分插入O1相同位置处,P2中属于JS2的部分插入O2相同位置中;将P2中属于JS2的部分按顺序插入O1的空余位置中(如图所示),P1则插入O2中。MS
MS更简单,随机选择两个位置,如图所示,属于范围内的P1部分放到O1中,不属于范围内的P2部分放到O1中;属于范围内的P2部分放到O2中,不属于范围内的P1部分放到O2中。