ferris43.gms : 교육용 임베디드 상보성 시스템 모델

설명

내장된 상보성 시스템
------------------

해결해야 할 문제는 다음과 같습니다.
  min_x f(x,y) st g(x,y) <= 0
게다가 제약 조건은
  H(x,y,람다) = 0
여기서 람다는 g(x,y) <= 0 제약 조건의 승수입니다.

우리는 EMP를 사용하여 변수 람다가
대수학은 에이전트 모델의 결정 변수가 아니라 오히려
이는 방정식 g의 이중 변수입니다.  참고: 방정식 g는 다음과 같습니다.
최적화 에이전트가 소유한 일반적인 제약 조건입니다.

최적화 모델을 두 가지 방법으로 설명할 수 있습니다.  "하향식"
접근 방식은 긴 형식의 풀이 문과 하나의 최소화로 시작됩니다.
모든 vars 및 equs를 소유한 에이전트입니다.  Dualequ 키워드는 H와 y를 제거합니다.
이 에이전트로부터.  "상향식" 접근 방식은 다음과 같은 것에서 시작됩니다.
평형 시스템에 딱 맞는 권리를 소유한 최소화 에이전트를 추가합니다.
방정식과 변수, 별도의 VI의 일부로 H와 y를 포함합니다.
대리인.

듀얼에쿠 하이
듀얼바 람다 g

참고자료:
Ferris 외, 확장된 수학 프로그래밍 프레임워크,
컴퓨터 및 화학공학 33, p.1973-1982, 2009

기여자: Jan-H. Jagla, 2009년 11월. Steve, 2017

소형 모델 유형 :ECS


카테고리 : 슬롯 사이트 추천 EMP 라이브러리


메인 파일 : ferris43.gms

$title 교육용 내장 보완성 시스템 모델(FERRIS43,SEQ=24)

$onText

  임베디드 상보성 시스템
  ------------------

  해결해야 할 문제는 다음과 같습니다.
    min_x f(x,y) st g(x,y) <= 0
  게다가 제약 조건은
    H(x,y,람다) = 0
  여기서 람다는 g(x,y) <= 0 제약 조건의 승수입니다.

  우리는 EMP를 사용하여 변수 람다가
  대수학은 에이전트 모델의 결정 변수가 아니라 오히려
  이는 방정식 g의 이중 변수입니다.  참고: 방정식 g는 다음과 같습니다.
  최적화 에이전트가 소유한 일반적인 제약 조건입니다.

  최적화 모델을 두 가지 방법으로 설명할 수 있습니다.  "하향식"
  접근 방식은 긴 형식의 풀이 문과 하나의 최소화로 시작됩니다.
  모든 vars 및 equs를 소유한 에이전트입니다.  Dualequ 키워드는 H와 y를 제거합니다.
  이 에이전트로부터.  "상향식" 접근 방식은 다음과 같은 것에서 시작됩니다.
  평형 시스템에 딱 맞는 권리를 소유한 최소화 에이전트를 추가합니다.
  방정식과 변수, 별도의 VI의 일부로 H와 y를 포함합니다.
  대리인.

  듀얼에쿠 하이
  듀얼바 람다 g

참고자료:
Ferris 외, 확장된 수학 프로그래밍 프레임워크,
컴퓨터 및 화학공학 33, p.1973-1982, 2009

기여자: Jan-H. Jagla, 2009년 11월. Steve, 2017년

$offText

변수 obj, x, y;
양의 변수 람다;
방정식 defobj, g, H;

defobj..obj =e= sqr(x-y);
g..y =g= x + 1;

H..y + 람다 =e= 2;

모델 ecs / defobj, g, H /;
파일 empinfo / '%emp.info%' /;

*------------------------------------------------------------------
* 긴 형식의 풀이 문을 사용하고 Dualequ 지시문을 통해 H와 y를 벗겨냅니다.
putclose empinfo
'dualequ H y' /
'dualvar 람다 g' /
;
obj를 최소화하는 emp를 사용하여 ecs를 해결합니다.

*-----------------------------------------------
* 짧은 형식의 풀이문을 사용하고 EMP에서 평형 모델을 구축합니다.
* 그래서 H와 y는 에이전트 모델을 최소화하지 않습니다.
putclose empinfo
'평형' /
' 최소 obj x g defobj' /
'vi H y' /
'dualvar 람다 g' /
;
EMP를 사용하여 EC를 해결합니다.

*----------------------------
* 이 모델을 수동으로 기록하고 솔루션을 확인합니다.
방정식 dLdx;

dLdx.. ( - 2*(x - y))/(-1) + 람다 =N= 0;

모델 mcp / g.lambda,dLdx.x,H.y /;
mcp.iterlim = 0;
MCP를 사용하여 mcp를 해결합니다.
abort$(mcp.objval > 1e-6) '솔루션이 동일하지 않음';