emp33.gms : JAMS: 모델 문의 일치는 무시될 수 있습니다.

설명

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 소비';