该楼层疑似违规已被系统折叠 隐藏此楼查看此楼

MATLAB中使用节约里程法,达到路径优化的目的。节约法的代码我有,可是看不太懂,求大神帮修改一下代码发我邮箱301327289@qq.com,或者帮我注释一下各代码是什么意思,真心求教,希望懂得大神帮忙。发不了附件,直接复制在这。我的问题如下:

各节点的距离和需求量见后两个表,有1.7t和3t的两种车型,要求用节约里程法在MATLAB中的优化结果,求大神帮助,有一份附件代码,看不太明白,求大神帮忙改成我这个问题,或是在那份代码注释一下每一句代码是什么意思 ,发回qq邮箱3013272894@qq.com。谢谢。

代码如下:

clear

A=[50 19 49 49 53 85 33 59 33 82 70;50 16 92 30 42 90 74 32 23 59 41;0 1.15 1.34 0.53 1.79 1.47 0.01 0.95 0.26 1.21 0.69];

rong=3;

m=size(A,2);

c=zeros(m,m);

for j=1:m

for i=(j+1):m

c(i,j)=sqrt((A(1,i)-A(1,j))^2+(A(2,i)-A(2,j))^2);

end

end

p=zeros(m-1,m-1);

for j=2:(m-1)

for i=(j+1):m

p(i-1,j-1)=c(i,1)+c(j,1)-c(i,j);

end

end

s=p(:);

[hs,wz]=sort(s,1,'descend');

hs(find(hs==0))=[];

for i=1:size(hs)

[sub(i,1),sub(i,2)]=ind2sub(size(p),wz(i)); %将P矩阵各元素索引转换成坐标,并存储到sub矩阵

end;

svt=[hs,sub];

route=zeros(m-1,m-1);

sv=0;

for j=1:m-1

for i=1:size(svt) %求从最大节约值开始,可一起配送的两个客户,作为初始解

if A(3,(svt(i,2)+1))+A(3,(svt(i,3)+1))<=rong

solut=[svt(i,2),svt(i,3)];

sv=sv+svt(i,1);

zhuang=A(3,(solut(1,1)+1))+A(3,(solut(1,2)+1));

ii=i;

break

end

end

for i=(ii+1):size(svt)

if (svt(i,2)==solut(1,1))&&(isempty(find(svt(i,3)==solut))==1)&&((A(3,(svt(i,3)+1))+zhuang)<=rong); %从最大的小于初始解对应的最大节约值对应的坐标判断(左坐标等于最优解的左坐标,并且右坐标不等于最优解的右坐标,并且容量不超)

solut=[svt(i,3),solut]; %如满足条件,将右坐标加到路径的左侧

sv=sv+svt(i,1);

zhuang=A(3,(svt(i,3)+1))+zhuang;

elseif (svt(i,2)==solut(1,length(solut)))&&(isempty(find(svt(i,3)==solut))==1)&&((A(3,(svt(i,3)+1))+zhuang)<=rong);

solut=[solut,svt(i,3)];

sv=sv+svt(i,1);

zhuang=A(3,(svt(i,3)+1))+zhuang;

elseif (svt(i,3)==solut(1,1))&&(isempty(find(svt(i,2)==solut))==1)&&((A(3,(svt(i,2)+1))+zhuang)<=rong);

solut=[svt(i,2),solut];

sv=sv+svt(i,1);

zhuang=A(3,(svt(i,2)+1))+zhuang;

elseif (svt(i,3)==solut(1,length(solut)))&&(isempty(find(svt(i,2)==solut))==1)&&((A(3,(svt(i,2)+1))+zhuang)<=rong);

solut=[solut,svt(i,2)];

sv=sv+svt(i,1);

zhuang=A(3,(svt(i,2)+1))+zhuang;

else continue

end

end

for i=size(svt):-1:1 %删除已经选到路径中的点

if ((isempty(find(svt(i,2)==solut))==0)||(isempty(find(svt(i,3)==solut))==0));

svt(i,:)=[];

else continue

end

end

route(j,(1:length(solut)))=solut; %将确定好的某一条路径存到route矩阵的一行中

if isempty(svt) %直到判断svt无元素,退出

break

end

end

for i=1:m-1 %判断route中没有的单一用户,增加一行,加入到route中

if (isempty(find(route(:)==i))==1)

route(j+1,1)=i;

j=j+1;

end

end

opt=2*sum(c(:,1))-sv;

plot(A(1,1),A(2,1),'s')

text(A(1,1),A(2,1),['(',num2str(A(1,1)),',',num2str(A(2,1)),')'])

hold on;

for i=2:m

plot (A(1,i),A(2,i),'o')

text(A(1,i),A(2,i),['(',num2str(A(1,i)),',',num2str(A(2,i)),')'])

hold on;

end

for i=1:m-1

line([A(1,1),A(1,route(i,1)+1)],[A(2,1),A(2,route(i,1)+1)])

for j=1:m-1

if route(i,j)~=0

