IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 人工智能 -> Matlab群体智能优化算法之塔斯马尼亚魔鬼(袋獾)优化算法(TDO) -> 正文阅读

[人工智能]Matlab群体智能优化算法之塔斯马尼亚魔鬼(袋獾)优化算法(TDO)


A New Bio-Inspired Optimization Algorithm for Solving Optimization Algorithm
参考文献:
M. Dehghani, ?. Hubálovsky and P. Trojovsky, “Tasmanian Devil Optimization: A New Bio-Inspired Optimization Algorithm for Solving Optimization Algorithm,” in IEEE Access, vol. 10, pp. 19599-19620, 2022, doi: 10.1109/ACCESS.2022.3151641.
如有侵权,联系删除

简介

???????????在这里插入图片描述

??袋獾是一种食肉有袋类野生动物属于Dasyuridae科的动物,袋獾是机会主义者动物,虽然它们能捕猎,但它们也吃东西如果存在腐肉[41]。袋獾有两种策略喂养。在第一种策略中,如果袋獾找到一个它以腐肉为食。在第二种策略中,它捕食通过攻击猎物。TDO算法设计来源

原理

初始化

X = [ X 1 ? X i ? X N ] N × m = [ x 1 , 1 ? x 1 , j ? x 1 , m ? ? ? ? x i , 1 ? x i , j ? x i , m ? ? ? ? x N , 1 ? x N , j ? x N , m ] N × m X=\left[\begin{array}{c} X_{1} \\ \vdots \\ X_{i} \\ \vdots \\ X_{N} \end{array}\right]_{N \times m}=\left[\begin{array}{ccccc} x_{1,1} & \cdots & x_{1, j} & \cdots & x_{1, m} \\ \vdots & \ddots & \vdots & & \vdots \\ x_{i, 1} & \cdots & x_{i, j} & \cdots & x_{i, m} \\ \vdots & & \vdots & \ddots & \vdots \\ x_{N, 1} & \cdots & x_{N, j} & \cdots & x_{N, m} \end{array}\right]_{N \times m} X=?????????X1??Xi??XN???????????N×m?=?????????x1,1??xi,1??xN,1???????x1,j??xi,j??xN,j???????x1,m??xi,m??xN,m???????????N×m?
F = [ F 1 ? F i ? F N ] N × 1 = [ F ( X 1 ) ? F ( X i ) ? F ( X N ) ] N × 1 F=\left[\begin{array}{c} F_{1} \\ \vdots \\ F_{i} \\ \vdots \\ F_{N} \end{array}\right]_{N \times 1}=\left[\begin{array}{c} F\left(X_{1}\right) \\ \vdots \\ F\left(X_{i}\right) \\ \vdots \\ F\left(X_{N}\right) \end{array}\right]_{N \times 1} F=?????????F1??Fi??FN???????????N×1?=?????????F(X1?)?F(Xi?)?F(XN?)??????????N×1?

位置更新方式

