## Python Optimization Package

## Main.PythonApp History

Hide minor edits - Show changes to markup

python pip install gekko

Instructions below are for working with the original APM Python package that requires an APM model and data files. The advantage of working with GEKKO is that the model equations and data are defined directly within the Python language instead of in separate files (see documentation).

**Recommended:** A newer Python interface is the GEKKO Optimization Suite that is available with:

python pip install gekko

Instructions below are for working with the original APM Python package that requires an APM model and data files. The advantage of working with GEKKO is that the model equations and data are defined directly within the Python language instead of in separate files (see documentation). There is also an option to run locally in GEKKO without an Apache server for Linux and Windows. Both APM Python and GEKKO solve optimization problems on public servers by default and this option is available for all platforms (Windows, Linux, MacOS, ARM processors, etc) that run Python.

python pip install gekko

Instructions below are for working with the original APM Python package that requires an APM model and data files. The advantage of working with GEKKO is that the model equations and data are defined directly within the Python language instead of in separate files (see documentation).

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: from APMonitor.apm import * except: # Automatically install APMonitor import pip pip.main(['install','APMonitor']) from APMonitor.apm import *

Another method to obtain APMonitor is to include the following code snippet at the beginning of a Python script. The installation is only required once and then the code can be commented or removed.

(:source lang=python:) try:

from pip import main as pipmain

except:

from pip._internal import main as pipmain

pipmain(['install','APMonitor'])

- to upgrade: pipmain(['install','--upgrade','APMonitor'])

(:sourceend:)

The Dynamic Optimization Course is graduate level course taught over 14 weeks to introduce concepts in mathematical modeling, data reconciliation, estimation, and control. There are many other applications and instructional material posted to this freely available course web-site.

from apm import *

from APMonitor.apm import *

from apm import *

from APMonitor.apm import *

from APMonitor import *

from apm import *

from APMonitor import *

from apm import *

(: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.

(:html:) <iframe width="560" height="315" src="https://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.

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.

(:source lang=python:) try:

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:

except:

except:

def install(package): pip.main(['install', package]) # Example if __name__ ==_{_main_}: install('APMonitor')

pip.main(['install','APMonitor'])

(:sourceend:)

(: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:)

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

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

$$ 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)$$

$$ 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)$$

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

$$ \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)$$

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

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

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

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

python pip install APMonitor

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.

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.

## APM Python

- APM IPython Notebook Example on GitHub

(:title Nonlinear Optimization with Python:)

(:title Python Optimization Package:)

Solve this problem problem from a web-browser interface.

- Solve this optimization problem from a web-browser interface or download the Python source above. The Python files are contained in folder
*example_hs71*.

Hock-Schittkowsky Test Suite #71

Solve this problem problem from a web-browser interface.

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

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

## Python for APMonitor

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

## APM Python

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.

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.

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.

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.

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.

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.

### Folder example_hs071: Nonlinear Programming with Python

### Example_hs071: Nonlinear Programming with Python

### Folder example_nlc: Nonlinear Control with Python

### Example_nlc: Nonlinear Control with Python

### Folder example_tank_mhe/nlc: Nonlinear Estimation and Control with Python

### Example_tank_mhe/nlc: Nonlinear Estimation and Control with Python

### Folder example_tank_mhe: Nonlinear Estimation and Control with Python

### Folder example_tank_mhe/nlc: Nonlinear Estimation and Control with Python

### Download APM Python Libraries

### Download APM Python Library and Example Problems

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.

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.

### Nonlinear Programming with Python

### Folder example_hs071: Nonlinear Programming with Python

### Nonlinear Control with Python

### Folder example_nlc: Nonlinear Control with Python

### Nonlinear Estimation and Control with Python

### Folder example_tank_mhe: Nonlinear Estimation and Control with Python

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*.

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*.

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.

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**.

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

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.

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

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.

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*

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.

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.

The latest APM Python libraries are attached below.

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

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.

### Download APM Python Libraries Versions

### 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 ***'

### Download APM Python Libraries Versions

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.

### 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.

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

### Nonlinear Programming with Python

Hock-Schittkowsky Test Suite #71

### Example #2: Nonlinear Control with Python

### Nonlinear Control with Python

(:title Python Interface to APMonitor:)

(:title Nonlinear Optimization with Python:)

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

### Example #2: Nonlinear Control with Python

(: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.