本文介绍了交叉算子排列的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我试图解决交叉的问题,在我的排列遗传算法。比方说,我有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.

这篇关于交叉算子排列的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

08-13 09:44