打字猴:1.70100995e+09
1701009950 ②是满足(i)的尽可能小的权。
1701009951
1701009952 ③当第(2)步不能继续执行时,则停止。
1701009953
1701009954 采用计算机,MATLAB编程如下:
1701009955
1701009956     %避圈法    clc %清屏    clear all; %删除workplace变量    close all; %关掉显示图形窗口    b=[1 2 1;        1 3 4;        2 3 2;        2 4 3;        2 5 5;        3 4 1;        3 5 3;        4 5 2]    [T,v,c]=kruskal(b)
1701009957
1701009958 其中Kruskal算法脚本文件如下:
1701009959
1701009960     %Kruskal算法    %b-图的边权矩阵    %T-最小生成树的边集合    %v-最小生成树的邻接矩阵    %c-最小生成树的权    %j-迭代的次数    %k-已经被选入生成树的边数    function [T,v,c]=kruskal(b)    %根据边权矩阵求出图的边数    m=size(b,1);     %根据边权矩阵求出图的顶点数,注意此处顶点的标号需要以自然数序    n=max(b(1:2*m));     %整理边权矩阵让其按照权值由小到大的次序重新排列    [B,index]=sortrows(b,3);    B=B’;    %数据的初始化    t=1:n;    k=0;    T=[];    c=0;    %更新T,c,t(i)    for i=1:m        if t(B(1,i))~=t(B(2,i))  %判断第i条边是否与树中的边形成圈            k=k+1;            T(1:2,k)=B(1:2,i);            c=c+B(3,i);            tmin=min(B(1,i),B(2,i));            tmax=max(B(1,i),B(2,i));            for j=1:n                if t(j)==tmax                    t(j)=min(tmin,t(tmin));                end            end        end        if k==n-1            break;        end    end    %根据最小生成树的边集合构造邻接矩阵    v=zeros(n);    k=size(T,2);    for i=1:k        v(T(2*i-1),T(2*i))=1;        v(T(2*i),T(2*i-1))=1;    end
1701009961
1701009962 运行程序输出结果如下:
1701009963
1701009964     b =         1     2     1         1     3     4         2     3     2         2     4     3         2     5     5         3     4     1         3     5     3         4     5     2    T =         1     3     2     4         2     4     3     5    v =         0     1     0     0     0         1     0     1     0     0         0     1     0     1     0         0     0     1     0     1         0     0     0     1     0    c =         6
1701009965
1701009966 由结果可知,最小树模型为:
1701009967
1701009968
1701009969
1701009970
1701009971 由此可得到最小树模型如图8-21所示。
1701009972
1701009973
1701009974
1701009975
1701009976 图8-21 最小树模型
1701009977
1701009978 最小树应用比较广泛,在电网、互联网结构及石油管道中,为了保证连接所有节点所使用材料最少,即可用最小树模型,这样求解的结果能够实现最优化求解。因此最小树模型应用是数学理论结合实际应用的典型代表。
1701009979
1701009980
1701009981
1701009982
1701009983 我和数学有约:趣味数学及算法解析 [:1701004266]
1701009984 我和数学有约:趣味数学及算法解析 8.6 最短路问题
1701009985
1701009986 【问题】何谓最短路?
1701009987
1701009988 【分析】
1701009989
1701009990 最短路问题(short-path problem):若网络中的每条边都有一个数值(长度、成本和时间等),则找出两节点(通常是源节点和目标节点)之间总权和最小的路径就是最短路问题。
1701009991
1701009992 最短路问题是网络理论解决的典型问题之一,可用来解决管路铺设、线路安装、厂区布局和设备更新等实际问题。
1701009993
1701009994
1701009995
1701009996
1701009997
1701009998 首先假设图的表述为:G=(V,E,W),其中顶点集,即顶点的个数|V|=p。wij表示边(vi,vj)的权,且需要满足非负条件。如果,则令。最短路问题即为求G中v1到其他各顶点的最短路径。用d(vj)表示从v1到vj的只允许经过已选出顶点的最短路径的权值。
1701009999
[ 上一页 ]  [ :1.70100995e+09 ]  [ 下一页 ]