Python 遗传算法库 Geatpy 深入

为了应对更加复杂的问题,不同的编码方式的问题,对此进行代码讲解,个人觉得这个遗传算法库做的很好,上手比较快,适用性很强,强烈推荐,用的很顺手。

示例说明:
a = [0~30连续数] * _num
b = [1 ~ num num个数排列排序] 即数列 1~num 不重复排列
c = [0~30离散数(整数)] * _num

Python 深入学习

生成器与迭代器

生成器进阶 - send

自定义错误类型

修饰器

常见修饰器

海象运算符:=(python>=3.8)

特殊的list deque

因为最近在写算法题,用的是C++,看了下python也有deque

拓扑算法库

collections库

下划线(_)的作用

遗传算法背包问题

排列编码

格雷编码(选择编码)

两个编码方式有差异,我个人认为排列编码会比较好一点,逻辑更加高一些。代码中为EGA模板(即带有精英选择机制的遗传算法),测试下来可能NSGA-ii模板会更优一些,可以在测试的时候选择你想要的算法及结果。data.xlsx

Python 多线程与多进程

python多线程因为GIL锁的原因可以说是假的,但是多进程是可以使用多核 cpu。

测试代码如下:

测试结果如下:

threading 多线程原图
multiprocessing 多进程原图

结果:我们可以看到 threading 多线程库只可以跑满一核 cpu,但是 multiprocessing 多进程库可以跑满 cpu

二重积分参考代码

浙ICP备2021019730-1    浙公网安备 33010902002953号
Copyright © 2022 PanCake