增强精英保留策略的遗传算法SEGA
import geatpy as ea
import numpy as np# 构建问题
r = 1 # 目标函数需要用到的额外数据
@ea.Problem.single
def evalVars(Vars): # 定义目标函数(含约束)f = np.sum((Vars - r) ** 2) # 计算目标函数值x1 = Vars[0]x2 = Vars[1]CV = np.array([(x1 - 0.5)**2 - 0.25,(x2 - 1)**2 - 1]) # 约束return f, CVproblem = ea.Problem(name='增强精英保留策略的遗传算法',M=1, # 目标维数maxormins=[1], # 目标最小最大化标记列表,1:最小化该目标;-1:最大化该目标Dim=5, # 决策变量维数(个数为5)varTypes=[0, 0, 1, 1, 1], # 决策变量的类型列表,0:实数;1:整数。0表示对应的决策变量是连续型变量;为1表示对应的是离散型变量。lb=[-1, 1, 2, 1, 0], # 决策变量下界ub=[1, 4, 5, 2, 1], # 决策变量上界evalVars=evalVars)
# 构建算法
algorithm = ea.soea_SEGA_templet(problem,# Encoding='RI实整数编,NIND=20设定了种群有20个个体。ea.Population(Encoding='RI', NIND=20),MAXGEN=50, # 最大进化代数。logTras=1, # 表示每隔多少代记录一次日志信息,0表示不记录。trappedValue=1e-6, # 单目标优化陷入停滞的判断阈值。maxTrappedCount=10) # 进化停滞计数器最大上限值。
# 求解
res = ea.optimize(algorithm, seed=1, verbose=True, drawing=1, outputMsg=True, drawLog=False, saveFlag=True, dirName='result')
- 上述代码中 Encoding=‘RI’ 表示改种群的染色体是’RI’编码,即“实数整数混合编码”,简称“实整数编码”。类似的还有’P’编码(排列编码,可以让对应的变量互不相同)、'BG’编码(二进制/格雷码编码)。
这段代码使用了Geatpy库来构建一个遗传算法,并应用于一个特定的优化问题。下面是代码的解释:
首先,使用Geatpy库中的
@ea.Problem.single
装饰器定义了一个目标函数evalVars
,该函数接受一个决策变量向量作为输入,并计算目标函数值和约束条件的值。在这个例子中,目标函数是将决策变量与参数r
进行计算,并将结果的平方和作为目标函数值。同时,还定义了两个约束条件CV
,用于限制决策变量的取值范围。然后,通过
ea.Problem
类创建了一个问题实例problem
,其中指定了问题的名称、目标维数、最小最大化标记、决策变量维数、决策变量类型、决策变量的上下界以及目标函数的计算方式。接下来,使用
ea.soea_SEGA_templet
函数构建了一个增强精英保留策略的遗传算法实例algorithm
。该算法采用了RI编码方式(实整数编码),种群规模为20个个体。设定了最大进化代数为50,表示算法将进行50代的进化。同时,还设置了日志记录的频率为每隔一代记录一次日志信息。通过设置trappedValue
和maxTrappedCount
参数,指定了单目标优化陷入停滞的判断阈值和进化停滞计数器的最大上限值。最后,通过调用
ea.optimize
函数,使用前面构建的算法实例对问题进行求解。seed=1
设置了随机种子,verbose=True
和outputMsg=True
表示开启详细的输出信息和输出消息。drawing=1
表示开启绘图功能,drawLog=False
表示不保存绘图日志。saveFlag=True
表示保存结果,结果将保存在名为'result'的目录中。
增强精英保留策略的遗传算法SEGA相关推荐
- 单目标遗传算法 精英保留策略
该文章引自: https://www.cnblogs.com/devilmaycry812839668/p/6445762.html http://www.cnhup.com/index.php/ar ...
- 基于精英保留策略选择和轮盘赌选择的遗传优化matlab仿真
目录 1.算法概述 2.仿真效果 3.MATLAB仿真源码 1.算法概述 首先要了解遗传算法的一些基本概念: 基因型(genotype):性状染色体的内部表现: 表现型(phenotype):染色体决 ...
- nsga2多目标优化之核心知识点(快速非支配排序、拥挤距离、精英选择策略)详解(python实现)
文章目录 一.多目标优化算法简介 1.基本知识 二.NSGA2算法 1.基本原理 2.快速非支配排序 2.1快速非支配排序 python实现 3.拥挤距离 3.1 拥挤距离python 实现 4.精英 ...
- Exchange日常管理之二十二:配置保留策略
文章出自http://www.exchangecn.com/exchange2010/20150619_3266.html 说到exchange 2010的保留策略,就不能不提到邮件记录管理MRM,e ...
- 5,6,7_InfluxDB数据保留策略,InfluxDB的关键概念,带有时区进行查询示例
5.InfluxDB学习之InfluxDB数据保留策略(Retention Policies) 5.1.InfluxDB数据保留策略说明 5.2.InfluxDB数据保留策略目的 5.3.Influx ...
- RMAN 的备份保留策略
RMAN 的备份保留策略: 命令格式: configure retention policy clear ---------------备份保留策略使用默认值 configure retention ...
- Influxdb修改数据保留策略
2019独角兽企业重金招聘Python工程师标准>>> 背景 Influxdb默认的数据保留策略的duration是0s,即长期保留.如果业务上无需长期保留,可以修改数据保留策略. ...
- Microsoft Teams的保留策略
Microsoft Teams保留策略现在可在Office 365安全性和合规性中心里进行配置 今天,我们很自豪地宣布,我们正在开始推出针对Microsoft Teams的保留策略. 推出预计将在未来 ...
- InfluxDB学习之InfluxDB数据保留策略(Retention Policies)
InfluxDB每秒可以处理成千上万条数据,要将这些数据全部保存下来会占用大量的存储空间,有时我们可能并不需要将所有历史数据进行存储,因此,InfluxDB推出了数据保留策略(Retention Po ...
最新文章
- Realm_King 之 .NET操作XML完整类
- 用于语义分割的特征共享协作网络
- STM32关于BOOT0和BOOT1设置,去掉Debug后完成硬件独立运行。
- Apache httpd Server 配置正向代理
- 一文深入浅出cv中的Attention机制
- Python安装(Windows下安装/Linux下安装)
- Spring 事务core 模块-RowMapper
- Java 8的惰性序列实现
- 数据结构--散列表 Hash Table
- android app应用后台休眠,安卓手机锁屏后程序自动关闭,怎么设置手机app允许锁屏后台运行...
- Cyclone IV E系列介绍
- WeNet语音识别实战
- 网桥 网卡网桥有什么区别
- 欧拉回路专题 POJ - 1637网络流+混合图的欧拉回路
- 软件定义边界(SDP)简介
- 戴尔发布XPS笔记本等新品;虎牙全面采用亚马逊云科技专用数据库服务 | 全球TMT...
- 我的世界梦之边缘5服务器在维护吗,我的世界梦之边缘V 第一个包含动漫CG剧情的RPG服务器...
- 数据库基本术语DDL,DML, DCL
- PWM占空比,频率,周期之间关系
- 转载:Docker从入门到上瘾