Main

Python Optimization Package

Main.PythonApp History

Hide minor edits - Show changes to markup

Changed line 24 from:
    from apm import *
to:
    from APMonitor.apm import *
Changed line 29 from:
    from apm import *
to:
    from APMonitor.apm import *
Changed line 24 from:
    from APMonitor import *
to:
    from apm import *
Changed line 29 from:
    from APMonitor import *
to:
    from apm import *
Changed lines 5-6 from:
APM Python is designed for large-scale optimization and accesses solvers of constrained, unconstrained, continuous, and discrete problems. Problems in linear programming, quadratic programming, integer programming, nonlinear optimization, systems of dynamic nonlinear equations, and multiobjective optimization can be solved. The platform can find optimal solutions, perform tradeoff analyses, balance multiple design alternatives, and incorporate optimization methods into external modeling and analysis software. It is free for academic and commercial use. Example applications of nonlinear models with differential and algebraic equations are available for download below or from the following GitHub repository.
to:
APM Python is designed for large-scale optimization and accesses solvers of constrained, unconstrained, continuous, and discrete problems. Problems in linear programming, quadratic programming, integer programming, nonlinear optimization, systems of dynamic nonlinear equations, and multiobjective optimization can be solved. The platform can find optimal solutions, perform tradeoff analyses, balance multiple design alternatives, and incorporate optimization methods into external modeling and analysis software. It is free for academic and commercial use.

(:html:) <iframe width="560" height="315" src="https://www.youtube.com/embed/WF3iieZfRA0" frameborder="0" allowfullscreen></iframe> (:htmlend:)

Example applications of nonlinear models with differential and algebraic equations are available for download below or from the following GitHub repository.

Changed lines 39-45 from:

(:html:) <iframe width="560" height="315" src="http://www.youtube.com/embed/t84YMw8p34w?rel=0" frameborder="0" allowfullscreen></iframe> (:htmlend:)

The development roadmap for this and other libraries are detailed in the release notes. The zipped archive contains the APM Python library apm.py and a number of example problems in separate folders. Descriptions of the example problems are provided below.

to:

The development roadmap for this and other libraries are detailed in the release notes. The zipped archive contains the APM Python library apm.py and a number of example problems in separate folders. Descriptions of some of the example problems are provided below.

Changed line 31 from:
to:
Download APM Python (version 0.7.6) - Released 31 Jan 2017
Changed line 31 from:
to:
Changed lines 15-16 from:

(:source lang=python:) try:

to:

Another method to obtain APMonitor is to include the following code snippet at the beginning of a Python script. If APMonitor is not available, it will use the pip module to install it.

 try:
Changed line 19 from:

except:

to:
 except:
Changed lines 22-26 from:
    def install(package):
        pip.main(['install', package])
    # Example
    if __name__ == _main_:
        install('APMonitor')
to:
    pip.main(['install','APMonitor'])
Deleted line 23:

(:sourceend:)

Added lines 14-27:

(:source lang=python:) try:

    from APMonitor import *

except:

    # Automatically install APMonitor
    import pip
    def install(package):
        pip.main(['install', package])
    # Example
    if __name__ == _main_:
        install('APMonitor')
    from APMonitor import *

(:sourceend:)

Changed line 37 from:

$$ s.t. x_1 x_2 x_3 x_4 \ge 25$$

to:

$$ \mathrm{subject\;to} \quad x_1 x_2 x_3 x_4 \ge 25$$

Changed lines 37-43 from:

$$ s.t. x_1 x_2 x_3 x_4 /ge 25$$

$$ x_1^2 + x_2^2 + x_3^2 + x_4^2 = 40$$

$$ 1 \le x_1, x_2, x_3, x_4 \le 5$$

$$ x_0 = (1,5,5,1)$$

to:

$$ s.t. x_1 x_2 x_3 x_4 \ge 25$$

$$\quad x_1^2 + x_2^2 + x_3^2 + x_4^2 = 40$$

$$\quad 1 \le x_1, x_2, x_3, x_4 \le 5$$

$$\quad x_0 = (1,5,5,1)$$

Added line 36:
Added line 38:
Added line 40:
Changed lines 35-41 from:

$$ \min \, x_1 x_4 (x_1 + x_2 + x_3) + x_3 $$

to:

