2017-07-20 2 views
0
set ORIG; 
set DEST; 
set LINKS within {ORIG,DEST}; 

printf {i in ORIG, j in DEST} "LINKS[%s,%s] = %g \n",i,j,LINKS[i][j]; 

data; 

set ORIG := GARY CLEV PITT; 
set DEST := FRA DET LAN WIN STL FRE LAF; 

set LINKS := 
    (GARY,*) DET LAN STL LAF 
    (CLEV,*) FRA DET LAN WIN STL LAF 
    (PITT,*) FRA WIN STL FRE; 

end; 

これは、このエラーメッセージを表示して停止します。GLPK:可変長のデータ配列へのアクセス

LINKSは、それが使用してアクセスできるように、私はLINKSを定義することができますどのように

を添字することはできませんLINKS[i][j]? GNU-ヘルプからいくつかのアドバイスを

答えて

0

、これはこの問題のためのより良い構文 のようだ:

set ORIG; 
set DEST; 

param LINKS{ORIG, DEST} default 0; 

for {i in ORIG, j in DEST} printf "LINKS[%s,%s] = %g \n",i,j,LINKS[i,j]; 

data; 

set ORIG := GARY CLEV PITT; 
set DEST := FRA DET LAN WIN STL FRE LAF; 


param LINKS : FRA DET LAN WIN STL FRE LAF := 
    GARY 1 2 3 4 5 6 . 
    CLEV . 2 . 4 . 6 . 
    PITT 1 2 3 4 5 6 7; 
end;