当前位置: 首页 > 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
  • 消息队列生产者投递的高可靠性与一致性保障方案
  • 从沙漠到都市:贝亲世界地球日特别行动,以桃叶冰爽力开启地球降温之旅
  • 上海又现昆虫新物种:体长仅1.5毫米,却是凶猛的捕食者
  • 大国重器飞天背后,有一位上海航天的“老法师”
  • 寻找“香奈儿”代工厂
  • 85岁眼科专家、武汉大学人民医院原眼科主任喻长泰逝世
  • 科普|一名肿瘤医生眼中的肺癌诊疗变化:从谈癌色变到与癌共存