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

CEC2015:动态多目标野狗优化算法求解CEC2015(提供完整MATLAB代码,含GD、IGD、HV和SP评价指标)

一、动态多目标优化问题简介

现实世界中,许多优化问题不仅具有多属性,而且与时间相关,即随着时间的变化,优化问题本身也发生改变,这类问题称为动态多目标优化问题(dynamic multi-objective optimization problems,DMOP)。DMOP是一类目标之间相互冲突,目标函数、约束函数和相关参数等可能随着时间的变化而改变的多目标优化问题。不失一般性,以最小化多目标问题为研究对象,一个具有n个决策变量,m个目标函数的DMOP可以描述为:
{min⁡x∈Ω(x,t)=(f1(x,t),f2(x,t),⋯,fm(x,t))Ts⋅t⋅gi(x,t)⩽0(i=1,2,⋯,p)hj(x,t)=0(j=1,2,⋯,q)\left\{\begin{array}{l} \min _{x \in \Omega}(\boldsymbol{x}, t)=\left(f_{1}(\boldsymbol{x}, t), f_{2}(\boldsymbol{x}, t), \cdots, f_{m}(\boldsymbol{x}, t)\right)^{T} \\ s \cdot t \cdot g_{i}(\boldsymbol{x}, t) \leqslant 0(i=1,2, \cdots, p) \\ h_{j}(\boldsymbol{x}, t)=0(j=1,2, \cdots, q) \end{array}\right.minxΩ(x,t)=(f1(x,t),f2(x,t),,fm(x,t))Tstgi(x,t)0(i=1,2,,p)hj(x,t)=0(j=1,2,,q)
其中,t为时间变量,x=(x1,x1,⋯,xn)∈Ω为n维决策变量,F=(f1,f2,⋯,,fm)为m维目标向量,gi⩽0(i=1,2,⋯,p)为p个不等式约束,hj=0(j=0,1,⋯,q)为q个等式约束。其中, t 为时间变量, \\x=\left(x_{1}, x_{1}, \cdots, x_{n}\right) \in \Omega 为 n 维决策变量, \\\boldsymbol{F}=\left(f_{1}, f_{2}, \cdots,\right. , \left.f_{m}\right) 为 m 维目标向量, \\ g_{i} \leqslant 0(i=1,2, \cdots, p) 为 p 个不等式约束,\\ h_{j}=0(j=0 , 1, \cdots, q) 为 q 个等式约束。,t,x=(x1,x1,,xn)Ωn,F=(f1,f2,,,fm)m,gi0(i=1,2,,p)p,hj=0(j=0,1,,q)q

二、CEC2015测试函数

cec2015共包含12个测试函数,分别是FDA4、FDA5、FDA5_iso、FDA5_dec、DIMP2、dMOP2、dMOP2_iso、dMOP2_dec、dMOP3、 HE2、HE7和HE9。其中前四个测试函数目标数为3,其余目标数为2。
在这里插入图片描述

2.1 FDA4

CEC2015动态多目标测试函数之FDA4,不同参数下PF随时间变化动图
在这里插入图片描述

2.2 FDA5

CEC2015动态多目标测试函数之FDA5,不同参数下PF随时间变化动图
在这里插入图片描述

2.3 FDA5_iso

CEC2015动态多目标测试函数之FDA5_iso,不同参数下PF随时间变化动图
在这里插入图片描述

2.4 FDA5_dec

CEC2015动态多目标测试函数之FDA5_dec,不同参数下PF随时间变化动图
在这里插入图片描述在这里插入图片描述

2.5 DIMP2

CEC2015动态多目标测试函数之DIMP2,不同参数下PF随时间变化动图

在这里插入图片描述

2.6 dMOP2

CEC2015动态多目标测试函数之dMOP2,不同参数下PF随时间变化动图
在这里插入图片描述

2.7 dMOP2_iso

CEC2015动态多目标测试函数dMOP2_iso,不同参数下PF随时间变化动图
在这里插入图片描述

2.8 dMOP2_dec

CEC2015动态多目标测试函数dMOP2_dec,不同参数下PF随时间变化动图
在这里插入图片描述

2.9 dMOP3

CEC2015动态多目标测试函数之dMOP3,不同参数下PF随时间变化动图
在这里插入图片描述在这里插入图片描述

2.10 HE2

CEC2015动态多目标测试函数之HE2,不同参数下PF随时间变化动图
在这里插入图片描述

2.11 HE7

CEC2015动态多目标测试函数之HE7,不同参数下PF随时间变化动图
在这里插入图片描述
在这里插入图片描述

2.12 HE9

CEC2015动态多目标测试函数之HE9,不同参数下PF随时间变化动图
在这里插入图片描述

参考文献:
[1]M Helbig, AP Engelbrecht. Benchmark Functions for CEC 2015 Special Session and Competition on Dynamic Multi-objective Optimization.
[2] Hernán Peraza-Vázquez, Adrián F. Peña-Delgado, Gustavo Echavarría-Castillo, et al. A Bio-Inspired Method for Engineering Design Optimization Inspired by Dingoes Hunting Strategies[J]. Mathematical Problems in Engineering, vol. 2021, Article ID 9107547, 19 pages, 2021.

三、动态多目标野狗优化算法

多目标野狗优化算法( Multi-objective Dingo Optimization Algorithm,MODOA)
动态多目标野狗优化算法(Dynamic Multi-objective Dingo Optimization Algorithm,DMODOA)在MODOA基础上加入环境变化检测及种群重启机制,以应对动态环境下多目标问题的求解。

四、DMODOA求解CEC2015

4.1 8种不同参数设置

CEC2015中每个测试函数的环境变化程度ntn_{t}nt、环境变化频率τt{\tau}_{t}τt 和最大迭代次数τT{\tau}_{T}τT考虑如下8种情形:
在这里插入图片描述

4.2 评价指标

4.2.1 世代距离(Generational Distance,GD)

GD通过度量算法所获得的Pareto前沿与真实 Pareto前沿之间的距离来评价算法的收敛 性,GD 的表达式如下:
GDt(PFt,PFt∗)=∑v∈PFtd(v,PFt∗)∣PFt∣G D_{t}\left(P F_{t}, P F_{t}^{*}\right)=\frac{\sum_{v \in P F_{t}} d\left(v, P F_{t}^{*}\right)}{\left|P F_{t}\right|}GDt(PFt,PFt)=PFtvPFtd(v,PFt)
式中,PFt∗P F_{t}^{*}PFt是t时刻的标准Pareto前沿,PFtP F_{t}PFt 是t时刻算法所获得的Pareto前沿,d(v,PFtP F_{t}PFt )是PFtP F_{t}PFt 上的个体v与PFt∗P F_{t}^{*}PFt中距离v最近的个体之间欧式距离.可以看出,GD的评价方法是对于算法所获得的Pareto前沿PFtP F_{t}PFt 中每个个体,在标准Pareto前沿PFt∗P F_{t}^{*}PFt中找到与它距离最近的个体并计算他们之间的欧式距离,之后将所有欧式距离求和相加再取平均值,因此GD值可以评价PFtP F_{t}PFtPFt∗P F_{t}^{*}PFt之间的接近程度,GD值越小说明算法收敛性越好。

4.2.2 反世代距离 (Inverted Generational Distance,IGD)

IGD通过度量真实Pareto前沿与算法所获得的Pareto前沿之间的接近程度来评价算法的收敛性和多样性,IGD指标定义如下:
IGDt(PFt∗,PFt)=∑v∈PFt∗d(v,PFt)∣PFt∗∣I G D_{t}\left(P F_{t}^{*}, P F_{t}\right)=\frac{\sum_{v \in P F_{t}^{*}} d\left(v, P F_{t}\right)}{\left|P F_{t}^{*}\right|}IGDt(PFt,PFt)=PFtvPFtd(v,PFt)
式中,PFt∗P F_{t}^{*}PFt是t时刻的标准Pareto前沿,PFtP F_{t}PFt 是t时刻算法所获得的Pareto前沿,d(v,PFtP F_{t}PFt )是PFtP F_{t}PFt 上的个体v与PFt∗P F_{t}^{*}PFt中距离v最近的个体之间欧式距离。可以看出,IGD的评价方法是对于标准Pareto前沿PFt∗P F_{t}^{*}PFt中每个个体在算法所获得的Pareto前沿PFtP F_{t}PFt 中找到与它距离最近的点并计算它们之间的欧式距离,之后将所有欧式距离求和相加再取平均值,因此IGD不仅可以评价PFt∗P F_{t}^{*}PFtPFtP F_{t}PFt之间的接近程度,还可以评价PFt中个体的分布性,IGD值越小说明算法所得到的Pareto前沿收敛性越好,分布越均匀。

4.2.3 超体积(Hypervolume,HV)

HV衡量算法所获得的PS在目标空间所覆盖的范围大小,该指标可以同时衡量收敛性和多样性,计算公式如下:
HVt=volume⁡(⋃i=1∣PFt∣vi)H V_{t}=\operatorname{volume}\left(\bigcup_{i=1}^{\left|P F_{t}\right|} v_{i}\right)HVt=volumei=1PFtvi
式中,PFtP F_{t}PFt 是t时刻算法所获得的Pareto前沿,viv_{i}vi是由参考点和个体i形成的超体积。HV越大说明算法所得到的Pareto前沿收敛性越好,分布越均匀。

4.2.4 间距(Spacing,SP)

Schott提出了一种评价指标———间距(SP)来度量算法所获得的Pareto前沿中的个体的是否分布均匀,表达式如下:
St=1∣PFt∣−1∑i=1∣PFt∣(di−dˉ)2di=min⁡k=1,⋯,∣PFt,,k≠i(∑j=1m∣PFt(i,j)−PFt(k,j)∣)\begin{array}{c} S_{t}=\sqrt{\frac{1}{\left|P F_{t}\right|-1} \sum_{i=1}^{\left|P F_{t}\right|}\left(d_{i}-\bar{d}\right)^{2}} \\ d_{i}=\min _{k=1, \cdots, \mid P F_{t},, k \neq i}\left(\sum_{j=1}^{m}\left|P F_{t}(i, j)-P F_{t}(k, j)\right|\right) \end{array}St=PFt11i=1PFt(didˉ)2di=mink=1,,PFt,,k=i(j=1mPFt(i,j)PFt(k,j))
式中,PFtP F_{t}PFt 是t时刻算法所获得的Pareto前沿,did_{i}diPFtP F_{t}PFt中第i个个体与PFtP F_{t}PFt中和个体i最近的个体之间的欧式距离,dˉ\bar{d}dˉdid_{i}di的平均值.SP可以评价PFtP F_{t}PFt中个体的分布性,SP值越小说明算法所得到的Pareto前沿分布越均匀。
参考文献:
[1]刘若辰,李建霞,刘静,焦李成.动态多目标优化研究综述[J].计算机学报,2020,43(07):1246-1278.
[2]刘淳安. 动态多目标优化进化算法及其应用[M]. 科学出版社, 2011.

4.3 部分代码

设置种群大小为300,外部存档大小为500,以dMOP2_iso为例,当取第4组参数设置时,即环境变化程度、环境变化频率 和最大迭代次数分别为10/50/1000,其代码如下:(代码中更改TestProblem以此选择不同测试函数1-12,更改group选择不同参数设置1-8,相对于共有96种情形可供选择

close all;
clear ; 
clc;
warning off
%参考文献
%[1]M Helbig, AP Engelbrecht. Benchmark Functions for CEC 2015 Special Session and Competition on Dynamic Multi-objective Optimization. 
%[2]Hernán Peraza-Vázquez, Adrián F. Pe?a-Delgado, Gustavo Echavarría-Castillo, et al. A Bio-Inspired Method for Engineering Design Optimization Inspired by Dingoes Hunting Strategies[J]. Mathematical Problems in Engineering, vol. 2021, Article ID 9107547, 19 pages, 2021.
%% 动态多目标野狗优化算法(Dynamic Multi-objective Dingo Optimization Algorithm,DMODOA)
TestProblem=7;%选择测试函数1-12(可以自己修改)
group=1;%选择参数1-8 (可以自己修改)
MultiObj = GetFunInfoCec2015(TestProblem);%获取测试问题维度、目标函数、上下限、目标个数等信息
MultiObj.name=GetFunPlotName(TestProblem);%获取测试问题名称
paramiter=GetFunParamiter(group);%获取参数nt taut maxgen
% 参数设置
params.Np = 300;        %Np 种群大小 (可以自己修改)
params.Nr = 500;        %Nr 外部存档大小 (可以自己修改) 注意:外部存档大小Nr不能小于种群大小Np
params.nt=paramiter(1); % nt 环境变化程度
params.taut=paramiter(2);% taut 环境变化频率  
params.maxgen=paramiter(3);%maxgen 最大迭代次数
%% 动态多目标野狗优化算法求解,结果为Result
Result = DMODOA(params,MultiObj);

4.4 部分结果

由于测试函数共有12个,且每个测试函数均有8种参数可供选择,因而共有96种选择方案。由于篇幅限制,下面仅以dMOP2_iso和dMOP3为例,采用DMODOA求解。测试其余函数只需修改代码中TestProblem和group的值。

4.4.1 dMOP2_iso

当dMOP2_iso的参数设置选择为1时,即:环境变化程度nt=10n_{t}=10nt=10、环境变化频率τt=5{\tau}_{t}=5τt=5 和最大迭代次数τT=100{\tau}_{T}=100τT=100
dMOP2_iso问题真实的POF:
在这里插入图片描述

close all;
clear ; 
clc;
warning off
%参考文献
%[1]M Helbig, AP Engelbrecht. Benchmark Functions for CEC 2015 Special Session and Competition on Dynamic Multi-objective Optimization. 
%[2]Hernán Peraza-Vázquez, Adrián F. Pe?a-Delgado, Gustavo Echavarría-Castillo, et al. A Bio-Inspired Method for Engineering Design Optimization Inspired by Dingoes Hunting Strategies[J]. Mathematical Problems in Engineering, vol. 2021, Article ID 9107547, 19 pages, 2021.
%% 动态多目标野狗优化算法(Dynamic Multi-objective Dingo Optimization Algorithm,DMODOA)
TestProblem=7;%选择测试函数1-12(可以自己修改)
group=1;%选择参数1-8 (可以自己修改)
MultiObj = GetFunInfoCec2015(TestProblem);%获取测试问题维度、目标函数、上下限、目标个数等信息
MultiObj.name=GetFunPlotName(TestProblem);%获取测试问题名称
paramiter=GetFunParamiter(group);%获取参数nt taut maxgen
% 参数设置
params.Np = 300;        %Np 种群大小 (可以自己修改)
params.Nr = 500;        %Nr 外部存档大小 (可以自己修改) 注意:外部存档大小Nr不能小于种群大小Np
params.nt=paramiter(1); % nt 环境变化程度
params.taut=paramiter(2);% taut 环境变化频率  
params.maxgen=paramiter(3);%maxgen 最大迭代次数
%% 动态多目标野狗优化算法求解,结果为Result
Result = DMODOA(params,MultiObj);

DMODOA所求的结果如下:
DMODOA求dMOP2_iso所得的POF:
在这里插入图片描述
DMODOA求dMOP2_iso的GD随时间的变化曲线:
在这里插入图片描述

DMODOA求dMOP2_iso的IGD随时间的变化曲线:
在这里插入图片描述

DMODOA求dMOP2_iso的HV随时间的变化曲线:
在这里插入图片描述

DMODOA求dMOP2_iso的SP随时间的变化曲线:
在这里插入图片描述

4.4.1 dMOP3

当dMOP3的参数设置选择为4时,即:环境变化程度nt=10n_{t}=10nt=10、环境变化频率τt=50{\tau}_{t}=50τt=50 和最大迭代次数τT=1000{\tau}_{T}=1000τT=1000
dMOP3问题真实的POF:
在这里插入图片描述

close all;
clear ; 
clc;
warning off
%参考文献
%[1]M Helbig, AP Engelbrecht. Benchmark Functions for CEC 2015 Special Session and Competition on Dynamic Multi-objective Optimization. 
%[2]Hernán Peraza-Vázquez, Adrián F. Pe?a-Delgado, Gustavo Echavarría-Castillo, et al. A Bio-Inspired Method for Engineering Design Optimization Inspired by Dingoes Hunting Strategies[J]. Mathematical Problems in Engineering, vol. 2021, Article ID 9107547, 19 pages, 2021.%% 动态多目标野狗优化算法(Dynamic Multi-objective Dingo Optimization Algorithm,DMODOA)
TestProblem=9;%选择测试函数1-12(可以自己修改)
group=4;%选择参数1-8 (可以自己修改)
MultiObj = GetFunInfoCec2015(TestProblem);%获取测试问题维度、目标函数、上下限、目标个数等信息
MultiObj.name=GetFunPlotName(TestProblem);%获取测试问题名称
paramiter=GetFunParamiter(group);%获取参数nt taut maxgen
% 参数设置
params.Np = 300;        %Np 种群大小 (可以自己修改)
params.Nr = 500;        %Nr 外部存档大小 (可以自己修改) 注意:外部存档大小Nr不能小于种群大小Np
params.nt=paramiter(1); % nt 环境变化程度
params.taut=paramiter(2);% taut 环境变化频率  
params.maxgen=paramiter(3);%maxgen 最大迭代次数%% 动态多目标野狗优化算法求解,结果为Result
Result = DMODOA(params,MultiObj);

DMODOA所求的结果如下:
DMODOA求dMOP3所得的POF:
在这里插入图片描述

DMODOA求dMOP3的GD随时间的变化曲线:
在这里插入图片描述

DMODOA求dMOP3的IGD随时间的变化曲线:
在这里插入图片描述

DMODOA求dMOP3的HV随时间的变化曲线:
在这里插入图片描述

DMODOA求dMOP3的SP随时间的变化曲线:
在这里插入图片描述

五、参考代码

文件夹内包含DMODOA求解CEC2015共12个测试函数的全部MATLAB代码,并提供每个测试函数真实的Pareto前沿,同时通过四种评价指标(GD、IGD、HV和SP)。代码均能运行,包含使用说明,完整代码添加博客下方博主微信,私聊获取
在这里插入图片描述

相关文章:

CEC2015:动态多目标野狗优化算法求解CEC2015(提供完整MATLAB代码,含GD、IGD、HV和SP评价指标)

一、动态多目标优化问题简介 现实世界中,许多优化问题不仅具有多属性,而且与时间相关,即随着时间的变化,优化问题本身也发生改变,这类问题称为动态多目标优化问题(dynamic multi-objective optimization p…...

【蓝桥杯选拔赛真题31】python三位数组合个数 青少年组蓝桥杯python 选拔赛STEMA比赛真题解析

目录 python三位数组合个数 一、题目要求 1、编程实现 2、输入输出...

SpringBoot项目--如何不停服更新应用?

原文网址:SpringBoot项目--如何不停服更新应用?_IT利刃出鞘的博客-CSDN博客 简介 说明 本文介绍Java后端项目如何不停机更新服务。 在生产环境中,一般都会每个服务部署多个实例。只要多于1个实例,就可以不停服更新应用。 不停服…...

MVVM与Vue响应式原理

Vue的响应式实现原理 MVVM M:模型 》data中的数据 V:视图 》模板 VM:视图模型 》Vue实例对象 [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-0EWNM16D-1670161519474)(C:\Users\lucas\Desktop\学习\图片\mode…...

vue和react的生命周期

vue和react的生命周期 一、Vue的生命周期二、React的生命周期2.1.类组件2.2.函数式组件一、Vue的生命周期 初始化阶段(组件创建、数据初始化)、挂载、更新、销毁 父子组件生命周期执行顺序 初次加载组件时:父beforeCreate – 父created – 父beforeMount – 子beforeCreate …...

浏览器高度兼容性

浏览器的卷去高度 1.标准模式 document.documentElement.scrollTop 2.非标准模式 document.body.scrollTop 浏览器高度兼容性 1.标准模式下 浏览器的实际高度: document.body.clientHeight 浏览器的可视高度:document.documentElement.clientHeight 2.非…...

关于天干地支及其计算

以天干地支计算日期是我国悠良的传统文化,最近在看如何计算人的生辰八字,写了个程序,但是只能算年的干支,月、日的干支计算方法太复杂了,望之只能却步,还是乖乖去查万年历比较好。这里记下关于干支的一些东…...

数据结构和算法之如何建立图

小白BG.1 邻接矩阵表示的图结点的结构 typedef struct GNode *PtrToGNode;//PtrToGNode是指向GNode的一个指针 struct GNode{ int Nv;//顶点数 int Ne;//边数 WeightType G[MaxVertexNum][MaxVertexNum]; DataType Data[MaxVertexNum];//存顶点的数据 }; typedef PtrToGNode MG…...

计算机毕业设计Java大众采编本微资讯发布平台(源码+系统+mysql数据库+lw文档)

计算机毕业设计Java大众采编本微资讯发布平台(源码系统mysql数据库lw文档) 计算机毕业设计Java大众采编本微资讯发布平台(源码系统mysql数据库lw文档)本源码技术栈: 项目架构:B/S架构 开发语言:Java语言 开发软件:idea eclipse…...

web前端-javascript-立即执行函数(说明、例子)

立即执行函数 /* (function(){alert("我是一个匿名函数~~~"); })(); */(function (a, b) {console.log("a " a);console.log("b " b); })(123, 456);1. 说明 函数定义完,立即被调用,这种函数叫做立即执行函数立即执…...

【计算机视觉】图像形成与颜色

图像形成与颜色 光照及阴影 辐射度学 颜色 颜色信息反映了入射光的能量分布与波长,可见光的波长在400nm到760nm之间。 RGB RGB分别代表三个基色(R-红色、G-绿色、B-蓝色),如(0,0,0)表示黑色、(255, 255, 255)表示白色。其中2…...

Musical Christmas Lights——一个圣诞树灯光✨随音乐节奏改变的前端开源项目

文章目录前言视频介绍项目截图项目地址项目源码以上就是本篇文章的全部内容,将你编写好的项目分享给你的朋友们或者那个TA吧!制作不易,求个三连!❤️ 💬 ⭐️前言 今天博主在刷短视频时😐,朋友推…...

[附源码]Python计算机毕业设计SSM进出口食品安全信息管理系统(程序+LW)

项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: SSM mybatis Maven Vue 等等组成,B/S模式 M…...

电平触发的触发器

普通的SR锁存器没有任何抗干扰能力 我们要加控制信号,来抵抗干扰 比如说我们不把信号直接加在门上,我们可以再加一级门电路,让这个输出和输入不在同一个门上,我们希望加入一个控制信号,来控制电路工作的时刻 对电路结…...

php后端+JQuery+Ajax简单表单提交

通过ajax,如果从后端直接想前端返回数组,那前端收到的是一个‘Array’的字符串。所以,我比较习惯的是用json对象的格式。由后端通过json_encode()函数,把数组封装成对象,传递到前端;前端也以json的格式接收。这里用提交表单来举例说明。 页面显示如下: JQueryAjax.…...

论文投稿指南——中文核心期刊推荐(计算机技术2)

>>>深度学习Tricks&#xff0c;第一时间送达<<< 想发论文怎么办&#xff1f;手把手教你论文如何投稿&#xff01;那么&#xff0c;首先要搞懂投稿目标——论文期刊。下面&#xff0c;简单介绍下什么是中文核心期刊要目总览&#xff1a; 《中文核心期刊要目总…...

集合java

java集合 集合、数组都是对多个数据进行存储操作的结构&#xff0c;简称Java容器 此时的存储&#xff0c;主要是指内存层面的存储&#xff0c;不涉及持久化的存储&#xff08;txt,jpg,avi&#xff09; Java集合可分为Collection 和 Map 两种体系 1. Collection接口&#xff1…...

spring boot 应用mybatis

Mybatis入门: Mybatis入门_做测试的喵酱的博客-CSDN博客 目录 一、spring boot 应用mybatis 核心 二、举例&#xff1a; 2.1 背景 2.2 项目结构&#xff1a; 2.3 依赖包 pom 2.4 项目配置文件application.yml 2.5 实例层entity 2.6 mybatis的mapper层 2.7 spring boot…...

Java项目:ssm图书馆管理系统

作者主页&#xff1a;源码空间站2022 简介&#xff1a;Java领域优质创作者、Java项目、学习资料、技术互助 文末获取源码 功能介绍 基于ssm的图书馆管理系统.主要功能包括&#xff1a;图书查询、图书管理、图书编辑、读者管理、图书的借阅与归还以及借还日志记录等。 用户分为…...

详解设计模式:命令模式

命令模式&#xff08;Command Pattern&#xff09;也被称为行动模式&#xff08;Action Pattern&#xff09;、事物模式&#xff08;Transaction Pattern&#xff09;&#xff0c;是在 GoF 23 种设计模式中定义了的行为型模式。 命令模式 是一种数据驱动的设计模式。请求以命令…...

家庭用户无线上网案例(AC通过三层口对AP进行管理)

组网需求 为一个家庭用户使用的网络架构。该家庭消费用户的上网流量大多是低速流量&#xff0c;例如浏览网页、玩游戏、看视频等。家庭成员使用的无线终端主要为手机、PC、电视机等。终端接入的数量正常情况下在10个以内&#xff0c;偶尔有家庭聚会等特殊情况&#xff0c;终端接…...

Spring Boot 2 (七):Spring Boot 如何解决项目启动时初始化资源

在我们实际工作中,总会遇到这样需求,在项目启动的时候需要做一些初始化的操作,比如初始化线程池,提前加载好加密证书等。今天就给大家介绍一个 Spring Boot 神器,专门帮助大家解决项目启动初始化资源操作。 这个神器就是 CommandLineRunner,CommandLineRunner 接口的 Co…...

用Hopper修改代理软件端口

背景 用代理软件可以访问google&#xff0c;但是端口经常不固定&#xff0c;从缺省1080变成了随机。 前几天其实已经用Hopper 3.0看了一次&#xff0c;但是好像不支持go&#xff0c;所以没反编译成功&#xff0c;这次换了4.0&#xff0c;支持了go。 Hopper与逆向 逆向的目的…...

PKI等介绍

PKI 1、概述 KPI名称&#xff1a;Public Key Infrastructure 公钥基础设施 KPI作用&#xff1a;通过加密技术和数字签名保证信息的安全 KPI组成&#xff1a;公钥加密技术、数字证书、CA、RA 2、信息安全三要素 机密型、完整型、身份验证、操作的不可否认性 3、哪些领域…...

《模拟电子技术》半导体原理部分笔记

《模拟电子技术》笔记绪论第一章 常用半导体器件第二章 基本放大电路绪论 有的人把三极管的出现作为电子技术工业革命的开始标志学习架构&#xff1a;半导体器件&#xff08;二极管、三极管、场效应晶体管&#xff09;、基于上述管的放大电路、集成运算放大器、放大电路的频率…...

Python与MySQL交互

第四章 Python与MySQL交互 1、客户端库概述及安装 PyMySQL介绍 PyMySQL是在 Python3.x 版本中用于连接 MySQL 服务器的一个客户端库。 PyMySQL安装&#xff1a; pip install pymysql执行过程如下图&#xff1a; [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来…...

list的模拟实现(万字解读+由浅入深)

先申明一下本篇总体介绍过程是按照逐步深入去写的&#xff0c;所以可能有些同样类型不在一块&#xff01; 前言&#xff1a; 写这篇博客的时候&#xff0c;我是边思考边写它&#xff01;自己其中感觉自己对于list的理解更加的深入&#xff0c;其中提出的很多问题让我明白了lis…...

Java项目:SSM CRM人事管理系统

作者主页&#xff1a;源码空间站2022 简介&#xff1a;Java领域优质创作者、Java项目、学习资料、技术互助 文末获取源码 项目介绍 CRM人事管理系统&#xff0c;主要功能有&#xff1a; 用户管理&#xff1a;用户查询、添加用户、编辑、删除&#xff1b; 职位管理&#xff1a…...

Qt+opencv 鼠标画线实现几何图形识别并动态创建

前言 使用Qt OpenCV实现&#xff0c;通过鼠标画线绘制几何图形&#xff0c;然后通过opencv进行图形轮廓识别&#xff0c;返回图形顶点&#xff0c;然后创建对应的几何图形添加到场景中。绘制使用QGraphics体系完成。 看效果图&#xff1a; 本文demo在这里 点击下载 环境: …...

HTML5期末大作业——HTML+CSS+JavaScript平遥古城旅游景点介绍(6页)

&#x1f468;‍&#x1f393;学生HTML静态网页基础水平制作&#x1f469;‍&#x1f393;&#xff0c;页面排版干净简洁。使用HTMLCSS页面布局设计,web大学生网页设计作业源码&#xff0c;这是一个不错的旅游网页制作&#xff0c;画面精明&#xff0c;排版整洁&#xff0c;内容…...

HTML5期末考核大作业 基于HTML+CSS+JavaScript沪上美食(9页)

&#x1f380; 精彩专栏推荐&#x1f447;&#x1f3fb;&#x1f447;&#x1f3fb;&#x1f447;&#x1f3fb; ✍️ 作者简介: 一个热爱把逻辑思维转变为代码的技术博主 &#x1f482; 作者主页: 【主页——&#x1f680;获取更多优质源码】 &#x1f393; web前端期末大作业…...

Reg注册表读写

在Windows 95及其后继版本中&#xff0c;采用了一种叫做“注册表”的数据库来统一进行管理&#xff0c;将各种信息资源集中起来并存储各种配置信息。按照这一原则&#xff0c;Windows各版本中都采用了将应用程序和计算机系统全部配置信息容纳在一起的注册表&#xff0c;用来管理…...

HTML入门零基础教程(五)

嗨&#xff0c;大家好&#xff0c;我是异星球的小怪同志 一个想法有点乱七八糟的小怪 如果觉得对你有帮助&#xff0c;请支持一波。 希望未来可以一起学习交流。 目录 一、图像标签 1.图像标签 2.图标标签的其它属性 3.图像标签属性注意点&#xff1a; 一、图像标签 1.…...

java通过lock实现同步锁

这里我们是一个卖票的演示代码 其实 同步锁 远不止一个synchronized 它本身有一个 加上锁 和释放锁的过程 为了 让我们更好的理解这个过程 JDK5之后 为我们提供了一个单独的锁工具 lock lock是一个接口 他提供了 synchronized 方法 和 更广泛的语句操作 lock方法 获得锁 unl…...

Java多线程同步工具类:Semaphore原理剖析

Java多线程同步工具类&#xff1a;Semaphore原理剖析 文章目录Java多线程同步工具类&#xff1a;Semaphore原理剖析Semaphore原理实战案例前驱知识准备&#xff1a;AbstractQueuedSynchronizer队列同步器 [Java多线程之&#xff1a;队列同步器AbstractQueuedSynchronizer原理剖…...

C++之面向对象

目录 对象与类 类的语法&#xff1a; C中class与struct的区别&#xff1a; 通过类实例化对象的方式 具体案例 类作用域与分文件编写 创建circle.h头文件 创建源文件circle.cpp 创建all.cpp来作为程序的入口 封装 封装的意义 访问权限符 成员属性私有化 优点 具体…...

Windows-》CMD命令

CMD命令【1】Windows-》CMD命令1.mstsc&#xff1a;打开远程桌面连接。2.services.msc&#xff1a;打开本地服务设置。3.notepad&#xff1a;打开记事本。4.control&#xff1a;打开控制面板。5.regedit&#xff1a;打开注册列表编辑器。6.compmgmt.msc---设备管理器。&#xf…...

秒级使网站变灰,不改代码不上线,如何做到?

注意&#xff1a;文本不是讲如何将网站置灰的那个技术点&#xff0c;那个技术点之前汶川地震的时候说过。 本文不讲如何实现技术&#xff0c;而是讲如何在第一时间知道消息后&#xff0c;更快速的实现这个置灰需求的上线。 实现需求不是乐趣&#xff0c;指挥别人去实现需求才…...

vue教程

vue window本地保存Local Storage 保存&#xff1a;window.localStorage.setItem(名,值); window.localStorage.setItem(token,backdata.data[2]); 查询&#xff1a;window.localStorage.getItem(名); window.localStorage.getItem(token); 删除&#xff1a;window.localStor…...

认识哈希表

作者&#xff1a;~小明学编程 文章专栏&#xff1a;Java数据结构 格言&#xff1a;目之所及皆为回忆&#xff0c;心之所想皆为过往 目录 为什么我们需要哈希表&#xff1f; 哈希表的原理 什么是哈希值 冲突 负载因子 解决冲突 闭散列 开散列/哈希桶 代码实现 不考虑…...

Vue学习:Hello小案例

使用Vue的目的&#xff1a;构建用户界面&#xff08;需要使用容器 摆放这个界面的内容&#xff09; favicon.ico:1 GET http://127.0.0.1:5500/favicon.ico 404 (Not Found) 没有页签图标 在者服务器中 http://127.0.0.1:5500没有/favicon.ico 强制刷新网页&#xff1a;s…...

IDEA创建Java Web项目

✅作者简介&#xff1a;热爱国学的Java后端开发者&#xff0c;修心和技术同步精进。 &#x1f34e;个人主页&#xff1a;Java Fans的博客 &#x1f34a;个人信条&#xff1a;不迁怒&#xff0c;不贰过。小知识&#xff0c;大智慧。 &#x1f49e;当前专栏&#xff1a;JAVA开发者…...

C++11中可变参数模板使用

在看同事编写的代码&#xff0c;发现有如下的代码&#xff0c;因为没用过&#xff0c;所以查了一下这是什么语法&#xff0c;通过查询资料知道了这是C11中增加的可变参数模板。 template<class T, class ...Args> bool GetValue(T &value, Args &&...args) c…...

MySQL 中的 sql_mode 选项以及配置

MySQL 中的 sql_mode 选项以及配置 目录MySQL 中的 sql_mode 选项以及配置一、查询与设置 sql_mode1、查询 sql_mode2、设置 sql_mode&#xff08;1&#xff09;通过命令设置&#xff08;2&#xff09;在配置文件中设置二、sql_mode 支持的模式1、ANSI 模式&#xff08;宽松模式…...

【C语言航路】第六站:指针初阶

目录 一、指针是什么 二、指针和指针类型 1.指针类型的意义 2.指针-整数 3.指针解引用 三、野指针 1.野指针的成因 &#xff08;1&#xff09;指针未初始化 &#xff08;2&#xff09;指针越界访问 &#xff08;3&#xff09;指针指向的空间释放 2.如何规避野指针 &a…...

从 JPA 2.x 迁移到 3.0

我最近收到了很多关于JPA 3.0的问题&#xff0c;由于EclipseLink和Hibernate现在提供了对它的全面支持&#xff0c;现在是时候仔细看看规范的最新更新了。作为从Java EE到Jakarta EE转换的一部分&#xff0c;Java Persistence API&#xff08;JPA&#xff09;更名为Jakarta Per…...

Allegro如何锁定器件操作指导

Allegro如何锁定器件操作指导 Allegro上可以锁定器件,避免误操作被移动,具体操作如下 选择fix命令 Find选择Symbols 框选需要锁定的器件 可以看到器件被锁住了 除了这个方法之外,还有另外一种方法锁定器件,选择edit-property Find选择Symbols...

第三章:SpringBoot的配置文件-核心技术

目录 1、文件类型 1.1、properties 1.2、yaml 1.2.1、简介 1.2.2、基本语法 1.2.3、数据类型 1.2.4、示例 2、配置提示 1、文件类型 1.1、properties 同以前的properties用法 1.2、yaml 1.2.1、简介 YAML 是 "YAML Aint Markup Language"&#xff08;YA…...

Vue中的计算属性

计算属性&#xff1a;实际上是把vm中的属性进行计算加工&#xff0c;最后能够返回给页面一个结果&#xff0c;它是实时的&#xff0c;所以不能做异步操作。 细想一下&#xff0c;其实methods方法也能实现1中描述的现象&#xff0c;但是计算属性最大的优势是缓存&#xff01;&a…...

HTML+CSS个人电影网页设计——电影从你的全世界路过(4页)带音乐特效

HTML实例网页代码, 本实例适合于初学HTML的同学。该实例里面有设置了css的样式设置&#xff0c;有div的样式格局&#xff0c;这个实例比较全面&#xff0c;有助于同学的学习,本文将介绍如何通过从头开始设计个人网站并将其转换为代码的过程来实践设计。 文章目录一、网页介绍一…...

习近平同俄罗斯总统普京会谈

5月16日上午,国家主席习近平在北京人民大会堂同来华进行国事访问的俄罗斯总统普京举行会谈。来源:新华社...

github新手用法

目录 1&#xff0c;github账号注册2&#xff0c;github登录3&#xff0c;新建一个仓库4&#xff0c;往仓库里面写入东西或者上传东西5&#xff0c; 下载Git软件并安装6 &#xff0c;获取ssh密钥7&#xff0c; 绑定ssh密钥8&#xff0c; 测试本地和github是否联通9&#xff0c;从…...

国际化日期(inti)

我们可以使用国际化API自动的格式化数字或者日期&#xff0c;并且格式化日期或数字的时候是按照各个国家的习惯来进行格式化的&#xff0c;非常的简单&#xff1b; const now new Date(); labelDate.textContent new Intl.DateTimeFormat(zh-CN).format(now);比如说这是按照…...

变量初始化

提示&#xff1a;文章 文章目录 前言一、背景二、 2.1 2.2 总结 前言 前期疑问&#xff1a; 本文目标&#xff1a; 一、背景 最近在写c代码的时候&#xff0c;就涉及到变量的初始化。这边的变量当然指的是局部变量和类成员变量了。类成员变量其实也是局部变量啦。 另外就…...

代码+视频,R言语处理数据中的缺失值

在SCI论文中&#xff0c;我们不可避免和缺失数据打交道&#xff0c;特别是在回顾性研究&#xff0c;对于缺失的协变量&#xff08;就是混杂因素&#xff09;&#xff0c;我们可以使用插补补齐数据&#xff0c;但是对于结局变量和原因变量的缺失&#xff0c;我们不能这么做。部分…...

svn如何远程访问?

svn&#xff08;Subversion&#xff09;是一种版本控制系统&#xff0c;广泛应用于软件开发领域。它能够追踪文件和目录的变化&#xff0c;记录每个版本的修改内容&#xff0c;并允许多人协同开发。svn的远程访问功能允许开发人员可以在不同的地点访问和管理代码&#xff0c;提…...