emppy1.gms : emp Python을 사용하여 평형 모델 테스트

설명

emp Python을 사용하여 평형 모델을 테스트합니다.

기여자: 김영대 (2018.10.26)

소형 모델 유형 :무료 슬롯


카테고리 : 무료 슬롯 테스트 라이브러리


메인 파일 : emppy1.gms

$title 'emp Python을 사용하여 평형 모델 테스트' (EMPPY1,SEQ=789)

$onText
emp Python을 사용하여 평형 모델을 테스트합니다.

기여자: 김영대 (2018.10.26)
$offText

$log --- Python 라이브러리 %sysEnv.GMSPYTHONLIB% 사용

$설정되지 않은 경우 TESTTOL $set TESTTOL 1e-3
스칼라 tol / %TESTTOL% /;
파일 opt / 'jams.opt' /;

i / 1*3 / 설정;
별칭(i,j);

변수 obj(i);
양의 변수 x(i);

방정식 defobj(i);

defobj(i)..
    obj(i) =E= x(i)*(1 - sum(j, x(j)));

모델 m / defobj /;

$onEcho > empinfo.txt
평형
최대 obj(i) st x(i), defobj(i)
$offEcho

$libInclude empmodel empinfo.txt

putclose opt '파일명 m.gms';
m.optfile = 1;

x.up(i) = 1;
emp를 사용하여 m을 해결합니다.

중단$[m.solvestat <> %solveStat.normalCompletion%]
     '잘못된 m.solvestat', m.solvestat;
중단$[m.modelstat <> %modelStat.locallyOptimal%]
     '잘못된 m.modelstat', m.modelstat;
abort$[ smaxi, abs(obj.l(i) - 0.062) > tol ] 'bad obj.l', obj.l;
abort$[ smaxi, abs(x.l(i) - 0.25) > tol ] 'bad x.l', x.l;

$onEcho > m_gms
***********************************************
* 무료 슬롯/JAMS가 2018년 10월 26일 23:27:18에 작성함
* 자세한 내용은 JAMS 옵션 "Dict"를 사용하세요.
***********************************************

변수 x4,x5,x6;

양수 변수 x4,x5,x6;

방정식 dL_dx4,dL_dx5,dL_dx6;

dL_dx4.. (-(1 - x4 - x5 - x6 - x4))/(1) =N= 0;

dL_dx5.. (-(1 - x4 - x5 - x6 - x5))/(1) =N= 0;

dL_dx6.. (-(1 - x4 - x5 - x6 - x6))/(1) =N= 0;

* 기본이 아닌 경계를 설정
x4.up = 1;
x5.up = 1;
x6.up = 1;

모델 m / dL_dx4.x4,dL_dx5.x5,dL_dx6.x6 /;

m.limrow=0; m.limcol=0;

MCP를 사용하여 m을 해결합니다.
$offEcho

무료 슬롯에 의해 작성된 'grep -v " 실행" m_gms > m.gms.want'
무료 슬롯" m.gms > m.gms.got'에 의해 작성된 'grep -v "를 실행합니다.
'=diff -I reslim -bw m.gms.want m.gms.got'을 실행합니다.
abort$errorlevel 'm.gms.want와 m.gms.got 파일이 다릅니다.';