1 | \chapter{Advanced Pyomo Examples} |
---|

2 | |
---|

3 | \section{XXX Advanced Pyomo Examples} |
---|

4 | |
---|

5 | \subsection{Parallel Benders Decomposition} |
---|

6 | |
---|

7 | TODO: Does the following paragraph go here? I think that Dave's talking |
---|

8 | about the abilities that we're leveraging in PH, but we haven't discussed |
---|

9 | that in this paper. Perhaps this should go back into the introduction, |
---|

10 | but if so then the intent needs to be clarified for me (BILL). |
---|

11 | |
---|

12 | An important consequence of the design using Python and integration |
---|

13 | with the Coopr environment is that modularity is fully supported over |
---|

14 | a range of abstraction. At one extreme, the model elements can be |
---|

15 | manipulated explicitly by specifying their names and the values of |
---|

16 | their indexes. This sort of reference can be made more abstract, as |
---|

17 | is the case with algebraic modeling languages, by specifying various |
---|

18 | types of named sets so that the dimensions and details of the data |
---|

19 | can be separated from the specification of the model. Separation of an |
---|

20 | abstract declarative model from the data specification is a hallmark of |
---|

21 | structure modeling techniques for efficient modeling \citep{Geoffrion}. |
---|

22 | At the other extreme, elements of a mathematical program can be treated in |
---|

23 | their fully canonical form as is supported by callable solver libraries. |
---|

24 | Methods can be written that operate, for example, on objective functions |
---|

25 | or constraints in a fully general way. This capability is a fundamental |
---|

26 | tool for general algorithm development and extension \citep{Marsten}. |
---|

27 | Pyomo provides the full continuum of abstraction between these two |
---|

28 | extremes to support modeling and development. Furthermore, methods are |
---|

29 | extensible via overloading of all defined operations. Both modelers and |
---|

30 | developers can alter the behavior of the package or add new functionality. |
---|

31 | |
---|

32 | |
---|