# Difference between revisions of "Trust-region methods"

Yewenhe0904 (Talk | contribs) (→Trust Region Algorithm) |
Yewenhe0904 (Talk | contribs) (→Conjugated Gradient Steihaug’s Method) |
||

Line 98: | Line 98: | ||

====Conjugated Gradient Steihaug’s Method==== | ====Conjugated Gradient Steihaug’s Method==== | ||

The most widely used method for solving a trust-region subproblem is by using the idea of conjugated gradient (CG) method for minimizing a quadratic function since CG guarantees a convergence within finite steps for a quadratic programing. Also, CG Steihaug’s method has the merit of Cauchy point and Dogleg method that both in terms of superlinear convergence rate and inexpensiveness to compute. | The most widely used method for solving a trust-region subproblem is by using the idea of conjugated gradient (CG) method for minimizing a quadratic function since CG guarantees a convergence within finite steps for a quadratic programing. Also, CG Steihaug’s method has the merit of Cauchy point and Dogleg method that both in terms of superlinear convergence rate and inexpensiveness to compute. | ||

+ | |||

Pseudo-code for CG Steihaug method in solving trust region subproblem | Pseudo-code for CG Steihaug method in solving trust region subproblem | ||

+ | |||

+ | Given tolerance \epsilon_k > 0; | ||

+ | Set <math>z_0 = 0, r_0 = \laplace f_k , d_0 = −r_0 =−\laplace fk</math> ; | ||

+ | if <math>||r_0|| < k</math> | ||

+ | return <math>p_k = z_0 = 0</math>; | ||

+ | for <math>j = 0, 1, 2, . . .</math> | ||

+ | if <math>{d_j}^TB_kd_j <= 0</math> | ||

+ | Find <math>\tau</math> such that <math>p_k = z j + \taud_j</math> minimizes <math>mk(p_k)</math> | ||

+ | and satisfies <math>||p_k|| = �k</math> ; | ||

+ | return <math>p_k</math> ; | ||

+ | Set <math>\alpha_j = rTj</math> | ||

+ | <math>r_j /{d_j}^TB_kd_j</math>; | ||

+ | Set <math>z_j+1 = z j + \alpha_jd_j</math> ; | ||

+ | if <math>||z_j+1|| >= �k</math> | ||

+ | Find <math>\tau >= 0</math> such that <math>p_k = z_j + \taud_j</math> satisfies <math>||p_k|| = �k</math> ; | ||

+ | return <math>p_k</math> ; | ||

+ | Set <math>r_j+1 = r_j + \alpha_j B_kd_j</math> ; | ||

+ | if <math>||r_j+1|| < k</math> | ||

+ | return <math>p_k = z j+1</math>; | ||

+ | Set <math>\beta_j+1 = rTj+1r j+1/rTjr_j</math> ; | ||

+ | Set <math>d_j+1 = −r j+1 + \beta_j+1d_j</math> ; | ||

+ | '''end (for)'''. | ||

+ | |||

==Conclusion== | ==Conclusion== | ||

'''Trust-Region vs. Line Search''' | '''Trust-Region vs. Line Search''' |

## Revision as of 20:08, 25 May 2014

Authors: Wenhe (Wayne) Ye (ChE 345 Spring 2014) Steward: Dajun Yue, Fengqi You Date Presented: Apr. 10, 2014

## Contents |

## Introduction

Trust-region method (TRM) is one of the most important numerical optimization method in solving nonlinear programing (NLP) problems. It works in a way that first define a region around the current best solution, in which a certain model (usually a quadratic model) can to some extent approximate the original objective function. TRM then take a step forward according to the model depicts within the region. Unlike the line search method, TRM usually determines both the step size and direction at the same time. If a notable decrease (our following discussion will based on minimization problems) is gained after the step forward, then the model is believed to be a good representation of the original objective function. If the improvement is too subtle or even a negative improvement is gained, the region is not to be believed as a good representation of the original objective function. The convergence is thus ensured that the size of the “trust region” (usually the radius in Euclidean norm) in each iteration would depend on the improvement previously made.

## Important Concepts

**Trust-region**

In most cases, the trust-region is defined as a spherical area of radius in which the trust-region subproblem lies.

**Trust-region subproblem**