$$ \min x_1 x_4 (x_1 + x_2 + x_3) + x_3 $$ $$ s.t. x_1 x_2 x_3 x_4 /ge 25$$ $$ x_1^2 + x_2^2 + x_3^2 + x_4^2 = 40$$ $$ 1 \le x_1, x_2, x_3, x_4 \le 5$$

$$ x_0 = (1,5,5,1)$$

Changed line 35 from:

$$ /min /, x_1 x_4 \left(x_1 + x_2 + x_3 \right) + x_3 $$

to:

$$ \min \, x_1 x_4 (x_1 + x_2 + x_3) + x_3 $$

Changed lines 35-36 from:
to:

$$ /min /, x_1 x_4 \left(x_1 + x_2 + x_3 \right) + x_3 $$

Added lines 10-13:

The APMonitor package is also available through the package manager pip in Python.

 python pip install APMonitor
August 05, 2016, at 04:23 PM by 174.148.223.40 -
Changed line 17 from:
Download APM Python (version 0.7.3) - Released 18 Jun 2016
to:
June 18, 2016, at 11:49 PM by 45.56.3.173 -
Changed line 17 from:
Download APM Python (version 0.7.2) - Released 19 Feb 2016
to:
Download APM Python (version 0.7.3) - Released 18 Jun 2016
Changed lines 15-17 from:

The latest APM Python libraries are attached below. Functionality has been tested with Python 2.7. Example applications that use the apm.py library are listed further down on this page.

Download APM Python (version 0.7.1) - Released 29 Apr 2015
to:

The latest APM Python libraries are attached below. Functionality has been tested with Python 2.7 and 3.5. Example applications that use the apm.py library are listed further down on this page.

Download APM Python (version 0.7.2) - Released 19 Feb 2016
July 04, 2015, at 06:48 PM by 45.56.3.184 -
Added lines 6-7:
 git clone git://github.com/APMonitor/apm_python
July 04, 2015, at 06:20 PM by 45.56.3.184 -
Changed lines 5-8 from:

APM Python

APM Python is designed for large-scale optimization and accesses solvers of constrained, unconstrained, continuous, and discrete problems. Problems in linear programming, quadratic programming, integer programming, nonlinear optimization, systems of dynamic nonlinear equations, and multiobjective optimization can be solved. The platform can find optimal solutions, perform tradeoff analyses, balance multiple design alternatives, and incorporate optimization methods into external modeling and analysis software. It is free for academic and commercial use.
to:
APM Python is designed for large-scale optimization and accesses solvers of constrained, unconstrained, continuous, and discrete problems. Problems in linear programming, quadratic programming, integer programming, nonlinear optimization, systems of dynamic nonlinear equations, and multiobjective optimization can be solved. The platform can find optimal solutions, perform tradeoff analyses, balance multiple design alternatives, and incorporate optimization methods into external modeling and analysis software. It is free for academic and commercial use. Example applications of nonlinear models with differential and algebraic equations are available for download below or from the following GitHub repository.
APM Python with Demo Applications on GitHub
Added line 58:
  • APM IPython Notebook Example on GitHub
July 04, 2015, at 06:18 PM by 45.56.3.184 -
Changed line 1 from:

(:title Nonlinear Optimization with Python:)

to:

(:title Python Optimization Package:)

April 29, 2015, at 01:45 PM by 45.56.3.184 -
Changed line 15 from:
Download APM Python (version 0.7.0) - Released 30 Jan 2015
to:
Download APM Python (version 0.7.1) - Released 29 Apr 2015
Changed line 15 from:
to:
Download APM Python (version 0.7.0) - Released 30 Jan 2015
May 06, 2014, at 04:32 AM by 23.255.240.62 -
Changed line 15 from:
Download APM Python (version 0.6.0) - Released 20 January 2014
to:
January 20, 2014, at 03:30 PM by 23.255.228.67 -
Changed line 15 from:
Download APM Python (version 0.5.8d) - Released 25 March 2013
to:
Download APM Python (version 0.6.0) - Released 20 January 2014
June 27, 2013, at 11:08 PM by 128.187.97.18 -
Changed line 30 from:

Solve this problem problem from a web-browser interface.

to:
  • Solve this optimization problem from a web-browser interface or download the Python source above. The Python files are contained in folder example_hs71.
June 27, 2013, at 11:06 PM by 128.187.97.18 -
Changed line 30 from:

Hock-Schittkowsky Test Suite #71

