TSP:常春藤算法IVY求解旅行商问题TSP(可以更改数据),MATLAB代码

2024-06-17 23:12

本文主要是介绍TSP:常春藤算法IVY求解旅行商问题TSP(可以更改数据),MATLAB代码,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

一、旅行商问题介绍

二、常春藤算法IVY求解TSP

2.1算法介绍

常春藤算法(Ivy algorithm,IVY)是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.

2.2部分代码

close all
clear
clc
%数据集参考文献  REINELT G.TSPLIB-a traveling salesman problem[J].ORSA Journal on Computing,1991,3(4):267-384.
global data
load('data.txt')%导入TSP数据集bayg29
Dim=size(data,1)-1;%维度
lb=-100;%下界
ub=100;%上界
fobj=@Fun;%计算总距离
SearchAgents_no=100; % 种群大小(可以修改)
Max_iteration=10000; % 最大迭代次数(可以修改)
[fMin,bestX,curve]=(SearchAgents_no,Max_iteration,lb,ub,Dim,fobj);  
%% 画最终的结果 Kd是最终的城市序列
[~,idx]=sort(bestX);
idx=idx+1;
Kd(1)=1;
Kd(2:length(idx)+1)=idx;
Kd(length(idx)+2)=1;
%% 画路径图
figure
plot(data(Kd,1),data(Kd,2),'go','MarkerFaceColor','g')

2.3部分结果

算法得到的路径:1 > 6 > 9 > 12 > 23 > 7 > 25 > 22 > 17 > 18 > 4 > 16 > 27 > 15 > 13 > 8 > 28 > 21 > 5 > 26 > 29 > 3 > 2 > 10 > 19 > 11 > 14 > 20 > 24 > 1

算法求解的总路径总长:13873.9529

三、完整MATLAB代码

TSP:肺功能优化算法LPO求解旅行商问题TSP(可以更改数据),MATLAB代码

TSP:常春藤算法IVY求解旅行商问题TSP(可以更改数据),MATLAB代码

TSP:差异化创意搜索算法DCS求解旅行商问题TSP(可以更改数据),MATLAB代码

TSP:人工原生动物优化器(APO)求解旅行商问题TSP(可以更改数据),MATLAB代码

TSP:黑翅鸢算法BKA求解旅行商问题TSP(可以更改数据),MATLAB代码

这篇关于TSP:常春藤算法IVY求解旅行商问题TSP(可以更改数据),MATLAB代码的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1070674

相关文章

linux生产者,消费者问题

pthread_cond_wait() :用于阻塞当前线程,等待别的线程使用pthread_cond_signal()或pthread_cond_broadcast来唤醒它。 pthread_cond_wait() 必须与pthread_mutex 配套使用。pthread_cond_wait()函数一进入wait状态就会自动release mutex。当其他线程通过pthread

问题:第一次世界大战的起止时间是 #其他#学习方法#微信

问题:第一次世界大战的起止时间是 A.1913 ~1918 年 B.1913 ~1918 年 C.1914 ~1918 年 D.1914 ~1919 年 参考答案如图所示

uniapp接入微信小程序原生代码配置方案(优化版)

uniapp项目需要把微信小程序原生语法的功能代码嵌套过来,无需把原生代码转换为uniapp,可以配置拷贝的方式集成过来 1、拷贝代码包到src目录 2、vue.config.js中配置原生代码包直接拷贝到编译目录中 3、pages.json中配置分包目录,原生入口组件的路径 4、manifest.json中配置分包,使用原生组件 5、需要把原生代码包里的页面修改成组件的方

2024.6.24 IDEA中文乱码问题(服务器 控制台 TOMcat)实测已解决

1.问题产生原因: 1.文件编码不一致:如果文件的编码方式与IDEA设置的编码方式不一致,就会产生乱码。确保文件和IDEA使用相同的编码,通常是UTF-8。2.IDEA设置问题:检查IDEA的全局编码设置和项目编码设置是否正确。3.终端或控制台编码问题:如果你在终端或控制台看到乱码,可能是终端的编码设置问题。确保终端使用的是支持你的文件的编码方式。 2.解决方案: 1.File -> S

公共筛选组件(二次封装antd)支持代码提示

如果项目是基于antd组件库为基础搭建,可使用此公共筛选组件 使用到的库 npm i antdnpm i lodash-esnpm i @types/lodash-es -D /components/CommonSearch index.tsx import React from 'react';import { Button, Card, Form } from 'antd'

vcpkg安装opencv中的特殊问题记录(无法找到opencv_corexd.dll)

我是按照网上的vcpkg安装opencv方法进行的(比如这篇:从0开始在visual studio上安装opencv(超详细,针对小白)),但是中间出现了一些别人没有遇到的问题,虽然原因没有找到,但是本人给出一些暂时的解决办法: 问题1: 我在安装库命令行使用的是 .\vcpkg.exe install opencv 我的电脑是x64,vcpkg在这条命令后默认下载的也是opencv2:x6

17.用300行代码手写初体验Spring V1.0版本

1.1.课程目标 1、了解看源码最有效的方式,先猜测后验证,不要一开始就去调试代码。 2、浓缩就是精华,用 300行最简洁的代码 提炼Spring的基本设计思想。 3、掌握Spring框架的基本脉络。 1.2.内容定位 1、 具有1年以上的SpringMVC使用经验。 2、 希望深入了解Spring源码的人群,对 Spring有一个整体的宏观感受。 3、 全程手写实现SpringM

问题-windows-VPN不正确关闭导致网页打不开

为什么会发生这类事情呢? 主要原因是关机之前vpn没有关掉导致的。 至于为什么没关掉vpn会导致网页打不开,我猜测是因为vpn建立的链接没被更改。 正确关掉vpn的时候,会把ip链接断掉,如果你不正确关掉,ip链接没有断掉,此时你vpn又是没启动的,没有域名解析,所以就打不开网站。 你可以在打不开网页的时候,把vpn打开,你会发现网络又可以登录了。 方法一 注意:方法一虽然方便,但是可能会有

【服务器运维】MySQL数据存储至数据盘

查看磁盘及分区 [root@MySQL tmp]# fdisk -lDisk /dev/sda: 21.5 GB, 21474836480 bytes255 heads, 63 sectors/track, 2610 cylindersUnits = cylinders of 16065 * 512 = 8225280 bytesSector size (logical/physical)

时序预测 | MATLAB实现LSTM时间序列未来多步预测-递归预测

时序预测 | MATLAB实现LSTM时间序列未来多步预测-递归预测 目录 时序预测 | MATLAB实现LSTM时间序列未来多步预测-递归预测基本介绍程序设计参考资料 基本介绍 MATLAB实现LSTM时间序列未来多步预测-递归预测。LSTM是一种含有LSTM区块(blocks)或其他的一种类神经网络,文献或其他资料中LSTM区块可能被描述成智能网络单元,因为