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()

运行输出:

遗传算法(Genetic Algorithm,GA)的轮盘赌选择,python_zhangphil的博客-CSDN博客程序跑了10次,每一次在rws()函数中产生一个随机概率数值r,然后在rws()函数内部比较r与累积概率的大小,确定被选中的概率是p[?输出结果证实了我们的猜想,p[1]=0.49被选中的概率最高,在10次的随机筛选中,p[1]=0.49被选中了4次(4/10)。显然,p(s2)=0.49概率最大,被选中的概率最高。遗传算法(Genetic Algorithm,GA)的轮盘赌选择,python。一个简单的例子说明在遗传算法中使用的轮盘赌方法。https://blog.csdn.net/zhangphil/article/details/128906624

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

zhangphil

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值