一、初始化

        不同于NSGA-II,MOEA/D在进行迭代之前需要先进行初始化,初始化的主要内容是计算个体向量权重之间的欧氏距离,并得出其邻域集合

# 计算T个邻居
def cpt_W_Bi_T(moead):# 设置的邻居个数错误(自己不能是自己的邻居)if moead.T_size < 1:return -1# 计算权重的T_size 个邻居for bi in range(moead.W.shape[0]):Bi = moead.W[bi]# 计算欧氏距离DIS = np.sum((moead.W - Bi) ** 2, axis=1)# 根据欧氏距离排序B_T = np.argsort(DIS)# 选取T_size+1个邻居,+1是因为自己永远是和自己欧氏距离最小的B_T = B_T[1:moead.T_size + 1]# 添加到集合moead.W_Bi_T.append(B_T)

        除了计算邻域,还需要使用目标函数计算种群的适应度,如下:

def Creat_Pop(moead):# 创建moead.Pop_size个种群Pop = []Pop_FV = []# 合法性检查if moead.Pop_size < 1:print('error in creat_Pop')return -1# 构建集合while len(Pop) != moead.Pop_size:X = Creat_child(moead)                # 创建一个个体Pop.append(X)                         # 将这个个体放入集合Pop_FV.append(moead.Test_fun.Func(X)) # 使用目标函数计算适应度moead.Pop, moead.Pop_FV = Pop, Pop_FV     # 初始化主函数容器return Pop, Pop_FV

二、迭代

         在循环迭代中,对于个体pi的迭代主要分为三步:获取邻居生成新解更新种群。其具体流程如下面伪代码所示:

for pi in range(0,len(moead.Pop))    # 遍历集合Bi = moead.W_Bi_T[pi]            # 加载pi号个体的邻居集# 随机抽取两个邻居个体ik = Bi[np.random.randint(moead.T_size)]il = Bi[np.random.randint(moead.T_size)]# 获取x,xl,xk三个个体的值(目标个体本身和随机抽取的两个邻居)Xi = moead.Pop[pi]Xk = moead.Pop[ik]xl = moead.Pop[il]# 使用上述三个个体生成新的解Y = generate_next(moead, gen, pi, Xi, Xk, Xl)cbxf_i = MOEAD_Utils.cpt_tchbycheff(moead, pi, Xi)    # 计算进化前的切比雪夫距离cbxf_y = MOEAD_Utils.cpt_tchbycheff(moead, pi, Y)     # 计算进化后的切比雪夫距离# 若进化后切比雪夫距离缩小就更新,否则保持原状if cbxf_y < cbxf_i:F_Y = moead.Test_Fun.Func(Y)[:]                   # 计算进化后个体的适应度MOEAD_Utils.update_EP_By_ID(moead, pi, F_Y)       # 更新pi号个体的值为YMOEAD_Utils.update_Z(moead, Y)                    # 更新理想点if abs(cbxf_y - cbxf_i) > d:                      # 进化幅度大于阈值MOEAD_Utils.update_EP_By_Y(moead, pi)         # 更新支配前沿MOEAD_Utils.update_BTX(moead, Bi, Y)                  # 更新邻域

三、效果展示

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/news/914750.shtml
繁体地址,请注明出处:http://hk.pswp.cn/news/914750.shtml
英文地址,请注明出处:http://en.pswp.cn/news/914750.shtml

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Java设计模式之-组合模式

什么是组合模式&#xff1f; 组合模式允许你将对象组合成树形结构来表示"部分-整体"的层次结构。它让客户端能够以统一的方式处理单个对象和对象组合。 简单来说&#xff0c;就像公司的组织结构&#xff1a; 公司有部门部门有小组小组有员工但无论是对公司、部门还是…

2021-10-29 C++与反转数的和

缘由输入一个三位数 与它倒过来的数相加&#xff0c;输出和-编程语言-CSDN问答 直接写 int n0,nn0,nnn0; cin>>n;nnn; while(nn)nnn*10,nnnnn%10,nn/10; cout<<nnnn<<endl; 缘由https://ask.csdn.net/questions/7552128 int 反转数(int n) { int nn 0…

论安全架构设计(威胁与措施)

安全架构威胁与措施摘要2021年4月&#xff0c;我有幸参与了某保险公司的“优车险”项目的建设开发工作&#xff0c;该系统以车险报价、车险投保和报案理赔为核心功能&#xff0c;同时实现了年检代办、道路救援、一键挪车等增值服务功能。在本项目中&#xff0c;我被安排担任架构…

022_提示缓存与性能优化

提示缓存与性能优化 目录 缓存技术概述缓存工作原理实现方法详解成本优化策略性能优化实践高级应用场景最佳实践指南 缓存技术概述 什么是提示缓存 提示缓存是Claude API的一项优化功能&#xff0c;允许缓存提示的特定部分以便重复使用&#xff0c;从而显著减少处理时间和…

【AI交叉】地理:人工智能如何推动地理科学的智能转型?

随着人工智能&#xff08;AI&#xff09;技术的快速发展&#xff0c;越来越多的传统学科开始与之融合&#xff0c;催生出一系列跨学科的新研究方向和应用场景。地理科学作为研究地球表层自然与人文现象的综合性学科&#xff0c;也在这一浪潮中迎来转型契机。 AI与地理学的交叉正…

iOS高级开发工程师面试——关于网络

iOS高级开发工程师面试——关于网络 一、谈谈对 HTTP、HTTPS 的理解1. HTTP协议:2. HTTPS 协议二、TCP、UDP 和 SocketTCPUDPTCP 和 UDP 的区别?Socket一、谈谈对 HTTP、HTTPS 的理解 1. HTTP协议: 超文本传输协议,他是基于TCP应用层协议。 是无连接 无状态 的,需要通过…

