To avoid confusion and promote clarity, we recommend that modelers use explicit variable lists and avoid the '*' symbol.The "-" sign in the syntax above is used to flip (i.e. This is reflected in the EMP Summary in the listing file: In the GAMS EMP Library there are several models that have a similar form, e.g.
The following simple example with two agents is from model [DUALVAR] in the GAMS EMP Library.
\begin \tag \begin \textrm \textrm_ & z = v w \\ \textrm & \sqrt 2w \geq 2 \qquad (\perp \; u \geq 0) \\ & v, w \geq 0 \\ \\ \textrm VI: & F(y) := y-4u 1 \quad \; (\perp \, y \; \textrm) \\ \end \end N.
Objective variables (if and when they exist) belong to individual agents, not to the model as a whole.
Consider the following example from Kim & Ferris (2017) . sum(i, p(i)*x(i)) =l= sum(i, p(i)*b(i)); model m / mkt, profit, udef, budget /; file empinfo /'%emp.info%'/; putclose empinfo 'equilibrium' / ' max', u, 'x', udef, budget / ' vi profit y' / ' vi mkt p' / ; * the second commodity is used as a numeraire p.fx('2') = 1; x.l(i) = 1; solve m using EMP; is maximized) and the activities of the producer and the price-setting market are expressed as VI.
the set of variables used in the equations owned by this agent but not explicitly or otherwise assigned to another agent.
Note that if a variable occurs in equations owned by multiple agents and is not explicitly assigned to any agent, the default assignment is not well defined and using it will be flagged as an error.We introduce an extended mathematical programming framework for specifying equilibrium problems and their variational representations, such as generalized Nash equilibrium, multiple optimization problems with equilibrium constraints, and (quasi-) variational inequalities, and computing solutions of them from modeling languages.We define a new set of constructs with which users annotate variables and equations of the model to describe equilibrium and variational problems.The latter demonstrates that there are equilibrium problems where the optimization problems of the individual agents are solvable, but the overall equilibrium problem does not have a solution.In many applications equilibrium problems come with a twist: the dual variable associated with a constraint in the problem of one agent appears in the problem of another agent.B.: the variable \(u\) that appears in the problem of the second agent is the dual multiplier (aka shadow price) of the first agent's constraint. y - 4*u 1 =n= 0; Model opt 'min agent and VI agent' / defz, g, Fy /; File empinfo / '%emp.info%' /; putclose empinfo 'equilibrium' / ' min z v w defz g' / ' vi Fy y' / ' dualvar u g' / ; defz.m = -1; g.m = 0.5; Fy.m = 1; v.l = 0; w.l = 0.5; y.l = 1; u.l = 0.5; solve opt using emp; Other examples with dual variables in the GAMS EMP Library include a formulation of the well-known transportation model as an equilibrium problem [TRANSEQL], Scarf's activity analysis model [SCARFEMP-PRIMAL] and the general equilibrium model [TWO3EMP].This equilibrium problem can be modeled in GAMS with EMP as follows: positive variables v 'belongs to min agent' w 'belongs to min agent' u 'dual of min constraint' ; free variables y 'belongs to VI agent' z 'objective var' ; equations defz 'objective def' g 'constraint for min agent' Fy 'VI function' ; defz.. The EMP framework provides the following general syntax to specify equilibrium problems: .where all agents are on the same level, each assuming the decisions or strategies of the other agents are known and fixed.Equilibrium problems of the Stackelberg type, where there are leaders and followers, are covered in section Bilevel Programs.\tag \ \end \end Note that \(f_i(x_i,x_)\) denotes the objective function of the problem of agent \(i\), \(g_i(x_i,x_)\) are the constraints relating to this optimization problem and \(x_=(x_1, \dots , x_, x_, \dots , x_N)\) denotes the decisions of the other agents.Further, \(\textrm \, (H, K)\) represents the solution set of the variational inequality \(VI(H, K)\).