Skip to main content

Advertisement

Log in

Solving equilibrium problems using extended mathematical programming

  • Full Length Paper
  • Published:
Mathematical Programming Computation Aims and scope Submit manuscript

Abstract

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. Our constructs enable a natural translation of the model from one formulation to another more computationally tractable form without requiring the modeler to supply derivatives. In the context of many independent agents in the equilibrium, we facilitate expression of sophisticated structures such as shared constraints and additional constraints on their solutions. We define shared variables and demonstrate their uses for sparse reformulation, economic equilibrium problems sharing economic states, mixed pricing behavior of agents, and so on. We give some equilibrium and variational examples from the literature and describe how to formulate them using our framework. Experimental results comparing performance of various complementarity formulations for shared variables are provided. Our framework has been implemented and is available within GAMS/EMP.

This is a preview of subscription content, log in via an institution to check access.

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Institutional subscriptions

Similar content being viewed by others

Notes

  1. Under convex differentiable inequalities and no equalities, both constraint qualifications are equivalent [31].

  2. The resulting MCP model can be obtained by either running the GAMS with keep=1 or storing it in a file named using the option filename in an option file jams.opt. In the former case, the MCP model is stored in a file emp.dat in the scratch directory, e.g., 225a. In the latter case, refer to http://www.gams.com/latest/docs/S_JAMS.html for more details.

  3. \(x_3^*=0\) as its budget share \(s_3\) is zero.

  4. We used the vector form for the constraints when we declare the equation cons for each agent in the empinfo file so that we do not have to loop through the set m.

  5. A similar concept was introduced as common decision variables in multi-leader-common-follower games [20]. However, it is the responsibility of solution methods that guarantees the same values at an equilibrium in their setting. In contrast, our definition of shared variables ensures that they will have the same values at all equilibria regardless of solution methods.

  6. Note that this could affect the behavior of the underlying solution methods that are sensitive to the row or column order of the given problem.

  7. The replication strategy is not allowed in this case as it is ambiguous what variable to replicate for the ISO agent: the agent uses shared variable z, but it does not own it. Our solver automatically detects this case and generates an error.

  8. The original model was written by Thomas Rutherford, and was solved by applying the diagonalization method (Gauss-Seidel) to the nonlinear problem (25) by fixing t variable values belonging to other agents. We modified the model to use our EMP framework, and it was subsequently solved by Path.

  9. We did not include the 15-agent problem in the comparison as we think the slowest performance of the substitution strategy is due to some numerical difficulties Path encountered.

  10. The source code for the examples can be found at [7].

  11. Note that aliased sets are not currently supported. For example, if we have alias(i,j), where set i is the original set, then we do not allow set j to be specified.

