动态多目标进化算法:VARE(Vector Autoregressive Evolution)求解DF1-DF14,提供完整MATLAB代码

一、VARE简介

VARE(Vector Autoregressive Evolution)算法是2023年提出的一种新型的动态多目标优化(DMO)算法,旨在有效处理随时间变化的多目标优化问题。它通过结合向量自回归(VAR)模型和环境感知超变异(EAH)策略,动态适应环境变化,预测新的 Pareto 最优解,并保持种群多样性。VARE 的主要贡献在于提出了一个能够考虑决策变量之间相互关系的 VAR 模型用于种群预测,并引入 EAH 策略来动态调整种群多样性。

(1)向量自回归(VAR)模型

VAR 模型是一种用于预测相互联系的时间序列系统的统计模型。在 VARE 算法中,VAR 模型用于预测新环境中的解,考虑了决策变量之间的相互关系。VAR 模型的数学形式如下:

x t = α + β 1 x t − 1 + β 2 x t − 2 + ⋯ + β l x t − l + µ x_t = α + β_1x_{t-1} + β_2x_{t-2} + \cdots + β_lx_{t-l} + µ xt=α+β1xt1+β2xt2++βlxtl+µ

其中:

  • x t x_t xt是一个 n 维内生变量向量,表示当前时刻的决策变量。
  • α α α 是一个 n 维常数向量。
  • β 1 , β 2 , … , β l β_1, β_2, \ldots, β_l β1,β2,,βl是模型的系数矩阵,表示不同滞后阶数对当前值的影响。
  • l l l 是滞后阶数,表示模型考虑的过去时间步数。
  • µ µ µ是一个零均值白噪声向量,表示模型的误差项。

在 VARE 中,为了处理高维决策变量带来的参数稀疏问题,使用主成分分析(PCA)进行降维。首先将历史解数据映射到低维空间,然后在低维空间中构建 VAR 模型,最后将预测结果映射回原始决策空间。

(2)环境感知超变异(EAH)策略

EAH 策略用于动态调整种群多样性,以应对环境变化。EAH 根据目标空间和决策空间的变化估计环境变化的严重程度,并据此调整超变异的分布指数。具体计算如下:

客观空间变化度量

在目标空间,EAH 计算所有目标的相对差异平均值 (∆F):

∆ F = 1 M N ∑ i = 1 N ∑ j = 1 M ∣ f j ( x i , t + 1 ) − f j ( x i , t ) f j ( x i , t ) + ε ∣ ∆F = \frac{1}{MN} \sum_{i=1}^N \sum_{j=1}^M \left| \frac{f_j(x_i, t+1) - f_j(x_i, t)}{f_j(x_i, t) + ε} \right| F=MN1i=1Nj=1M fj(xi,t)+εfj(xi,t+1)fj(xi,t)

其中:

  • M M M 是目标数量。
  • N N N是种群大小。
  • f j ( x i , t ) f_j(x_i, t) fj(xi,t)是个体 x i x_i xi在时间 t t t的第 j j j个目标值。
  • ε ε ε是一个小常数,用于防止除以零。
决策空间变化度量

在决策空间,EAH 计算每个个体的相对决策差异平均值 (∆X):

∆ X = 1 N n ∑ i = 1 N ∑ j = 1 n ∣ x ^ i , j − x i , j x i , j + ε ∣ ∆X = \frac{1}{Nn} \sum_{i=1}^N \sum_{j=1}^n \left| \frac{\hat{x}_{i,j} - x_{i,j}}{x_{i,j} + ε} \right| X=Nn1i=1Nj=1n xi,j+εx^i,jxi,j

其中:

  • n n n是决策变量的数量。
  • x i , j x_{i,j} xi,j是个体 x i x_i xi在时间 t t t 的第 j j j个决策变量值。
  • x ^ i , j \hat{x}_{i,j} x^i,j是个体 x i x_i xi 在时间 t + 1 t+1 t+1 的第 j j j 个决策变量值。
分布指数调整

根据 ∆ F ∆F F ∆ X ∆X X计算超变异的分布指数 η η η

η = 20 × max ⁡ ( e − ( ∆ F + ∆ X ) , 0.1 ) η = 20 \times \max(e^{-(∆F + ∆X)}, 0.1) η=20×max(e(F+X),0.1)

该公式将 η η η 的取值范围限制在 [2, 20],其中 η = 20 η = 20 η=20 表示没有环境变化,而 η ≥ 2 η ≥ 2 η2则确保超变异的解不会过于随机。

