日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

求带便函数权值的最短路径

發布時間:2025/4/5 编程问答 14 豆豆
生活随笔 收集整理的這篇文章主要介紹了 求带便函数权值的最短路径 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

function [distance,path]=zuiduanlujing(D,start1,terminal);
%求帶便函數權值的最短路徑
%嵌套調用函數
[B,F]=datainfun; ? ?%獲得路段距離和公路鐵路性質數據數據
for k=1:7
? ? 39+k
? ? for t=1:15
start1=39+k;
terminal=t;
D=B; ? ?% 賦值
%function [d,EE]=dijkstra(D,start1,end)
[m,n]=size(D);
path=[];
d=inf.*ones(1,m);
d(1,start1)=0; ? %用以標記此刻各頂點離集合距離,初始為inf
dd=zeros(1,m); ?%標記頂點集合,初始為零
dd(1,start1)=1; ?
ind=zeros(1,m); ? %給逆向路徑數組
y=start1;
length1=zeros(1,m); ?%定義初始的各位置的路徑長度(包含運輸費用的計算)
%DD=zeros(m,m);
%DD(y,y)=1;
time=0;
while length(find(dd==1))<m ?%當集合未包含所有的頂點時
? ? for i=1:m ? %以y為起始點時更新d(i)
? ? ? ? if dd(i)==0 ?
? ? ? ? ? ? temp=length1(i); ? %記錄此長度值
? ? ? ? ? ? if(F(y,i)==1)
? ? ? ? ? ? ? ? length1(i)=length1(y)+B(y,i); %計算長度
? ? ? ? ? ? else
? ? ? ? ? ? ? ? length1(i)=0; ? ?%鐵路運輸結束
? ? ? ? ? ? end
? ? ? ? ? ? t=d(i); %標記記錄
? ? ? ? ? ? % volum=(d(y)-fun(length(y))); %就算公路段前的運輸費
? ? ? ? ? ? d(i)=min(d(i),fun(length1(i)).*F(y,i)+(d(y)-fun(length1(y))*F(y,i))+D(y,i)*~F(y,i)); ?%更新tag,包含多方面
? ? ? ? ? ? if(t>d(i)) ?%若變化后d(i)值小于原來值
? ? ? ? ? ? ? ? ind(i)=y; ? %最短路徑的前一節點?
? ? ? ? ? ? else
? ? ? ? ? ? ? ? length1(i)=temp; ? ?%恢復長度
? ? ? ? ? ? end
? ? ? ? end
? ? end
? ? ddd=inf;
? ? for i=1:m
? ? ? ? if dd(i)==0&&d(i)<ddd ?%需要記錄所有值
? ? ? ? ? ? ddd=d(i); ? %有多個點時,取最后一個
? ? ? ? ? ? yy=i;
? ? ? ? end
? ? end
? ? %yy=find(d==ddd); ? ?%找到這樣點的坐標
? ?% counter=counter+1;
? ? %DD(y,yy(1,1))=counter;
? ? %DD(yy(1,1),y)=counter;
? ? y=yy;
? ? dd(1,y)=1;

end
here1=terminal;
? ? while 1 %用于輸出路徑
? ? ? ? path(end+1)=terminal;
? ? if ind(terminal)~=0
? ? ? ? terminal=ind(terminal);
? ? else
? ? ? ? break;
? ? end
? ? end
? ? path=fliplr(path); ? %正序輸出最短路徑
? ??
? ? distance=d(here1)
? ? end
end
end

總結

以上是生活随笔為你收集整理的求带便函数权值的最短路径的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。