References

  1. Aguiar, A., Narayanan, B., Mcdougall, R.: An overview of the GTAP 9 data base. J. Glob. Econ. Anal. 1(1), 181–208 (2016)

    Article  Google Scholar 

  2. Bezanson, J., Edelman, A., Karpinski, S., Shah, V.B.: Julia: a fresh approach to numerical computing. SIAM Rev. 59(1), 65–98 (2017)

    Article  MathSciNet  MATH  Google Scholar 

  3. Britz, W., Ferris, M., Kuhn, A.: Modeling water allocating institutions based on multiple optimization problems with equilibrium constraints. Environ. Model. Softw. 46, 196–207 (2013)

    Article  Google Scholar 

  4. Brook, A., Kendrick, D., Meeraus, A.: GAMS: A User’s Guide. The Scientific Press, South San Francisco (1988)

    Google Scholar 

  5. Davis, T.A.: UMFPACK (2007). http://faculty.cse.tamu.edu/davis/suitesparse.html. Accessed 14 Dec 2017

  6. Dirkse, S.P., Ferris, M.C.: The PATH solver: a non-monotone stabilization scheme for mixed complementarity problems. Optim. Methods Softw. 5(2), 123–156 (1995)

    Article  Google Scholar 

  7. An EMP framework for equilibrium problems (2019). http://pages.cs.wisc.edu/~youngdae/emp. Accessed 16 Feb 2019

  8. Facchinei, F., Fischer, A., Piccialli, V.: On generalized Nash games and variational inequalities. Oper. Res. Lett. 35(2), 159–164 (2007)

    Article  MathSciNet  MATH  Google Scholar 

  9. Facchinei, F., Kanzow, C.: Generalized Nash equilibrium problems. Annals of Operations Research 175(1), 177–211 (2010)

    Article  MathSciNet  MATH  Google Scholar 

  10. Ferris, M.C., Dirkse, S.P., Jagla, J.H., Meeraus, A.: An extended mathematical programming framework. Comput. Chem. Eng. 33(12), 1973–1982 (2009)

    Article  Google Scholar 

  11. Ferris, M.C., Fourer, R., Gay, D.M.: Expressing complementarity problems in an algebraic modeling language and communicating them to solvers. SIAM J. Optim. 9(4), 991–1009 (1999)

    Article  MathSciNet  MATH  Google Scholar 

  12. Ferris, M.C., Munson, T.S.: Interfaces to PATH 3.0: design, implementation and usage. Comput. Optim. Appl. 12(1), 207–227 (1999)

    Article  MathSciNet  MATH  Google Scholar 

  13. Fourer, R., Gay, D.M., Kernighan, B.W.: AMPL: A Modeling Language for Mathematical Programming, 2nd edn. Cengage Learning, Boston (2002)

    MATH  Google Scholar 

  14. Harker, P.T.: A variational inequality approach for the determination of oligopolistic market equilibrium. Math. Program. 30, 105–111 (1984)

    Article  MathSciNet  MATH  Google Scholar 

  15. Harker, P.T.: Multiple equilibrium behaviors on networks. Transp. Sci. 22(1), 39–46 (1988)

    Article  MathSciNet  MATH  Google Scholar 

  16. Harker, P.T.: Generalized Nash games and quasi-variational inequalities. Eur. J. Oper. Res. 54, 81–94 (1991)

    Article  MATH  Google Scholar 

  17. Haurie, A., Krawczyk, J.B.: Optimal charges on river effluent from lumped and distributed sources. Environ. Model. Assess. 2(3), 177–189 (1997)

    Article  Google Scholar 

  18. Kim, Y., Ferris, M.C.: SELKIE: a model transformation and distributed solver for structured equilibrium problems. Technical Report, University of Wisconsin-Madison, Department of Computer Sciences (2017)

  19. Krawczyk, J.B., Uryasev, S.: Relaxation algorithms to find Nash equilibria with economic applications. Environ. Model. Assess. 5(1), 63–73 (2000)

    Article  Google Scholar 

  20. Leyffer, S., Munson, T.: Solving multi-leader-common-follower games. Optim. Methods Softw. 25(4), 601–623 (2010)

    Article  MathSciNet  MATH  Google Scholar 

  21. Luna, J.P., Sagastizabal, C., Solodov, M.: A class of Dantzig–Wolfe type decomposition methods for variational inequalty problems. Math. Program. 143(1), 177–209 (2014)

    Article  MathSciNet  MATH  Google Scholar 

  22. Mathiesen, L.: An algorithm based on a sequence of linear complementarity problems applied to a Walrasian equilibrium model: an example. Math. Program. 37(1), 1–18 (1987)

    Article  MathSciNet  MATH  Google Scholar 

  23. Murphy, F.H., Sherali, H.D., Soyster, A.L.: A mathematical programming approach for determining oligopolistic market equilibrium. Math. Program. 24(1), 92–106 (1982)

    Article  MathSciNet  MATH  Google Scholar 

  24. Nisan, N., Roughgarden, T., Tardos, E., Vazirani, V.V.: Algorithmic Game Theory. Cambridge University Press, New York (2007)

    Book  MATH  Google Scholar 

  25. Outrata, J.V., Zowe, J.: A Newton method for a class of quasi-variational inequalities. Comput. Optim. Appl. 4(1), 5–21 (1995)

    Article  MathSciNet  MATH  Google Scholar 

  26. Philpott, A., Ferris, M., Wets, R.: Equilibrium, uncertainty and risk in hydro-thermal electricity systems. Math. Program. 157(2), 483–513 (2016)

    Article  MathSciNet  MATH  Google Scholar 

  27. Robinson, S.M.: Equations on monotone graphs. Math. Program. 141(1), 49–101 (2013)

    Article  MathSciNet  MATH  Google Scholar 

  28. Rosen, J.B.: Existence and uniqueness of equilibrium points for concave N-person games. Econometrica 33(3), 520–534 (1965)

    Article  MathSciNet  MATH  Google Scholar 

  29. Rutherford, T.F.: Extension of GAMS for complementarity problems arising in applied economic analysis. J. Econ. Dyn. Control 19(8), 1299–1324 (1995)

    Article  MathSciNet  MATH  Google Scholar 

  30. Schiro, D.A., Pang, J.S., Shanbhag, U.V.: On the solution of affine generalized Nash equilibrium problems with shared constraints by Lemke’s method. Math. Program. 142(1), 1–46 (2013)

    Article  MathSciNet  MATH  Google Scholar 

  31. Solodov, M.: Constraint qualifications. In: Cochran, J.J., et al. (ed.), Wiley Encyclopedia of Operations Research and Management Science. Wiley, Inc. (2010)

