Page 112 - 数学建模算法与应用
P. 112

Mathematical Modeling Algorithms and Applications
             数学建模算法与应用


                          [i,j] = find(s1 == q2 | s2 == q2);
                          s1 = [s1;i];
                          s2 = [s2;j];

                          w = w + pl;
                          k = k + 1;
                          T(q2,:) = inf;
                          T(:,q2) = inf;
                      end

                      E = [s1;s2];
                  end
                  3.Ford 最短路算法

                  该算法用于求解一个赋权图中 s 到 t 的最短路,并且对于权值的情况同样
             适用。
                  function [w,v] = Ford(W,s,t)
                      % W 为带权邻接矩阵,s 起点,t 终点

                      % 返回值 w 为最短路的权值之和,v 为最短路线上的顶点标号
                      n=length(W);
                      d=W(s,:); % d(v)=min{d(u)+w(u,v)} 的解,用 d 存放 vj 的初值为 W
             的第 s 行,以存放 d(vj),赋初值为 W 的第 s 行,以存放 d(vj)

                      v=s;
                      while true
                          b=d;
                          for i=1:n

                              b(i)=min(W(:,i)+d(i));
                          end
                          d=[d;b];

                          if all(d(end,:)==d(end-1,:)) % 找到最短路,跳出循环
                              break;
                          end
                      end



             102
   107   108   109   110   111   112   113   114   115   116   117