不同长度基因的交叉模式
Crossmode in different length genes
我有两个大小不同的基因,我想用它们生产后代。染色体的位置对基因没有影响。
我想知道在这种情况下通常会做什么
基因 1:
123456789
基因 2:
ABCDEFGHIJKL
我可以在每个中使用一个交叉点
12345.6789
ABCD.EFGHIJKL
这样我就有了 8 种可能的组合
1. 12345ABCD
2. 12345EFGHIJKL
3. 6789ABCD
4. 6789EFGHIJKL
5. ABCD12345
6. ABCD6789
7. EFGHIJKL12345
8. EFGHIJKL6789
是否可以创建所有 8 个后代,或者我应该只创建 1 个,如果是这样,我需要随机化方法还是只选择一个并坚持下去?
你使用基因而不是染色体,反之亦然。
在这种情况下,如果可以使用不同大小的染色体,则可以创建所有 8 个后代。但是你的人口在每次迭代中都会增加,你应该控制它。例如保留 2 个最好的后代或 2 个随机后代并将它们的 parents 替换为。
如果我们谈论的是单点交叉,遗传算法模拟的是染色体在某一点交叉并在交叉点后交换它们的部分的生物过程。
如上图所示,parents 在交叉点后交换 "tail" 部分染色体。因此,您只有 2 offspring/children 由交叉产生。这就是自然界中发生交叉的方式,生物学家是这样描述的。
如果你参考任何涉及遗传算法主题的文献,他们也会说明这个约定,当使用单点交叉时 parent 染色体被分成 head 和 tail 表示为 H/T 那样(见下面的引用):
H T
123456.789
H T
ABCDEF.GHI
因此,这种杂交产生的后代将是:
123456GHI
ABCDEF789
遵循这个约定比创建所有可能的组合然后选择随机或最适合的后代要好得多,因为它在计算上更有效率。如果你想解决更复杂的问题,你只需简单地增加人口规模以允许更多多样性。
"Single point crossover: A single random cut is made, producing two head sections and two tail sections. The two tail sections are then swapped to produce
two new individuals (chromosomes)".
Genetic Algorithms and Genetic Programming:
Affenzeller, Michael
Wagner, Stefan
Winkler, Stephan,
ISBN: 1584886293
或者你可以使用遵循类似约定的多点交叉,其中染色体被分成几个部分并且 parents 以一种方式交换部分,后代染色体只是 parents 染色体的交替,所以如果你有 parent 条染色体:
A1.A2.A3.A4
B1.B2.B3.B4
|
| this will produce offspring
|
A1 B2 A3 B4
and
B1 A2 B3 A4
这个答案也可能对您有所帮助:
Crossover of chromosomes with different length
我有两个大小不同的基因,我想用它们生产后代。染色体的位置对基因没有影响。
我想知道在这种情况下通常会做什么
基因 1:
123456789
基因 2:
ABCDEFGHIJKL
我可以在每个中使用一个交叉点
12345.6789
ABCD.EFGHIJKL
这样我就有了 8 种可能的组合
1. 12345ABCD
2. 12345EFGHIJKL
3. 6789ABCD
4. 6789EFGHIJKL
5. ABCD12345
6. ABCD6789
7. EFGHIJKL12345
8. EFGHIJKL6789
是否可以创建所有 8 个后代,或者我应该只创建 1 个,如果是这样,我需要随机化方法还是只选择一个并坚持下去?
你使用基因而不是染色体,反之亦然。 在这种情况下,如果可以使用不同大小的染色体,则可以创建所有 8 个后代。但是你的人口在每次迭代中都会增加,你应该控制它。例如保留 2 个最好的后代或 2 个随机后代并将它们的 parents 替换为。
如果我们谈论的是单点交叉,遗传算法模拟的是染色体在某一点交叉并在交叉点后交换它们的部分的生物过程。
如上图所示,parents 在交叉点后交换 "tail" 部分染色体。因此,您只有 2 offspring/children 由交叉产生。这就是自然界中发生交叉的方式,生物学家是这样描述的。
如果你参考任何涉及遗传算法主题的文献,他们也会说明这个约定,当使用单点交叉时 parent 染色体被分成 head 和 tail 表示为 H/T 那样(见下面的引用):
H T
123456.789
H T
ABCDEF.GHI
因此,这种杂交产生的后代将是:
123456GHI
ABCDEF789
遵循这个约定比创建所有可能的组合然后选择随机或最适合的后代要好得多,因为它在计算上更有效率。如果你想解决更复杂的问题,你只需简单地增加人口规模以允许更多多样性。
"Single point crossover: A single random cut is made, producing two head sections and two tail sections. The two tail sections are then swapped to produce two new individuals (chromosomes)".
Genetic Algorithms and Genetic Programming: Affenzeller, Michael Wagner, Stefan Winkler, Stephan, ISBN: 1584886293
或者你可以使用遵循类似约定的多点交叉,其中染色体被分成几个部分并且 parents 以一种方式交换部分,后代染色体只是 parents 染色体的交替,所以如果你有 parent 条染色体:
A1.A2.A3.A4
B1.B2.B3.B4
|
| this will produce offspring
|
A1 B2 A3 B4
and
B1 A2 B3 A4
这个答案也可能对您有所帮助: Crossover of chromosomes with different length