Download references

Acknowledgements

This material is based upon work supported by the U.S. Department of Energy, Office of Science, Office of Advanced Scientific Computing Research, Applied Mathematics program under contract number DE-AC02-06CH11357.

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Youngdae Kim.

Additional information

Publisher's Note

Springer Nature remains neutral with regard to jurisdictional claims in published maps and institutional affiliations.

Appendix

Appendix

In this Appendix, we present a brief description of our source code and introduce our recently developed alternative EMP interface that allows set notation to be specified in the empinfo file. The former may be useful for interested readers to understand the internal mechanism of our framework, and the latter may provide a concise and compact way of describing agent information.

1.1 Internal mechanism of the EMP equilibrium framework

Basically, our framework performs a model transformation of an EMP model into an MCP model. Key components to implement the transformation are (i) a dictionary, (ii) an EMP parser, and (iii) expression graphs and their derivative computation routines.

The dictionary contains mapping information between variables and equations of a given model and its flattened (or scalar) version. Internally, numeric indices are used to refer to variables and equations, and vector notation (surrounding the name in single quotes) is flattened. In Table 5, we present an example of the mapping information of Listing 5. For clarity, we attached characters x and e for variables and equations. This information can be obtained by specifying Dict option in the option file jams.opt.

Table 5 Mapping of variables and equations between the original model and its flattened model

The EMP parser reads the empinfo file and builds a table of agent ownership information of variables and equations using the numeric indices by referring to the dictionary. The table consists of two arrays of sizes n and m, where they correspond to the sizes of the variables and equations of the flattened model, respectively. Whenever the parser encounters the name of a variable or an equation, it identifies its numeric index using the dictionary and marks the ID of the agent owning it in the corresponding array. Figure 1 shows an example of the agent ownership table of Listing 5. It is assumed that agent ID starts with 1, and its order follows the order of the agents specified in the empinfo file. For shared constraints and shared variables, special agent IDs are stored using which we can identify a list of the agents sharing them.

Finally, using the table, the corresponding MCP function is constructed by computing the KKT conditions of each agent’s problem. This is performed using expression graphs and their derivative computation routines.

Fig. 1
figure 1

An example of the agent ownership table

