IMA Journal of Management Mathematics Advance Access originally published online on April 26, 2007
IMA Journal of Management Mathematics 2008 19(4):325-345; doi:10.1093/imaman/dpm015
| ||||||||||||||||||||||||||||||||||||||||||||||||
This article appears in the following IMA Journal of Management Mathematics issue: Special Issue Stochastic Programming [View the issue table of contents]
Extending algebraic modelling languages to support algorithm development for solving stochastic programming models

School of Industrial Engineering, University of Oklahoma, Norman, OK 73019, USA
Email: karabuk{at}ou.edu
Accepted on 31 January 2007.
An algebraic modelling language (AML) is a domain-specific computer programming language for describing and solving mathematical programming models. We propose extending AMLs so that solution algorithms that are based on iteratively manipulating, modifying and solving a model are supported at a high abstraction level. We specifically focus on stochastic programming models with random parameters formulated as discrete scenarios and mathematical decomposition algorithms, which are commonly applied to solve such models. We identify the necessary language constructs and develop a design based on the open-source modelling software APLEpy. The proposed design, although specifically addressing decomposition algorithms, proves useful for implementing heuristic solution algorithms as well. The object-oriented nature of the design enables the algorithms that are coded with the proposed extensions to work with any other model that satisfies the assumptions of the initial model. This flexible and robust design helps inexperienced modellers to easily apply an advanced solution algorithm, and experienced modellers to build sophisticated algorithms quickly within the same development environment that is used to describe the model under consideration.
Keywords: stochastic programming; mathematical decomposition; Lagrangian relaxation; L-shaped decomposition; algebraic modelling language; open-source software