遗传算法

遗传算法python简单例子(详解)

匿名 (未验证) 提交于 2019-12-02 22:51:30
# -*-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

利用 Python 实现 遗传算法(GeneticAlgorithm)

匿名 (未验证) 提交于 2019-12-02 22:11:45
文章目录 要求 核心代码 生成初代 GA循环 解码 获取适应值 选择交叉方案 交配 繁衍 计算结果 找出两个最优解: 精确到小数点后六位: 最后 要求 核心代码 生成初代 我采用的是2进制来表示染色体,先随机出一堆0和1的列表 def getFisrtGroup(group_size, chrom_length): group = [] for i in range(group_size): temp = [] for j in range(chrom_length): temp.append(random.randint(0, 1)) group.append(temp) return group GA循环 for i in range(generation): obj_value = calobjValue(group, chrom_length, max_value, min_value, divid) # 个体评价 fit_value = calfitValue(obj_value) # 获取群体适应值 best_individual, best_fit = best(group, fit_value) # 返回最优基因, 最优适应值 if( abs(f(xx)+186.730909) < 0.000001):#找到最优解 crossover(group, fit

遗传算法求解带时间窗的车辆路径规划问题

假如想象 提交于 2019-12-01 23:36:32
遗传算法求解带时间窗的车辆路径规划问题 1.遗传算法 遗传算法简介 遗传算法(Genetic Algorithm,简称GA)是一类借鉴生物界的进化规律(适者生存,优胜劣汰遗传机制)演化而来的基于种群的随机化搜索方法。它是由美国的J.Holland教授1975年首先提出,其主要特点是直接对结构对象进行操作,不存在求导和函数连续性的限定;具有内在的隐并行性和更好的全局寻优能力;采用概率化的寻优方法,能自动获取和指导优化的搜索空间,自适应地调整搜索方向,不需要确定的规则。遗传算法的这些性质,已被人们广泛地应用于组合优化、机器学习、信号处理、自适应控制和人工生命等领域。遗传算法是现代智能计算中的关键技术之一。 遗传算法基本思想 在现实生活中,生物的染色体通过基因控制了生物的性状,而生物的性状决定了生物在环境中的适应度,适应度高的生物,其基因更容易流传下来,随着时间的不断流逝,整个种群的适应度随之提高。 遗传算法和现实非常类似,首先将问题的解通过一定的方法,编码到染色体中,通过适应度函数,得到每个个体的适应度,通过选择,将适应度高的个体保留到下一代中,不断迭代,即可获得满意解。 遗传算法流程 2.带时间窗的车辆路径规划问题介绍 车辆路径规划问题介绍 车辆路径规划问题,经过60年来的研究与发展,研究的目标对象,限制条件等均有所变化,已经从最初的简单车辆安排调度问题转变为复杂的系统问题

基于遗传算法的试题组卷

