설명
JAMS가 사소한 변환을 수행하도록 지시된 경우, 이것은 변환은 일반적으로 결과의 모든 일치를 결정합니다. 문제. 따라서 원래 모델 문의 일치 항목은 무시됩니다. 기고자: Steven Dirkse, 2021년 7월
소형 모델 유형 :슬롯 사이트
카테고리 : 슬롯 사이트 테스트 라이브러리
메인 파일 : emp33.gms
$title 'JAMS: 모델 문의 일치는 무시될 수 있습니다' (EMP33,SEQ=873)
$onText
JAMS가 사소한 변환을 수행하도록 지시된 경우
변환은 일반적으로 결과의 모든 일치를 결정합니다.
문제. 따라서 원래 모델 문의 일치 항목은 무시됩니다.
기고자: Steven Dirkse, 2021년 7월
$offText
스칼라
delta '기울기 요소 소비자 혜택' / 1e-1 /
감마 '소비자 혜택 지수' / 0.25 /
;
양수 변수 p '단가';
양의 변수 q '소비';
가변적 혜택 '소비자 혜택';
변수 z '소비자 목표';
방정식
베네데프
zDef '소비자 목표 정의'
pDefLin '선형 가격 함수';
;
beneDef.. q * [1-델타*(1+q)**감마] =E= 베네;
zDef.. bene - p*q =E= z;
pDefLin.. p =G= 0.5 + 0.1/72 * (q-33);
모델
m '생산자/소비자 균형' / beneDef, zDef, pDefLin.p /
;
nlp max z를 사용하여 m을 해결합니다.
abort$[m.modelStat > 2] 'NLP 모델이 해결되지 않았습니다!', m.modelStat;
abort$[m.solveStat <> %solveStat.normalCompletion%] 'NLP 모델이 해결되지 않았습니다!', m.solveStat;
스칼라 znlp, qnlp;
znlp = z.l;
qnlp = q.l;
파일 empinfo / '%emp.info%'/;
PUT empinfo "평형" /;
PUT "최대", z, q, 베네, p /;
PUT zDef, beneDef, pDefLin /;
닫아라;
emp를 사용하여 m을 해결합니다.
abort$[m.modelStat > 2] 'EMP 모델이 해결되지 않았습니다!', m.modelStat;
abort$[m.solveStat <> %solveStat.normalCompletion%] 'EMP 모델이 해결되지 않았습니다!', m.solveStat;
abort$[abs(z.l - znlp) >= 1e-4] 'NLP와 다른 EMP 목표';
abort$[abs(q.l - qnlp) >= 1e-4] 'NLP와 다른 EMP 소비';