simpequil.gms : Simple Equilibrium

Description

```This is a simple equilibrium problem that shows that the existence of solutions
to the individual optimization problems does not guarantee the existence of
an equilibrium solution.

Individual agents problems are solvable LP's.
Overall problem does not have a solution.

Forcing the variable x2 to be strictly positive enables an equilibrium solution.

Contributor: Michael Ferris, March 2010
```

Small Model of Type : EQUIL

Category : GAMS EMP library

Main file : simpequil.gms

``````\$Title Simple Equilibrium (SIMPEQUIL,SEQ=49)

\$ontext
This is a simple equilibrium problem that shows that the existence of solutions
to the individual optimization problems does not guarantee the existence of
an equilibrium solution.

Individual agents problems are solvable LP's.
Overall problem does not have a solution.

Forcing the variable x2 to be strictly positive enables an equilibrium solution.

Contributor: Michael Ferris, March 2010

\$offtext

option limrow=0, limcol = 0;

variables z1, z2;
positive variables x1, x2;
equations obj1, obj2, cons1, cons2;

obj1.. z1 =e= x1 + x2;
cons1.. x1*x2 =g= 1;

obj2.. z2 =e= x2;
cons2.. x1 + x2 =g= 1;

model comp /
obj1, obj2,
cons1,cons2
/;

x1.l = 1; x2.l = 1;

file info / '%emp.info%' /;
put info / 'equilibrium';
put      / 'min z1 x1 obj1 cons1';
putclose / 'min z2 x2 obj2 cons2';

solve comp using emp;
* check that it is indeed infeasible
abort\$(comp.solvestat <> %SOLVESTAT.NORMAL COMPLETION%
or ((comp.modelstat <> %MODELSTAT.INFEASIBLE%)
and (comp.modelstat <> %MODELSTAT.LOCALLY INFEASIBLE%)) ) '1st model not infeasible';

* Adding a positive lower bound on x2 fixes the problem
x2.lo = 0.5;

solve comp using emp;
abort\$(comp.solvestat <> %SOLVESTAT.NORMAL COMPLETION%
or comp.modelstat <> %MODELSTAT.LOCALLY OPTIMAL%)  '2nd model not locally optimal';
``````
GAMS Development Corp.
GAMS Software GmbH

General Information and Sales
U.S. (+1) 202 342-0180
Europe: (+49) 221 949-9170