回覆列表
  • 1 # 風吹向半島薄荷微

    請參考:(10個點的最短路徑),源頂點編號為10,

    !最短路問題;

    model:

    data:

    n=10;

    enddata

    sets:

    cities/1..n/:F;!10個城市;

    roads(cities,cities)/

    1,21,3

    2,42,52,6

    3,43,53,6

    4,74,8

    5,75,85,9

    6,86,9

    7,10

    8,10

    9,10

    /:D,P;

    endsets

    data:

    D=

    65

    369

    7511

    91

    875

    410

    5

    7

    9;

    enddata

    F(n)=0;

    @for(cities(i)|i#lt#n:

    F(i)=@min(roads(i,j):D(i,j)+F(j));

    );

    !顯然,如果P(i,j)=1,則點i到點n的最短路徑的第一步是i-->j,否則就不是。

    由此,我們就可方便的確定出最短路徑;

    @for(roads(i,j):

    P(i,j)=@if(F(i)#eq#D(i,j)+F(j),1,0)

    );

    end

    結果是,

    F(1)17.00000

    F(2)11.00000

    F(3)15.00000

    F(4)8.000000

    F(5)13.00000

    F(6)11.00000

    F(7)5.000000

    F(8)7.000000

    F(9)9.000000

    F(10)0.000000

  • 中秋節和大豐收的關聯?
  • 形容女人走路的成語?