该案例展示了一个需要混合编码种群来进化的最大化目标的单目标优化问题。
模型:
max f = sin(2x1) - cos(x2) + 2x3^2 -3x4 + (x5-3)^2 + 7x6
s.t.
-1.5 <= x1,x2 <= 2.5,
1 <= x3,x4,x5,x6 <= 7,且x3,x4,x5,x6为互不相等的整数。
分析:
该问题可以单纯用实整数编码'RI'来实现,但由于有一个”x3,x4,x5,x6互不相等“的约束,
因此把x3,x4,x5,x6用排列编码'P',x1和x2采用实整数编码'RI'来求解会更好。
MyProblem是问题类,本质上是不需要管具体使用什么编码的,因此混合编码的设置在执行脚本main.py中进行而不是在此处。
# -*- coding: utf-8 -*-
import numpy as np
import geatpy as ea"""
该案例展示了一个需要混合编码种群来进化的最大化目标的单目标优化问题。
模型:
max f = sin(2x1) - cos(x2) + 2x3^2 -3x4 + (x5-3)^2 + 7x6
s.t.
-1.5 <= x1,x2 <= 2.5,
1 <= x3,x4,x5,x6 <= 7,且x3,x4,x5,x6为互不相等的整数。
分析:
该问题可以单纯用实整数编码'RI'来实现,但由于有一个”x3,x4,x5,x6互不相等“的约束,
因此把x3,x4,x5,x6用排列编码'P',x1和x2采用实整数编码'RI'来求解会更好。
MyProblem是问题类,本质上是不需要管具体使用什么编码的,因此混合编码的设置在执行脚本main.py中进行而不是在此处。
"""class MyProblem(ea.Problem): # 继承Problem父类def __init__(self):name = 'MyProblem' # 初始化name(函数名称,可以随意设置)M = 1 # 初始化M(目标维数)maxormins = [-1] # 初始化maxormins(目标最小最大化标记列表,1:最小化该目标;-1:最大化该目标)Dim = 6 # 初始化Dim(决策变量维数)varTypes = [0,0,1,1,1,1] # 初始化varTypes(决策变量的类型,元素为0表示对应的变量是连续的;1表示是离散的)lb = [-1.5,-1.5,1,1,1,1] # 决策变量下界ub = [2.5,2.5,7,7,7,7] # 决策变量上界lbin = [1] * Dim # 决策变量下边界(0表示不包含该变量的下边界,1表示包含)ubin = [1] * Dim # 决策变量上边界(0表示不包含该变量的上边界,1表示包含)# 调用父类构造方法完成实例化ea.Problem.__init__(self, name, M, maxormins, Dim, varTypes, lb, ub, lbin, ubin)def aimFunc(self, pop): # 目标函数X = pop.Phen # 得到决策变量矩阵x1 = X[:, [0]]x2 = X[:, [1]]x3 = X[:, [2]]x4 = X[:, [3]]x5 = X[:, [4]]x6 = X[:, [5]]pop.ObjV = np.sin(2*x1) - np.cos(x2) + 2*x3**2 -3*x4 + (x5-3)**2 + 7*x6 # 计算目标函数值,赋值给pop种群对象的ObjV属性

源代码

