Ipopt Tutorial
Andreas W¨ achter IBM T.J. Watson Research Center
andreasw@watson.ibm.com
DIMACS Workshop on COIN-OR DIMACS Center, Rutgers University July 17, 2006
07/06 – p. 1
Ipopt Tutorial Andreas W achter IBM T.J. Watson Research Center - - PowerPoint PPT Presentation
Ipopt Tutorial Andreas W achter IBM T.J. Watson Research Center andreasw@watson.ibm.com DIMACS Workshop on COIN-OR DIMACS Center, Rutgers University July 17, 2006 07/06 p. 1 Outline Installation Using Ipopt from AMPL The algorithm
Andreas W¨ achter IBM T.J. Watson Research Center
andreasw@watson.ibm.com
DIMACS Workshop on COIN-OR DIMACS Center, Rutgers University July 17, 2006
07/06 – p. 1
07/06 – p. 2
https://projects.coin-or.org/Ipopt
http://www.coin-or.org/Ipopt/documentation/
http://list.coin-or.org/mailman/listinfo/coin-ipopt
07/06 – p. 3
$ svn co https://projects.coin-or.org/svn/Ipopt/trunk Coin-Ipopt $ cd Coin-Ipopt
$ cd ThirdParty/ASL $ ./get.ASL
$ cd ../Blas $ ./get.Blas
$ cd ../Lapack $ ./get.Lapack
$ cd ../..
07/06 – p. 4
$ mkdir build $ cd build
$ ../configure
$ make
$ make test
$ make install
07/06 – p. 5
$ ./configure [...] CXX=icpc CC=icc F77=ifc
$ ./configure [...] CXXFLAGS="-O -pg" [CFLAGS=... FFLAGS=...]
$ ./configure [...]
$ ./configure [...]
$ ./configure [...]
https://projects.coin-or.org/BuildTools/wiki/user-configure
07/06 – p. 6
config.status: executing depfiles commands configure: Configuration of ThirdPartyASL successful configure: configuring in Ipopt configure: running /bin/sh ’/home/andreasw/COI ...
## ---------------- ## ## Cache variables. ## ## ---------------- ##
07/06 – p. 7
x∈Rn
L = g(i) U
07/06 – p. 8
$HOME/bin : $PATH in your shell’s startup script.
07/06 – p. 9
http://www.sor.princeton.edu/˜rvdb/ampl/nlmodels/
http://www-unix.mcs.anl.gov/˜more/cops/
07/06 – p. 10
x∈Rn
L = g(i) U }
L < g(i) U }
x,s
L = 0
L ≤ s ≤ gI U
x∈Rn
07/06 – p. 11
07/06 – p. 12
∗
∗ + z(i) ∗
07/06 – p. 13
x∈Rn
07/06 – p. 14
x∈Rn
x∈Rn
n
07/06 – p. 14
x∈Rn
x∈Rn
n
(Fiacco, McCormick (1968))
07/06 – p. 14
x∈Rn
07/06 – p. 15
x∈Rn
07/06 – p. 15
x∈Rn
xxLµ(xk, yk)
07/06 – p. 15
x∈Rn
xxLµ(xk, yk)
07/06 – p. 15
07/06 – p. 16
z=µX−1e
07/06 – p. 16
z=µX−1e
xxf(xk) + y(i) k ∇2 xxc(i)(xk)
07/06 – p. 16
k, αy k, αz k ∈ (0, 1] to obtain new iterates
k∆xk
k∆yk
k∆zk
07/06 – p. 17
k, αy k, αz k ∈ (0, 1] to obtain new iterates
k∆xk
k∆yk
k∆zk
k , αz,τ k
k ∆xk
k ∆zk
07/06 – p. 17
k, αy k, αz k ∈ (0, 1] to obtain new iterates
k∆xk
k∆yk
k∆zk
k , αz,τ k
k ∆xk
k ∆zk
k,l = 2−lαx,τ k
07/06 – p. 17
k, αy k, αz k ∈ (0, 1] to obtain new iterates
k∆xk
k∆yk
k∆zk
k,l from line search
k
k , αz,τ k
k ∆xk
k ∆zk
k,l = 2−lαx,τ k
07/06 – p. 17
$ ./ipopt-=
07/06 – p. 18
c
nlp = max
(n+m)s_max
z1 n s_max
nlp ≤ tol
c ≤ compl_inf_tol
07/06 – p. 19
nlp ≤ acceptable_tol
c ≤ acceptable_compl_inf_tol
07/06 – p. 20
nlp ≤ barrier_tol_factor · µk, then
θµ
07/06 – p. 21
07/06 – p. 22
07/06 – p. 23
k e − zk − Σk∆xk
k Zk
07/06 – p. 23
k e − zk − Σk∆xk
k Zk
07/06 – p. 23
k e − zk − Σk∆xk
k Zk
07/06 – p. 23
k e − zk − Σk∆xk
k Zk
07/06 – p. 23
07/06 – p. 23
MA27BD returned iflag=-4 and requires more memory. Increase liw from 44960 to 449600 and la from 78400 to 794050 and factorize again.
07/06 – p. 24
θ(x)=c(x) ϕµ(x) (θ(xk),ϕµ(xk)) (0,ϕµ(x∗)) γθ(xk)
(Fletcher, Leyffer; 1998)
07/06 – p. 25
θ(x)=c(x) ϕµ(x) (θ(xk),ϕµ(xk)) (0,ϕµ(x∗)) γθ(xk)
(Fletcher, Leyffer; 1998)
07/06 – p. 25
θ(x)=c(x) ϕµ(x) (θ(xk),ϕµ(xk)) (0,ϕµ(x∗)) γθ(xlL) γθ(xlR)
07/06 – p. 26
θ(x)=c(x) ϕµ(x) (θ(xk),ϕµ(xk)) (0,ϕµ(x∗)) γθ(xlL) γθ(xlR)
07/06 – p. 26
θ(x)=c(x) ϕµ(x) (θ(xk),ϕµ(xk)) (0,ϕµ(x∗)) γθ(xlL) γθ(xlR)
07/06 – p. 27
θ(x)=c(x) ϕµ(x) (θ(xk),ϕµ(xk)) (0,ϕµ(x∗)) γθ(xlL) γθ(xlR)
07/06 – p. 27
θ(x)=c(x) ϕµ(x) (θ(xk),ϕµ(xk)) (0,ϕµ(x∗)) γθ(xlL) γθ(xlR)
07/06 – p. 28
θ(x)=c(x) ϕµ(x) (θ(xk),ϕµ(xk)) (0,ϕµ(x∗)) γθ(xlL) γθ(xlR)
∗ > 0, or
07/06 – p. 28
07/06 – p. 29
2
2
07/06 – p. 29
2
2
07/06 – p. 29
2
∗ > 0
07/06 – p. 30
07/06 – p. 31
07/06 – p. 32
k
k
k ∆xk)
k
k ∆xk + ∆xsoc k )
07/06 – p. 32
k
k
k ∆xk)
k
k ∆xk + ∆xsoc k )
07/06 – p. 32
07/06 – p. 33
x∈Rn
c
x · x(i)
07/06 – p. 34
07/06 – p. 35
07/06 – p. 36
07/06 – p. 37
07/06 – p. 38
x∈Rn n
i + 1.5xi − ai) cos(xi+1) − xi−1 = 0
n (do not hardcode)
07/06 – p. 39
x∈Rn
07/06 – p. 40
x∈Rn
07/06 – p. 40
x∈Rn
07/06 – p. 40
x∈Rn
07/06 – p. 40