交通分配之随机配流算法matlab源码(含最短路径算法).docxVIP

  • 23
  • 0
  • 约2.9千字
  • 约 9页
  • 2020-03-13 发布于江西
  • 举报

交通分配之随机配流算法matlab源码(含最短路径算法).docx

本文档含两个 m 文件 dial.m 和 dijkstra1.m ,dial 需要调用 dijkstra1。 算例如下: 算法如下: Dial.m edge = [ 1 1 2 2 3 4 4 5 5 6 7 8 ;... 2 4 3 5 6 5 7 6 8 9 8 9 ;... 2 2 2 2 2 1 2 1 2 2 2 2 ; ]; n=9; weight=inf*ones(n, n); Q = 1000; start =1 ; endn = 9; =zeros(1,n); = zeros(1,n); theta = 1; L = zeros(n); OD= zeros(n); %==================================================================== for i=1:n weight(i, i)=0; end for i=1:size(edge,2) weight(edge(1, i), edge(2, i))=edge(3, i); end Lmin = zeros(1,n); for i=1: n [dis, path]=dijkstra1(weight, i, 9) ; s(i) = dis; % 任意节点到终点 s 的最小时间 [dis, path]=dijkstra1(weight, 1, i) ; r(i) =dis; % 起点 r 到任意节点最小时间 end for i = 1 : n for j = 1:n if weight(i,j) 0 weight(i,j) inf r(i) r(j) s(i) s(j) L(i,j) = exp( theta *(r(j) -r(i) -weight(i,j) )) ; %所有路段似然值 end end end ax =2000; temp =0 ; tempr =zeros(1,n); rr= zeros(1,n); rr = r ; % 出发节点 i 排序 for i =1 :n Min = 2000; for j= 1 :n if rr(j) Min Min = rr(j); temp = j ; end end rr(temp)= Max; tempr(i) =temp; end LW = zeros(n); % 前向计算路段权重 for i = 1 : n for j = 1 :n if i == start LW (tempr(i),j)= L(tempr(i),j) ; else sumlw = 0; for tempi =1 :9 sumlw = sumlw +LW(tempi,tempr(i) ); end LW (tempr(i),j)= L(tempr(i),j)*sumlw; end end end tempr LW Max =2000; temp =0; temps =zeros(1,n); ss = s ; % 到达节点 j 排序 for i =1 :n Min = 2000; for j= 1 :n if ss(j) Min Min = ss(j); temp = j ; end end ss(temp)= Max; temps(i) =temp; end temps % 反向装载流量 for j = 1 : n tempOD =0; for tempi =1 :9 if OD(temps(j),tempi ) 0 || OD(temps(j),tempi ) ==0 tempOD = tempOD+OD(temps(j),tempi ); end end for i = 1 :n sumlw = 0; if temps(j)== endn for tempi =1 :9 sumlw = sumlw +LW(tempi,temps(j) ); end OD(i,temps(j))= Q* LW(i,temps(j))/sumlw ; else for tempi =1 :9 sumlw = sumlw +LW(tempi,temps(j) ); end OD(i,temps(j)) = LW(i,temps(j))*tempOD/ sumlw ; end end end OD function [distance,path]=dijkstra1(A,s,e) % [DISTANCE,PATH]=DIJKSTRA(A,S,E) % returns the distance and path between the start node and the end node. % % A: adjcent matrix % s: start node % e: end

文档评论(0)

1亿VIP精品文档

相关文档