代理辅助多任务优化算法(Matlab代码实现)

news2025/2/4 4:48:17

  

💥💥💞💞欢迎来到本博客❤️❤️💥💥

🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。

⛳️座右铭:行百里者,半于九十。

📋📋📋本文目录如下:🎁🎁🎁

目录

💥1 概述

📚2 运行结果

🌈3 Matlab代码实现

🎉4 参考文献


💥1 概述

进化算法(EA)已被应用,具有解决广泛应用的强大能力,但它一次可以解决一个问题。为了提高效率,进化计算领域的一种新兴研究范式,提出了进化多任务(EMT)。EMT同时解决多个优化任务。EMT的有效性是通过任务间知识转移来改进每个任务的解决方案。多因素进化算法(MFEAs)是第一种解决多任务优化问题的算法。然而,它往往受到负面知识转移问题的影响。为了解决这个问题并提高MFEA的性能,我们建议构建一个代理模型,作为在MFEA中同时优化的辅助任务和目标任务。根据所提方法,代理模型是每个对应目标任务的相关任务,以增强任务间的积极知识转移。此外,代理模型可以减少局部最优的数量,并且结构简单。在基准和真实水库洪水发电问题上进行了实验,以检验所提算法的性能。对几个广泛使用的测试问题的比较实验表明,代理模型作为辅助任务可以显着提高MFEA的性能。

📚2 运行结果

 

部分代码:

% UBA=32.728;
% LBA=-32.728;
% A_x=[-32.728:0.1:32.728];
% A_z=-20*exp(-0.2*sqrt((1/1)*(A_x.^2)))-exp((1/1)*(cos(2*pi.*A_x)))+exp(1)+20;                %原函数
% A_x=sort(A_x);
% hold on;
% plot(A_x,A_z,'r-','linewidth',2);
 %Sphere函数
UBS=100;
LBS=-100;
S_x=[-100:100];
S_z=S_x.^2;                %原函数
S_x=sort(S_x);
hold on;
plot(S_x,S_z,'r-','linewidth',1.5);

% %Rosenbrock
% UBS=10;
% LBS=-5;
% r_x=-5:0.1:10;
% r_z=100*r_x.^4+(r_x-1).^2;              %原函数
% r_x=sort(r_x);
% hold on;
% plot(r_x,r_z,'r-','linewidth',1.5);

UBR=5.12;
LBR=-5.12;
%  R_x=[-5.12:0.05:5.12];
% R_z=10+(R_x)'.^2-10*cos(2*pi.*(R_x)')+(R_x)'.^2;              %原函数
x=rand(205,1);
x=sort(x);
R_x=LBR+x*(UBR-LBR);
R_z=10+(R_x)'.^2-10*cos(2*pi.*(R_x)')+(R_x)'.^2;              %原函数
% x=sort(x);
figure
plot(x,R_z,'b-','linewidth',1.5,'MarkerIndices',1:5:length(R_z));
xlabel('x');
ylabel('y');
axis([0 1 0 70]);

result1_SAMTO(1,:)=85*44-mean(SAMTO_new(1).Toall_BestFitss(2:4:20,2:21));
result1_SAMTO(2,:)=85*145-mean(SAMTO_new(1).Toall_BestFitss(4:4:20,2:21));

result2_SAMTO(1,:)=85*44-SAMTO_new(2).Toall_BestFitss(1,:);
result2_SAMTO(2,:)=85*97-SAMTO_new(2).Toall_BestFitss(2,:);

result3_SAMTO(1,:)=85*97-SAMTO_new(3).Toall_BestFitss(1,:);
result3_SAMTO(2,:)=85*145-SAMTO_new(3).Toall_BestFitss(2,:);

% ST2T1_2=[global_precent,local_precent(:,1801:3000)];
% save 'ST2T1_2.mat' 'ST2T1_2';

st1t1=mean(ST1T1_2);   %Rastrigin function positive transfer to Griewank
ST1T1=[];
for i=1:150:3000
    ST1T1=[ST1T1,mean(st1t1(i:i+149))];
end
plot(ST1T1,'o-','color',[0.8547,0.33,0.10],...
    'linewidth',2,'MarkerSize',6,'MarkerIndices',1:2:length(ST1T1));
hold on

st1t2=mean(ST1T2_2);  %Greiwank function positive transfer to Griewank
ST1T2=[];
for i=1:150:3000
    ST1T2=[ST1T2,mean(st1t2(i:i+149))];
end
plot(ST1T2,'*-g','linewidth',2,'MarkerSize',6,'MarkerIndices',1:2:length(ST1T2));
hold on

st2t1=mean(ST2T1_2);
ST2T1=[];
for i=1:150:3000
    ST2T1=[ST2T1,mean(st2t1(i:i+149))];
end
plot(ST2T1,'c->','linewidth',2,'MarkerSize',6,'MarkerIndices',1:2:length(ST2T1));
hold on