混合编码种群来进化的最大化目标的单目标优化问题相关推荐

  1. python目标函数最大_python运筹优化(三):遗传算法和Geatpy使用实践

    这个专栏以工具实践为主,因此我们先讲进化算法工具包geatpy的使用. 关于遗传算法的推导原理我们举一个最简单的袋鼠爬山的例子,然后看遗传算法从头到尾怎么"编码-计算适应度-选择淘汰-基因交 ...

  2. Python遗传算法工具箱的使用(一)求解带约束的单目标优化

    加了个小目录~方便定位查看~ 前言 正文 一. 基础术语: 二. 遗传算法基本算子: 三.完整实现遗传算法: 四.后记: 前言 网上有很多博客讲解遗传算法,但是大都只是"点到即止" ...

  3. 阅读Book: MultiObjective using Evolutionary Algorithms (1) --prologue 单目标和多目标的不同

    1. 日常购买车we为例子, 假设用户在舒适度和花费进行权衡. 各种pin'品牌的车的花费与舒适度的曲线如下:. 自己觉得: 或许在我们的shen生活中就是不存在最完美的,就是一种鞋子要穿到自己的脚上 ...

  4. 目标跟踪介绍(单目标)

    Abstract 视觉跟踪技术是计算机视觉领域(人工智能分支)的一个重要课题,有着重要的研究意义:且在军事制导.视频监控.机器人视觉导航.人机交互.以及医疗诊断等许多方面有着广泛的应用前景.随着研究人 ...

  5. 2018-4-17论文《狼群算法的研究与应用》笔记2 :高维复杂单目标连续优化问题的改进狼群算法

    高维复杂单目标函数优化问题之所以难的原因: (1)维度的增加,搜索空间的呈现指数级的增加,即使在算法的种群规模确定的情况下,优质可行解的比例也是相对比较小的吧,从而使得获得有直接的概率减小(自己是这样 ...

  6. 差分进化算法_特邀嘉宾 | 科普差分进化算法(创新奇智运筹优化算法工程师朱小龙博士)...

    文案:段克邪 排版:随心390 hello,大家好.各位可点击此处,访问公众号官方店铺.谨防上当受骗,感谢各位支持! 今天我们有幸请到创新奇智运筹优化算法工程师朱小龙博士为大家科普差分进化算法,本次推 ...

  7. 单目标优化、多目标优化

    1.优化问题三要素: 决策变量.目标函数.约束 2.单.多目标优化的关系: 多目标优化问题的各个子目标之间是矛盾的 ,一个子目标的改善有可能会引起另一个或者另几个子目标的性能降低 , 也就是要同时使多 ...

  8. 计算智能课程设计(遗传算法求解无约束单目标优化问题)

    写在前面 前天写完了基于传递闭包的模糊聚类,今天准备写"遗传算法求解无约束单目标优化问题".昨天和npy玩了一下午,去齐白石艺术学院看了画展,一起在最高处看了夕阳,并在落日前接吻. ...

  9. 单目标跟踪CVPR 2018 ECO+

    FROM https://blog.csdn.net/weixin_40245131/article/details/79754531 目标跟踪的相关滤波方向,Martin Danelljan 4月底 ...

最新文章

  1. 开发日记-20190915 关键词 汇编语言王爽版 第十章
  2. android 导入so库
  3. CI框架源码阅读笔记4 引导文件CodeIgniter.php
  4. 微服务与Spring-Cloud的关系(区别)
  5. 浅谈GSM/GPRS模块软硬件设计(基于有方M660+模块和单片机)
  6. sendMessage 与 obtainMessage (sendToTarget)比较
  7. C++ stack
  8. 美检方或起诉刘强东;百度对呛微信规则;澳洲调查 Facebook | 极客头条
  9. Delphi - 注入的方式来禁止任务管理器
  10. 关于RestTemplate的小笔记
  11. TypeScript1---数据类型和函数
  12. html实现点击图片放大功能
  13. 3、tiny yolov2 训练
  14. python如何调整图片大小_Python实现图片尺寸缩放脚本
  15. 普元云计算-AI杂谈:从洗衣机到老鼠屁股
  16. 基于PHP+Mysql全品类在线购物商城设计
  17. 寻找我心中的产品经理
  18. 一阶常微分方程(一)| 存在与唯一性定理 + 变量分离 + 齐次方程
  19. 一文读懂时序预测模型(1)
  20. Log4j2 zero day(CVE-2021-44228) 漏洞浅析

热门文章

  1. 藏在正则表达式里的陷阱
  2. 从语句 char* p=test 说起
  3. 那些年追过的......写过的技术博客
  4. JVM结构、内存分配、垃圾回收算法、垃圾收集器。
  5. digitalocean如何还原出厂设置
  6. 4行代码搞定iframe高度自动变化,完美兼容(转)
  7. 设计模式总结篇系列:原型模式(Prototype)
  8. 使用cxf开发webservice应用时抛出异常
  9. FeResPost 4.1.8 发布
  10. android 读取json数据(遍历JSONObject和JSONArray)