설명
이 모델은 명령줄이 PreviousWork 매개변수가 예상대로 작동합니다. 기고자: Lutz Westermann, 2021년 2월
소형 모델 유형 :무료 슬롯
카테고리 : 무료 슬롯 테스트 라이브러리
메인 파일 : prevwork1.gms
$title 이전작업 테스트(PREVWORK1,SEQ=854)
$onText
이 모델은 명령줄이 올바른지 확인하기 위한 기본 테스트입니다.
PreviousWork 매개변수가 예상대로 작동합니다.
기고자: Lutz Westermann, 2021년 2월
$offText
$onEchoV > test.gms
$설정되지 않은 경우 모드 $set 모드 모두
$ifI %mode%==다시 시작 $goTo 다시 시작
세트
i '통조림 식물' / 시애틀, 샌디에이고 /
j 'markets' / 뉴욕, 시카고, 토피카 /;
매개변수
a(i) '경우에 따라 식물 i의 용량'
/시애틀 350
샌디에이고 600 /
b(j) '경우에 따라 시장 j의 수요'
/ 뉴욕 325
시카고 300
토피카 275 /;
테이블 d(i,j) '거리(천 마일)'
뉴욕 시카고 토피카
시애틀 2.5 1.7 1.8
샌디에고 2.5 1.8 1.4;
스칼라 f '1,000마일당 케이스당 운임(달러)' / 90 /;
매개변수 c(i,j) '케이스당 운송 비용(단위: 수천 달러)';
c(i,j) = f*d(i,j)/1000;
변수
x(i,j) '케이스의 선적 수량'
z '총 운송 비용(천 달러)';
양수 변수 x;
방정식
비용 '목적 함수 정의'
Supply(i) '공장 i의 공급 제한을 준수합니다.'
수요(j) '시장 j의 수요를 충족';
비용.. z =e= sum((i,j), c(i,j)*x(i,j));
공급(i).. sum(j, x(i,j)) =l= a(i);
수요(j)..sum(i, x(i,j)) =g= b(j);
모델 운송 / 모두 /;
$ifI %mode%==$exit 저장
$label 재시작
z를 최소화하는 lp를 사용하여 전송을 해결합니다.
x.l, x.m을 표시합니다.
$offEcho
$call.checkErrorLevel 무료 슬롯 test.gms lo=%무료 슬롯lo% --mode=all gdx=all
$call.checkErrorLevel 무료 슬롯 test.gms lo=%무료 슬롯lo% --mode=save s=1 이전 작업=1
$call.checkErrorLevel 무료 슬롯 test.gms lo=%무료 슬롯lo% --mode=restart r=1 gdx=restart
$call.checkErrorLevel gdxdiff all.gdx restart.gdx > %system.nullfile%
* 이제 문제가 될 수 있는 특정 접미사를 확인하세요.
$onEcho > genRestart.gms
변수 x;
방정식 e;
예.. x =e= 1;
모델 m /e/;
m.저장점 = 8;
m min x를 풀려면 lp를 사용하세요.
$offEcho
$onEchoV > cont.gms
디스플레이 x.l;
'rm -rf "%무료 슬롯scrDir%m_p.gdx"'를 실행합니다.
$offEcho
$call.checkErrorLevel 무료 슬롯 genRestart.gms s=1 이전 작업=1 a=c lo=%무료 슬롯lo%
$call.checkErrorLevel 무료 슬롯 cont.gms r=1 lo=%무료 슬롯lo%