logo

您所在位置网站首页 > 海量文档  > 专业论文 > 论文指导设计

MATLAB算法求解最短路问题.doc 14页

本文档一共被下载: ,您可全文免费在线阅读后下载本文档。

  • 支付并下载
  • 收藏该文档
  • 百度一下本文档
  • 修改文档简介
全屏预览

下载提示

1.本站不保证该用户上传的文档完整性,不预览、不比对内容而直接下载产生的反悔问题本站不予受理。
2.该文档所得收入(下载+内容+预览三)归上传者、原创者。
3.登录后可充值,立即自动返金币,充值渠道很便利
组合优化实验报告 实验序号: 日期: 班级 姓名 学号 实验名称 最短路问题 实验所用软件及版本 Matlab R2008b 1、实验目的 1.掌握最短路问题的一种求解算法,并能编程实现该算法. 2、实验内容 1.(4分)如图1所示,节点1、2、3的坐标分别为(1,1)、(2,2.3)、(3.1,0.9),根据各节点的坐标用matlab在2维坐标上画出3个节点. 2、(4分)用matlab编程求出图1中任意两个节点之间的距离,并用邻接矩阵A存储并输出邻接矩阵A.邻接矩阵A举例如下 3、(4分)根据邻接矩阵A编程求解出节点1到节点2和节点3的最短路,并画出最短路的树形图,假设如图2 4.(8分)附件“50node.txt”(数据来源于贝尔实验室)为50个城市的坐标,编程求解由第1个城市到其它各城市的最短路,给出最短路的树形图. 3、详细设计 题1 1).源代码: a=[1 1;2 2.3;3.1 0.9];% node坐标矩阵 plot(a(:,1),a(:,2),'o')%画图 2).运行结果: 题2 (1).源代码: a=[1 1;2 2.3 ;3.1 0.9]; [X,Y]=size(a); h = meshgrid(1:X);%meshgrid是MATLAB中用于生成网格采样点的函数 A= reshape(sqrt(sum((a(h,:)-a(h',:)).^2,2)),X,X);% A(find(A==0))=inf%构造权矩阵A (2)运行结果: A = Inf 1.6401 2.1024 1.6401 Inf 1.7804 2.1024 1.7804 Inf 题3 (1).源代码: function [P,D]=dijkstra_zd(A,sv) clear clc %Dijkstra法求解最短路 %A为邻接矩阵; %sv为寻求最短路的起始点 %P为所有点的P标号,即路权值 %D为sv到所有结点的最短路径矩阵 clear clc a=[1 1;2 2.3 ;3.1 0.9] [X,Y]=size(a); h = meshgrid(1:X);%meshgrid是MATLAB中用于生成网格采样点的函数 A= reshape(sqrt(sum((a(h,:)-a(h',:)).^2,2)),X,X);% A(find(A==0))=inf;%构造权矩阵A [n,n]=size(A); sv=1; s=sv; T=inf.*ones(1,n);%T标号初始化 P=inf.*ones(1,n);%P标号初始化 Tv=1:1:n;%具有T标号的点,初始时,所有点均为T标号 v=zeros(1,n);%结点的前驱,初始时,均为0 Tm=zeros(n,n);%所有点从P标号变为T标号的过程矩阵 P(s)=0; for i=1:n%将所有结点从P标号变为T标号的过程 Pv(i)=s;%Pv具有P标号的结点 Tv=Tmark(Tv,s);%删去具有P标号的结点 Tm(s,:)=A(s,:); for k=Pv%将具有P标号的点赋值无穷大,从而不影响后面的程序取最小值 Tm(s,k)=inf; T(k)=inf; end for k=Tv%一次修改P标号点所对应的T标号点的T标号 Tm(s,k)=Tm(s,k)+P(s); end for k=Tv [x,val]=min([T(k),Tm(s,k)]); T(k)=x;%二次修改P标号点所对应的T标号点的T标号 if val==2 v(k)=s;%修改P标号点所对应的T标号点的前驱 end end [x,val]=min(T);%寻找P标号点 if x==inf break; end s=val; P(s)=x;%修改P标号 end %下面求解从sv到各点的最短路矩阵 aad=zeros(1,n);%最短路临时存储向量 for i=n:-1:1 w=i; for k=1:n%将sv到i点的最短路倒序存储在aad中

发表评论

请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
用户名: 验证码: 点击我更换图片

“原创力文档”前称为“文档投稿赚钱网”,本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有【成交的100%(原创)】。原创力文档是网络服务平台方,若您的权利被侵害,侵权客服QQ:3005833200 电话:19940600175 欢迎举报,上传者QQ群:784321556