Block-oriented modeling of superstructure optimization problems

Abstract We present a novel software framework for modeling large-scale engineered systems as mathematical optimization problems. A key motivating feature in such systems is their hierarchical, highly structured topology. Existing mathematical optimization modeling environments do not facilitate the natural expression and manipulation of hierarchically structured systems. Rather, the modeler is forced to “flatten” the system description, hiding structure that may be exploited by solvers, and obfuscating the system that the modeling environment is attempting to represent. To correct this deficiency, we propose a Python-based “block-oriented” modeling approach for representing the discrete components within the system. Our approach is an extension of the Pyomo library for specifying mathematical optimization problems. Through the use of a modeling components library, the block-oriented approach facilitates a clean separation of system superstructure from the details of individual components. This approach also naturally lends itself to expressing design and operational decisions as disjunctive expressions over the component blocks. By expressing a mathematical optimization problem in a block-oriented manner, inherent structure (e.g., multiple scenarios) is preserved for potential exploitation by solvers. In particular, we show that block-structured mathematical optimization problems can be straightforwardly manipulated by decomposition-based multi-scenario algorithmic strategies, specifically in the context of the PySP stochastic programming library. We illustrate our block-oriented modeling approach using a case study drawn from the electricity grid operations domain: unit commitment with transmission switching and N  − 1 reliability constraints. Finally, we demonstrate that the overhead associated with block-oriented modeling only minimally increases model instantiation times, and need not adversely impact solver behavior.

[1]  I. Grossmann,et al.  New algorithms for nonlinear generalized disjunctive programming , 2000 .

[2]  Jacek Gondzio,et al.  A Structure Conveying Parallelizable Modeling Language for Mathematical Programming , 2009 .

[3]  Josef Kallrath,et al.  Modeling Languages in Mathematical Optimization , 2012 .

[4]  Brian W. Kernighan,et al.  AMPL: a mathematical programming language , 1989 .

[5]  David L. Woodruff,et al.  PySP: modeling and solving stochastic programs in Python , 2012, Mathematical Programming Computation.

[6]  Brian W. Kernighan,et al.  AMPL: A Modeling Language for Mathematical Programming , 1993 .

[7]  David L. Woodruff,et al.  Progressive hedging innovations for a class of stochastic mixed-integer resource allocation problems , 2011, Comput. Manag. Sci..

[8]  Karl-Erik Årzén,et al.  Modeling and optimization with Optimica and JModelica.org - Languages and tools for solving large-scale dynamic optimization problems , 2010, Comput. Chem. Eng..

[9]  R. Raman,et al.  Modelling and computational techniques for logic based integer programming , 1994 .

[10]  A. Papalexopoulos,et al.  Optimization based methods for unit commitment: Lagrangian relaxation versus general mixed integer programming , 2003, 2003 IEEE Power Engineering Society General Meeting (IEEE Cat. No.03CH37491).

[11]  Jacek Gondzio,et al.  A structure-conveying modelling language for mathematical and stochastic programming , 2009, Math. Program. Comput..

[12]  R. Baldick,et al.  Dispatchable transmission in RTO markets , 2005, IEEE Transactions on Power Systems.

[13]  Michael Ferris,et al.  Co-optimization of generation unit commitment and transmission switching with N-1 reliability , 2010, IEEE PES General Meeting.

[14]  A. Westerberg,et al.  Conditional Modeling. 1. Requirements for an Equation-Based Environment , 1999 .

[15]  David Kendrick,et al.  GAMS, a user's guide , 1988, SGNM.

[16]  Mohammad Shahidehpour,et al.  The IEEE Reliability Test System-1996. A report prepared by the Reliability Test System Task Force of the Application of Probability Methods Subcommittee , 1999 .

[17]  Peter Piela Ascend: an object-oriented computer environment for modeling and analysis , 1989 .

[18]  David L. Woodruff,et al.  Pyomo: modeling and solving mathematical programs in Python , 2011, Math. Program. Comput..

[19]  R. Tyrrell Rockafellar,et al.  Scenarios and Policy Aggregation in Optimization Under Uncertainty , 1991, Math. Oper. Res..