遗传算法中的CROSSOVER和MUTATION

2023-12-15 13:58

本文主要是介绍遗传算法中的CROSSOVER和MUTATION,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

结合上次发的代码,这次再多说点,今天看了别人的代码,才晓得在实值编码下crossover和mutation的做法。

1:crossover,对于实值编码的染色体一般进行crossover的时候,是先随机选择2个parent,然后选择一部分进行交换,这样的做法是最常见的。而在我上面的代码中是(parent1+parent2)/2 来做了。那么就在这里说下选择部分进行交换的做法。
比如群体的size是N,先选择最好的M个,那么就需要在产生N-M个才能维持好种群的大小。怎么产生着N-M个后代?做法是这样的,假设每个染色体的长度是K,那么先把M个种群中的染色体的第一个基因,按照倍数复制成长度为N-M,接着随机再给这个N-M排序下,组成了N-M个后代的第一个基因,以此类推,就完成了任意2个parent的基因交换和重组。

2:mutation中最常见的就是以X的概率去mutation,那么怎么弄?这个mutation是针对每个染色体上的每个基因的,做法是这样的,遍历这N个染色体上的K个基因,然后产生随机数,如果这个随机数小于X,那么久给这个基因做mutation,如果大于则不更改,具体的实现的时候可以灵活点。

至此,这就是crossover和mutation的常见做法。

这篇关于遗传算法中的CROSSOVER和MUTATION的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/496684

相关文章

遗传算法Github初学

遗传算法的理论是根据达尔文进化论而设计出来的算法:人类是朝着好的方向(最优解)进化,进化过程中,会自动选择优良基因,淘汰劣等基因 遗传算法(genetic algorithm——GA)是计算数学中用于解决最佳化的搜索算法,是进化算法的一种。进化算法最初是借鉴了进化生物学中的一些现象而发展起来的,这些现象包括遗传、突变、自然选择、杂交等。 搜索算法的共同特征为: 首先组成一组候选解依据某些适应

零基础学启发式算法(5)-遗传算法 (Genetic Algorithm)

一、遗传算法 (Genetic Algorithm, GA)  源于达尔文的进化论,将问题的一个解当作种群中的一个个体。 gene:基因 chromosome: 染色体 population:种群 crossover:交叉 mutation:变异 selection:选择 通过多轮的“选择,交叉和变异”,选择适应度最好的个体作为问题的最优解。 选择:优胜劣汰,适者生存。

MATLAB智能优化算法-学习笔记(1)——遗传算法求解0-1背包问题【过程+代码】

一、问题描述 (1)数学模型 (2)模型总结 目标函数:最大化背包中的总价值 Z。约束条件:确保背包中的物品总重量不超过容量 W。决策变量:每个物品是否放入背包,用0或1表示。 这个数学模型是一个典型的0-1整数线性规划问题。由于其NP完全性,当问题规模较大时,求解此问题通常需要使用启发式算法(如遗传算法、动态规划、分支定界法等)来找到近似最优解。 (3)实例讲解:0-1 背包问题

遗传算法与深度学习实战(8)——使用遗传算法解决旅行商问题

遗传算法与深度学习实战(8)——使用遗传算法解决旅行商问题 0. 前言1. 旅行商问题2. NP 问题3. 构建 TSP 求解器小结系列链接 0. 前言 旅行商问题 (Traveling Salesman Problem, TSP) 是一个经典的优化问题,其目标是找到一条最短的路径,使得旅行商可以访问一系列给定的城市并且每个城市只访问一次,最终回到出发地点。在本节中,我们将学习

MATLAB遗传算法求解考虑碳排放的逆向物流快递产品回收处理中心选址问题实例代码

MATLAB遗传算法求解考虑碳排放的逆向物流快递产品回收处理中心选址问题实例代码 MATLAB遗传算法求解考虑碳排放的逆向物流快递产品回收处理中心选址问题实例代码

遗传算法(GA)的C语言实现

问题: 在下面的程序中将要运用遗传算法对一个多项式求最小值 要求在(-8,8)间寻找使表达式达到最小的x,误差为0.001 问题分析: 编码:采用常规码,即二进制码编码。构造简单,交叉、变异的实现非常容易,同时解的表达也很简洁、直观。可以每0.001取一个点,这样理论误差讲小于0.0005,可以满足题目中的误差要求。此事总的求解空间为: N = (8 - (-8)) * 10

用Python解决优化问题_多目标规划遗传算法模板

NSGA2,即非支配排序遗传算法II(Nondominated Sorting Genetic Algorithm II),是一种用于解决多目标优化问题的遗传算法。NSGA-II算法基于Pareto最优概念,通过快速非支配排序和精英策略,有效地维护种群多样性并提高优化精度 。 NSGA-II算法的流程主要包括: 1. 初始种群的生成。 2. 对种群进行非支配排序和拥挤度计算。 3. 根据非支配等

Genetic Algorithm遗传算法整理

文章目录 一、简介二、算法流程三、参数四、代码五、参考资料 一、简介 遗传算法(Genetic Algorithm, GA)是模拟达尔文生物进化论的自然选择和遗传学机理的生物进化过程的计算模型,是一种通过模拟自然进化过程搜索最优解的方法。 遗传算法以一种群体中的所有个体为对象,并利用随机化技术指导对一个被编码的参数空间进行高效搜索。其中,选择、交叉和变异构成了遗传算法的遗传

遗传算法与深度学习实战(7)——使用遗传算法解决N皇后问题

遗传算法与深度学习实战(7)——使用遗传算法解决N皇后问题 0. 前言1. N 皇后问题2. 解的表示3. 遗传算法解决 N 皇后问题小结系列链接 0. 前言 进化算法 (Evolutionary Algorithm, EA) 和遗传算法 (Genetic Algorithms, GA) 已成功解决了许多复杂的设计和布局问题,部分原因是它们采用了受控随机元素的搜索。这通常使得使

浅析遗传算法

1 初探遗传算法   Ok,先看维基百科对遗传算法所给的解释: 遗传算法是计算数学中用于解决最优化的搜索算法,是进化算法的一种。进化算法最初是借鉴了进化生物学中的一些现象而发展起来的,这些现象包括遗传、突变、自然选择以及杂交等。   遗传算法通常实现方式为一种计算机模拟。对于一个最优化问题,一定数量的候选解(称为个体)的抽象表示(称为染色体)的种群向更好的解进化。传统上,解用二进制表示