simpleqvi1.gms : 단순 준변형 부등식

설명

이 모델은 EMP를 사용하여 간단한 QVI를 해결하는 방법을 보여줍니다.

QVI는 K(x)에서 y를 찾는 것입니다.
F(y)(z - y) >= 0, K(x)의 모든 z에 대해
K(x)는 집합 값 매핑이고, 주어진 x에 대해 K(x)는 닫힌 볼록 집합입니다.

기여자: 김영대 (2018.03.20)

소형 모델 유형 :QVI


카테고리 : 슬롯 나라 EMP 라이브러리


메인 파일 : simpleqvi1.gms

$title 단순 준변형 부등식(SIMPLEQVI1,SEQ=101)

$onText
이 모델은 EMP를 사용하여 간단한 QVI를 해결하는 방법을 보여줍니다.

QVI는 K(x)에서 y를 찾는 것입니다.
F(y)(z - y) >= 0, K(x)의 모든 z에 대해
K(x)는 집합 값 매핑이고, 주어진 x에 대해 K(x)는 닫힌 볼록 집합입니다.

기고자: 김영대 (2018.03.20)
$offText

i / 1*2 / 설정;
별칭(i,j);

양의 변수 y(i), x(i);
방정식 F(i), g(i);

에프(나)..
    y(i) - 10 =N= 0;

그(나)..
    (y('1') + x('2'))$(i.val eq 1) + (y('2') + x('1'))$(i.val eq 2) =L= 10;

모델 qvi / F, g /;

파일 empinfo / '%emp.info%' /;
putclose empinfo 'qvi F y x g';

emp를 사용하여 qvi를 해결합니다.

$onText
이는 MCP로 다시 공식화될 수 있습니다.
$offText

음수 변수 u(i) '보조 변수, perp to g_aux(i)';

방정식 F_aux(i), g_aux;

F_aux(i)..
    y(i) - 10 - u(i) =N= 0;

g_aux(i)..
    합(j, y(j)) =L= 10;

u.l(i) = g.m(i);

모델 개편 / F_aux.y, g_aux.u /;

개혁.iterlim = 0;
mcp를 사용하여 개혁을 해결합니다.
abort$(reform.objval > 1e-6) '솔루션이 다릅니다';