女生的网名这么多〃 提交于 2019-12-01 15:24:49
基于遗传算法的试题组卷 IT 企业每年都会在春季和秋季举行校园招聘,对于个性化定制的试卷需求量很大,如何组出又好又快的定制化试题对于 IT 企业非常重要。组卷技术主要针对知识点覆盖率,题型,难度系数,试题数量等一些试题的属性进行多条件约束优化组卷。 为了方便考官出题考试,系统中引入了试题组卷技术。如何又快又好地生成符合考官口味的试卷变得非常关键。下面将对一些常用的组卷算法进行介绍。 目前常用的组卷有随机选取法,回溯试探法,遗传算法三种。 随机选取法:根据状态空间的控制指标,由计算机随机的抽取一道试题放入试题库,此过程不断重复,直到组卷完毕,或已无法从题库中抽取满足控制指标的试题为止。该方法结构简单,对于单道题的抽取运行速度较快,但是对于整个组卷过程来说组卷成功率低,即使组卷成功,花费时间也令人难以忍受。尤其是当题库中各状态类型平均出题量较低时,组卷往往以失败告终。 回溯试探法:这是将随机选取法产生的每一状态记录下来,当搜索失败时释放上次记录的状态类型,然后再依据一定的规律变换一种新的状态类型进行试探,通过不断的回溯试探直到试卷生成完毕或退回出发点为止,这种有条件的深度优先算法,对于状态类型和出题量都较少的题库系统而言,组卷成功率较好,但是对于程序结构相对比较复杂,该算法表现就比较差了。 遗传算法:遗传算法( Genetic Algorithm

系统学习机器学习之神经网络(三)--GA神经网络与小波神经网络WNN

风格不统一 提交于 2019-11-30 09:38:27
系统学习机器学习之神经网络(三)--GA神经网络与小波神经网络WNN 2017年01月09日 09:45:26 Eason.wxd 阅读数 14135 更多 分类专栏: 机器学习 1 遗传算法 1.1 遗传算法简介: 遗传算法是一类借鉴生物界的进化规律(适者生存,优胜劣汰遗传机制)演化而来的随 机化搜索方法。它是由美国的 J.Holland 教授 1975 年首先提出,其主要特点是直接对结构对 象进行操作,不存在求导和函数连续性的限定;具有内在的隐并行性和更好的全局寻优能力; 采用概率化的寻优方法,能自动获取和指导优化的搜索空间,自适应地调整搜索方向,不需 要确定的规则。遗传算法的这些性质,已被人们广泛地应用于组合优化、机器学习、信号处 理、自适应控制和人工生命等领域。它是现代有关智能计算中的关键技术之一。 在遗传算法里,优化问题的解被称为个体,它表示为一个变量序列,叫做染色体或者基 因串。染色体一般被表达为简单的字符串或数字串,不过也有其他的依赖于特殊问题的表示 方法适用,这一过程称为编码。首先,算法随机生成一定数量的个体,有时候操作者也可以 对这个随机产生过程进行干预,以提高初始种群的质量。在每一代中,每一个个体都被评价, 并通过计算适应度函数得到一个适应度数值。种群中的个体被按照适应度排序,适应度高的 在前面。这里的“高”是相对于初始的种群的低适应度来说的。

模拟退火算法理论及其MATLAB实现

邮差的信 提交于 2019-11-29 14:26:17
像遗传算法,模拟退火,免疫算法,粒子群算法,神经网络,蚁群算法,禁忌搜索这样的智能算法,都是 独立于问题 的算法。对于TSP这种NP难问题,不可能有解析的确定的算法去求解全局最优解,只能依靠这种随机搜索算法去求解局部最优解。 这个 “独立于问题” 描述地特别到位,精辟,道出了本质。 来源: https://blog.csdn.net/qq_36607894/article/details/100584628

遗传算法及其matlab实现(示例用python库geatpy,matlab遗传工具箱geatbx和lingo三种方式求解)

南楼画角 提交于 2019-11-29 14:26:13
智能算法是一个边缘交叉学科,有蚁群、粒子群算法、遗传算法、免疫算法、模拟退火等,都乐意算作机器学习的一种类别。 文章目录 理论 生物理论基础 历史 算法 编解码 编码 解码 染色体交配运算产生子代染色体 crossover 基因突变运算产生子代染色体 染色体倒位运算产生子代染色体 个体适应度评估 复制运算 示例 示例2 遗传算法是模拟达尔文进化论和孟德尔遗传学原理的生物计算模型,是一种模拟自然进化过程以搜索最优解的方法。 理论 生物理论基础 先列出遗传算法中使用到的自然选择的基本观点:(仿佛回到了高二) 种群 是进化的基本单位 进化的实质是种群基因频率的改变 基因突变、基因重组、自然选择和隔离 是物种形成过程的三个基本环节 突变和重组产生进化的原材料 自然选择使得种群的基因频率定向改变,决定进化方向 隔离是新物种形成的必要条件 新物种形成途径有二, 渐进式和爆发式 ,遗传算法中用到了这两种思想。渐进式是通过 变异的逐渐积累 产生新物种;爆发式是通过 杂交和染色体结构变化 产生新物种。 历史 1975年,密歇根大学的J.Holland教授提出“遗传算法”的概念。那是最基本的遗传算法原型,现在已有很多变体。 算法 GA包括编解码、遗传运算、个体适应度评估三部分。其中遗传运算包括染色体复制、交叉、变异、倒位。 基因 :染色体上的片段,取值0/1 个体 :编码后的染色体

遗传算法实现

≯℡__Kan透↙ 提交于 2019-11-28 19:19:52
1.要安装一个 matplotlib,折腾半天,cmd,环境变量。最后直接从pycharm的设置里添加成功了。 2. random.randint(0, 11):生成[0,11]的数 np.random.randint(0, 11): 生成[0,10]的数 来源: https://www.cnblogs.com/wanghaolu/p/11409938.html

通俗解释遗传算法及其Matlab实现

懵懂的女人 提交于 2019-11-26 21:53:18
  早上再看一个APP推荐的文章,发现的。 (1)初识遗传算法 遗传算法,模拟达尔文进化论的自然选择和遗传学机理的生物进化过程的计算模型,一种选择不断选择优良个体的算法。谈到遗传,想想自然界动物遗传是怎么来的,自然主要过程包括染色体的选择,交叉,变异(不明白这个的可以去看看生物学),这些操作后,保证了以后的个体基本上是最优的,那么以后再继续这样下去就可以一直最优了。 (2)解决的问题 先说说自己要解决的问题吧。遗传算法很有名,自然能解决的问题很多了,在原理上不变的情况下,只要改变模型的应用环境和形式,基本上都可以。但是遗传算法主要还是解决优化类问题,尤其是那种不能直接解出来的很复杂的问题,而实际情况通常也是这样的。 本部分主要为了了解遗传算法的应用,选择一个复杂的二维函数来进行遗传算法优化。函数显示为y=10*sin(5*x)+7*abs(x-5)+10,这个函数图像为: 来源: CSDN 作者: weixin_34319111 链接: https://blog.csdn.net/weixin_34319111/article/details/90253415