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

多目标优化问题在适应度计算中的支配矩阵

function checkDomination(PopObj) {const N = PopObj.length;const M = PopObj[0].length;// 初始化支配矩阵,N*N 所有元素初始化为false// 这里from的第一个参数是一个类数组对象const dominate = Array.from({ length: N }, () => Array(N).fill(false));// 遍历所有两两不同的解对(i,j)i < jfor (let i = 0; i < N; i++) {for (let j = i + 1; j < N; j++) {let hasBetter = false;let hasWorse = false;// 遍历所有目标,判断i和j的优势for (let t = 0; t < M; t++) {const objI = PopObj[i][t];const objJ = PopObj[j][t];// 如果i在k上更优,标记hasBetter为trueif (objI < objJ) {hasBetter = true;}// 如果j在k上更优,标记hasWorse为trueelse if (objI > objJ) {hasWorse = true;}// 如果两个都为true,可提前退出循环,说明谁也不支配谁,两者有好有差if (hasBetter && hasWorse) {break;}const k = (hasBetter) ? 1 : 0 - (hasWorse ? 1 : 0);if (k === 1) {// i支配j:i至少有一个目标优于j,且无任何目标劣于j,即hasBetter为true,hasWorse为falsedominate[i][j] = true;}else if (k === -1) {// j支配i:j至少有一个目标优于i,且无任何目标劣于i,即hasBetter为false,hasWorse为truedominate[j][i] = true;}}}}return dominate;
}let PopObj = [[1,2,3],[4,5,6],[3,5,6],
];const dominate = checkDomination(PopObj);
console.log(dominate);

代码执行结果,即最后的支配矩阵

[[ false, true, true ],[ false, false, false ],[ false, true, false ]
]

http://www.dtcms.com/a/560881.html

相关文章:

  • 从零开始的云原生之旅(九):云原生的核心优势:自动弹性伸缩实战
  • 【Swift】LeetCode 240.搜索二维矩阵 II
  • 矩阵(板子)
  • 防火墙的内容补充
  • C++类和对象(下):初始化列表
  • 建筑工程找活网站wordpress文章新窗口
  • 沭阳城乡建设局网站做外国网站百度搜到
  • java-接口适配器模式 jsk8 接口默认实现
  • program.cs文件详解
  • 深圳市企业网站seo做东西的网站有那些
  • 京东测开面经整理(日常实习)
  • 大文件上传
  • 做ppt找图片网站推广网发布的信息准确吗
  • Linux内核POSIX文件锁机制深度解析
  • 从“CPU 烧开水“到优雅暂停:Go 里 sync.Cond 的正确打开方式
  • 大模型系列——Excel数据治理新思路:引入智能体实现自动纠错【Python+Agent】
  • Pyppeteer 使用教程
  • React性能优化:useMemo vs useCallback
  • Onsemi展示了垂直GaN-on-GaN半导体
  • 专业机票网站建设禅城区建设局网站
  • Java 日志演进:一文读懂主流框架
  • 第3章 变量与数据类型
  • pyside6 qt 事件循环
  • Secertpad搭建
  • 吞吐量、延迟、内存:深入理解垃圾回收的“三元悖论”
  • List接口和常用方法
  • 计算机一级考试网站怎么做用织梦系统做网站产权
  • Java 数据结构第二十八期:反射、枚举以及 lambda 表达式
  • Linux 磁盘分区与系统监控完全指南
  • 是普通网站地图好还是rss地图好一点网站建设申请费用