st2t2=mean(ST2T2_2);
ST2T2=[];
for i=1:150:3000
   ST2T2=[ST2T2,mean(st2t2(i:i+149))];
end
plot(ST2T2,'m-<','linewidth',2,'MarkerSize',6,'MarkerIndices',1:2:length(ST2T2));
hold on

t1t2=mean(T1T2_2);
T1T2=[];
for i=1:150:3000
    T1T2=[T1T2,mean(t1t2(i:i+149))];
end
plot(T1T2,'b-s','linewidth',2,'MarkerSize',6,'MarkerIndices',1:2:length(ST2T2));
hold on

title('Ankang Reservoir 2003 & 2000');
xlabel('Number of Function Evaluations');
ylabel('Average Positive transfer probability');
legend('The surrogate of T1 positive transfer to T1',...
       'The surrogate of T1 positive transfer to T2',...
       'The surrogate of T2 positive transfer to T1',...
       'The surrogate of T2 positive transfer to T2',...
       'T1 positive transfer to T2');
   
%  set(gca,'xticklabel',{'0','4500','9000','13500','18000','22500','27000',...
%      '31500','36000','40500','45000','49500','54000','58500','63000',...
%      '67500','72000','76500','81000','85500','90000'});
 set(gca,'xticklabel',{'0','9000','18000','27000','36000','45000','54000','63000','72000','81000','90000'});

🌈3 Matlab代码实现

🎉4 参考文献

部分理论来源于网络,如有侵权请联系删除。

[1]Shangqi Yang, Yutao Qi, Rui Yang, Xiaoliang Ma, Haibin Zhang (2022) Surrogate assist Multitasking optimization Algorithm

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

SpringBoot集成海康网络设备SDK

目录 SDK介绍 概述功能下载对接指南集成 初始化项目初始化SDK 初始化SDK概述新建AppRunner新建SdkInitService新建InitSdkTask新建 HCNetSDK调用业务接口部署 拷贝so库文件到部署目录追加环境变量追加so库加载路径验证SDK初始化是否成功代码 SDK介绍 概述 设备网络SDK是基于…

企业数据怎样管理才能蜕变为可变现的资产?

企业竞争的本质&#xff0c;是在不确定市场环境下资源配置效率的竞争。 如何快速感知市场变化、识别客户需求、增强决策准确性&#xff0c;是企业资源配置的核心关注点和竞争点。 数据作为企业资源的具体表现形式和载体&#xff0c;已经渗透到企业设计、生产、管理、服务和运…

Qt开发5--Qt5中菜单和工具栏

在这部分Qt5 C编程教程中&#xff0c;讨论Qt5应用程序中菜单和工具栏。 一个菜单栏是一个GUI程序的常见部分。它是位于称为菜单的各种位置中的命令组。工具栏提供了对最常用命令的快速访问。 1) Qt5简单菜单 第一个例子展示显示一个简单菜单。以下是源代码&#xff0c;我们有…

【算法 -- LeetCode】(021) 合并两个有序链表

1、题目 将两个升序链表合并为一个新的 升序 链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。 示例 1&#xff1a; 输入&#xff1a;l1 [1,2,4], l2 [1,3,4] 输出&#xff1a;[1,1,2,3,4,4] 示例 2&#xff1a; 输入&#xff1a;l1 [], l2 [] 输出&#…

【并发编程】深入理解并发工具类CountDownLatch

文章目录 前言一、初识 CountDownLatch二、CountDownLatch 的核心方法三、CountDownLatch 的应用场景应用场景一&#xff1a;等待多个线程任务执行完成应用场景二&#xff1a;等待外部资源初始化应用场景三&#xff1a;控制线程执行顺序 四、CountDownLatch 的源码分析核心方法…

mysql表主键自增过大问题

问题及项目环境 问题 最近在做项目时&#xff0c;发现我创建的每一个表的主键设置自增&#xff0c;在插入数据数据时会出现自增值过大的问题。 问题展示: 在后端执行Basemapper中的insert()方法时&#xff0c;数据库中的主键id字段为下: 且我在对应的实体类的设置为下: 我们…

mysql四种隔离级别以及原理

事务4大特性&#xff1a; 原子性&#xff1a; undolog日志来保证&#xff0c; 记录了要回滚的日志信息&#xff0c; 事务回滚时撤销已经执行的sql. 一致性&#xff1a;由其它3大特性来保证。 隔离性: MVCC来保证&#xff0c; 多版本并发控制。 持久性&#xff1a;由redolog来保…

flask路由、模板、请求与响应、闪现以及请求扩展

一、函数加装饰器的执行顺序 flask的路由基于装饰器---->在视图函数上再加装饰器---->加多个装饰器的执行顺序---->登录认证装饰器---->加载router下,先做路由匹配,匹配成功执行被auth包裹的视图函数 二、路由系统 flask的路由是基于装饰器的---->但是它的…

