交叉算子排列算子、排列

由网友(奢望)分享简介:我试图解决交叉的问题,在我的排列遗传算法。比方说,我有20整数2排列。我想,交叉他们得到两个孩子。父母有相同的整数内,但顺序不同。i'm trying to solve the problem of crossover in genetic algorithm on my permutations.Let's s...

我试图解决交叉的问题,在我的排列遗传算法。 比方说,我有20整数2排列。我想,交叉他们得到两个孩子。父母有相同的整数内,但顺序不同。

i'm trying to solve the problem of crossover in genetic algorithm on my permutations. Let's say I have two permutations of 20 integers. I want to crossover them to get two children. Parents have the same integers inside, but the order is different.

例如:

Parent1: 
 5 12 60 50 42 21 530 999 112 234 15 152 601 750 442 221 30 969 113 134
Parent2: 
 12 750 42 113 530 112 5 23415 60 152 601 999 442 221 50 30 969  134 21

让它是这样 - 我怎么能得到这两个孩子?

Let it be that way - how can I get children of these two?

推荐答案

您要找的是ordered交叉。目前在旅行商问题解释这里。

What you are looking for is ordered crossover. There is an explanation for the Travelling Salesman Problem here.

下面是some Java的code 实现部分映射交叉(PMX)的变体。

Here is some Java code that implements the partially mapped crossover (PMX) variant.

阅读全文

相关推荐

最新文章