# -*-coding:utf-8 -*- #目标求解sin(x)最大值 import random import math import matplotlib.pyplot as plt #初始化种群 生成chromosome_length大小的population_size个个体的种群 def species_origin(population_size,chromosome_length): population=[[]] #one dimension represent a individual for i in range(population_size): temporary=[] #染色体暂存器 for j in range(chromosome_length): temporary.append(random.randint(0,1)) #随机产生一个染色体,由二进制数组成 population.append(temporary) #将染色体添加到种群中 return population[1:] # 将种群返回,种群是个二维数组,个体和染色体两维 #从二进制到十进制 #编码 input:种群,染色体长度 def translation(population,chromosome_length): temporary=[] for i in range(len(population)): total=0 for j in range(chromosome_length): total+=population[i][j]*(math.pow(2,j)) #从第一个基因开始,每位对2求幂,再求和 # 如:0101 转成十进制为:1 * 20 + 0 * 21 + 1 * 22 + 0 * 23 = 1 + 0 + 4 + 0 = 5 temporary.append(total) #一个染色体编码完成,由一个二进制数编码为一个十进制数 return temporary # 返回种群中所有个体编码完成后的十进制数 #from protein to function,according to its functoin value #a protein realize its function according its structure # 目标函数相当于环境 对染色体进行筛选,这里是sin(x) def function(population,chromosome_length,max_value): temporary=[] function1=[] temporary=translation(population,chromosome_length) # 暂存种群中的所有的染色体(十进制) for i in range(len(temporary)): x=temporary[i]*max_value/(math.pow(2,chromosome_length)-1) # function1.append(math.sin(x)) #这里将sin(x)作为目标函数 return function1 #定义适应度 def fitness(function1): fitness1=[] min_fitness=mf=0 for i in range(len(function1)): if(function1[i]+mf>0): temporary=mf+function1[i] else: temporary=0.0 # 如果适应度小于0,则定为0 fitness1.append(temporary) #将适应度添加到列表中 return fitness1 #计算适应度和 def sum(fitness1): total=0 for i in range(len(fitness1)): total+=fitness1[i] return total #计算适应度斐伯纳且列表 def cumsum(fitness1): for i in range(len(fitness1)-2,-1,-1): # range(start,stop,[step]) # 倒计数 total=0 j=0 while(j<=i): total+=fitness1[j] j+=1 fitness1[i]=total fitness1[len(fitness1)-1]=1 #3.选择种群中个体适应度最大的个体 def selection(population,fitness1): new_fitness=[] #单个公式暂存器 total_fitness=sum(fitness1) #将所有的适应度求和 for i in range(len(fitness1)): new_fitness.append(fitness1[i]/total_fitness) #将所有个体的适应度正则化 cumsum(new_fitness) # ms=[] #存活的种群 population_length=pop_len=len(population) #求出种群长度 #根据随机数确定哪几个能存活 for i in range(pop_len): ms.append(random.random()) # 产生种群个数的随机值 ms.sort() # 存活的种群排序 fitin=0 newin=0 new_population=new_pop=population #轮盘赌方式 while newinbestfitness): bestfitness=fitness1[i] bestindividual=population[i] return [bestindividual,bestfitness] population_size=500 max_value=10 # ?这个值是干什么的 chromosome_length=10 pc=0.6 pm=0.01 results=[[]] fitness1=[] fitmean=[] population=pop=species_origin(population_size,chromosome_length) #生成一个初始的种群 for i in range(population_size): function1=function(population,chromosome_length,max_value) fitness1=fitness(function1) best_individual,best_fitness=best(population,fitness1) results.append([best_fitness,b2d(best_individual,max_value,chromosome_length)]) #将最好的个体和最好的适应度保存,并将最好的个体转成十进制 selection(population,fitness1) crossover(population,pc) mutation(population,pm) results=results[1:] results.sort() X=[] Y=[] for i in range(500): X.append(i) Y.append(results[i][0]) plt.plot(X,Y) plt.show()