to:

Solve this problem problem from a web-browser interface.

March 25, 2013, at 04:43 PM by 69.169.188.188 -
Changed line 15 from:
Download APM Python (version 0.5.8) - Released 7 January 2013
to:
Download APM Python (version 0.5.8d) - Released 25 March 2013
January 12, 2013, at 02:05 PM by 69.169.188.188 -
Added lines 16-19:

(:html:) <iframe width="560" height="315" src="http://www.youtube.com/embed/t84YMw8p34w?rel=0" frameborder="0" allowfullscreen></iframe> (:htmlend:)

January 12, 2013, at 02:00 PM by 69.169.188.188 -
Changed lines 7-8 from:
Python offers a powerful scripting capabilities for solving nonlinear optimization problems. The optimization problem is sent to the APMonitor server and results are returned to the Python script. A web-interface to the solution helps to visualize the dynamic optimization problems. Example applications of nonlinear models with differential and algebraic equations are available for download below.
to:
APM Python is designed for large-scale optimization and accesses solvers of constrained, unconstrained, continuous, and discrete problems. Problems in linear programming, quadratic programming, integer programming, nonlinear optimization, systems of dynamic nonlinear equations, and multiobjective optimization can be solved. The platform can find optimal solutions, perform tradeoff analyses, balance multiple design alternatives, and incorporate optimization methods into external modeling and analysis software. It is free for academic and commercial use.
Changed line 56 from:

to:

January 07, 2013, at 01:01 PM by 69.169.188.188 -
Changed line 15 from:
Download APM Python (version 0.5.8) - Released 1 January 2013
to:
Download APM Python (version 0.5.8) - Released 7 January 2013
January 07, 2013, at 01:01 PM by 69.169.188.188 -
Changed line 15 from:
Download APM Python (version 0.5.7) - Released 7 March 2012
to:
Download APM Python (version 0.5.8) - Released 1 January 2013
May 23, 2012, at 11:17 PM by 128.187.97.18 -
Changed line 15 from:
Download APM Python (version 0.5.6) - Released 7 March 2012
to:
Download APM Python (version 0.5.7) - Released 7 March 2012
March 07, 2012, at 06:58 PM by 128.187.97.23 -
Changed line 15 from:
Download APM Python (version 0.5.6) - Released 15 Feb 2012
to:
Download APM Python (version 0.5.6) - Released 7 March 2012
February 16, 2012, at 03:33 AM by 69.169.188.228 -
Changed line 15 from:
to:
Download APM Python (version 0.5.6) - Released 15 Feb 2012
December 25, 2011, at 04:34 AM by 69.169.188.228 -
Changed lines 3-5 from:

(:description Use APMonitor with the power of Python scripting language:)

Python for APMonitor

to:

(:description APM Python: A comprehensive modeling and nonlinear optimization solution with Python scripting language:)

APM Python

December 22, 2011, at 06:16 AM by 69.169.188.228 -
Changed line 13 from:

The latest APM Python libraries are attached below. Functionality has been tested with Python 2.7 and requires only the base Python installation. Example applications that use the apm.py library are listed further down on this page.

to:

The latest APM Python libraries are attached below. Functionality has been tested with Python 2.7. Example applications that use the apm.py library are listed further down on this page.

December 22, 2011, at 06:15 AM by 69.169.188.228 -
Changed line 17 from:

The development roadmap for this and other libraries are detailed in the release notes section. The zipped archive contains the APM Python library apm.py and a number of example problems in separate folders. Descriptions of the example problems are provided below.

to:

The development roadmap for this and other libraries are detailed in the release notes. The zipped archive contains the APM Python library apm.py and a number of example problems in separate folders. Descriptions of the example problems are provided below.

December 22, 2011, at 06:14 AM by 69.169.188.228 -
Changed line 17 from:

The product roadmap for this and other libraries are detailed in the release notes section. The zipped archive contains the APM Python library apm.py and a number of example problems in separate folders. Descriptions of the example problems are provided below.

to:

The development roadmap for this and other libraries are detailed in the release notes section. The zipped archive contains the APM Python library apm.py and a number of example problems in separate folders. Descriptions of the example problems are provided below.

December 22, 2011, at 06:10 AM by 69.169.188.228 -
Added line 53:
December 22, 2011, at 04:03 AM by 69.169.188.228 -
Changed lines 21-22 from:

