在Geatpy的官方文档中并没有多目标+多染色体进化算法的demo,在我实际写代码时也出现了一些问题。本篇博客补充一个调用moea_psy_NSGA2_templet的demo:

目标函数:

max f1 = x1 * x2 + x3
min f2 = x1 + x2 - x3s.t.
2*x1 + x2 - 1 <= 0
x1 + 2*x3 - 2 <= 0
x1 + x2 + x3 - 1 == 01 <= x1  <= 4
-10 <= x2 <= 1
0 < x3 < 2

Myproblem.py:

# -*- coding: utf-8 -*-
import numpy as np
import geatpy as ea"""max f1 = x1 * x2 + x3min f2 = x1 + x2 - x3s.t.2*x1 + x2 - 1 <= 0x1 + 2*x3 - 2 <= 0x1 + x2 + x3 - 1 == 01 <= x1  <= 4-10 <= x2 <= 10 < x3 < 2
"""class MyProblem(ea.Problem):  # 继承Problem父类def __init__(self):name = "MyProblem"M = 2  # f的数量maxormins = [-1, 1]  # (目标最小最大化标记列表,1:最小化该目标;-1:最大化该目标)Dim = 3  # x的个数# x的上下界与定义边界是开区间还是闭区间var_types = [0] * Dim  # 元素为0表示对应的变量是连续的;1表示是离散的lb = [1, -10, 0]  # 决策变量下界ub = [4, 1, 2]  # 决策变量上界lbin = [1, 1, 0]  # 决策变量下边界(0表示不包含该变量的下边界,1表示包含)ubin = [1, 1, 0]  # 决策变量上边界(0表示不包含该变量的上边界,1表示包含)ea.Problem.__init__(self, name, M, maxormins, Dim, var_types, lb, ub, lbin, ubin)def aimFunc(self, pop):  # 目标函数Vars = pop.Phen  # 得到决策变量矩阵x1 = Vars[:, [0]]x2 = Vars[:, [1]]x3 = Vars[:, [2]]# 目标函数:f1 = x1 * x2 + x3f2 = x1 + x2 - x3pop.ObjV = np.hstack([f1, f2])# 约束条件:(要全部化为 <= )c1 = 2 * x1 + x2 - 1c2 = x1 + 2 * x3 - 2  # 约束条件 <= 0c3 = np.abs(x1 + x2 + x3 - 1)  # 约束条件 = 0pop.CV = np.hstack([c1, c2, c3])

Main函数中:

注意Encoding与Field都要是数组的结构,否则报错

# -*- coding: utf-8 -*-
import numpy as np
import geatpy as ea  # import geatpy
from MyProblem import MyProblem  # 导入自定义问题接口if __name__ == '__main__':"""================================实例化问题对象==========================="""problem = MyProblem()  # 生成问题对象"""==================================种群设置==============================="""NIND = 50  # 种群规模Encoding = ['RI']Field = [ea.crtfld(Encoding[0], problem.varTypes, problem.ranges, problem.borders)]  # 创建区域描述器population = ea.PsyPopulation(Encoding, Field, NIND)  # 实例化种群对象(此时种群还没被初始化,仅仅是完成种群对象的实例化)"""================================算法参数设置============================="""myAlgorithm = ea.moea_psy_NSGA2_templet(problem, population)  # 实例化一个算法模板对象myAlgorithm.MAXGEN = 5  # 最大进化代数"""===========================调用算法模板进行种群进化======================="""ndset = myAlgorithm.run()ndset.save()print('用时:%s 秒' % (myAlgorithm.passTime))print('非支配个体数:%s 个' % (ndset.sizes))print('单位时间找到帕累托前沿点个数:%s 个' % (int(ndset.sizes // myAlgorithm.passTime)))

其他问题:

因为我是在deepin系统中编程,在使用Geapy框架时导出图像时会调用matplotlib,而常见的中文方块会出现,还会有“黑体”字体找不到报错,在代码中添加matplotlib的配置也会被覆盖,希望新版能修正这个问题。