跟着Nature正刊学作图:回归曲线+散点图

&#x1f4cb;文章目录复现目标图片绘图前期准备绘制左侧回归线图绘制右侧散点图组合拼图 (关键步骤&#xff01;)跟着「Nature」正刊学作图&#xff0c;今天挑战复现Nature文章中的一张组合图–左边为 回归曲线、右边为 散点图。这种组合图在展示相关性和分组效应时非常清晰有…

LVS集群调度器

目录 集群和分布式 LVS运行原理 LVS概念 LVS的集群类型 实验配置 安装LVS ipvsadm命令参数 1.管理集群服务中的增删改 2.管理集群服务中的RS增删改 3.lvs调度策略的备份与恢复 4.lvs调度策略的开机启动 LVS-NAT模式 LVS-DR模式 集群和分布式 集群&#xff08;Clu…

【React Natve】NetworkError 和 TouchableOpacity 组件

NetworkError公共组件 import SimpleLineIcons from "expo/vector-icons/SimpleLineIcons"; import { StyleSheet, Text, View } from "react-native";export default function NetworkError() {return (<View style{styles.container}><SimpleL…

Linux 驱动中 Timer / Tasklet / Workqueue 的作用与对比

Linux 驱动中 Timer / Tasklet / Workqueue 的作用与对比 &#x1f9e9; 1. 使用场景概览&#xff08;对比表&#xff09;机制执行上下文是否可睡眠使用场景常用接口Timer中断上下文❌ 不可睡眠延迟执行&#xff08;如防抖、超时处理&#xff09;add_timer() 等Tasklet软中断上…

JavaScript中关于proxy的作用以及和Object.defineProperty的区别

之前写了一篇介绍 Object.defineProperty的&#xff0c;提到proxy&#xff0c;二者有一些共性&#xff0c;也都是前端框架Vue的核心机制&#xff0c;所以再写一篇介绍一下proxy的基础原理和使用。 在 JavaScript 中&#xff0c;Proxy 是 ES6 引入的一个元编程特性&#xff0c;用…

HTTP性能优化实战技术

HTTP性能优化实战技术文章大纲 理解HTTP性能优化的核心指标 关键指标&#xff1a;延迟、吞吐量、TTFB&#xff08;Time To First Byte&#xff09;、页面加载时间影响性能的因素&#xff1a;网络延迟、服务器响应时间、资源大小、协议效率 减少HTTP请求数量 合并资源文件&#…

ubuntu(22.04)系统上安装 MuJoCo

在 Linux 系统上安装 MuJoCo 的完整步骤如下&#xff1a; ​​1. 下载 MuJoCo​​ 访问 MuJoCo 官方 GitHub下载最新 Linux 版本&#xff08;如 mujoco-3.3.4-linux-x86_64.tar.gz&#xff09;获取对应的 SHA256 校验值&#xff08;在发布页面可以找到,&#xff0c;文件名后面…

理解大模型的对话和检索能力

RAG和联网搜索均通过“检索生成”模式扩展模型能力&#xff0c;但RAG基于内部知识库&#xff08;如企业文档&#xff09;&#xff0c;适合专业领域问答&#xff1b;联网搜索实时检索互联网&#xff0c;解决时效性问题&#xff08;如新闻、股价&#xff09;。RAG响应快且可控&am…

跟着Carl学算法--回溯【2】

IP复原&#xff08;难&#xff09; 力扣链接&#xff1a;IP复原 题目&#xff1a;有效 IP 地址 正好由四个整数&#xff08;每个整数位于 0 到 255 之间组成&#xff0c;且不能含有前导 0&#xff09;&#xff0c;整数之间用 . 分隔。 例如&#xff1a;"0.1.2.201"…

PyTorch生成式人工智能(17)——变分自编码器详解与实现

PyTorch生成式人工智能(17)——变分自编码器详解与实现 0. 前言1. 潜空间运算2. 变分自编码器2.1 自编码器与变分自编码器对比2.2 模型训练流程3. 构建变分自编码器3.1 模型构建3.2 模型训练3.3 生成图像4. 向量运算小结系列链接0. 前言 虽然自编码器 (AutoEncoder, AE) 在重…

SpringMVC2

一、接口声明的稳定性- 接口声明不能轻易变&#xff1a;接口是前后端、服务间通信的约定。要是接口的 URL、请求方法、参数、返回值变了&#xff0c;调用方&#xff08;比如前端、其他服务&#xff09;就得跟着改&#xff0c;容易出问题。所以设计接口要谨慎&#xff0c;别老变…

LVS集群实践

一、LVS概念VS: Virtual Sever &#xff08;调度器&#xff09;RS: Real Sever &#xff08;资源主机&#xff09;CIP: Client IP &#xff08;用户IP&#xff09;VIP: Virtual sever IP &#xff08;VS外网的IP&#xff0c;客户访问的IP&#xff09;DIP: Director IP &#xf…

使用Django框架构建Python Web应用

前言Django个高级Python Web框架&#xff0c;遵循MTV&#xff08;Model-Template-View&#xff09;设计模式&#xff1a;模型(Model)&#xff1a;数据层&#xff0c;定义数据结构模板(Template)&#xff1a;表现层&#xff0c;处理用户界面视图(View)&#xff1a;业务逻辑层&am…

[AI-video] 数据模型与架构 | LLM集成

第五章&#xff1a;数据模型与架构 欢迎来到第五章&#xff01; 在前几章中&#xff0c;我们学习了网页用户界面&#xff08;UI&#xff09;&#xff08;控制面板&#xff09;、应用配置&#xff08;系统参数设置&#xff09;、任务编排&#xff08;视频生成流程的总调度&…