- 1、本文档共4页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Dijkstra最短路径算法课程设计
二、Dijkstra最短路径算法
利用matlab软件实现Dijkstra最短路径算法
要求:
输入节点数量,随机产生网孔型(不完全网状网)网络拓扑(随机产生每条链路的度量)
计算并画出任意两点之间的最短路径,以及以任一点为根的最短路径树。
设计过程
一、 Dijkstra算法
首先,引进一个辅助向量D,它的每个分量D表示当前所找到的从始点v到每个终点vi的最短路径的长度。如D[3]=2表示从始点v到终点3的路径相对最小长度为2。这里强调相对就是说在算法过程中D的值是在不断逼近最终结果但在过程中不一定就等于最短路径长度。它的初始状态为:若从v到vi直接相连,则D为之间的直接权值;否则置D为∞。显然,长度为 D[j]=Min{D | vi∈V} 的路径就是从v出发的长度最短的一条最短路径。此路径为(v,vj)。假设该次短路径的终点是vk,则这条路径或者是(v,vk),或者是(v,vj,vk)。它的长度或者是从v到vk的弧上的权值,或者是D[j]和从vj到vk的弧上的权值之和。 一般情况下,假设S为已求得最短路径的终点的集合,则可证明:下一条最短路径(设其终点为X)或者是弧(v,x),或者是中间只经过S中的顶点而最后到达顶点X的路径。因此,下一条长度次短的最短路径的长度必是D[j]=Min{D | vi∈V-S} 其中,D或者是弧(v,vi)上的权值,或者是D[k](vk∈S)和弧(vk,vi)上的权值之和。
随机产生网络拓扑,随机产生两点之间的度量,若两点直接相连,给出一个随机数(在此随机取从1到20之间的某一个数)。
二、 程序设计
%Dijkstra/最短路径算法
%输入结点数量,随机产生网孔型(不完全网状网)网络拓扑(随机产生每条链路的度量)。
clear all
N=6 ;%输入结点的数量
net=zeros(N,N);
for i=1:N
for j=1:N
net(i,j)=randint(1,1,10);%随机产生每条链路的度量;
end
end
for i=1:N
net(i,i)=0;end
m=randint(1,1,N*(N-1)/2);
for k=1:m
i=randint(1,1,(N-1));
j=randint(1,1,(N-1));
net((i+1),(j+1))=Inf;
end
net=net+net;
neigh=zeros(N,N);
for i=1:N
for j=1:N
if(net(i,j)==inf)
neigh(i,j)=0;
else
neigh(i,j)=net(i,j);
end
end
end
netplot(neigh);title(随机产生网孔型网络拓扑)
%dijkstra 算法求任意两点之间的最短路径,以及任一点为根的最短路径树
%%%
s=1;e=3;%s 根节点;e 终结点,可以随便选取
%%%
n=size(net,1); % 邻接矩阵的行数n
D=net(s,:); % 邻接矩阵始结点行数据,也就是从s结点到其他结点的直接距离
path=[]; % 路径初始化
visit=ones(1,n); % 结点的可访问性
visit(s)=0; % 已经加入的点不可再访问,初始化的源节点不可访问
parent=zeros(1,n); % 经过的点
% the shortest distance
for i=1:n-1 %循环n-1次
temp=zeros(1,n); %临时存储
count=0;
for j=1:n
if visit(j)
temp=[temp(1:count) D(j)];
else
temp=[temp(1:count) inf];%到自身距离定义为无穷
end
count=count+1;
end
[value,index]=min(temp);%对每一次循环得到从始点到其它结点最短距离
j=index; visit(j)=0; %j为temp中最短距离的坐标,即
for k=1:n
if D(k)D(j)+net(j,k)%如果经过另一个结点到所求结点的更短距离,则用此距离替换原数据
D(k)=D(j)+net(j,k);
您可能关注的文档
- 2013电大西方行政学说选择填空题排序版.doc
- 2013电大生产与运作管理考试答案.doc
- 2013理综生物专练3.doc
- 2013绍兴市科研方法与论文写作实战试卷及答案必威体育精装版.doc
- 2013电大西方行政学说考试答案.doc
- 2013至2014年巢湖学院大一高数试卷.doc
- 2013级旅游管理专业人才培养方案-.doc
- 2013西南科大数据库原理试题库与解析.doc
- 2013财管第六章投资管理(第一次复习).doc
- 2013离散数学II1试卷B答案.doc
- 圆的标准方程高二上学期数学人教A版(2019)选择性必修一.pptx
- 第1课+文明的产生与早期发展+高一下学期统编版(2019)必修中外历史纲要下.pptx
- 第13课+当代中国的民族政策高二上学期历史统编版(2019)选择性必修1.pptx
- 贯彻新发展理念 高中政治统编版必修二.pptx
- 2025届新高考历史热点突破复习第二次世界大战与战后国际秩序的形成.pptx
- 两条直线的平行与垂直高二上学期数学北师大版(2019)选择性必修第一册.pptx
- 倾斜角与斜率高二上学期数学人教A版(2019)选择性必修1.pptx
- 第25课+中华人民共和国成立和向社会主义的过渡+高一上学期统编版(2019)必修中外历史纲要上.pptx
- 两条直线的交点坐标+高二上学期数学北师大版(2019)选择性必修第一册.pptx
- 第20课+五四运动与中国共产党的诞生+高一上学期统编版(2019)必修中外历史纲要上.pptx
最近下载
- 济南版(2024)初中生物学七年级上册《脊椎动物身体背部有脊柱》教学设计及反思.docx
- 中铁建工集团质量管理手册.pdf
- 二级中医医院评审细则解读院感部分.pptx
- 2024年迪瑞医疗分析报告:强化协同,仪器放量布局市场.pdf
- 部编版初中道德与法治九年级上册单元作业设计 (优质案例12页) .pdf
- 广东实验中学2023-2024学年八年级上学期期中考试语文试卷.docx VIP
- 2020年世界发展报告:全球价值链时代的贸易换发展.pdf VIP
- 湖北省水利工程重大设计变更报告编制大纲.pdf
- 2024高中地理教师课程标准考试模拟试卷及参考答案.docx VIP
- 《材料成型工艺学》全套教学课件.ppt
文档评论(0)