Folder example_hs071: Nonlinear Programming with Python

to:

Example_hs071: Nonlinear Programming with Python

Changed lines 28-29 from:

Folder example_nlc: Nonlinear Control with Python

to:

Example_nlc: Nonlinear Control with Python

Changed line 34 from:

Folder example_tank_mhe/nlc: Nonlinear Estimation and Control with Python

to:

Example_tank_mhe/nlc: Nonlinear Estimation and Control with Python

December 22, 2011, at 04:02 AM by 69.169.188.228 -
Changed line 34 from:

Folder example_tank_mhe: Nonlinear Estimation and Control with Python

to:

Folder example_tank_mhe/nlc: Nonlinear Estimation and Control with Python

December 22, 2011, at 04:01 AM by 69.169.188.228 -
Changed lines 11-12 from:

Download APM Python Libraries

to:

Download APM Python Library and Example Problems

Changed lines 17-28 from:

The zipped archives contain a single script file apm.py. To use the APM Python library, include the following at the top of a Python script:

from apm import *

Previous versions of the APM Python libraries are available below in the prior versions section. In general, it is best to use the most current version as it supports the most advanced server features. The product roadmap for this and other libraries are detailed in the release notes section.

Prior Versions

Example applications of the APM Python library include nonlinear programming, nonlinear control, and other applications below.

to:

The product roadmap for this and other libraries are detailed in the release notes section. The zipped archive contains the APM Python library apm.py and a number of example problems in separate folders. Descriptions of the example problems are provided below.

Changed lines 21-24 from:

Nonlinear Programming with Python

to:

Folder example_hs071: Nonlinear Programming with Python

Changed lines 28-31 from:

Nonlinear Control with Python

to:

Folder example_nlc: Nonlinear Control with Python

Changed lines 34-35 from:

Nonlinear Estimation and Control with Python

to:

Folder example_tank_mhe: Nonlinear Estimation and Control with Python

Changed lines 40-43 from:

The the unknown parameters c1 and c2 need to be determined. The parameter c1 is the flow into the tank when the valve is fully open. The parameter c2 is the relationship between the volume of water in the tank and the outlet flow. Notice that this model is nonlinear because the outlet flow depends on the square root of the liquid volume. Nonlinear estimation is a technique to determine parameters based on the measurements. The following Python script uses the process data and the nonlinear model to determine the optimal parameters c1 and c2.

to:

The the unknown parameters c1 and c2 need to be determined. The parameter c1 is the flow into the tank when the valve is fully open. The parameter c2 is the relationship between the volume of water in the tank and the outlet flow. This model is nonlinear because the outlet flow depends on the square root of the liquid volume. Nonlinear estimation is a technique to determine parameters based on the measurements. The script in example_tank_mhe uses the process data and the nonlinear model to determine the optimal parameters c1 and c2.

Changed lines 44-46 from:

After an accurate model of the process is obtained, the model can be used in a Nonlinear Control (NLC) application. A PID controller is compared to the NLC response in the following script.

to:

After an accurate model of the process is obtained, the model can be used in a Nonlinear Control (NLC) application. A PID controller is compared to the NLC response in the folder example_tank_nlc.

December 15, 2011, at 05:25 AM by 69.169.188.228 -
Changed line 13 from:

The latest APM Python libraries are attached below. Functionality has been tested with Python 2.7 and requires only the base Python installation.

to:

The latest APM Python libraries are attached below. Functionality has been tested with Python 2.7 and requires only the base Python installation. Example applications that use the apm.py library are listed further down on this page.

December 06, 2011, at 06:00 AM by 69.169.188.228 -
Added lines 26-27:

Example applications of the APM Python library include nonlinear programming, nonlinear control, and other applications below.

December 06, 2011, at 05:59 AM by 69.169.188.228 -
Changed lines 21-23 from:

Previous versions of the APM Python libraries are available below. In general, it is best to use the most current version as it supports the most advanced server features. The product roadmap for this and other libraries are detailed in the release notes section.

to:

Previous versions of the APM Python libraries are available below in the prior versions section. In general, it is best to use the most current version as it supports the most advanced server features. The product roadmap for this and other libraries are detailed in the release notes section.

Prior Versions

December 06, 2011, at 05:57 AM by 69.169.188.228 -
Changed line 19 from:

from apm import *'

to:

from apm import *

