simpleqvi1.gms : Simple Quasi-Variational Inequality

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';
``````