多变量遗传算法python代码_遗传算法之Python实现代码

本文介绍了如何使用Python实现多变量遗传算法,包括创建Chrom类、设置基础参数、初始化种群、计算适应度、进行突变和交叉等步骤。遗传算法通过染色体类对象和字典存储种群,简化了逻辑,易于理解。文章还提供了Genetic.py和Fitness.py中的关键函数实现。
摘要由CSDN通过智能技术生成

写在前面

之前的文章中已经讲过了遗传算法的基本流程,并且用MATLAB实现过一遍了。这一篇文章主要面对的人群是看过了我之前的文章,因此我就不再赘述遗传算法是什么以及基本的内容了,假设大家已经知道我是怎么写遗传算法的了。

Python的遗传算法主函数

我的思想是,创建一个染色体的类,其中包括了两个变量:染色体chrom与适应度fitness。因此我们就可以通过直接建立对象来作为种群中的个体。

#染色体的类

class Chrom:

chrom = []

fitness = 0

def showChrom(self):

print(self.chrom)

def showFitness(self):

print(self.fitness)

所以我们开始设置基础参数。其中种群的表达方式我用的是字典,也就是用一个字典来保存种群内的所有个体,这个也是我想出来的创建多个对象的方法。

将字典的索引为个体的标号,如:chrom1, chrom2等。字典索引的值就是一个对象。这个对象拥有两个属性,就是染色体与适应度。

其实在这一方便来说,我觉得在思路上是优于利用MATLAB的矩阵式编程的。因为这样可以很直观的将个体与个体的属性这一种思想给表达出来,相比一堆矩阵来说,在逻辑上比较容易接受。

#基础参数

N = 200 #种群内个体数目

mut = 0.2 #突变概率

acr = 0.2 #交叉概率

pop = {} #存储染色体的字典

for i in range(N):

pop['chrom'+str(i)] = Chrom()

chromNodes = 2 #染色体节点数(变量个数)

iterNum = 10000 #迭代次数

chromRange = [[0, 10], [0, 10]] #染色体范围

aveFitnessList = [] #平均适应度

bestFitnessList = [] #最优适应度

之后就是初始染色体了,其中就牵扯到了各种用来初始化种群、计算适应度、找最优等函数,我在这里分出了两个文件,分别为Genetic.py与Fitness

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值