【发布时间】:2013-04-24 12:29:16
【问题描述】:
我需要在 matlab 中创建有序交叉。我的父母 P1 和 P2 如下:
P1=[1 2 3 4 ; 0 1 1 0],
P2=[3 2 1 4 ; 0 1 0 0].
前 1 [在位置 P1(2,2) 和 P2(2,2)] 是我的交叉点。现在我需要后代如下:
O1=[1 2 3 4 ; 0 1 0 0],
O2=[3 2 1 4 ; 0 1 0 0].
你能帮帮我吗?最好的,埃尔纳兹
【问题讨论】:
-
我觉得这里有错误,我觉得O2应该是[3 2 1 4; 0 1 1 0] 也许?
-
@user2286747 你的交叉技术是什么?你能说明你的交叉点在哪里吗?
-
@Dan 不,它是正确的,O2 从 P2 (3 2 ; 0 1) 给出它的第一部分,从 P1 (3 4 ; 1 0) 给出它的最后一部分来考虑排列,因为 3 在第一部分,所以它应该检查哪个数字不存在来选择它。所以它应该选择 (1 4; 0 0)。
-
@EitanT 它是单点顺序交叉,当我们看到 P1 第二行的第一个数字 1 时,我们应该设置为交叉点。
-
@user2286747 那么如何确定交叉点呢?是预定义的,还是由每个父级的第二行第一个“1”的位置决定的?