flds911.gms : Princeton 이중레벨 최적화 예시 9.1.1

설명

로컬 및 글로벌 최적화 테스트 문제 핸드북의 테스트 문제 9.2.2
테스트 문제 9.1.1 onhttp://titan.princeton.edu/TestProblems/chapter9.html참조:

Floudas, C A, Pardalos, PM, Adjiman, C S, Esposito, W R, Gumus, Z H, Harding,
S T, Klepeis, J L, Meyer, CA 및 Schweiger, CA, 테스트 문제 핸드북
로컬 및 글로벌 최적화. 클루어 학술 출판사, 1999

Clark, PA 및 Westerberg, AW, 정상 상태 화학을 위한 이중 레벨 프로그래밍
공정설계-i. 기본 및 알고리즘. 계산. 화학. 영어 14(1990), 87-97.

참고:

웹상의 문제 9.1.1은 해결책을 제공합니다(y1=4, y2=2, x=5, z=-13).
기본(모두 0) 초기 지점에서 시작할 때.
그러나 KKT 조건은
  kt2.. 4*lb('2') - 2*lb('2') - 3*lb('3') =e= 0;
정확하지 않습니다.  방정식 c1-c3과 일치하지 않습니다.  대신에
  kt2.. 4*lb('1') - 2*lb('2') - 3*lb('3') =e= 0;
이러한 변경으로 모델은 해를 제공합니다(y1=4, y2=6, x=6, z=-6).
기본(모두 0) 초기 지점에서 시작할 때.  얻으려면
z=-13인 솔루션에서는 x, y1, y2에 대한 초기 값을 설정하는 것으로 충분합니다.
아래에서 확인하겠습니다.

우리는 원본 참조를 확인하여 이를 확인하지 않았습니다!

기여자: Alex Meeraus 및 Jan-H. Jagla, 2009년 12월

소형 모델 유형 :BP


카테고리 : 슬롯 무료체험 EMP 라이브러리


메인 파일 : flds911.gms

$title Princeton 이중 레벨 최적화 예 9.1.1 (FLDS911,SEQ=27)

$onText

  로컬 및 전역 최적화 테스트 문제 핸드북의 테스트 문제 9.2.2
  http://titan.princeton.edu/TestProblems/chapter9.html에서 문제 9.1.1을 테스트하세요.

참고자료:

Floudas, C A, Pardalos, PM, Adjiman, C S, Esposito, W R, Gumus, Z H, Harding,
S T, Klepeis, J L, Meyer, CA 및 Schweiger, CA, 테스트 문제 핸드북
로컬 및 글로벌 최적화. 클루어 학술 출판사, 1999

Clark, PA 및 Westerberg, AW, 정상 상태 화학을 위한 이중 레벨 프로그래밍
공정설계-i. 기본 및 알고리즘. 계산. 화학. 영어 14(1990), 87-97.

참고:

웹상의 문제 9.1.1은 해결책을 제공합니다(y1=4, y2=2, x=5, z=-13).
기본(모두 0) 초기 지점에서 시작할 때.
그러나 KKT 조건은
  kt2.. 4*lb('2') - 2*lb('2') - 3*lb('3') =e= 0;
정확하지 않습니다.  방정식 c1-c3과 일치하지 않습니다.  대신에
  kt2.. 4*lb('1') - 2*lb('2') - 3*lb('3') =e= 0;
이러한 변경으로 모델은 해를 제공합니다(y1=4, y2=6, x=6, z=-6).
기본(모두 0) 초기 지점에서 시작할 때.  얻으려면
z=-13인 솔루션에서는 x, y1, y2에 대한 초기 값을 설정하는 것으로 충분합니다.
아래에서 확인하겠습니다.

우리는 원본 참조를 확인하여 이를 확인하지 않았습니다!

기여자: Alex Meeraus 및 Jan-H. 자글라, 2009년 12월

$offText

*웹상의 문제 9.1.1 해결 방법
스칼라 x_l / 5 /
       y1_l / 4 /
       y2_l / 2 /
        z_l / -13 /
        톨 / 1e-6 /;

변수 z, y1, y2; 양의 변수 x;
방정식 ob, c1, c2, c3, c4, c5;

ob.. - x - 3*y1 + 2*y2 =e= z;

c1.. - 2*x + y1 + 4*y2 =l= 16;
c2.. 8*x + 3*y1 - 2*y2 =l= 48;
c3.. - 2*x + y1 - 3*y2 =l= -12;
c4.. - y1 =l= 0;
c5..y1 =l= 4;

모델 이중 레벨 / 모두 /;

$echo 이중 레벨 x max y1 y2 c1 c2 c3 c4 c5 > "%emp.info%"

*보고된 솔루션에서 시작
x.l = x_l ;
y1.l = y1_l;
y2.l = y2_l;

z를 최소화하는 EMP를 사용하여 이중 레벨을 해결합니다.

중단$((abs( x.l - x_l) > tol)
       또는 (abs(y1.l - y1_l) > tol)
       또는 (abs(y2.l - y2_l) > tol)
       또는 (abs( z.l - z_l) > tol) ) '예상 솔루션과의 편차';