Abstract
Much has been written about optimization instance formats. The MPS standard for linear mixed-integer programs is well known and has been around for many years. Other extensible formats are available for other optimization categories such as stochastic and nonlinear programming. However, the problem instance is not the only piece of information shared between the instance generator and the solver. Solver options and solver results must also be communicated. To our knowledge there is no commonly accepted format for representing either solver options or solver results. In this paper we propose a framework and theory for solver option and solver result representation in a modern distributed computing environment. A software implementation of the framework is available as an open-source COIN-OR project.
Similar content being viewed by others
References
Al-Masri, E., Mahmoud, Q.H.: Investigating web services on the world wide web. In: WWW ’08: Proceedings of the 17th international conference on the World Wide Web, pp. 795–804 (2008)
Altova: XMLSpy XML Editor. http://www.altova.com/xmlspy.html. Accessed 2 May 2014
Brooke, A., Kendrick, D., Meeraus, A., Raman, R.: GAMS: a User’s Guide. GAMS Development Corporation. Washington, DC. http://www.gams.com/dd/docs/bigdocs/GAMSUsersGuide.pdf (2011)
Cplex: IBM ILOG CPLEX Optimizer. http://www-01.ibm.com/software/integration/optimization/cplex-optimizer/. Accessed 14 June 2013
Czyzyk, J., Mesnier, M.P., Moré, J.J.: The NEOS server. Comput. Sci. Eng. IEEE 5, 68–75 (1998)
de la Banda, M.G., Marriott, K., Rafeh, R., Wallace, M.: The modelling language Zinc. In: Principles and practice of constraint programming—CP, Lecture Notes in Computer Science, vol. 4204, pp. 700–705. Springer, New York (2006)
Finin, T., McKay, D., Fritzson, R., McEntire, R.: KQML: an information and knowledge exchange protocol. In: Fuchi, K., Yokoi, T. (eds.) Knowledge building and knowledge sharing. Ohmsha and IOS Press, Beijing (1994)
Forrest, J.: Cbc, a COIN-OR project. https://projects.coin-or.org/Cbc. Accessed 14 June 2013
Forrest, J.: Clp project wiki. https://projects.coin-or.org/Clp. Accessed 14 June 2013
Foundation for Intelligent Physical Agents: FIPA ACL message structure specification. http://www.fipa.org/specs/fipa00061/SC00061G.html (2002)
Foundation for Intelligent Physical Agents: Welcome to FIPA! http://www.fipa.org/ (2014)
Fourer, R., Gay, D.M., Kernighan, B.W.: AMPL: a modeling language for mathematical programming, 2nd edn. Brooks/Cole Publishing Company/Cengage Learning (2002)
Fourer, R., Lopes, L., Martin, K.: LPFML: A W3C XML schema for linear and integer programming. INFORMS J. Comput. 17, 139–158 (2005)
Fourer, R., Ma, J., Martin, K.: Optimization services: a framework for distributed optimization. Oper. Res. 58, 1624–1636 (2010)
Fourer, R., Ma, J., Martin, K.: OSiL: an instance language for optimization. Comput. Optim. Appl. 45(1), 181–203 (2010)
Gamma, E., Helm, R., Johnson, R., Vlissides, J.: Design patterns: elements of reusable Object-Oriented Software. Addison-Wesley, Boston (1994)
GAMS Development Corporation: Cplex solver manual. http://www.gams.com/dd/docs/solvers/cplex.pdf. Accessed 14 June 2013
Gassmann, H., Ma, J., Martin, K.: OS project wiki. https://projects.coin-or.org/OS. Accessed 4 May 2014
Gassmann, H., Ma, J., Martin, K., Sheng, W.: Optimization Services 2.6 user’s manual. Technical report, COIN-OR. https://projects.coin-or.org/svn/OS/releases/2.6.0/OS/doc/osUsersManual.pdf
Gay, D.M.: Hooking your solver to AMPL. Technical Report 97-4-06, Computing Sciences Research Center, Bell Laboratories, Murray Hill. http://www.ampl.com/REFS/hooking2.pdf (1997)
Grüninger, M., Menzel, C.: The process specification language (PSL): theory and applications. AI Mag. 24, 63–74 (2003)
Hafer, L.: DyLP project wiki. https://projects.coin-or.org/DyLP. Accessed 14 June 2013
Kristjánsson, B.: http://www.maximalsoftware.com/mpl/. Accessed 14 June 2013
LINDO Systems Inc. http://www.lindo.com/. Accessed 14 June 2013
LINDO Systems Inc: An overview of LINGO. http://www.lindo.com/index.php?option=com_content&view=article&id=2&Itemid=10. Accessed 29 November 2011
lp\(\_\)solve development group: MPS file format. http://lpsolve.sourceforge.net/5.1/mps-format.htm. Accessed 14 June 2013
Ma, J.: Optimization Services (OS). Ph.D. thesis, Industrial Engineering and Management Sciences, Northwestern University (2005)
Makhorin, A.: GLPK (GNU Linear Programming Kit). http://www.gnu.org/s/glpk/. Accessed 14 June 2013 (2008)
Marriott, K., Nethercote, N., Rafeh, R., Stuckey, P.J., de la Banda, M.G., Wallace, M.: The design of the Zinc modelling language. Constraints 13(3), 229–267 (2008)
Marriott, K., Stuckey, P.J.: A minizinc tutorial. http://www.minizinc.org/downloads/doc-latest/minizinc-tute.pdf. Accessed 11 November 2014
Murtagh, B.A.: Advanced Linear Programming. McGraw-Hill, USA (1981)
Nethercote, N., Stuckey, P.J., Becket, R., Brand, S., Duck, G.J., Tack, G.: MiniZinc: Towards a standard CP modelling language. In: Principles and Practice of Constraint Programming CP 2007, Lecture Notes in Computer Science, vol. 4741, pp. 529–543. Springer (2007)
Open Grid Forum: https://www.ogf.org/ogf/doku.php/about. Accessed 23 May 2014
Ralphs, T.K.: SYMPHONY project wiki. https://projects.coin-or.org/SYMPHONY. Accessed 14 June 2013
Riehle, D.: Framework design: a role modeling approach. Ph.D. thesis, ETH Zürich, Switzerland (2000)
Saltzman, M., Hafer, L.: Personal communication. Accessed 15 November 2011
SAP AG: Discovering services in the services registry. http://help.sap.com/saphelp_nwpi711/helpdata/en/2e/8526937af346a0bc446905ea964ceb/content.htm (2014)
Steglich, M.: CMPL—COIN Mathematical Programming Language. https://projects.coin-or.org/Cmpl. Accessed 14 June 2013
The Apache Software Foundation: The Apache Xerces Project. http://xerces.apache.org/. Accessed 14 June 2013 (2011)
The World Wide Web Consortium (W3C): Document Object Model (DOM). http://www.w3.org/DOM/. Accessed 14 June 2013 (2005)
The World Wide Web Consortium (W3C): SOAP version 1.2 Part 1. http://www.w3.org/TR/soap12-part1/. Accessed 14 June 2013 (2007)
The World Wide Web Consortium (W3C): Extensible Markup Language (XML) 1.0 (Fifth edition). http://www.w3.org/TR/REC-xml. Accessed 14 June 2014 (2008)
The World Wide Web Consortium (W3C): The Extensible Stylesheet Language Family (XSL). http://www.w3.org/Style/XSL/. Accessed 14 June 2013 (2011)
Vigerske, S.: GAMSlinks project wiki. https://projects.coin-or.org/GAMSlinks. Accessed 14 June 2013
Waechter, A.: Ipopt project wiki. https://projects.coin-or.org/Ipopt. Accessed 14 June 2013
Welch, V., (ed.): Globus Toolkit Version 4 Grid Security Infrastructure: a standards perspective. The Globus Alliance (2005)
Wikipedia: Design pattern. http://en.wikipedia.org/wiki/Design_pattern. Accessed 23 May 2014
Wikipedia: Document object model. http://en.wikipedia.org/wiki/Document_Object_Model
Wikipedia: Java Architecture for XML Binding. http://en.wikipedia.org/wiki/JAXB
Wikipedia: Open database connectivity. http://en.wikipedia.org/wiki/Open_Database_Connectivity
Wikipedia: Open grid services architecture. http://en.wikipedia.org/wiki/Open_Grid_Services_Architecture. Accessed 23 May 2014
Wikipedia: Universal description discovery and integration. http://en.wikipedia.org/wiki/Universal_Description_Discovery_and_Integration
Wikipedia: Web services discovery. http://en.wikipedia.org/wiki/Web_Services_Discovery
Williams, H.P.: Model building in mathematical programming, 5th edn. Wiley, New York (2013)
Acknowledgments
The authors are grateful to the associate editor and three anonymous referees for their handling of the paper. Their careful reading of and detailed comments on two previous versions have vastly improved the presentation. Any remaining shortcomings are the sole responsibility of the authors.
Author information
Authors and Affiliations
Corresponding author
Rights and permissions
About this article
Cite this article
Gassmann, H., Ma, J. & Martin, K. Communication protocols for options and results in a distributed optimization environment. Math. Prog. Comp. 8, 161–189 (2016). https://doi.org/10.1007/s12532-015-0091-5
Received:
Accepted:
Published:
Issue Date:
DOI: https://doi.org/10.1007/s12532-015-0091-5
Keywords
- Optimization
- Framework
- Design pattern
- System
- Software
- Solver options
- Solver communication
- Result representation
- Optimization Services