empbp06.gms : 리더가 소유한 팬텀 변수가 있는 이중 레벨 모델

설명

팬텀 변수(즉, 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;