博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
python 遗传算法精简版
阅读量:7105 次
发布时间:2019-06-28

本文共 1167 字,大约阅读时间需要 3 分钟。

精简版遗传算法,算法中仅采用变异算子而没有使用交叉算子,但是进化依然很有效

 

 

from string import ascii_lowercasefrom random import choice, random'''精简版遗传算法,算法中仅采用变异算子而没有使用交叉算子,但是进化依然很有效'''target  = list("welcome to http://www.cnhup.com")charset = ascii_lowercase + ' .:/'parent  = [choice(charset) for _ in range(len(target))]minmutaterate  = .09C = range(100)perfectfitness = len(target)def fitness(trial):    return sum(t==h for t,h in zip(trial, target))def mutaterate(parent):    return 1.0-(1.0*(perfectfitness - fitness(parent)) / perfectfitness * (1.0 - minmutaterate))def mutate(parent, rate):    return [(ch if random() <= rate else choice(charset)) for ch in parent]def log(iterations,rate,parent):    print("#%-4i, rate: %4.3f, fitness: %4.1f%%, '%s'" %         (iterations, rate, fitness(parent)*100./perfectfitness, ''.join(parent)))iterations = 0while parent != target:    rate =  mutaterate(parent)    iterations += 1    if iterations % 10 == 0: log(iterations,rate,parent)    copies = [ mutate(parent, rate) for _ in C ]  + [parent]    parent = max(copies, key=fitness)    print()log(iterations, rate, parent)

 本文转自罗兵博客园博客,原文链接:http://www.cnblogs.com/hhh5460/p/5254052.html,如需转载请自行联系原作者

标签:  , 
你可能感兴趣的文章
[LeetCode] Integer to English Words
查看>>
Python中的装饰器——11
查看>>
thinkphp <eq> <if>标签 condition中可以写PHP的判断逻辑
查看>>
clang: error: linker command failed with exit code 1 (use -v to see invocation)
查看>>
Python ThreadPool简单应用多线程
查看>>
用eclipse导入jar包并使其在一个文件夹下
查看>>
org.hibernate.Session常用方法的作用总结
查看>>
斜率优化
查看>>
js遍历Object所有属性
查看>>
软件工程个人项目:一个能自动生成小学四则运算的程序
查看>>
HDU 4390 Number Sequence 容斥原理
查看>>
input标签的type为select、radio、checkbox的使用
查看>>
S5PV210_流水灯
查看>>
BootStrap字体图标不显示、下拉菜单不显示
查看>>
splice()完整语义和三种用法
查看>>
8086汇编语言 高精度编写与计算器初步
查看>>
基于 HTML5 WebGL 的 3D 网络拓扑图
查看>>
c++ 网络编程(八) LINUX-epoll/windows-IOCP下 socket opoll函数用法 优于select方法的epoll 以及windows下IOCP 解决多进程服务端创...
查看>>
SSDT
查看>>
Sqli-labs less 36
查看>>