Description
This model shows how to solve a simple QVI using EMP QVI is to find y in K(x): F(y)(z - y) >= 0, for all z in K(x) K(x) is a set-valued mapping, and for a given x K(x) is a closed convex set. Contributor: Youngdae Kim (03.20.2018)
Small Model of Type : QVI
Category : GAMS EMP library
Main file : simpleqvi1.gms
$title Simple Quasi-Variational Inequality (SIMPLEQVI1,SEQ=101)
$onText
This model shows how to solve a simple QVI using EMP
QVI is to find y in K(x):
F(y)(z - y) >= 0, for all z in K(x)
K(x) is a set-valued mapping, and for a given x K(x) is a closed convex set.
Contributor: Youngdae Kim (03.20.2018)
$offText
set i / 1*2 /;
alias(i,j);
positive variables y(i), x(i);
equations F(i), g(i);
F(i)..
y(i) - 10 =N= 0;
g(i)..
(y('1') + x('2'))$(i.val eq 1) + (y('2') + x('1'))$(i.val eq 2) =L= 10;
model qvi / F, g /;
file empinfo / '%emp.info%' /;
putclose empinfo 'qvi F y x g';
solve qvi using emp;
$onText
This could be reformulated as an MCP:
$offText
negative variable u(i) 'auxiliary vars, perp to g_aux(i)';
equation F_aux(i), g_aux;
F_aux(i)..
y(i) - 10 - u(i) =N= 0;
g_aux(i)..
sum(j, y(j)) =L= 10;
u.l(i) = g.m(i);
model reform / F_aux.y, g_aux.u /;
reform.iterlim = 0;
solve reform using mcp;
abort$(reform.objval > 1e-6) 'Solutions differ';