uniform crossover(均匀交叉),遗传算法(Genetic Algorithm,GA),python
Posted zhangphil
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了uniform crossover(均匀交叉),遗传算法(Genetic Algorithm,GA),python相关的知识,希望对你有一定的参考价值。
uniform crossover(均匀交叉),遗传算法(Genetic Algorithm,GA),python
假设有双亲p1和p2的二进制基因染色体表达,子代的基因以等概率(50%)来自双亲中之一,如图:
import random
# 双亲染色体
p1 = [1, 0, 0, 1, 1]
p2 = [0, 0, 1, 1, 0]
def uniform_crossover():
c = [] # 子代
for i in range(len(p1)):
r = random.randint(1, 2) # 等概率产生1和2
if r == 1: # 如果是1,则取p1[i]
c.append(p1[i])
if r == 2: # 如果是2,则取p2[i]
c.append(p2[i])
print(c)
if __name__ == '__main__':
for i in range(10):
uniform_crossover()
运行输出:
以上是关于uniform crossover(均匀交叉),遗传算法(Genetic Algorithm,GA),python的主要内容,如果未能解决你的问题,请参考以下文章
多目标遗传算法 ------ NSGA-II (部分源码解析) 交叉操作 crossover.c
R语言均匀分布函数uniform Distribution(dunif, punif, qunif & runif)实战