설명
암시적 변수를 사용하여 소규모 평형 모델에서 JAMS 동작을 테스트합니다. 기고자: 김영대 및 Steve Dirkse, 2016년 12월
소형 모델 유형 :무료 슬롯
카테고리 : 무료 슬롯 테스트 라이브러리
메인 파일 : emp23.gms
$title '암시적 변수 처리에 대한 JAMS/EMP 테스트' (EMP23,SEQ=705)
$onText
암시적 변수를 사용하여 소규모 평형 모델에서 JAMS 동작을 테스트합니다.
기고자: 김영대 & Steve Dirkse, 2016년 12월
$offText
$설정되지 않은 경우 TESTTOL $set TESTTOL 1e-3
스칼라 tol / %TESTTOL% /;
파일 opt / 'jams.opt' /;
파일 정보 / '%emp.info%' /;
i 에이전트를 설정합니다 / 1*2 /;
* 생성되는 스칼라 파일은 변수 선언 순서에 따라 달라지며,
* 따라서 선언을 가볍게 변경하지 마십시오.
* 목적변수는 에이전트 간 공유변수입니다.
* 공유 구현을 위해 목적 변수를 암시적 변수로 설정했습니다.
* 목적변수.
변수
objExp(i)
객체
엑스
;
양의 변수 p;
방정식
defobjExp(i)
데포브
디플로
디펙스업
;
defobjExp(i)..
objExp(i) =E= sqr(p) - p - sqr(x) - x;
디플로..
x =G= -p;
디팩스업..
x =L=p;
나를 '명시적 공식'으로 모델링하세요. / defobjExp, defxlo, defxup /;
정보 '평형' 입력;
put / 'min', objExp('1'), p, defobjExp('1');
put / 'max', objExp('2'), x, defobjExp('2'), defxlo, defxup;
닫다;
putclose 선택
'딕트 explDict.txt' /
'파일명 expl.gms' ;
나.optfile = 1;
emp를 사용하여 문제를 해결하세요.
중단$[me.solvestat <> %solveStat.normalCompletion%]
'잘못된 me.solvestat', me.solvestat;
중단$[me.modelstat > %modelStat.locallyOptimal%]
'잘못된 me.modelstat', me.modelstat;
abort$[ abs(objExp.l('1')-0) > tol ] 'bad objExp.l("1")', objExp.l;
abort$[ abs(objExp.l('2')-0) > tol ] 'bad objExp.l("2")', objExp.l;
중단$[ abs(x.l+.5) > tol ] '잘못된 x.l', x.l;
abort$[ abs(p.l-.5) > tol ] '나쁜 p.l', p.l;
x.l = 0;
p.l = 0;
defxlo.m = 0;
defxup.m = 0;
$onEcho > expl_gms
***********************************************
* 무료 슬롯/JAMS가 2016년 12월 4일 16:32:21에 작성함
* 자세한 내용은 JAMS 옵션 "Dict"를 사용하세요.
***********************************************
변수 x3,x4,u3,u4;
음수 변수 u3;
양수 변수 x4;
양수 변수 u4;
방정식 e3,e4,dL_dx3,dL_dx4;
e3..0 =L= x3 + x4;
e4..0 =G= x3 - x4;
dL_dx3.. (-(-1 - 2*x3))/(1) + u3 + u4 =E= 0;
dL_dx4.. (-(-1 + 2*x4))/(-1) =G= 0;
모델 m / e3.u3,e4.u4,dL_dx3.x3,dL_dx4.x4 /;
m.limrow=0; m.limcol=0;
MCP를 사용하여 m을 해결합니다.
$offEcho
무료 슬롯에 의해 작성된 'grep -v "를 실행하십시오. expl_gms > expl.gms.want'
무료 슬롯에 의해 작성된 'grep -v "를 실행하십시오. expl.gms > expl.gms.got'
'=diff -I reslim -bw expl.gms.want expl.gms.got'을 실행합니다.
abort$errorlevel 'expl.gms.want와 expl.gms.got 파일이 다릅니다.';
$onEcho > expl_dict
* 무료 슬롯/JAMS가 2016년 12월 4일 16:32:21에 작성함
********************************************************************************
목차
1 EMP 정보 파일의 내용
2 처리된 EMP 정보
3 사전
3.1 제약
3.2 변수
********************************************************************************
1 EMP 정보 파일의 내용
---------------------------------
1:평형
2:최소 objExp('1') p defobjExp('1')
3:max objExp('2') x defobjExp('2') defxlo defxup
2 처리된 EMP 정보
--------------
3 사전
------------
3.1 제약
---------------
재구성된 defobjExp(1)
재공식화 defobjExp(2)
e3 디플로
e4 디팩스업
dL_dx3 신규
dL_dx4 신규
3.2 변수
--------------
재공식화 objExp(1)
재공식화 objExp(2)
x3 x
x4p
u3 새로운
u4 새로운