我在上述任务上花费了很多时间,但没有获得理想的结果,因此,我决定寻求这个论坛的帮助。以下是我正在尝试在python中实现的流行遗传算法移动运算符的逻辑步骤和代码,这些运算符称为“部分映射的交叉(PMX)”:
代码采用的逻辑步骤如下:
- 使用cutpoint_1和cutpoint_2确定路线_1中的切割点
- 将切割点之间的等位基因/值复制到temp_1
- 还使用cutpoint_1和cutpoint_2确定路线_2中的切割点
- 循环遍历路线_2,但不包括步骤(2)的切割点内的值/条。
- 然后,仅当步骤(4)的值不在temp_1内时,才将步骤(4)的值复制到temp_1上。
- 但是,如果值已经在temp_1内,请转到matching_list内的1ST列表。
- 在matching_list的1ST列表中找到该值的索引
- 将值定位在matching_list的2ND列表内的同一索引位置
- 在temp_1列表中检查以确保步骤(8)中的值不在列表中。如果不是,则将该值复制到temp_1
- 但是,如果步骤(9)中的值已经在temp_1内,请重复步骤(7)和(8)。
let numbers = [1, 2, 3, 4, 5]
print(numbers.drop(at: 2))
// Prints "[1, 2, 4, 5]"
但是,我没有达到下面指定的预期结果:
drop(at:)
因此,对于您在此任务上的帮助,我将感到高兴。预先感谢。