当前位置: 首页 > 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-75

相关文章:

  • 表格RAG技术实战指南
  • 如何使用 DeepSeek 帮助自己的工作?
  • 【c语言】深入理解指针3——回调函数
  • 2025年03月中国电子学会青少年软件编程(Python)等级考试试卷(三级)真题
  • 非比较排序——计数排序
  • GitHub创建远程仓库
  • 【Win】 cmd 执行curl命令时,输出 ‘命令管道位置 1 的 cmdlet Invoke-WebRequest 请为以下参数提供值: Uri: ’ ?
  • 力扣刷题Day 20:柱状图中最大的矩形(84)
  • 万物对接大模型:【爆火】MCP原理与使用指南
  • 广东水利水电安全员 B 证考试精选题
  • AutoSAR从概念到实践系列之MCAL篇(一)——MCAL架构及其模块详解
  • http请求和websocket区别和使用场景
  • o3和o4-mini的升级有哪些亮点?
  • 纯CSS实现自动滚动到底部
  • C++ 二叉搜索树
  • 安装多个DevEco Studio版本,如何才能保证各个版本不冲突?
  • 「仓颉编程语言」Demo
  • 网络互连与互联网3
  • 从零到精通:用 GoFrame 和 go-resty 优雅调用第三方 HTTP API
  • 消息队列生产者投递的高可靠性与一致性保障方案
  • 韩正出席庆祝中国欧盟建交50周年招待会并致辞
  • 娱见 | 为了撕番而脱粉,内娱粉丝为何如此在乎番位
  • 原四川省农村信用社联合社党委副书记、监事长杨家卷被查
  • 山大齐鲁医院回应论文现“男性确诊子宫肌瘤”:给予该护士记过处分、降级处理
  • 印度扩大对巴措施:封锁巴基斯坦名人账号、热门影像平台
  • 市值增22倍,巴菲特30年重仓股盘点