line([A(1,route(i,j)+1),A(1,route(i,j+1)+1)],[A(2,route(i,j)+1),A(2,route(i,j+1)+1)])

end

end

end

matlab节约里程法_新手求大神指导,MATLAB中怎么使用节约里程法相关推荐

  1. python 单词拆音节_新手求大神carry!关于单词音节问题!求救!

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 def check_syllables(poem_lines, pattern, word_to_phonemes): r""&quo ...

  2. matlab求解复杂隐函数,MATLAB复杂隐函数求解!求大神指导!

    问题描述: MATLAB复杂隐函数求解!求大神指导! syms D1 D2 G1 G2 al E1 E2 Km w6 G1=10^(-5);G2=10^(-5); E1=2*(10^11);E2=2* ...

  3. MATLAB索引超出矩阵维度,求大神指点错误!

    MATLAB索引超出矩阵维度,求大神指点错误! MATLAB索引超出矩阵维度,求大神指点错误! 最近在做k均值动态聚类的时候,matlab提示索引超出矩阵维度,不知道问题出在哪了. 代码 N1 = 5 ...

  4. 遗传算法优化BP神经网络出现输入参数不足,是什么原因啊,求大神指导,代码如下

    用遗传算法优化BP神经网络,在加粗那行出现输入参数不足,是什么原因啊,求大神指导,代码如下 function err=Bpfun(x,P,T,hiddennum,P_test,T_test) fid= ...

  5. java日历打印出的格式不对_Java打印某年某月的日历 没有错误但是运行出的月份与实际不符 求大神指导...

    Java打印某年某月的日历 没有错误但是运行出的月份与实际不符 求大神指导 我看了一下日历,发现你打出来的其实是九月份而不是八月份,那么我猜在showPrint这里的第二个参数是从0开始的,即0~11 ...

  6. java计算器 运算符优先级_跪求大神帮忙,怎样在java 计算器中实现,四则运算优先级;...

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 代码如下,跪求大神补充 import java.awt.*; import java.awt.event.*; import java.awt.image ...

  7. python 扯线木偶_Python计算器求助~求大神指导~QAQ急!

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 from tkinter import * root = Tk() root.title('计算器') exp = StringVar() #用于在存储文 ...

  8. 请大神指导EGS5中DOSRZnrc的相关内容

    本人现在做蒙卡模拟方面的课题,其中涉及到EGS5中DOSRZnrc code模拟CT数据,我想了解一下这是代码的内容以及相关介绍,求相关大神帮忙解答

  9. matlab四条曲线围成面,matlab中怎么给四条曲线作出图例啊?求大神指导

    clear all: clc disp('插值求取平滑曲线后的数值' ) t = [5 10 15 20 30 40 60 80 120] ; A = [29.84 40.01 46.71 53.87 ...

  10. mysql 存byte数组中_新人求大神教教:如何把一个一维数组存入mysql 表格中

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 直接项目里找了一段代码,自己看吧 public BasicUser getUser(IUser user) throws Exception { Stri ...

最新文章

  1. linux内核丢弃udp报文,c++ Linux UDP数据包丢失的原因
  2. eclipse android logcat 只显示自己应用程序信息的设置方法
  3. maven,spring,mybatis集成错误
  4. (16)python_random学习笔记
  5. 你不了解的事,十三天精通爬虫分布式学习路线,赠教程
  6. 无线通信里的 UAV
  7. 简约竞聘个人简历自我介绍PPT模板
  8. 小结——scanf和scanf_s的区别以及最近练习的一些习题
  9. DropDownMenu下拉菜单
  10. 《麦肯锡工作法》读书分享
  11. 小白也能看懂的华为防火墙配置教程
  12. 数据结构与算法:实验报告(串及其应用)
  13. 基于Scrapy对更新后的Dmoz进行抓取(网上旧版本不靠谱)
  14. 【日记】c# 读取网页json数据
  15. 浪潮5280m4导轨安装_NF5280M4机架解密:拆装方便和稳定_浪潮 英信NF5280M4(Xeon E5-2620 v3/8GB/300GB*3/16*HSB)_服务器知识学堂-中关村在线...
  16. 在校大学生如何利用编程赚钱?
  17. Python中级 —— 01面向对象进阶
  18. 我很讨厌标题党,伸手党和杠精
  19. hive 如何解析包含 json 的字符串字段
  20. MSP430G2553 看门狗喂狗问题

热门文章

  1. 算法导论答案网Solutions to Introduction to Algorithms Third Edition_开源免费完整
  2. 61850协议服务器端开发,IEC61850中报告服务端开发
  3. 网络术语还在困扰你吗?
  4. 理论物理考研攻略!!!
  5. flash的计算机知识,Flash CS6计算机动画设计教程
  6. 王炸!!微软终于对 JDK 下手了…
  7. 多么乐alexa网站流量数据报告助手
  8. 【转】无线路由器密码破解
  9. class不生效 weblogic_weblogic部署常见问题
  10. Android中CheckBox与CompoundButton源码解析