alexshmmy / Nonl_Opt_Python

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Nonlinear Optimization with Python

A collection of nonlinear optimization problems of the form

           min f(x)             

subjet to   
           g_i(x) >= 0,      i=1,2,...N
           h_j(x) = 0,       j=1,2,...M 
           l_k <= x_k <= U_k, k=1,2,...n

where:

  • $x$ is the vector of decision variables (dimension n).
  • $f(x)$ models the objective function to be minimized (in general nonlinear function).
  • The functions $g_i(x)$ model the inequality constraints (in general nonlinear functions).
  • The functions $h_j(x)$ model the equality constraints (in general nonlinear functions).
  • $l_k, U_k$ are the lower and upper bounds, respectively, of each deciection variables $x_k$.

The nonlinear optimizaiton problems are solved efficiently by using the open source scipy.optimize Python library.

Dependencies

The following packages are required to run the scripts:

Packages
math
numpy
scipy

The problems have been tested with Python 3.7.4, numpy=1.7.3, scipy=1.4.1.

Collections of problems

W. Hock and K. Schittkowski: Test Examples for Nonlinear Programming Codes, 1981 is widely accepted as one of the mandatory test scenarios for Nonlinear Programming codes. The 121 problems along with solutions, have been posted in [link1], [link2]. In collections we provide some of theese benchmark problems solved by using scipy.optimize open source Python library.

How to run

Open terminal and give the following commands:

git clone https://github.com/alexshmmy/Nonl_Opt_Python.git
cd Nonl_Opt_Python/collections
python3 problem001.py

Other references

[1] W. Hock and K. Schittkowski: Test Examples for Nonlinear Programming Codes, 1981.

[2a] Revised Hock & Schittkowski models for automatable test scenarios, [link].

[2b] Hock & Schittkowski nonlinear optimizaiton benchmark problems, [link].

[3] Scipy documentation, [Link 1].

[4] Scipy documenation, [Link 2].

[5] Nonlinear programming with pyOpt [Link].

[6] Design optimization textbook [Link].

[7] Alex bachelor thesis

Contact info

For questions or suggestions for improvements please drop an e-mail to:

alex [dot] shmmy (at) gmail [dot] com.

About


Languages

Language:Python 100.0%