python遗传算法计算实例_遗传算法python简单例子(详解)相关推荐

  1. python牛顿法计算平方根_常用的平方根算法详解与实现

    本文从属于笔者的数据结构与算法系列文章. SquareRoot 平方根计算一直是计算系统的常用算法,本文列举出几张简单易懂的平方根算法讲解与实现.其中Java版本的代码参考这里 Reference B ...

  2. python 科学计算设计_《Python科学计算-(第2版)》怎么样_目录_pdf在线阅读 - 课课家教育...

    第1章 Python科学计算环境的安装与简介 1 1.1 Python简介 1 1.1.1 Python 2还是Python 3 1 1.1.2 开发环境 2 1.1.3 集成开发环境(IDE) 5 ...

  3. python篮球弹跳训练方法_篮球弹跳力训练方法详解

    导读:小编根据大家的需要整理了一份关于<篮球弹跳力训练方法详解>的内容,具体内容: 弹跳是篮球运动的一个很重要因素,一个好的弹跳,可以大限度的展现出自己的实力,但是有些朋友弹跳不好,那么要 ...

  4. python tkinter计算器实例_使用Python自带GUI tkinter编写一个期权价格计算器

    0 准备工作 首先,确认环境中有numpy.scipy.stats和tkinter三个功能包.前两个功能包可用于Python的数学计算,比如使用numpy来生成随机数用于Monte Carlo模拟,以 ...

  5. python中计算带分数_聊聊 python 数据处理全家桶(Redis篇)

    作者:星安果 来源:AirPython 前面两篇文章聊到了 python 处理 Mysql.Sqlite 数据库常用方式,本篇文章继续说另外一种比较常用的数据存储方式:Redis Redis:Remo ...

  6. python 科学计算设计_用Python做科学计算 高清晰PDF

    用Python做科学计算一书介绍如何用Python开发科学计算的应用程序,除了介绍数值计算之外,我们还将着重介绍如何制作交互式的2D.3D图像:如何设计精巧的程序界面:如何和C语言所编写的高速计算程序 ...

  7. python 科学计算设计_用Python做科学计算 pdf版

    本书将介绍如何用Python开发科学计算的应用程序,除了介绍数值计算之外,我们还将着重介绍如何制作交互式的2D.3D图像:如何设计精巧的程序界面:如何和C语言所编写的高速计算程序结合:如何编写声音.图 ...

  8. python网络自动化实例_【python自动化第八篇:网络编程】

    一.拾遗 动态导入模块 目的是为了在导入模块的过程中将模块以字符的格式导入. #!/usr/bin/env python # -*- coding:utf-8 -*- #Author:wanghui ...

  9. python多元线性回归实例_利用Python进行数据分析之多元线性回归案例

    线性回归模型属于经典的统计学模型,该模型的应用场景是根据已知的变量(自变量)来预测某个连续的数值变量(因变量).例如,餐厅根据每天的营业数据(包括菜谱价格.就餐人数.预定人数.特价菜折扣等)预测就餐规 ...

最新文章

  1. 妙味课堂——HTML+CSS(第一课)
  2. 中两个数做减法_四年级数学下册 | 第1单元加、减法的意义和各部 分之间的关系(P13)...
  3. PVM的安装和编译PVM程序
  4. 在SAP UI中使用纯JavaScript显示产品主数据的3D模型视图
  5. 编写程序计算 sentence 中有多少个单词,并指出其中最长和最短的单词。如果有多个最长或最短的单词,则将它们全部输出。
  6. vue --- vue-router
  7. LeetCode之Next Greater Element I
  8. 想学IT的必看!今年Android面试必问的这些技术面,架构师必备技能
  9. 《机器人学经典教程》——2.2 控制论
  10. 无限级导航PHP,jQuery多级无限级导航下拉菜单代码
  11. JAVA蓝桥杯: 01字串
  12. 克罗谈投资策略01_期货交易中的墨菲法则
  13. Matlab修改显示数值格式/精度/小数位数
  14. linux源代码阅读笔记 高速缓冲区管理
  15. 苹果测试版最新发行说明,iOS 15.4支持戴口罩解锁,Dropbox和OneDrive的云存储功能被打破
  16. 两台计算机如何连接一个网络打印机共享,打印机怎么连接2台电脑?两台或多台电脑连接共享打印机操作方法...
  17. [原创]通过动态Sql语句,一次性彻底删除或者修改SBO的某个字段对应内容的信息...
  18. IB数学考试真题题型解析
  19. 泰拉瑞亚 1.4 搭建服务器教程
  20. 透视全球AI治理十大事件:站在创新十字路口,人工智能会失控吗?

热门文章

  1. 媒体智能-淘宝直播流媒体互动实践 | D2 分享视频+文章
  2. 国际免费版 新冠疫情数据分析APP正式发布!
  3. 【机器学习】AI系统实时监测独居老人症状
  4. 任务不再等待!玩转DataWorks资源组
  5. 日站会——你的站会姿势正确吗?
  6. 从工具到平台|默安科技研发安全一体化管理平台正式发布
  7. Gartner:70%新应用由低代码开发,AI热潮后小数据崛起
  8. 剧情反转:今年AI要凉!薪资碾压全行,但人才缺500万!
  9. “AI捡垃圾”上热搜了!46城垃圾分类将投200亿,你怎么看?
  10. 华为智能计算发布FusionServer Pro智能服务器