APB/AHB/AXI总线介绍和理解

APB/AHB/AXI总线介绍&#xff1a; APB/AHB/AXI均属于AMBA (Advanced Microcontroller Bus Architecture)&#xff0c;常用于SoC设计中&#xff0c;全称叫作高级微控制器总线架构&#xff0c;它是由ARM公司研发推出的高性能片上总线协议。 AMBA 1.0还包含ASB和APB&#xff08;A…

MP4格式视频怎么转mov格式?好用的视频格式转换方法分享

MOV格式是苹果公司的专有格式&#xff0c;因此在苹果设备上播放MOV格式的视频时&#xff0c;兼容性更好&#xff0c;因此可以实现更高质量的视频。如果我们需要高质量的视频输出&#xff0c;将MP4转换为MOV格式可能是个好选择。那么怎么进行转换呢&#xff1f;给大家分享几种简…

Linux环境下,Nginx+Naocs远程访问碰到的若干问题

一、配置背景 该项目来源于尚硅谷SpringCloud进阶课程&#xff0c;在linux环境下配置一个注册中心组。 二、碰到的问题 问题主要是远程访问Nginx显示无法连接的问题&#xff0c;接下来是排查方案&#xff1a; 1. 防火墙问题 这里需要确保双方电脑能ping通之后确保端口也能…

k210获取机器码

准备工作&#xff1a; kflash_gui&#xff08;下载固件到开发板&#xff09; key_gen_v1.2&#xff08;需要将其下载至开发板&#xff09; 1.kflash_gui 下载地址&#xff1a;Releases sipeed/kflash_gui GitHub 2. key_gen_v1.2下载地址&#xff1a;下载站 - Sipeed 3.…

Java经典面试解析:服务器卡顿、CPU飙升、接口负载剧增

01 线上服务器CPU飙升&#xff0c;如何定位到Java代码 解决这个问题的关键是要找到Java代码的位置。下面分享一下排查思路&#xff0c;以CentOS为例&#xff0c;总结为4步。 第1步&#xff0c;使用top命令找到占用CPU高的进程。 第2步&#xff0c;使用ps –mp命令找到进程下…

Three.js——十三、自定义大小画布、UI交互按钮以及3D场景交互、渲染画布为文件(图片)

画布全屏以及自定义大小画布 <!-- canvas元素默认是行内块元素 --> <divclass"model"style"background-color: #ff0000;"width"300"height"180" ></div>画布随窗口变化 // 画布跟随窗口变化 window.onresize fun…

cmake的一个测试demo

目录 一、ubuntu中安装cmake二、单个源文件main.cCMakeLists.txt的编写 三、多个源文件main.ctest1.ctest1.hCMakeLists.txt的编写 一、ubuntu中安装cmake sudo apt-get install cmake查看cmake的版本号 cmake --version二、单个源文件 main.c #include<stdio.h>int …

【微信小程序-uniapp】CustomButton 自定义常用吸底按钮组件

1. 效果图 2. 组件完整代码 <template><view:class="[custom-btn flex-center, size == big ? big : mid, type == primary ? primary : info, plain ? plain : , disabled ? disabled : , round ? round : ]"

苹果笔买原装的还是随便买?ipad触控笔推荐

当像iPad这样的平板电脑功能变得越来越强&#xff0c;能够承载的功能也会越来越多&#xff0c;并且会越来越多地渗透到我们的日常生活和工作中。随着电子设备的更新和软件的不断完善&#xff0c;电容笔的性能也在不断的提升&#xff0c;因此如何挑选一款相对好用的电容笔&#…

【Kafka】Ubuntu 部署kafka中间件,实现Django生产和消费

原文作者&#xff1a;我辈李想 版权声明&#xff1a;文章原创&#xff0c;转载时请务必加上原文超链接、作者信息和本声明。 文章目录 前言一、Kafka安装1.下载并安装Java2.下载和解压 Kafka3.配置 Kafka4.启动 Kafka5.创建主题和生产者/消费者6.发布和订阅消息 二、KafkaDjang…

AIS报文解析

!AIVDM,1,1,A,13u?etPv2;0n:dDPwUM1U1Cb069D,023* 我们知道消息内容就是13u?etPv2;0n:dDPwUM1U1Cb069D&#xff0c;这是一串ASCII码字符串&#xff0c;我们可以获取其对应的ASCII码数值。 但是在AIS的编码表不需要这么多符号&#xff0c;所以截取了其中一部分&#xff0c;如…

良心推荐!5款支持Linux系统的国产软件,兼容国产操作系统

虽然市面上大多数用户使用的是Windows操作系统&#xff0c;但也有不少使用Linux系统的用户&#xff0c;特别是国产操作系统的崛起&#xff0c;让Linux系统阵营的用户越来越多。Linux不像Windows那样&#xff0c;有着完整的生态环境丰富的软件应用&#xff0c;但也逐渐在完善中&…