If we are using the quadratic model to approximate the original objective function, then our optimization problem is essentially reduced to solving a sequence of trust-region subporblems

Where is the trust region radius, is the gradient at current point and is the hessian (or a hessian approximation). It is easy to find the solution to the trust-region subproblem if is positive definite.

**Actual reduction and predicted reduction**

The most critical issue underlying the trust-region method is to update the size of the trust-region at every iteration. If the current iteration makes a satisfactory reduction, we may exploits our model more in the next iteration by setting a larger . If we only achieved a limited improvement after the current iteration, the radius of the trust-region then should not have any increase, or in the worst cases, we may decrease the size of the trust-region by adjusting the radius to a smaller value to check the model’s validity.

Whether to take a more ambitious step or a more conservative one is depend on the ratio between the actual reduction gained by true reduction in the original objective function and the predicted reduction expected in the model function. Empirical threshold values of the ratio will guide us in determining the size of the trust-region.

The picture shows both the stepsize and the improving direction is a consequence of a pre-determined trust-region size

## Trust Region Algorithm

Before implementing the trust-region algorithm, we should first determine several parameters. is the upper bound for the size of the trust region. , and ,, are the threshold values for evaluating the goodness of the quadratic model thus for determining the trust-region’s size in the next iteration.

**Pseudo-code**

Decide the starting point at , set the iteration number

**For**

Get the improving step by solving trust-region subproblem ()

Evaluate from equation()

**If**

**Else**

**If** and (full step and model is a good approximation)

**Else**

**If**

**Else**

(the model is not a good approximation and need to solve another trust-region subproblem within a smaller trust-region)

**end**
>

## Methods of Solving the Trust-region Subproblem

### Cauchy point calculation

In line search methods, we may find an improving direction from the gradient information, that is, by taking the steepest descent direction with regard to the maximum range we could make. We can solve the trust-region subproblem in an inexpensive way. This method is also denoted as the Cauchy point calculation. We can also express the improving step explicitly by the following closed-form equations

EQUATION3

### Limitations and Further Improvements

Though Cauchy point is cheap to implement, like the steepest descent method, it performs poorly in some cases. Varies kinds of improvements are based on including the curvature information from Bk.

#### Dogleg Method

If Bk is positive definite (we can use quasi-Newton hessian approximation to guarantee), then a V-shaped trajectory can be determined by EQUATION4 FIG Note that hessian or approximate hessian will be evaluated

#### Conjugated Gradient Steihaug’s Method

The most widely used method for solving a trust-region subproblem is by using the idea of conjugated gradient (CG) method for minimizing a quadratic function since CG guarantees a convergence within finite steps for a quadratic programing. Also, CG Steihaug’s method has the merit of Cauchy point and Dogleg method that both in terms of superlinear convergence rate and inexpensiveness to compute.

Pseudo-code for CG Steihaug method in solving trust region subproblem

Given tolerance \epsilon_k > 0;
Set **Failed to parse(unknown function '\laplace'): z_0 = 0, r_0 = \laplace f_k , d_0 = −r_0 =−\laplace fk**

;

if
return ;
for
if
Find such that **Failed to parse(unknown function '\taud'): p_k = z j + \taud_j**

minimizes

and satisfies **Failed to parse(lexing error): ||p_k|| = �k**

;

return ;
Set
;
Set ;
if **Failed to parse(lexing error): ||z_j+1|| >= �k**

Find such that **Failed to parse(unknown function '\taud'): p_k = z_j + \taud_j**

satisfiesFailed to parse(lexing error): ||p_k|| = �k;

return ;
Set ;
if
return ;
Set ;
Set **Failed to parse(lexing error): d_j+1 = −r j+1 + \beta_j+1d_j**

;

**end (for)**.

## Conclusion

**Trust-Region vs. Line Search**

Line search methods:

- Pick improving direction

- Pick stepsize to minimize

- Update the incumbent solution

Trust-region methods:

- Pick the stepsize (the trust-region subproblem is constrained)

- Solving the subproblem using the approximated model

- If the improvement is acceptable, update the incumbent solution and the size of the trust-region

## References

1. J. Nocedal, S. J. Wright, Numerical optimization. Springer, 1999.

2. Wikipedia page for Branch and bound

3. ...To be Modified