【最优化问题】使用离散重组完成的整数规划遗传算法

本文介绍了一种基于离散重组的整数规划遗传算法实现,该算法通过初始化族群、计算个体适应度、淘汰低适应度个体并保留高适应度个体进行遗传繁衍,最终找到最优解。适用于解决复杂的优化问题。
'''
使用离散重组完成的整数规划遗传算法 

过程
1、初始化族群
2、计算个体适应度
3、淘汰适应度最低的个体。
4、适应度最高的个体直接延续到下一代,同时所有个体通过离散重组进行繁衍。产生新的族群
重复2,3,4步。
'''
import numpy as np

class GeneticAlgorithm:
    def __init__(self,target,populationsNum, DNALen,maxiter, passRate,keepRate, mutationRate,lb,ub):
        self.target = target
        self.populationsNum = populationsNum  # 种族数量 
        self.DNALen = DNALen  # 个体数值长度
        self.passRate = passRate # 淘汰比率
        self.keepRate = keepRate # 留存比率
        self.maxiter = maxiter  # 最大迭代次数 
        self.mutationRate = mutationRate  # 变异系数 
#         self.getMax = getMax
    def init_populations(self):  # 初始化族群函数 
        '''
        初始化族群
        '''
        populations = []  # 存储初始化种群 
        for i in range(self.DNALen): 
            populations.append(np.random.randint(lb[i],ub[i],self.populationsNum)) # 根据上下限生成个体 
        populations = np.array(populations).T  # 转为numpy格式 
        return populations  # 返回初始化族
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值