下载此文档

最新精品实验7 最小树与最短路问题实验.doc


文档分类:通信/电子 | 页数:约4页 举报非法文档有奖
1/4
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/4 下载此文档
文档列表 文档介绍
实验7 最小树与最短路问题实验
1. 背景知识
Matlab是一个基于矩阵的工程计算软件,我们可以用Matlab来求解最短路问题。
WinQSB是Quantitative Systems for Business的缩写,WinQSB是一种教学软件,里面有大量的模型,对于非大型的问题一般都能计算,较小的问题还能演示中间的计算过程。我们用WinQSB来求解最小树和最短路问题。
2. 实验目的
(1)熟悉最小树与最短路问题的Matlab/WinQSB求解。
(2)通过求解一个最小树与最短路问题的建模和求解。
3. 工具及准备工作
(1)在开始实验前,需要回顾理论教材中有关最小树与最短路问题的内容。
(2)准备一台安装了Matlab和WinQSB软件的电脑。
4. 实验内容与步骤
例题1
(1)模型1(教材第308页例11)如下:
(2)求解思想:根据dijkstra算法计算。
(3)Matlab求解
()在Matlab的编辑窗口中输入以下内容:
% a=[0 6 3 1 inf inf inf inf inf;inf 0 inf inf 1 inf inf inf inf;
% inf 2 0 2 inf inf inf inf inf;inf inf inf 0 inf 10 inf inf inf;
% inf inf inf 6 0 4 3 6 inf;inf inf inf inf 10 0 2 inf inf;
% inf inf inf inf inf inf 0 4 inf;
% inf inf inf inf inf inf inf 0 inf;
% inf inf inf inf 2 inf inf 3 0]
function [mindistance,prepoint,endpointdistance,endpointpath]=dijkstra(a,endpoint)
n=size(a,1);
checkedpoints=zeros(1,n);
checkedpoints(1)=1;
mindistance=inf(1,n);
mindistance(1)=0;
prepoint=zeros(1,n);

while sum(checkedpoints)<n
findminpoint=0;
findminpointmindistance=inf;
for i=1:n
if checkedpoints(i)==1
for j=1:n
if ((checkedpoints(j)==0)&&(mindistance(j)>=mindistance(i)+a(i,j)))
mindistance(j)=mindistance(i)+a(i,j);
if a(i,j)<inf
prepoint(j)=i;
end
if mindistance(j)<=findminpointmindistance
findminpointmindistance=mindistance(j);
findminpoint=j;
end
end
end
end
end
checkedpoints(findminpoint)=

最新精品实验7 最小树与最短路问题实验 来自淘豆网m.daumloan.com转载请标明出处.

非法内容举报中心
文档信息
  • 页数4
  • 收藏数0 收藏
  • 顶次数0
  • 上传人908163988
  • 文件大小0 KB
  • 时间2014-12-30
最近更新