# [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
Hessian evaluations: 14
[ 1.00000084  1.00000167]

fmin_ncg...
Optimization terminated successfully.
Current function value: 0.000000
Iterations: 24
Function evaluations: 37
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
Hessian evaluations: 21
[ 0.99999831  0.9999966 ]

fmin_ncg...
Optimization terminated successfully.
Current function value: 0.000000
Iterations: 83
Function evaluations: 105
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.
```