遗传算法染色体交叉python

article/2025/10/1 22:58:04

遗传算法中两条染色体交叉思想简单,实现略微复杂,所以借鉴https://blog.csdn.net/weixin_41606064/article/details/100862016重新封装了一下,并对其中不完善的地方做了修改,步骤如下:

  • step1:从采用自然数编码的种群中,获取两条染色体,作为父代染色体;
  • step2:随机产生两个随机数满足0≤k1<k2≤LINDLIND为染色体的长度,如k1 = 3k2 =6作为截取染色体片段的起始位置,再将截取到的两个片段进行位置交换
  • step3: 解决编码重复性的冲突问题。根据映射关系,对重复基因进行修改。
    def cross(chrom1: [], chrom2: []):i = np.random.randint(low=0, high=len(chrom1) - 3)j = i + 2chrom1 = chrom1.tolist()chrom2 = chrom2.tolist()key = chrom1[i:j]val = chrom2[i:j]duplicates = []for e in key:if e in val:duplicates.append(e)for e in duplicates:key.remove(e)val.remove(e)chrom1[i:j], chrom2[i:j] = chrom2[i:j], chrom1[i:j]for k in range(i):if chrom1[k] in val:chrom1[k] = key[val.index(chrom1[k])]if chrom2[k] in key:chrom2[k] = val[key.index(chrom2[k])]for l in range(j, len(chrom1)):if chrom1[l] in val:chrom1[l] = key[val.index(chrom1[l])]if chrom2[l] in key:chrom2[l] = val[key.index(chrom2[l])]

http://chatgpt.dhexx.cn/article/6SkRRjwV.shtml

相关文章

Python遗传算法工具箱的使用(二)求解最短路径问题

前言 自从上一篇博客详细讲解了Python遗传和进化算法工具箱及其在带约束的单目标函数值优化中的应用之后,我经过不断学习工具箱的官方文档以及对源码的研究,逐步更加地掌握如何利用遗传算法求解更多有趣的问题了。 首先简单回顾一下Python高性能实用型…

python遗传算法解决分配问题