December 06, 2011, at 05:41 AM by 69.169.188.228 -
Changed lines 21-23 from:

Previous versions of the APM Python libraries are available below. In general, it is best to use the most current version as it supports the most advanced server features.

to:

Previous versions of the APM Python libraries are available below. In general, it is best to use the most current version as it supports the most advanced server features. The product roadmap for this and other libraries are detailed in the release notes section.

December 06, 2011, at 05:38 AM by 69.169.188.228 -
Changed lines 13-14 from:

The latest APM Python libraries are attached below.

to:

The latest APM Python libraries are attached below. Functionality has been tested with Python 2.7 and requires only the base Python installation.

Changed lines 16-17 from:
to:
Added lines 20-23:

Previous versions of the APM Python libraries are available below. In general, it is best to use the most current version as it supports the most advanced server features.

December 06, 2011, at 05:35 AM by 69.169.188.228 -
December 06, 2011, at 05:33 AM by 69.169.188.228 -
Changed lines 11-14 from:
to:

Download APM Python Libraries

The latest APM Python libraries are attached below.

The zipped archives contain a single script file apm.py. To use the APM Python library, include the following at the top of a Python script:

from apm import *'

November 08, 2011, at 10:58 AM by 69.169.188.228 -
Changed line 7 from:

Python offers a powerful scripting capabilities for solving nonlinear optimization problems. The optimization problem is sent to the APMonitor server and results are returned to the Python script. A web-interface to the solution helps to visualize the dynamic optimization problems. Example applications of nonlinear models with differential and algebraic equations are available for download below.

to:
Python offers a powerful scripting capabilities for solving nonlinear optimization problems. The optimization problem is sent to the APMonitor server and results are returned to the Python script. A web-interface to the solution helps to visualize the dynamic optimization problems. Example applications of nonlinear models with differential and algebraic equations are available for download below.
September 26, 2011, at 10:13 PM by 69.169.188.228 -
Changed line 51 from:
to:
Changed lines 46-53 from:

to:

Other Applications with Python


Added lines 25-44:

Nonlinear Estimation and Control with Python

In this case study, a gravity drained tank was operated to generate data. A dynamic model of the process was derived from a material balance. This material balance is displayed below, along with a diagram of the system.

The the unknown parameters c1 and c2 need to be determined. The parameter c1 is the flow into the tank when the valve is fully open. The parameter c2 is the relationship between the volume of water in the tank and the outlet flow. Notice that this model is nonlinear because the outlet flow depends on the square root of the liquid volume. Nonlinear estimation is a technique to determine parameters based on the measurements. The following Python script uses the process data and the nonlinear model to determine the optimal parameters c1 and c2.

After an accurate model of the process is obtained, the model can be used in a Nonlinear Control (NLC) application. A PID controller is compared to the NLC response in the following script.

July 10, 2011, at 09:02 PM by 89.144.73.196 -
Changed lines 11-12 from:

Example #1: Hock-Schittkowsky Test Suite #71 with the IPOPT Solver

to:

Nonlinear Programming with Python

Changed lines 16-17 from:
to:

Hock-Schittkowsky Test Suite #71

Changed line 20 from:

Example #2: Nonlinear Control with Python

to:

Nonlinear Control with Python

July 10, 2011, at 08:33 PM by 89.144.73.196 -
Changed line 1 from:

(:title Python Interface to APMonitor:)

to:

(:title Nonlinear Optimization with Python:)

July 10, 2011, at 08:24 PM by 89.144.73.196 -
Changed line 19 from:

Example #2: Nonlinear Control with Python with the APOPT solver

to:

Example #2: Nonlinear Control with Python

July 10, 2011, at 08:20 PM by 89.144.73.196 -
Added lines 1-23:

(:title Python Interface to APMonitor:) (:keywords nonlinear, Python, model, predictive control, APMonitor, differential, algebraic, modeling language:) (:description Use APMonitor with the power of Python scripting language:)

Python for APMonitor

Python offers a powerful scripting capabilities for solving nonlinear optimization problems. The optimization problem is sent to the APMonitor server and results are returned to the Python script. A web-interface to the solution helps to visualize the dynamic optimization problems. Example applications of nonlinear models with differential and algebraic equations are available for download below.


Example #1: Hock-Schittkowsky Test Suite #71 with the IPOPT Solver


Example #2: Nonlinear Control with Python with the APOPT solver