当前位置: 首页 > news >正文

【多目标进化算法】NSGA-II 算法(结合例子)

目录

一、NSGA-II 是干什么的?

二、通过一个简单例子来解释

例子:挑选手机

三、NSGA-II 解决步骤

1. 初始化种群

2. 非支配排序(Fast Non-dominated Sorting)

3. 拥挤度距离(Crowding Distance)

4. 选择 + 交叉 + 变异

5. 合并种群、排序、更新

四、最后结果(Pareto前沿)

五、Python 简易实现


一、NSGA-II 是干什么的?

NSGA-II 是一种求解多目标优化问题的算法,比如你在做决策时,不止一个目标要优化(例如:又要快,又要省钱)。

这时候,你无法只优化一个目标,而是希望得到一组折中解,也叫Pareto最优解集,即这些解在任何目标上都没有其他解“全面更好”。

二、通过一个简单例子来解释

例子:挑选手机

你现在要买手机,希望它满足两个目标:

  • 目标1:价格越低越好(目标函数 f1)

  • 目标2:性能越高越好(目标函数 f2)

但现实中,价格低的手机性能往往不高,性能高的手机价格可能也贵。所以这是一个典型的多目标问题

三、NSGA-II 解决步骤

1. 初始化种群

假设初始随机生成 6 款手机(即个体),每个有不同的价格和性能:

手机价格(元)性能(分)f1=价格f2=-性能(我们希望最小化)
A2000802000-80
B2500902500-90
C1800701800-70
D3000953000-95
E1700601700-60
F2100752100

http://www.mrgr.cn/news/98970.html

相关文章:

  • 2048小游戏C++板来啦!
  • MATLAB 控制系统设计与仿真 - 36
  • 论文阅读:2023 ICLR Safe RLHF: Safe Reinforcement Learning from Human Feedback
  • C++智能指针的知识!
  • 阿里云服务器搭建开源版禅道
  • Web三漏洞学习(其三:rce漏洞)
  • java线程池原理及使用和处理流程
  • 算法-链表
  • 基于autoware1.14的实车部署激光雷达循迹,从建图、定位、录制轨迹巡航点、到实车运行。
  • Anconda环境下修改Jupyter notebook的启动路径(Windows)
  • 原型模式详解及在自动驾驶场景代码示例(c++代码实现)
  • Function Calling的时序图(含示例)
  • Windows 11设置开机自动运行 .jar 文件
  • 前端服务器部署报错记录
  • 从 Transformer 到文本生成 (From Transformer to Text Generation)
  • 3、排序算法1---按考研大纲做的
  • Model Context Protocol (MCP) 开放协议对医疗多模态数据整合的分析路径【附代码】
  • 【失败】Gnome将默认终端设置为 Kitty
  • 【从零实现高并发内存池】申请、释放内存过程联调测试 与 大于256KB内存申请全攻略
  • 2D物体检测学习