설명
내장된 상보성 시스템 ------------------ 해결해야 할 문제는 다음과 같습니다. 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) '솔루션이 동일하지 않음';