(3)自适应变化响应机制

VARE 算法通过自适应变化响应机制,在 VAR 预测和 EAH 之间进行选择。选择机制基于过去环境变化中不同策略的成功率。具体来说,为每个参考方向 λ i λ_i λi 定义选择 VAR 预测的概率 π i π_i πi

π i = ρ i , p ρ i , p + ρ i , m π_i = \frac{ρ_{i,p}}{ρ_{i,p} + ρ_{i,m}} πi=ρi,p+ρi,mρi,p

其中:

  • ρ i , s ρ_{i,s} ρi,s是策略 s s s(可以是 VAR 预测或 EAH)在过去 L L L个环境变化中生成的个体被保留下来的比率。
  • L L L 是过去环境变化的数量,通常设置为等于 VAR 模型的滞后阶数 l l l

(4)算法流程

  1. 初始化:生成均匀分布的参考方向,初始化种群和 VARE 概率向量。
  2. 环境变化检测:在每一代开始时检测环境是否发生变化。
  3. 响应环境变化
    • 如果检测到环境变化,将当前种群存档,并根据 VARE 概率决定使用 VAR 预测还是 EAH 生成新个体。
    • 若未检测到环境变化,则通过遗传操作生成新种群。
  4. 多样性中心排序:对当前种群和新生成的个体进行多样性中心排序,更新种群。
  5. 更新 VARE 概率:根据个体保留的成功率更新 VARE 概率。
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

(5)关键创新点

  1. 向量自回归(VAR)模型:用于考虑决策变量之间的相互关系,预测新环境中的解。通过主成分分析(PCA)进行降维,提高模型参数估计效率。
  2. 环境感知超变异(EAH):根据目标空间和决策空间的变化估计环境变化的严重程度,动态调整超变异的分布指数,增加种群多样性。
  3. 自适应变化响应机制:根据过去环境变化中不同策略的成功率,自适应选择 VAR 预测或 EAH 作为响应机制。

(6)参考文献

[1] Jiang S , Wang Y , Hu Y ,et al. Vector Autoregressive Evolution for Dynamic Multi-Objective Optimisation[J]. ArXiv, 2023, abs/2305.12752.DOI:10.48550/arXiv.2305.12752.

二、VARE求解DF1-DF14

(1)CEC2018 动态多目标测试函数介绍

CEC2018 竞赛定义了 14 个动态多目标测试函数(DF1-DF14),分为两类:
在这里插入图片描述

  1. 双目标问题(DF1-DF9):这些函数具有两个目标,用于测试算法在动态环境下的性能。
  2. 三目标问题(DF10-DF14):这些函数具有三个目标,增加了优化的复杂性。

这些测试函数设计了不同的动态特性,以评估动态多目标优化算法的性能。动态特性包括:

  • 目标位置变化:Pareto 最优前沿(PF)或 Pareto 最优解集(PS)的位置随时间变化。
  • 约束条件变化:动态约束条件的引入或变化。
  • 目标数量或决策变量数量变化:在某些测试函数中,目标数量或决策变量数量可能随时间变化。
测试函数目标数量动态特性
DF12PF 的位置随时间线性移动
DF22PF 的位置随时间非线性移动
DF32PF 的位置和形状随时间变化
DF42PF 的位置和形状随时间剧烈变化
DF52PF 的凸性随时间变化
DF62PF 的凹性随时间变化,并引入局部最优解
DF72PF 的不同部分以不同方向和速度移动
DF82PF 的不同部分以不同方向和速度移动,且存在多个膝点
DF92PF 断裂成多个部分
DF103PF 的位置随时间移动
DF113PF 的位置和形状随时间变化
DF123PF 的位置和形状随时间剧烈变化
DF133PF 的凸性随时间变化
DF143PF 的凹性随时间变化,并引入局部最优解

(2)部分MATLAB代码

