WuSiYang@001025 2020-02-14 01:54
浏览 267

Matlab 中实现模拟退火算法出现索引大于矩阵维度问题

在这个模拟退火算法中,我已经得出了距离d矩阵,然后利用其进行蒙特罗算法和模拟退火算法。代码是一本书上的,对于自己的数据进行了部分修改,一直出现索引大于矩阵维度的错误。代码如下:
d=load('data.txt');
path=[];long=inf;
rand('state',sum(clock));

for j=1:1000

path0=[1 1+randperm(50),52]; temp=0;
for i=1:51
temp=temp+d(path0(i),path0(i+1));
end
if temp<long
path=path0; long=temp;
end
end
e=0.1^30;L=20000;at=0.999;T=1;
for k=1:L

c=2+floor(50*rand(1,2));

c=sort(c); c1=c(1);c2=c(2);

df=d(path(c1-1),path(c2))+d(path(c1),path(c2+1))-d(path(c1-1),path(c1))-d(path(c2),path(c2+1));
if df path=[path(1:c1-1),path(c2:-1:c1),path(c2+1:52)]; long=long+df;
elseif exp(-df/T)>rand
path=[path(1:c1-1),path(c2:-1:c1),path(c2+1:52)]; long=long+df;
end
T=T*at;
if T<e
break;
end
end
path, long
xx=sj(path,1);yy=sj(path,2);
plot(xx,yy,'-*')

其中d为52×52矩阵,大部分数是inf,其它的是实数。求解答

  • 写回答

0条回答 默认 最新

    报告相同问题?

    悬赏问题

    • ¥15 #MATLAB仿真#车辆换道路径规划
    • ¥15 java 操作 elasticsearch 8.1 实现 索引的重建
    • ¥15 数据可视化Python
    • ¥15 要给毕业设计添加扫码登录的功能!!有偿
    • ¥15 kafka 分区副本增加会导致消息丢失或者不可用吗?
    • ¥15 微信公众号自制会员卡没有收款渠道啊
    • ¥100 Jenkins自动化部署—悬赏100元
    • ¥15 关于#python#的问题:求帮写python代码
    • ¥20 MATLAB画图图形出现上下震荡的线条
    • ¥15 关于#windows#的问题:怎么用WIN 11系统的电脑 克隆WIN NT3.51-4.0系统的硬盘