Expression graphs represent nonlinear equations of a model. They take the form of a sequence of operations. For example, in GAMS, \((x+y)^3\) is internally represented by a sequence of PushV 1, AddV 2, PushI 3.0, and CallArg2 21, where x and y are assumed to be mapped to numeric indices 1 and 2, respectively. Operands are pushed onto the stack first via PushV or PushI before an operation is performed on them, and its result (if there is any) is pushed back onto the stack. Hence, in this case, operand x is pushed first, and an addition, which also takes its second operand y, is performed on them. The result of the addition and a constant 3.0 are pushed onto the stack, and operation 21, which corresponds to the power, is applied to them. If we take a derivative of \((x+y)^3\) with respect to x, then a new sequence of PushV 1, AddV 2, CallArg1 9, and MulI 3.0 is generated, where operation 9 represents a square \((\cdot )^2\) operation. One can verify that the sequence represents \(3(x+y)^2\). Two different expression graphs can be easily added (or subtracted) to form an addition (or a subtraction) of nonlinear equations. Linear equations are handled directly by storing their coefficients, and their derivative computations are straightforward. In this way, we can construct the MCP functions described in this paper.

1.2 An alternative interface allowing set notation in the empinfo file

So far, we have instantiated sets or used vector notation when we specify agent information in the empinfo file. For example, on lines 20–21 in Listing 3 each element of set i was instantiated by using the loop and put statements, and on lines 33 and 35 in Listing 5 vector notation was used to represent the entire elements of x, mkt, and p. The main reason we specify in this way is that the current implementation does not allow a direct specification of sets in the empinfo file.

This could potentially prevent us from taking advantage of using a set notation, such as a compact representation of a set of variables and equations sharing similar structure. For example, in Listing 12 we had to take an additional loop over set k to slice variable q(i,k) among the agents. In the cases where there are a large number of such variables or equations, they may involve many tedious loop and put statements and result in a less concise representation of agents’ problems.

To resolve these issues, we provide an alternative interface, called EMP/Set, which allows sets to be specified in an empinfo file. The EMP/Set interprets a specification of a set as enumerating all of its elements. For example, in the aforementioned case we may put q(i,k) directly in the empinfo file without instantiating each element in set k.

Table 6 shows the contents of the empinfo file obtained by applying the EMP/Set syntax to some representative examples of this paper.Footnote 10 Basically, when a set is specified,Footnote 11 all of its elements are enumerated by our interface. Thus, specifying cons(m) using the EMP/Set syntax is equivalent to writing loop(m, put cons(m););. If a set appears in the objective variable, for example set i in Table 6, then our interface additionally assumes that a set of optimization agents is specified, where each agent is indexed by an element of set i. They are assumed to have the same direction to optimize. This provides a compact way of representing a set of agents that share the same structure. In this case, set i plays a role as a slicing set.

Other than the set specification, the EMP/Set syntax requires a new keyword s.t. (implying subject to) for optimization agents and a separator comma between items (variables and equations). Vector notation is no longer supported as sets can be specified. All other syntactic requirements are the same as the original syntax, for example variables come first and equations follow them in the case of an optimization agent.

Table 6 Application of the EMP/Set syntax to examples in the paper

Below we show how we may use the EMP/Set interface for Listing 3. To write an EMP specification in a file, we use a pair of macros $onecho and $offecho. It writes the lines between them in a file, empinfo.txt in this case. Finally, to parse the file we include the empmodel.gms file using $libinclude macro and pass the file name as its argument.

figure r

The EMP/Set interface (empmodel.gms) works on top of the existing interface. For a given file written in the EMP/Set syntax, it will automatically transform the set specifications into equivalent loop and put statements and generate another file empinfo.gms in which an empinfo file is written using the original syntax. Then the resulting file empinfo.gms will be included, and its empinfo specification will be parsed by the GAMS/JAMS solver.

We believe the combination of the simplified EMP/Set interface and the more complex and flexible original syntax will allow users to easily specify simple structures and also build more complex EMP models. The implementations are consistent and can be easily updated to incorporate new features as they are developed.

Rights and permissions

Reprints and permissions

About this article

Check for updates. Verify currency and authenticity via CrossMark

Cite this article

Kim, Y., Ferris, M.C. Solving equilibrium problems using extended mathematical programming. Math. Prog. Comp. 11, 457–501 (2019). https://doi.org/10.1007/s12532-019-00156-4

Download citation

  • Received:

  • Accepted:

  • Published:

  • Issue Date:

  • DOI: https://doi.org/10.1007/s12532-019-00156-4

Keywords

Mathematics Subject Classification

Navigation