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

【多目标进化算法】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
http://www.xdnf.cn/news/129.html

相关文章:

  • 【C++】 —— 笔试刷题day_19
  • Web3架构下的数据隐私与保护
  • 【数据结构_10】二叉树(2)
  • HarmonyOS:1.4 - HarmonyOS应用程序框架基础
  • Python(21)Python日期时间完全指南:从基础到实战注意事项
  • QT 文件和文件夹操作
  • 基于SpringBoot成绩管理系统设计与实现(源码+文档+部署讲解)
  • SAP系统中MD01与MD02区别
  • 如何使用Python进行自动化的系统管理?
  • 《软件设计师》复习笔记(14.2)——统一建模语言UML、事务关系图
  • TCL 亮相北京 InfoComm China 2025,引领商显智能化变革浪潮
  • AI数据分析与BI可视化结合:解锁企业决策新境界
  • Java 高并发核心:线程池使用详解 + 自定义参数配置全剖析(附源码+面试解析)
  • 基于ubuntu24.10安装NACOS2.5.1的简介
  • PHP腾讯云人脸核身获取Access Token
  • 【ESP32-IDF笔记】06-触摸传感IO配置
  • day1-小白学习JAVA(mac版)---(jdk安装和环境变量配置)
  • 《软件设计师》复习笔记(14.3)——设计模式
  • Java ThreadLocal内存泄漏分析
  • Docker Image export and load and tag
  • 所见即所得的前端 AI 工具 Readdy.ai
  • ubantu18.04(Hadoop3.1.3)之MapReduce编程
  • 算法-堆+单调栈
  • Python爬虫第16节-动态渲染页面抓取之Selenium使用上篇
  • 文件包含(详解)
  • 力扣每日打卡 2176. 统计数组中相等且可以被整除的数对(简单)
  • 基于 React 和 CodeMirror 实现自定义占位符编辑器
  • java 设计模式之模板方法模式
  • OpenVINO怎么用
  • 树莓派超全系列教程文档--(32)config.txt常用音频配置