[Scipy-tickets] [SciPy] #1899: trust region

SciPy Trac scipy-tickets@scipy....
Tue Apr 23 00:45:47 CDT 2013


#1899: trust region
----------------------------------------------+-----------------------------
 Reporter:  unknown (google)                  |       Owner:  dlaxalde   
     Type:  enhancement                       |      Status:  new        
 Priority:  low                               |   Milestone:  Unscheduled
Component:  scipy.optimize                    |     Version:  0.12.0     
 Keywords:  trust-region dogleg optimization  |  
----------------------------------------------+-----------------------------
 Here's a trust region optimization code that I transcribed from chapter 4
 of Nocedal and Wright Numerical Optimization (2nd edition).

 It implements the "dogleg" trust region search strategy.  Currently the
 only optimization routine in scipy which explicitly makes use of the
 Hessian of the objective function is fmin_ncg which is based on line
 search and not on trust regions.  Although the dogleg search strategy is
 severely limited by its restriction to positive definite Hessian matrices,
 it might be helpful as a starting point for more practical methods.  For
 example, Matlab's default fmincon solver uses a trust region approach
 http://www.mathworks.com/help/optim/ug/choosing-a-solver.html
 and I don't think that fmincon is considered worse than Python's current
 solvers.

 I've pasted output from a comparison between the new dogleg trust region
 solver and the fmin_ncg solver, using the rosenbrock test function.  This
 is based on pv's bugfixed version of fmin_ncg.

 {{{
 >>> scipy.__version__
 '0.13.0.dev-7c11b59'
 }}}


 {{{
 -------------------- >> begin captured stdout << ---------------------
 x0: [2.0, 2.0]

 fmin_trust_region...
 Optimization terminated successfully.
          Current function value: 0.000000
          Iterations: 14
          Function evaluations: 16
          Gradient evaluations: 14
          Hessian evaluations: 14
 [ 1.00000084  1.00000167]

 fmin_ncg...
 Optimization terminated successfully.
          Current function value: 0.000000
          Iterations: 24
          Function evaluations: 37
          Gradient evaluations: 60
          Hessian evaluations: 24
 [ 0.99999998  0.99999997]


 x0: [-1.2, 1.0]

 fmin_trust_region...
 Optimization terminated successfully.
          Current function value: 0.000000
          Iterations: 22
          Function evaluations: 24
          Gradient evaluations: 21
          Hessian evaluations: 21
 [ 0.99999831  0.9999966 ]

 fmin_ncg...
 Optimization terminated successfully.
          Current function value: 0.000000
          Iterations: 83
          Function evaluations: 105
          Gradient evaluations: 187
          Hessian evaluations: 83
 [ 0.9999826   0.99996514]



 --------------------- >> end captured stdout << ----------------------
 }}}

-- 
Ticket URL: <http://projects.scipy.org/scipy/ticket/1899>
SciPy <http://www.scipy.org>
SciPy is open-source software for mathematics, science, and engineering.


More information about the Scipy-tickets mailing list