一、部分代码
常春藤算法(Ivy algorithm,LVYA)是Mojtaba Ghasemi 等人于2024年提出智能优化算法。该算法模拟了常春藤植物的生长模式,通过协调有序的种群增长以及常春藤植物的扩散和演化来实现。常春藤植物的生长速率是通过微分方程和数据密集型实验过程建模的。该算法利用附近常春藤植物的知识来确定生长方向,并通过选择最近和最重要的邻居进行自我改进。常春藤算法通过保持种群多样性、简单灵活的特点,可以轻松修改和扩展,使研究者和实践者能够探索各种修改和技术以增强其性能和能力。
参考文献:
[1]Mojtaba Ghasemi, Mohsen Zare, Pavel Trojovský, Ravipudi Venkata Rao, Eva Trojovská, Venkatachalam Kandasamy,Optimization based on the smart behavior of plants with its engineering applications: Ivy algorithm,Knowledge-Based Systems,Volume 295,2024.https://doi.org/10.1016/j.knosys.2024.111850.
原文链接:2024最新智能优化算法:常春藤算法(Ivy algorithm,LVYA)求解23个函数,提供MATLAB代码-CSDN博客
close all clear clc rng('default'); %% 载入数据 data.S=[50,950,12]; %起点位置 横坐标与纵坐标需为50的倍数 data.E=[950,50,1]; %终点点位置 横坐标与纵坐标需为50的倍数 data.Obstacle=xlsread('data1.xls'); data.numObstacles=length(data.Obstacle(:,1)); %% 画图 figure hold on plot(curve,'r','LineWidth',2) xlabel('迭代次数') ylabel('路径长度') legend(str); [~,result]=fobj(Best_pos); drawPc(result,option,data,str) result.path(:,1)=result.path(:,1).*data.unit(1); result.path(:,2)=result.path(:,2).*data.unit(2); result.path(:,3)=result.path(:,3).*data.unit(3); %% 显示路径信息 fprintf("路径坐标:\n"); display(result.path) fprintf("路径长度:%f\n",result.fit);
二、部分结果
路径坐标:
50 950 12
50 1000 12
100 1000 13
150 1000 12
200 950 12
200 1000 11
250 1000 10
300 1000 11
350 950 12
400 1000 11
350 1000 10
300 1000 9
350 950 8
400 950 7
450 950 6
500 1000 7
550 1000 7
550 1000 6
500 950 6
450 950 7
450 900 8
500 850 8
500 850 7
550 800 6
550 800 5
550 750 5
600 750 5
550 700 6
500 650 5
550 600 6
550 650 6
550 600 5
550 650 4
600 600 3
550 550 3
550 500 3
500 450 4
500 450 5
450 400 6
500 350 6
550 300 6
600 300 5
650 300 5
700 250 5
750 200 5
800 150 4
850 100 4
850 50 4
800 50 4
800 50 3
850 100 2
900 100 3
950 50 2
950 100 1
1000 100 1
1000 100 2
950 50 1
路径长度:3003.322320
三、完整MATLAB代码
私
标签:常春藤,避障,algorithm,950,550,50,result,500,1000 From: https://blog.csdn.net/weixin_46204734/article/details/139452674