SA:利用SA算法解决TSP(数据是14个虚拟城市的横纵坐标)问题——Jason niu
%SA:利用SA算法解决TSP(数据是14个虚拟城市的横纵坐标)问题——Jason niu
X = [16.4700 96.1000
16.4700 94.4400
20.0900 92.5400
22.3900 93.3700
25.2300 97.2400
22.0000 96.0500
20.4700 97.0200
17.2000 96.2900
16.3000 97.3800
14.0500 98.1200
16.5300 97.3800
21.5200 95.5900
19.4100 97.1300
20.0900 92.5500]; D = Distance(X);
N = size(D,1); T0 = 1e10;
Tend = 1e-30;
L = 2;
q = 0.9;
Time = ceil(double(solve([num2str(T0) '*(0.9)^x = ',num2str(Tend)])));
count = 0;
Obj = zeros(Time,1);
track = zeros(Time,N); S1 = randperm(N);
DrawPath(S1,X)
title('利用自定义函数绘制TSP问题的初始路径(随机产生)—Jason niu')
disp('初始种群中的一个随机值:')
OutputPath(S1);
Rlength = PathLength(D,S1);
disp(['总距离:',num2str(Rlength)]); while T0 > Tend
count = count + 1;
temp = zeros(L,N+1); S2 = NewAnswer(S1); [S1,R] = Metropolis(S1,S2,D,T0); if count == 1 || R < Obj(count-1)
Obj(count) = R;
else
Obj(count) = Obj(count-1);
end
track(count,:) = S1;
T0 = q * T0;
end figure
plot(1:count,Obj)
xlabel('迭代次数')
ylabel('距离')
title('SA:显示SA算法对TSP问题的优化过程(适应度函数)—Jason niu') DrawPath(track(end,:),X)
title('SA:利用SA对TSP问题优化,绘制出利用SA算法优化后的最优路径图—Jason niu')
%% IX. 输出最优解的路线和总距离
disp('最优解:')
S = track(end,:);
p = OutputPath(S);
disp(['总距离:',num2str(PathLength(D,S))]);
SA:利用SA算法解决TSP(数据是14个虚拟城市的横纵坐标)问题——Jason niu的更多相关文章
- 【智能算法】用模拟退火(SA, Simulated Annealing)算法解决旅行商问题 (TSP, Traveling Salesman Problem)
喜欢的话可以扫码关注我们的公众号哦,更多精彩尽在微信公众号[程序猿声] 文章声明 此文章部分资料和代码整合自网上,来源太多已经无法查明出处,如侵犯您的权利,请联系我删除. 01 什么是旅行商问题(TS ...
- 蚁群算法解决TSP问题
代码实现 运行结果及参数展示 alpha=1beta=5 rho=0.1 alpha=1beta=1rho=0.1 alpha=0.5beta=1rho=0.1 概念蚁群算法(AG)是一种模拟蚂蚁觅 ...
- 利用KMP算法解决串的模式匹配问题(c++) -- 数据结构
题目: 7-1 串的模式匹配 (30 分) 给定一个主串S(长度<=10^6)和一个模式T(长度<=10^5),要求在主串S中找出与模式T相匹配的子串,返回相匹配的子串中的第一个字符在主串 ...
- 分布估计算法解决TSP问题
分布估计算法解决旅行商问题(TSP) TSP问题(Traveling Salesman Problem,旅行商问题),由威廉哈密顿爵士和英国数学家克克曼T.P.Kirkman于19世纪初提出.问题描述 ...
- C/C++贪心算法解决TSP问题
贪心算法解决旅行商问题 TSP问题(Traveling Salesman Problem,旅行商问题),由威廉哈密顿爵士和英国数学家克克曼T.P.Kirkman于19世纪初提出.问题描述如下: 有若干 ...
- [matlab] 8.蚁群算法解决TSP问题
城市坐标数据下载 密码:07d5 求遍历这52座城市后最后回到最初城市的最短距离 %% 第9章 蚁群算法及MATLAB实现——TSP问题 % 程序9-1 %% 数据准备 % 清空环境变量 clear ...
- (原创)数据结构之利用KMP算法解决串的模式匹配问题
给定一个主串S(长度<=10^6)和一个模式T(长度<=10^5),要求在主串S中找出与模式T相匹配的子串,返回相匹配的子串中的第一个字符在主串S中出现的位置. 输入格式: 输入有两行 ...
- 利用Tarjan算法解决(LCA)二叉搜索树的最近公共祖先问题——数据结构
相关知识:(来自百度百科) LCA(Least Common Ancestors) 即最近公共祖先,是指在有根树中,找出某两个结点u和v最近的公共祖先. 例如: 1和7的最近公共祖先为5: 1和5的 ...
- MLR:利用多元线性回归法,从大量数据中提取五个因变量来预测一个自变量—Jason niu
from numpy import genfromtxt from sklearn import linear_model datapath=r"Delivery_Dummy.csv&quo ...
随机推荐
- mysql 如何优化left join
今天遇到一个left join优化的问题,搞了一下午,中间查了不少资料,对MySQL的查询计划还有查询优化有了更进一步的了解,做一个简单的记录: select c.* from hotel_info_ ...
- ajax实现长连接
项目需求:需要实时的读取日志文件里的数据,并且使用Echart实时更新折线图. 使用ajax实现客户端与服务器端的数据传输. 目的:我想通过ajax与服务器建立一个长连接,服务器会不断的传输数据给前台 ...
- jmeter循环控制器加jdbc req结果配合组合参数遍历
jdbc请求:jdbc sampler 保存结果中三个变量名 循环控制器:xhkzq 的循环次数填写:${其中一个变量名_#} 循环控制器里面:http sampler ,前置处理器,取消c ...
- Kubernetes之服务发现及负载Services
Service 概述 kubernetes 中的pod是有生生灭灭的,时刻都有可能被新的pod所代替,而不可复活(pod的生命周期).一旦一个pod生命终止,通过ReplicaSets动态创建和销毁p ...
- Entity Framework入门教程(19)---EF中使用事务
EF中使用事务 这节介绍EF6中事务的使用.EF core中事务的使用方式和EF6中一模一样. 1.EF中的默认的事务 默认情况下,当我们执行一个SaveChanges()方法时就会新建了一个事务,然 ...
- JN_0002:Win10禁止U盘拷贝文件的方法
1,在电脑桌面使用快捷键win键+r唤出运行窗口,在搜索框中输入gpedit.msc,然后点击确定. 2,打开的本地组策略编辑器中依次点击展开计算机配置—管理模块—系统,在系统下找到并选中可移动存储访 ...
- [数学笔记Mathematical Notes]1-调和级数发散的一个简单证明
定理. 调和级数 $\dps{\vsm{n}\frac{1}{n}}$ 是发散的. 证明. 设 $$\bex a_n=\sum_{k=1}^n\frac{1}{k}, \eex$$ 则 $a_n$ 递 ...
- ArcGis汇总篇
ArcGis-javascript-API下载 bigemap.太乐地图 可下载地图文件 用arcgis for js 可以河流流域水质图 ArcGis导出shp文件(dbf.prj.sbn.sbx. ...
- opensuse 使用xx-net
提示安装 [launcher][WARNING] import pynotify fail, please install python-notify if possible. gae_proxy][ ...
- Linux下间隔多少秒 (即以秒为单位) 去执行某条命令或某个shell脚本的操作方法【转】
在日常运维工作中, 经常会碰到以秒为单位去定时执行某些命令或监控脚本的需求. 说到定时任务就要用到crontab,通常来说,crontab的最小单位是分钟级别,要想实现秒级别的定时任务,就要进行特殊设 ...