설명
팬텀 변수(즉, KKT 시 사라지는 변수)의 테스트 처리 조건이 형성됨) 이중 레벨 프로그램의 리더가 소유합니다. 기고자: Steve Dirkse, 2017년 2월
소형 모델 유형 :슬롯
카테고리 : 슬롯 테스트 라이브러리
메인 파일 : empbp06.gms
$title 리더가 소유한 팬텀 변수가 있는 이중 레벨 모델(EMPBP06,SEQ=716)
$onText
팬텀 변수(예: KKT 시 사라지는 변수)의 테스트 처리
조건이 형성됨) 이중 레벨 프로그램의 리더가 소유합니다.
기고자: Steve Dirkse, 2017년 2월
$offText
긍정적인 변수
v1 '외부'
v2 '외부 2'
vv '외부 보풀' / LO 0.52525, L 2.52525, UP 5.52525 /
y '내면의 사람'
;
변수
objout '외부 목표'
오브진 '내부 목표'
;
방정식
패배
정의하다
;
defout.. objout =e= 1/2*sqr(v1-4/5) + 1/2*sqr(v2-1/5) + 1/2*sqr(y-1);
정의.. objin =e= 1/2*sqr(y) - y - v1*y + 2*v2*y + 3.875 * vv;
v1.L = 0.75; v1.up = 1;
v2.L = 0.25; v2.up = 1;
y.up = 1;
모델 m / 모두 /;
$echo bilevel v1 v2 vv min objin * 정의 > "%emp.info%"
m us emp min objout을 해결하십시오.
abort$[abs(v1.L - 0.8) > 1e-4] '잘못된 v1.L', v1.L;
abort$[abs(v2.L - 0.2) > 1e-4] '잘못된 v2.L', v2.L;
abort$[abs( y.L - 1.0) > 1e-4] '나쁜 y.L', y.L;
스칼라 innerObj;
innerObj = 1/2*sqr(y.L) - y.L - v1.L*y.L + 2*v2.L*y.L + 3.875 * vv.L;
중단$[abs(objin.L - innerObj) > 1e-4] '잘못된 objIn.L', objIn.L, innerObj;