在TDO每次迭代过程中,更新方式假定选择这两种策略的概率等于百分之50
策略一:通过吃腐肉进食
C i = X k , i = 1 , 2 , … , N , k ∈ { 1 , 2 , … , N ∣ k ≠ i } C_{i}=X_{k}, \quad i=1,2, \ldots, N, k \in\{1,2, \ldots, N \mid k \neq i\} Ci?=Xk?,i=1,2,,N,k{1,2,,Nk?=i}
x i , j n e w , S 1 = { x i , j + r ? ( c i , j ? I ? x i , j ) , F C i < F i ; x i , j + r ? ( x i , j ? c i , j ) , ?otherwise? , X i = { X i n e w , S 1 , F i n e w , S 1 < F i X i , ?otherwise? , \begin{aligned} x_{i, j}^{n e w, S 1} &= \begin{cases}x_{i, j}+r \cdot\left(c_{i, j}-I \cdot x_{i, j}\right), & F_{C_{i}}<F_{i} ; \\ x_{i, j}+r \cdot\left(x_{i, j}-c_{i, j}\right), & \text { otherwise },\end{cases} \\ X_{i} &= \begin{cases}X_{i}^{n e w, S 1}, & F_{i}^{n e w, S 1}<F_{i} \\ X_{i}, & \text { otherwise },\end{cases} \end{aligned} xi,jnew,S1?Xi??={xi,j?+r?(ci,j??I?xi,j?),xi,j?+r?(xi,j??ci,j?),?FCi??<Fi?;?otherwise?,?={Xinew,S1?,Xi?,?Finew,S1?<Fi??otherwise?,??
具体参数设置请参照原文

策略二:通过吃猎物进食
P i = X k , i = 1 , 2 , … , N , k ∈ { 1 , 2 , … , N ∣ k ∣ = i } P_{i}=X_{k}, \quad i=1,2, \ldots, N, k \in\{1,2, \ldots, N|k|=i\} Pi?=Xk?,i=1,2,,N,k{1,2,,Nk=i}
x i , j n e w , S 2 = { x i , j + r ? ( p i , j ? I ? x i , j ) , F P i < F i , x i , j + r ? ( x i , j ? p i , j ) , ?otherwise? , X i = { X i n e w , S 2 , F i new? , S 2 < F i ; X i , ?otherwise? , \begin{aligned} x_{i, j}^{n e w, S 2} &= \begin{cases}x_{i, j}+r \cdot\left(p_{i, j}-I \cdot x_{i, j}\right), & F_{P_{i}}<F_{i}, \\ x_{i, j}+r \cdot\left(x_{i, j}-p_{i, j}\right), & \text { otherwise },\end{cases} \\ X_{i} &= \begin{cases}X_{i}^{n e w, S 2}, & F_{i}^{\text {new }, S 2}<F_{i} ; \\ X_{i}, & \text { otherwise },\end{cases} \end{aligned} xi,jnew,S2?Xi??={xi,j?+r?(pi,j??I?xi,j?),xi,j?+r?(xi,j??pi,j?),?FPi??<Fi?,?otherwise?,?={Xinew,S2?,Xi?,?Finew?,S2?<Fi?;?otherwise?,??
R = 0.01 ( 1 ? t T ) , x i , j new? = x i , j + ( 2 r ? 1 ) ? R ? x i , j , X i = { X i new? , F i new? < F i X i , ?otherwise? , \begin{aligned} R &=0.01\left(1-\frac{t}{T}\right), \\ x_{i, j}^{\text {new }} &=x_{i, j}+(2 r-1) \cdot R \cdot x_{i, j}, \\ X_{i} &= \begin{cases}X_{i}^{\text {new }}, & F_{i}^{\text {new }}<F_{i} \\ X_{i}, & \text { otherwise },\end{cases} \end{aligned} Rxi,jnew??Xi??=0.01(1?Tt?),=xi,j?+(2r?1)?R?xi,j?,={Xinew??,Xi?,?Finew??<Fi??otherwise?,??
具体参数设置请参照原文

流程图

???????????在这里插入图片描述

伪代码

?????????????在这里插入图片描述

测试及结果分析

单峰、多峰、固定维数各一个。
F5
??????在这里插入图片描述
F12
??????在这里插入图片描述

F23
??????在这里插入图片描述
结果分析选择测试函数是F12
???????????在这里插入图片描述
独立运行20次源码

%%
clc
clear
close all
%%
Fun_name='F12'; % number of test functions: 'F1' to 'F23'
SearchAgents=30;                      % number of Tasmanian Devil (population members) 
Max_iterations=500;                   % maximum number of iteration
for i=1:20
[lowerbound,upperbound,dimension,fitness]=fun_info(Fun_name); % Object function information
[Best_score_TDO,Best_pos_TDO,TDO_curve]=TDO(SearchAgents,Max_iterations,lowerbound,upperbound,dimension,fitness);  
[Best_score_DTBO,Best_pos_DTBO,DTBO_curve]=DTBO(SearchAgents,Max_iterations,lowerbound,upperbound,dimension,fitness);
[Best_score_NGO,Best_pos_NGO,NGO_curve]=NGO(SearchAgents,Max_iterations,lowerbound,upperbound,dimension,fitness);
[Best_score_POA,Best_pos_POA,POA_curve]=POA(SearchAgents,Max_iterations,lowerbound,upperbound,dimension,fitness);  
result{i,:}=[Best_score_TDO,Best_score_DTBO,Best_score_NGO,Best_score_POA]; 
end
%% Result Analysis
format shortEng
fr=cell2mat(result);
fmean=mean(fr);
fstd=std(fr);
fbsf=min(fr);
fmedian=median(fr);
final=[fmean;fstd;fbsf;fmedian];       

单独测试一个函数的源码

%%
clc
clear
close all

%%
Fun_name='F1'; % number of test functions: 'F1' to 'F23'
SearchAgents=30;                      % number of Tasmanian Devil (population members) 
Max_iterations=500;                  % maximum number of iteration
[lowerbound,upperbound,dimension,fitness]=fun_info(Fun_name); % Object function information
for i=1:20
    [Best_score_TDO,Best_pos_TDO,TDO_curve]=TDO(SearchAgents,Max_iterations,lowerbound,upperbound,dimension,fitness);
    result(i)=Best_score_TDO;
end
display(['The mean obtained by TDO is : ', num2str( mean(result))]);%平均值
display(['The std  obtained by TDO is : ', num2str( std(result))]);  %标准差
display(['The var  obtained by TDO is : ', num2str( var(result))]);  %方差 

在这里插入图片描述
学习交流,无偿分享已有源码

  人工智能 最新文章
2022吴恩达机器学习课程——第二课(神经网
第十五章 规则学习
FixMatch: Simplifying Semi-Supervised Le
数据挖掘Java——Kmeans算法的实现
大脑皮层的分割方法
【翻译】GPT-3是如何工作的
论文笔记:TEACHTEXT: CrossModal Generaliz
python从零学(六)
详解Python 3.x 导入(import)
【答读者问27】backtrader不支持最新版本的
上一篇文章           查看所有文章
加:2022-05-11 16:27:03  更:2022-05-11 16:30:18 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 6:47:50-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码