설명
emp Python을 사용하여 simplevi.gms 예제를 공식화합니다. 기여자: 김영대 (2018.10.26)
소형 모델 유형 :슬롯 사이트 추천
카테고리 : 슬롯 사이트 추천 테스트 라이브러리
메인 파일 : emppy2.gms
$title 'emp Python을 사용하여 simplevi.gms 예제 공식화' (EMPPY2,SEQ=790)
$onText
emp Python을 사용하여 simplevi.gms 예제를 공식화합니다.
기여자: 김영대 (2018.10.26)
$offText
$log --- Python 라이브러리 %sysEnv.GMSPYTHONLIB% 사용
$설정되지 않은 경우 TESTTOL $set TESTTOL 1e-3
스칼라 tol / %TESTTOL% /;
파일 opt / 'jams.opt' /;
세트
나는 / i1, i2 /
J / j1 * j3 /
;
테이블 A(I,J)
j1 j2 j3
나는1 1 1
i2 1 1 ;
매개변수 b(I) /
i1 6
i2 9
/;
양의 변수
x(J) '원시 변수, perp에서 f(J)'
;
방정식
에프(J)
지(나)
;
F(J).. 2 * x(J) =n= 0 ;
g(I).. sum j, A(I,J)*x(J) =g= b(I) ;
모델 m / F, g/;
$onEcho > empfile.txt
vi F(J), x(J), g(I)
$offEcho
$libInclude empmodel empfile.txt
putclose opt '파일명 m.gms';
m.optfile = 1;
emp를 사용하여 m을 해결합니다.
중단$[m.solvestat <> %solveStat.normalCompletion%]
'잘못된 m.solvestat', m.solvestat;
중단$[m.modelstat <> %modelStat.optimal%]
'잘못된 m.modelstat', m.modelstat;
abort$[ abs(F.l('j1') - 2) > tol ] 'bad F.l("j1")', F.l;
abort$[ abs(F.l('j2') - 10) > tol ] 'bad F.l("j2")', F.l;
abort$[ abs(F.l('j3') - 8) > tol ] 'bad F.l("j2")', F.l;
abort$[ abs(g.l('i1') - 6) > tol ] 'bad g.l("i1")', g.l;
abort$[ abs(g.l('i2') - 9) > tol ] 'bad g.l("i2")', g.l;
abort$[ abs(x.l('j1') - 1) > tol ] 'bad x.l("j1")', x.l;
abort$[ abs(x.l('j2') - 5) > tol ] 'bad x.l("j2")', x.l;
abort$[ abs(x.l('j3') - 4) > tol ] 'bad x.l("j2")', x.l;
$onEcho > m_gms
***********************************************
* 슬롯 사이트 추천/JAMS가 2018년 10월 26일 23:38:39에 작성함
* 자세한 내용은 JAMS 옵션 "Dict"를 사용하세요.
***********************************************
변수 x1,x2,x3,u4,u5;
양수 변수 x1,x2,x3;
양수 변수 u4,u5;
방정식 e1,e2,e3,e4,e5;
e1..2*x1 - u4 =N= 0;
e2.. 2*x2 - u4 - u5 =N= 0;
e3..2*x3 - u5 =N= 0;
e4.. x1 + x2 =G= 6;
e5.. x2 + x3 =G= 9;
모델 m / e1.x1,e2.x2,e3.x3,e4.u4,e5.u5 /;
m.limrow=0; m.limcol=0;
MCP를 사용하여 m을 해결합니다.
$offEcho
슬롯 사이트 추천에 의해 작성된 'grep -v " 실행" m_gms > m.gms.want'
'grep -v " 슬롯 사이트 추천" m.gms > m.gms.got'을 실행합니다.
'=diff -I reslim -bw m.gms.want m.gms.got'을 실행합니다.
abort$errorlevel 'm.gms.want와 m.gms.got 파일이 다릅니다.';