2011-09-21 5 views
2

GAMS에서 3 차원 테이블에 값을 지정하고 싶습니다. 하지만 Matlab처럼 작동하지 않는 것 같습니다 ..... 행운을 빌어 요? 다음과 같이 코드이며, 문제는 지난 몇 줄에있다 : 표에 반대GAMS, 매트릭스 직접 지정

Sets 
     n   nodes      /Sto , Lon , Par , Ber , War , Mad , Rom/
     i   scenarios     /1 * 4/
     k   capacity level   /L, N, H/; 

alias(n,m); 

Table balance(n,i) traffic balance for different nodes 
     1  2  3  4 
Sto  50  50  -50  -50 
Lon  -40  40  -40  40 
Par  0  0  0  0 
Ber  0  0  0  0 
War  40  -40  40  -40 
Mad  0  0  0  0 
Rom  -50  -50  50  50 ; 

Scalar r fluctuation rate of the capacity level 
/0.15/; 

Parameter p(k) probability of each level 
/L 0.25 
    N 0.5 
    H 0.25/; 

Table nor_cap(n,m) Normal capacity level from n to m 
      Sto Lon  Par  Ber  War  Mad  Rom 
Sto  0  11  14  25  30  0  0 
Lon  11  0  21  0  0  14  0 
Par  14  21  0  22  0  31  19 
Ber  25  0  22  0  26  0  18 
War  30  0  0  26  0  18  22 
Mad  0  14  31  0  18  0  15 
Rom  0  0  19  18  22  15  0 ; 

Table max_cap(n,m,k) capacity level under each k 
max_cap(n,m,'N')=nor_cap(n,m) 
max_cap(n,m,'L')=nor_cap(n,m)*(1-r) 
max_cap(n,m,'H')=nor_cap(n,m)*(1+r); 

답변

0

3-D 매트릭스의 마지막 할당이 매개 변수를 사용하여 수행해야합니다. 일반적으로 TABLE은 매우 제한적이라는 점도 주목할 것입니다 (2 차원, 텍스트 내부의 텍스트 입력). xls 또는 csv 파일을로드하기 위해 $ GDXIN (또는 EXECUTE_LOAD) 및 일부 GAMS 유틸리티를 고려할 수 있습니다.

MATLAB과 GAMS 모두의 사용자로서 GAMS는 모든 배열의 "색인"에 의존하지만, 그렇지 않으면 매우 유사 할 수 있습니다. 귀하의 경우 max_cap (n, m, k)는 각 용량 수준 시나리오에서 from_city와 to_city 사이의 최대 용량과 같을 것입니다. 매트릭스는 SCALAR를 포함하여 n 차원 (인덱스 된) 매트릭스가 될 수있는 파라미터로 선언되어야합니다.

GAMS 메일 링리스트를 사용해보십시오. 실력이 빠른 GAMS 사용자는 전 세계적으로 수천 명을 넘을 수 없으므로 StackOverflow에 대한 빠른 답변을 찾기가 어려울 수 있습니다. 보다 일반적인 언어이기 때문입니다.