将时间表作为要执行的请求任务的排列或任意排序。
以下是变异运算符的示例,用于创建当前计划的邻居。
随机交换:随机选择两个排列位置,交换请求的任务,每个变异进行1-15次交换(随机选择)。
我不明白如何在Python 2.7中编写上述变异操作符。有人可以帮帮我吗?
答案 0 :(得分:0)
使用numpy你可以选择两个独有的索引进行交换,重复这个X时间,其中X在1到15之间是统一的。下面是一些示例代码:
import numpy as np
# chrom is list with genes
number_genes = len(chrom)
for i in range(np.random.choice(range(15), 1)[0]):
## Two exclusive indices, False for replacement so they are exclusive
x1, x2 = np.random.choice(range(number_genes), 2, False)
## Swap the genes at the indices
chrom[x1], chrom[x2] = chrom[x2], chrom[x1]