python遗传算法解决分配问题 import numpy as np import random import matplotlib.pyplot as pltdef get_rand():select [x for x in range(10)]random.shuffle(select)return selecttime np.array([[82, 16, 66, 71, 44, 28, 76, 85, 36, 8],[91, 98, 4, 4, 39, 68, 26, 26…

python遗传算法

学习代码来源于:遗传算法python 一.主要思想 遗传算法是根据达尔文的“适者生存,优胜劣汰”的思想来找到最优解的额,其特点是所找到的解是全局最优解,相对于蚁群算法可能出现的局部最优解还是有优势的。 二.主要名词 个体&…

遗传算法python代码

不知道为什么一个大一的萌新能有这么多事要干......蚁群算法的代码先缓一缓,等博主写完作业,考完英语期中再说吧。关于遗传算法的代码,由于忘记了np数组不copy的时候会直接引用,导致很长一段时间不知道自己哪里出bug了&#xff0c…

python遗传算法解简单整数规划与原理探究

文章目录 一、算例与代码1.1 问题与思路1.2 代码 二、实现细节2.1 什么是种群2.2 编码与解码2.3 如何处理约束2.4 如何从较好解获得新的解 三、反思:真的是采样逼近吗 / 消融实验3.1 最优解和较好解的关系 / 遗传算法为什么可行3.2 为什么交叉能得到更优解3.3 为什么…

遗传算法python

目录 01 遗传本质 02 编码 1.单目标多变量函数 - 无约束 - (可画立体图) 2.单目标多变量函数 - 罚算法 - 约束​编辑 3.单目标多变量函数 - 带约束 (不明白得出了什么东西,可能是输出评价指标?) 4.多目标函数 - 带约束 可…

python遗传算法(应用篇1)--求解一元函数极值

目录 遗传算法求解过程算法参数构建初始化种群解码(二进制>十进制)自然选择交叉变异解码(新种群>十进制)计算新种群的适应度 完整代码及其可视化版本其他numpy中的随机数 下面我们使用遗传算法尝试求解一元函数的最值 y s…

python遗传算法解决分段线性约束问题

问题描述 模型 分析 带有分段约束和max最值,导致使用一般的线性规划pulp问题进行求解会比较麻烦如果将分段约束转化为0/1整数规划,其余变量 u i u_i ui​未必还是整数,就涉及混整问题相对麻烦,所以考虑使用遗传算法进行求解 Py…

Python 遗传算法路径规划

了却一个心愿 文章目录 目录 文章目录 前言 二、主要内容 三、使用步骤 1.将压缩包下载解压 2.读入数据 3.最终结果 前言 遗传算法(Genetic Algorithm,GA)最早是由美国的 John holland于20世纪70年代提出,该算法是根据大自然中生物体进化规律…

遗传算法的python实现(手撕python遗传算法)

遗传算法简介 假设有无约束优化问题: z f ( x , y ) zf(x,y) zf(x,y) 如何通过遗传算法求解? 在这里需要将该优化问题与遗传算法中的概念进行对比。 f f f 对应遗传算法的适应度函数。自变量 x , y x,y x,y 对应遗传算法的个体,注意&#…

Python 遗传算法 Genetic Algorithm

粒子群算法常常用于在连续解空间内搜索,而在不连续、离散的空间内常常会出现搜索越界的问题 例如旅行商问题,寻找可以遍历 15 个地点的最短路径(当然可以用二进制状态压缩 动态规划解决),以 {0, 1, ..., 14} 表示这些…

python遗传算法之geatpy学习

😻今天我们来学习python中的遗传算法的使用,我们这里使用的是geatpy的包进行学习,本博客主要从geatpy中的各种数据结构一步一步进行学习,请大家耐心看完。 🐤其实以前也学习过遗传算法,但是主要使用matlab…

遗传算法详解 附python代码实现

遗传算法 遗传算法是用于解决最优化问题的一种搜索算法。从名字来看,遗传算法借用了生物学里达尔文的进化理论:”适者生存,不适者淘汰“,将该理论以算法的形式表现出来就是遗传算法的过程。 问题引入 上面提到遗传算法是用来解…

遗传算法【Python】

遗传算法概念 基本思想: 遗传算法(GA)是一种全局寻优搜索算法,它依据的是大自然生物进化过程中“适者生存”的规律。它首先对问题的可行解进行编码,组成染色体,然后通过模拟自然界的进化过程,对初始种群中的染色体进…

遗传算法python实现

遗传算法python实现 一、问题引入二、遗传算法的步骤1.初始化2.个体评价3.选择运算4.交叉运算5.变异运算6.终止条件判断 三、实现思路1.编码的设计2.适应度函数3.选择函数4.交叉函数5.变异函数6.迭代 四、具体实现1.编码解码函数2.适应度函数3.选择函数4.交叉函数5.变异函数6.选…

遗传算法(Python)

一、遗传算法 1、遗传算法的定义 遗传算法是一种现代优化算法。根据自然界适者生存的法则,种群中优秀个体的基因进行遗传。每个个体的染色体通过选择、交叉和变异等过程产生新的适应度更大的染色体,其中适应度越大的个体越优秀,种群得到优化…

python遗传算法(详解)

学习代码来源于:遗传算法python 一.主要思想 遗传算法是根据达尔文的“适者生存,优胜劣汰”的思想来找到最优解的额,其特点是所找到的解是全局最优解,相对于蚁群算法可能出现的局部最优解还是有优势的。 二.主要名词 个体&…

DH算法、DHE算法、ECDHE算法演进

ECDHE 算法解决了 RSA 算法不具备前向安全的性质 和 DH 算法效率低下的问题。 ECDHE 算法具有前向安全。所以被广泛使用。 由什么演变而来 DH 算法 -- > DHE 算法 -- > ECDHE 算法 DH 算法是非对称加密算法,该算法的核心数学思想是离散对数。 核心数学思…

DH 算法思想 SSH解决内容篡改问题

DH算法用于交换密钥 交换密钥的目的是生成仅双方共享的密钥 交换密钥的基本过程: 双方确定公开的内容用各自的私钥分别对公共内容加密(加密本质就是数学运算)并发送给对方这时双方使用自己的密钥对收到的内容加密(要设计运算保证…

ECDH算法详解

ECDH算法详解 ECDH算法详解DH密钥交换原理结合ECC椭圆曲线算法ECDSA签名算法 参考资料 ECDH算法详解 DH密钥交换原理 进一步解释: 两端(Alice 和 Bob)想要安全的交换信息并且第三方不能获取到该信息。当然这也是TLS协议中的目的之一&#xf…