2017-11-20 27 views
0

GAMS에서 3 회의 시나리오를 실행하고 싶습니다. GAMS에서 3 개의 임의로 선택한 요소 각각을 저장하려고합니다. 코드 "를 .gdx 파일에 추가합니다. 각 항목은 루프에서 다음 임의로 생성 된 출력으로 덮어 쓰지 않습니다. 이 무작위로 생성 된 출력을 루프의 단일 output.gdx 파일에 저장할 수 있도록이 덮어 쓰기를 방지하려면 어떻게해야합니까? - 세트 "코드"의 마지막 (3) 무작위로 선택된 요소GAMS : 루프에서 생성 된 출력을 이전 항목을 덮어 쓰지 않고 단일 .gdx 파일에 저장합니다.

SET 
     codes /aaa, aab, aac, aad, aae, aaf, aag, aah, aaj, aak, aal/ 
     selected(codes); 

$gdxout outputs 
loop((1,3), 
randnumber = uniformint(1,11); 
selected(codes)=ord(codes)=randnumber; 
execute_unload 'output.gdx',selected; 
display selected; 
); 
$gdxout 

내 코드의 결과는 위의 나에게 단 1 항목과 .gdx 파일을 제공합니다 다음 지금까지 내 코드입니다. 이것에 대한 약간의 도움은 깊이 감사 할 것입니다.

답변

1

당신은 루프를 실행하는 동안 매개 변수에 결과를 저장하고이 같은 말에 한 번에 모든 것을 수출 할 수있는 별도의 "시나리오 인덱스"를 사용할 수는 :

SET 
     codes /aaa, aab, aac, aad, aae, aaf, aag, aah, aaj, aak, aal/ 
     scenario /1*3/; 

scalar 
     randnumber; 

parameter 
     selected(scenario,codes); 

loop(scenario, 
    randnumber = uniformint(1,11); 
    selected(scenario,codes)=ord(codes)=randnumber; 
); 

execute_unload 'output.gdx',selected; 
display selected; 

나는이 도움이 도움이! 루츠