%% 计算POF
for i=1:size(ArchiveResult{1,1}{1,1},1)/(10*nt*taut)k1=1+(i-1)*(10*nt*taut);k2=k1+nt*taut;if prob_ids<110data=ArchiveResult{1,1}{1,1}(k1:k2,end-1:end);elsedata=ArchiveResult{1,1}{1,1}(k1:k2,end-2:end);endresult(i).data=data;%     plot(data(:,1)+i,data(:,2)+i,'ro')%     hold on
end
%% 计算TurePOF
prob=problem(prob_ids);
k=1;
for t=0:1:100/taut-1PF(k).data=generatePF(prob,t);PF(k).t=t;k=k+1;
end%% 画图
figure
Fm=size(PF,2);
Tm=size(PF(1).data,2);
if Tm<3for t=1:Fmplot(result(t).data(:,1)+PF(t).t,result(t).data(:,2)+PF(t).t,'ro');hold onplot(PF(t).data(:,1)+PF(t).t,PF(t).data(:,2)+PF(t).t,'g.');endxlabel('f1+t')ylabel('f2+t')
elsefor t=1:Fmplot3(result(t).data(:,1)+PF(t).t,result(t).data(:,2)+PF(t).t,result(t).data(:,3)+PF(t).t,'ro');hold onplot3(PF(t).data(:,1)+PF(t).t,PF(t).data(:,2)+PF(t).t,PF(t).data(:,3)+PF(t).t,'g.');endxlabel('f1+t')ylabel('f2+t')zlabel('f3+t')
end
title(prob.name)

(3)部分结果

DF1:

在这里插入图片描述

DF4:

在这里插入图片描述

DF10:

在这里插入图片描述

三、完整MATLAB见下方名片

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

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

相关文章

【JavaEE】-- HTTPS

文章目录 1. HTTPS是什么&#xff1f;2. 加密是什么&#xff1f;2.1 引入对称加密&#xff08;效率高&#xff09;2.2 引入非对称加密&#xff08;效率低&#xff09;2.3 引入证书2.3.1 数据签名2.3.2 通过证书解决中间人攻击 1. HTTPS是什么&#xff1f; HTTP也是一个应用层协…

撰写脚本,通过发布/joint_states话题改变机器人在Rviz中的关节角度

撰写脚本&#xff0c;通过发布/joint_states话题改变机器人在Rviz中的关节角度 提问 为我写一个改变关节base_spherical_center_high_joint角度的python脚本吧。适用于ROS2的humble 回答 下面是一个适用于 ROS 2 Humble 的 Python 脚本&#xff0c;它会以指定频率持续发布 …

Redis : Hash类型

哈希类型 哈希类型的命令 hset 设置key指定的字段&#xff08;field&#xff09;的值&#xff08;value&#xff09; 也可以设置多组field和value hget 获得哈希中指定字段的值 如果该字段为空或者key为空则返回nil hexists 判断哈希中是否有该字段的值 如果有则会返回1…

【Chipyard】 conda 环境安装与使用

一、Conda 安装&#xff08;以 Miniconda 为例&#xff09; Conda 是一个强大的环境管理工具&#xff0c;可用于创建、隔离和管理不同的 Python/R 环境。以下是在 Ubuntu 上安装和使用的完整流程&#xff1a; 1. 下载 Miniconda 安装包 bash # 下载最新版 Miniconda3&#…

【愚公系列】《生产线数字化设计与仿真》009-颜色分类站仿真(设置颜色分类站的仿真序列)

&#x1f31f;【技术大咖愚公搬代码&#xff1a;全栈专家的成长之路&#xff0c;你关注的宝藏博主在这里&#xff01;】&#x1f31f; &#x1f4e3;开发者圈持续输出高质量干货的"愚公精神"践行者——全网百万开发者都在追更的顶级技术博主&#xff01; &#x1f…

ios 26官宣:car play升级提升车载体验

苹果公司正式官宣推出ios 26&#xff0c;该版本为ios 18的后续版本。此次软件更新在命名上焕然一新&#xff0c;设计层面更是实现了全面革新。其中&#xff0c;car play界面迎来全新升级&#xff0c;同时还新增了car play ultra功能。借助这一功能&#xff0c;用户不仅能够使用…

Mac 上使用 mysql -u root -p 命令,出现“zsh: command not found: mysql“?如何解决

一、确定 MySQL 安装路径&#xff1a; 如果你是使用 Homebrew 安装的 MySQL&#xff0c;通常安装路径是 /usr/local/mysql/bin 如果你是通过官方 DMG 安装包安装的 MySQL&#xff0c;默认安装路径可能是 /usr/local/mysql/bin 你可以在终端中使用以下命令来查找 MySQL 的安装…

微软PowerBI考试 PL300-使用适用于 Power BI 的 Copilot 创建交互式报表

微软PowerBI考试 PL300-使用适用于 Power BI 的 Copilot 创建交互式报表 Microsoft Power BI 可帮助您通过交互式报表准备数据并对数据进行可视化。 如果您是 Power BI 的新用户&#xff0c;可能很难知道从哪里开始&#xff0c;并且创建报表可能很耗时。 通过适用于 Power BI …

