图论模型迪杰斯特拉算法
生活随笔
收集整理的這篇文章主要介紹了
图论模型迪杰斯特拉算法
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
一、步驟
二、MATLAB執行代碼
tulun1.m weight= [0 2 8 1 Inf Inf Inf Inf Inf Inf Inf;2 0 6 Inf 1 Inf Inf Inf Inf Inf Inf;8 6 0 7 5 1 2 Inf Inf Inf Inf;1 Inf 7 0 Inf Inf 9 Inf Inf Inf Inf;Inf 1 5 Inf 0 3 Inf 2 9 Inf Inf;Inf Inf 1 Inf 3 0 4 Inf 6 Inf Inf;Inf Inf 2 9 Inf 4 0 Inf 3 1 Inf;Inf Inf Inf Inf 2 Inf Inf 0 7 Inf 9;Inf Inf Inf Inf 9 6 3 7 0 1 2;Inf Inf Inf Inf Inf Inf 1 Inf 1 0 4;Inf Inf Inf Inf Inf Inf Inf 9 2 4 0;]; [dis, path]=dijkstra(weight,1, 11)dijkstra.m function [min,path]=dijkstra(w,start,terminal) n=size(w,1); label(start)=0; f(start)=start; for i=1:nif i~=startlabel(i)=inf; end, end s(1)=start; u=start; while length(s)<nfor i=1:nins=0;for j=1:length(s)if i==s(j)ins=1;end, endif ins==0v=i;if label(v)>(label(u)+w(u,v))label(v)=(label(u)+w(u,v)); f(v)=u;end, end, end v1=0;k=inf;for i=1:nins=0;for j=1:length(s)if i==s(j)ins=1;end, endif ins==0v=i;if k>label(v)k=label(v); v1=v;end, end, ends(length(s)+1)=v1; u=v1; end min=label(terminal); path(1)=terminal; i=1; while path(i)~=startpath(i+1)=f(path(i));i=i+1 ; end path(i)=start; L=length(path); path=path(L:-1:1);總結
以上是生活随笔為你收集整理的图论模型迪杰斯特拉算法的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Linux debian安装PyChar
- 下一篇: 《数据结构与算法分析-C语言描述》习题2