Geatpy框架使用基于NSGA-II算法的多染色体多目标进化算法案例(moea_psy_NSGA2_templet)相关推荐

  1. platEMO里多目标进化算法对应的参考文献

    1.AGE-II M. Wagner and F. Neumann, A fast approximation-guided evolutionary multi-objective algorith ...

  2. 论文研读-基于决策变量分析的大规模多目标进化算法

    论文研读-基于决策变量分析的大规模多目标进化算法 Multiobjective Evolutionary Algorithm Based on Decision Variable Analyses f ...

  3. 动态多目标优化--基于决策变量分类的动态多目标进化算法 笔记

    阅读论文:A Dynamic Multiobjective Evolutionary Algorithm Based on Decision Variable Classification (Zhen ...

  4. 多目标优化算法_【实验室论文】基于多种群协同演化的约束多目标优化算法

    欢迎关注智能优化与学习实验室 在很多实际问题中,例如科学.工程设计等领域,衡量一个方案的好坏难以用一个指标来判断,需要用多个目标来刻画,且实际问题通常带有约束条件,这类问题被称为约束多目标优化问题,高 ...

  5. IGD+-EMOA:基于IGD+的多目标进化算法

    IGD±EMOA:基于IGD+的多目标进化算法 参考文献 <IGD±EMOA:A Multi-Objective Evolutionary Algorithm based on IGD+> ...

  6. 【IEEE CIM 2023】基于多目标进化算法的抗菌肽设计方法

    Evolutionary Multi Objective Optimization in Searching for Various Antimicrobial Peptides 小生境共享(Nich ...

  7. MaOEA-IBP:带有边界保护的基于指标的多目标进化算法

    MaOEA-IBP:带有边界保护的基于指标的多目标进化算法 参考文献 <An Indicator-Based Many-Objective Evolutionary Algorithm With ...

  8. 基于指标的约束多目标进化算法

    基于指标的约束多目标进化算法 [注:个人博客地址转移至:点此跳转] [注:个人博客地址转移至:点此跳转] [注:个人博客地址转移至:点此跳转] 参考文献 <Zhi-Zhong Liu , Yon ...

  9. 基于高通SNPE推理引擎的yolov5目标检测算法

    上图源自Snapdragon Neural Processing Engine SDK Reference Guide,它展示了一个Deep Learning Neural Network在SNPE环 ...

最新文章

  1. android命令行工具 混淆,Android 混淆代码学习以及Android加密工具--APKProtect的使用ZZ...
  2. 你还在为怎么查看字节码指令而担忧吗?
  3. 【译】码农生涯十六条不要
  4. Ext.menu.Menu菜单栏
  5. python——logging模块
  6. 应用系统怎么开启审计功能_win10系统开启分屏功能的设置方法
  7. Spark SQL读数据库时不支持某些数据类型的问题(Timestamp with local Timezone)
  8. memcached安装和php扩展memcache安装
  9. 最幸福的事就是吃饺子
  10. MSE和Cross-entropy梯度更新比较
  11. 阿里云数据库开源发布:PolarDB三节点高可用的功能特性和关键技术
  12. 为什么本地硬盘无法启动计算机,win10专业版系统本地磁盘打不开怎么办?
  13. 如何使用JavaScript获取客户端的IP地址?
  14. Python中新式类和经典类的区别,钻石继承
  15. IBM/ORACLE/EMC在银行业的重要性
  16. Php打印连续纸,针式打印机打印241*297MM连续纸时总按A4纸长度多走一部分白纸?
  17. pythonidle怎么设置_Python IDLE基本设置
  18. 诺基亚7plus支持html,【诺基亚7Plus评测】诺基亚7Plus评测:三蔡司镜头“全面”来袭(全文)_诺基亚 7 Plus(4GB RAM/全网通)_手机评测-中关村在线...
  19. 每台计算机的ip地址解析,ip地址是什么?【详解】
  20. User Browsing Model简介

热门文章

  1. Websocket服务器响应包,服务器websocket c++发送二进制类型包,客户端没有任何事件响应...
  2. mysql约束类型 A P_sql数据类型与约束总结
  3. python交换两个值原理_python 两数交换新写法原理
  4. Metal:对 iOS 中 GPU 编程的高度优化的框架
  5. Easy-mock让团队协作效率提高不止一点点
  6. Java并发编程之线程安全
  7. 政企联手打造智慧城市产业
  8. centos编译安装LNMP
  9. 利用DEDE正则批量查找替换数据库的自定义内容
  10. C++11 Lambda表达汇总总结