설명
이 간단한 비볼록 예제는 다음에서 빌려왔습니다. J. A. Mirrlees. 도덕적 해이와 관찰 불가능한 행동 이론: 파트 I. 경제 연구 검토, 66: 3-21, 1999. 기여자: Jan-H. Jagla, 2009년 1월
소형 모델 유형 :BP
카테고리 : 슬롯 EMP 라이브러리
메인 파일 : mirrlees.gms
$title 단순 비볼록 이중 레벨 프로그래밍 예제 (MIRRLEES,12)
$onText
이 간단한 비볼록 예제는 다음에서 차용되었습니다.
J. A. Mirrlees. 도덕적 해이와 관찰 불가능한 행동 이론:
파트 I. 경제 연구 검토, 66: 3-21, 1999.
기여자: Jan-H. 자글라, 2009년 1월
$offText
방정식
외부로비
내부 개체;
변수
밖으로
안으로;
양수 변수
엑스
와이;
스칼라 계수;
외부 개체.. out =e= sqr(y-2) + sqr(x-1);
innerobj.. in =e= -y*exp(-sqr(x+1)) - exp(-sqr(x-1));
모델 외부 / Outerobj /
내부 / 내부 obj /
emp / 외부, 내부 /;
* 모델을 다음과 같이 재구성하여 해결합니다.
* 평형 제약 조건이 있는 수학 프로그램(MPEC)
방정식 dLdy;
dLdy.. (1 + x)*exp(-sqr(1 + x))*y + (x - 1)*exp(-sqr(x - 1)) =N= 0;
모델 이중 레벨 / 외부, dLdy.y /;
mpec 최소화를 사용하여 이중 레벨을 해결합니다.
스칼라 out_l,x_l,y_l;
out_l = out.l;
x_l = x.l;
y_l = y.l;
* EMP를 사용하여 자동으로 재구성을 수행합니다.
$echo bilevel y min in x innerobj > "%emp.info%"
emp 최소화를 사용하여 emp를 해결합니다.
스칼라 tol /1e-6/;
중단$(abs(out_l - out.l)
+ 절대(x_l - x.l)
+ abs(y_l - y.l) > tol) '해법이 다릅니다';