source: coopr.dist/trunk/doc/coopr/modeling-disc.tex @ 1808

Revision 1808, 2.1 KB checked in by wehart, 6 years ago (diff)

Reorganization of documentation directories.

4\section{XXX Discussion}
7Pyomo is being actively developed to support real-world applications at
8Sandia National Laboratories.  Our experience with Pyomo and Coopr has
9validated our initial assessment that Python is an effective language for
10supporting the solution of optimization applications.  Although it is
11clear that custom languages can support a more concise, mathematically
12intuitive syntax, Python's clean syntax and programming model make it
13a natural choice for optimization tools like Pyomo.
15Coopr was publicly released as an open source project in 2008.  Future development will focus on several key design issues:
18\item Nonlinear Problems - Conceptually, it is straightforward to extend
19Pyomo to support the definition of general nonlinear models.  However,
20the model generation and expression mechanisms need to be re-designed
21to support capabilities like automatic differentiation.
23\item Optimized Expression Trees - Our scaling experiments suggest that
24Pyomo's runtime performance can be improved by using a different
25representation for expression trees.  The representation of expression
26trees could be reworked to avoid frequent object construction, either
27through a low-level representation or a Python extension library.
29\item Python Optimizers - A variety of Python optimization packages
30are now available, which we would like to leverage.  In particular,
31these will be important when nonlinear problems are supported in Pyomo.
33\item Direct Optimizer Interfaces - Coopr currently does not support
34direct library interfaces to optimizers, although this is a capability
35that is strongly supported by Python.  This is not a design limitation
36of Coopr, but instead has been a matter of development priorities.
37Similarlly, extensions to external solver packages like Acro's COLIN
38optimization library~\citep{ACRO} will be quite natural;  Coopr has
39preliminary support for applications that are defined using a system
40call interface.
43Finally, it should be straightforward to extend Coopr to support remote
44solver execution with NEOS~\citep{NEOS} and Optimization Services~\citep{OS}.
Note: See TracBrowser for help on using the repository browser.