Android11三网共存

一、优先级基本知识介绍 Android6.0之后系统中优先级设置都是根据Score分值来设置优先级&#xff0c;分值0-100&#xff0c;数值越高&#xff0c;越优先。 SIM卡网络 50 wifi网络 60 有线网络 70手机网络设置都有自己的Factory设置类&#xff0c;都继承自NetworkFactory.j…

【散刷】二叉树基础OJ题(三)

&#x1f4dd;前言说明&#xff1a; 本专栏主要记录本人的基础算法学习以及刷题记录&#xff0c;使用语言为C。 每道题我会给出LeetCode上的题号&#xff08;如果有题号&#xff09;&#xff0c;题目&#xff0c;以及最后通过的代码。没有题号的题目大多来自牛客网。对于题目的…

什么是数据交换?有哪些数据交换方式?

目录 一、数据交换是什么 二、数据交换面临的挑战 1. 数据格式差异 2. 数据标准不统一 3. 安全与隐私问题 4. 网络与性能问题 三、常见的数据交换方式 1. 文件交换 2. 数据库直连 3. 中间件交换 4. API接口交换 四、数据交换的发展趋势 1. 实时性要求提高 2. 标准…

C#winform画图代码记录

using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms;namespace 坐标变换 {public partial class Fo…

python打卡day50

import torch import torch.nn as nn import torch.optim as optim from torchvision import datasets, transforms from torch.utils.data import DataLoader import matplotlib.pyplot as plt import numpy as np# 定义通道注意力 class ChannelAttention(nn.Module):def __i…

Go语言多线程问题

打印零与奇偶数&#xff08;leetcode 1116&#xff09; 方法1&#xff1a;使用互斥锁和条件变量 package mainimport ("fmt""sync" )type ZeroEvenOdd struct {n intzeroMutex sync.MutexevenMutex sync.MutexoddMutex sync.Mutexcurrent int…

ateⅹⅰt()的用法

在C/C++中, atexit() 函数用于注册程序退出时需要调用的函数,即使程序通过 main() 函数返回、 exit() 函数退出或异常终止,这些注册的函数也会被执行。以下是其详细用法: 1. 函数原型与头文件 #include <cstdlib> // C++中需包含此头文件 int atexit(void (*functio…

【大模型】 使用llama.cpp 进行模型转换和量化

目录 1 相关知识 ■llama.cpp ■GGUF 格式 ■量化 2 详细步骤 克隆 llama.cpp 仓库 安装依赖 配置 CMake 构建 构建项目 验证安装 转换 safetensors 为 FP16 GGUF 量化模型 (Q4_K_M) 测试量化模型 1 相关知识 ■llama.cpp llama.cpp是一个开源的 C/C++ 库,旨…

大数据学习(133)-Hive数据分析2

​​​​&#x1f34b;&#x1f34b;大数据学习&#x1f34b;&#x1f34b; &#x1f525;系列专栏&#xff1a; &#x1f451;哲学语录: 用力所能及&#xff0c;改变世界。 &#x1f496;如果觉得博主的文章还不错的话&#xff0c;请点赞&#x1f44d;收藏⭐️留言&#x1f4…

IDEA 连接 Docker 一键打镜像

首先&#xff0c;检查 IDEA 是否安装了 Docker 插件&#xff1a; 版本比较新的 IDEA 默认都安装了这个插件&#xff0c;如果没有安装&#xff0c;安装一下。 确保我们虚拟机上安装了 Docker 和 Docker-compose&#xff0c;并启动了 Docker。 找到 IDEA 下方的 Services tab 栏…

第六讲——一元函数微分学的应用之中值定理、微分等式与微分不等式

文章目录 连续函数性质定理定理1 有界与最值定理定理2 介值定理定理3 平均值定理定理4 零点定理定理5 费马定理导数介值定理(达布定理) 中值定理罗尔定理拉格朗日中值定理柯西中值定理泰勒公式 讨论方程的根问题——微分等式证明不等式问题使用函数的性质(单调性、凹凸性、最值…

2025.06.11【Ribo-seq】|用CPAT预测sORF序列的编码潜能

文章目录 前言一、准备工作1. 安装CPAT2. 下载物种特异性模型 二、准备sORF核酸序列1. 获取sORF的拼接核酸序列示例脚本&#xff08;假设已获得外显子fasta&#xff09;&#xff1a; 三、运行CPAT预测编码潜能1. 准备CPAT模型和hexamer表2. 运行CPAT 四、结果解读五、常见问题与…