我目前正在尝试实现遗传算法的一个非常简单的例子.
@H_404_2@有一次,你必须用两个数字(父母)做一个“交叉”(生物学)才能得到一个“孩子”.
@H_404_2@你可以在这里找到交叉的解释:
@H_404_2@How to “crossover” two strings (1234 & abcd -> 12cd & ab34)
@H_404_2@(第二个例子,更容易的“一点”交叉是我正在尝试做的.)
@H_404_2@染色体(父母和孩子)是数字,但“交叉”将是一点点操作.
@H_404_2@我找到了其中一条“染色体”的解决方案,其中包括:
@H_404_2@>将位X移动到右侧(>>>运算符)
>然后再次移动位X位,但这次是向左移动(<< operator)
因此,这将保留一条染色体的末端并以0开头填充开头. @H_404_2@但我真的不知道如何解决另一条染色体的问题,然后也做了交叉. @H_404_2@(一旦我保留染色体的开始/结束并用0填充其余部分,可能是异或.) @H_404_2@或者我应该从另一个角度处理这个问题?
>然后再次移动位X位,但这次是向左移动(<< operator)
因此,这将保留一条染色体的末端并以0开头填充开头. @H_404_2@但我真的不知道如何解决另一条染色体的问题,然后也做了交叉. @H_404_2@(一旦我保留染色体的开始/结束并用0填充其余部分,可能是异或.) @H_404_2@或者我应该从另一个角度处理这个问题?