STrustr: Difference between revisions

From TomWiki
Jump to navigationJump to search
No edit summary
No edit summary
Line 1: Line 1:
[[Category:Solvers]]
[[Category:Solvers]]
{{cleanup|Clean this article.}}
==Purpose==
==Purpose==


Line 23: Line 21:
==Calling  Syntax==
==Calling  Syntax==


<syntaxhighlight lang="matlab">
Result = sTrustr(Prob, varargin)
Result = sTrustr(Prob, varargin)
</syntaxhighlight>


===Description  of Inputs===
==Inputs==


{|
{| class="wikitable"
|''Prob''||colspan="2"|Problem description structure. The following fields are used:
!''Prob''||colspan="2"|Problem description structure. The following fields are used:
|-
|-
|||''A ''||Constraint matrix for linear constraints.  
|||''A ''||Constraint matrix for linear constraints.  
Line 54: Line 54:
|||''FUNCS.c''||Name of m-file computing the vector of constraint functions ''c''(''x'').
|||''FUNCS.c''||Name of m-file computing the vector of constraint functions ''c''(''x'').
|-
|-
|||''FUNCS.dc''||Name of m-file computing the matrix of constraint normals ''?c''(''x'')''/dx''.
|||''FUNCS.dc''||Name of m-file computing the matrix of constraint normals ''&delta;c''(''x'')''/dx''.
|-
|-valign="top"
|||''optParam''||Structure with special fields for optimization parameters, see Table 141.
|||''optParam''||Structure with special fields for optimization parameters, see [[TOMLAB Appendix A]].
|-
 
|||||Fields used are: ''eps f'', ''eps g'', ''eps c'', ''eps x'', ''eps Rank'', ''MaxIter'', ''wait'', ''size x'', ''size f'', ''xTol'', ''LowIts'', ''PriLev'', ''method ''and ''QN InitMatrix''.
Fields used are: ''eps_f'', ''eps_g'', ''eps_c'', ''eps_x'', ''eps_Rank'', ''MaxIter'', ''wait'', ''size_x'', ''size_f'', ''xTol'', ''LowIts'', ''PriLev'', ''method ''and ''QN InitMatrix''.
|-
|-
|||''PartSep''||Structure with special fields for partially separable functions, see Table 142.
|||''PartSep''||Structure with special fields for partially separable functions, see [[TOMLAB Appendix A]].
|-
|-
|||''varargin''||Other parameters directly sent to low level routines.
|||''varargin''||Other parameters directly sent to low level routines.
|}
|}


===Description of Outputs===
==Description of Outputs==


{|
{| class="wikitable"
|''Result''||colspan="2"|Structure with result from optimization. The following fields are changed:
!''Result''||colspan="2"|Structure with result from optimization. The following fields are changed:
|-
|-
|||''x_k''||Optimal point.
|||''x_k''||Optimal point.
Line 88: Line 88:
|||''cJac''||Constraint Jacobian at optimum.
|||''cJac''||Constraint Jacobian at optimum.
|-
|-
|||''xState''||State of each variable, described in Table 150.
|||''xState''||State of each variable, described in [[TOMLAB Appendix A]].
|-
|-
|||''Iter''||Number of iterations.
|||''Iter''||Number of iterations.
|-
|-
|||''ExitFlag''||Flag giving exit status.
|||''ExitFlag''||Flag giving exit status.
|-
|-valign="top"
|||''Inform''||Binary code telling type of convergence:
|||''Inform''||Binary code telling type of convergence:
|-
 
|||||1: Iteration points are close.
1: Iteration points are close.
|-
 
|||||2: Projected gradient small.
2: Projected gradient small.
|-
 
|||||3: Iteration points are close and projected gradient small.
3: Iteration points are close and projected gradient small.
|-
 
|||||4: Relative function value reduction low for ''LowIts ''iterations.
4: Relative function value reduction low for ''LowIts ''iterations.
|-
 
|||||5: Iteration points are close and relative function value reduction low for LowIts iterations.
5: Iteration points are close and relative function value reduction low for LowIts iterations.
|-
 
|||||6: Projected gradient small and relative function value reduction low for LowIts iterations.
6: Projected gradient small and relative function value reduction low for LowIts iterations.
|-
 
|||||7:  Iteration  points are close, projected gradient  small and relative  function value reduction low for LowIts iterations.
7:  Iteration  points are close, projected gradient  small and relative  function value reduction low for LowIts iterations.
|-
 
|||||8: Too small trust region.
8: Too small trust region.
|-
 
|||||9: Trust region small. Iteration points close.
9: Trust region small. Iteration points close.
|-
 
|||||10: Trust region and projected gradient small.
10: Trust region and projected gradient small.
|-
 
|||||11: Trust region and projected gradient small, iterations close.
11: Trust region and projected gradient small, iterations close.
|-
 
|||||12: Trust region small, Relative f(x) reduction low.
12: Trust region small, Relative f(x) reduction low.
|-
 
|||||13: Trust region small, Relative f(x) reduction low. Iteration points are close.
13: Trust region small, Relative f(x) reduction low. Iteration points are close.
|-
 
|||||14: Trust region small, Relative f(x) reduction low. Projected gradient small.
14: Trust region small, Relative f(x) reduction low. Projected gradient small.
|-
 
|||||15:  Trust  region small, Relative  f(x)  reduction low. Iteration  points close, Projected gradient small.
15:  Trust  region small, Relative  f(x)  reduction low. Iteration  points close, Projected gradient small.
|-
 
|||||101: Maximum number of iterations reached.
101: Maximum number of iterations reached.
|-
 
|||||102: Function value below given estimate.
102: Function value below given estimate.
|-
 
|||||103: Convergence to saddle point (eigenvalues computed).
103: Convergence to saddle point (eigenvalues computed).
|-
|-
|||''Solver''||Solver used.  
|||''Solver''||Solver used.  
Line 141: Line 141:
==Description==
==Description==


The routine ''sTrustr ''is a solver for general constrained optimization, which uses a structural trust region algorithm combined with an initial  trust region radius algorithm (''itrr''). The feasible region defined by the constraints must be convex. The code is based on the algorithms in \[13\] and \[67\]. BFGS or DFP is used for the Quasi-Newton update, if the analytical Hessian is not used. ''sTrustr ''calls internal routine ''itrr''.
The routine ''sTrustr ''is a solver for general constrained optimization, which uses a structural trust region algorithm combined with an initial  trust region radius algorithm (''itrr''). The feasible region defined by the constraints must be convex. BFGS or DFP is used for the Quasi-Newton update, if the analytical Hessian is not used. ''sTrustr ''calls internal routine ''itrr''.


==M-files  Used==
==M-files  Used==

Revision as of 08:49, 21 July 2011

Purpose

Solve optimization problems constrained by a convex feasible region.

sTrustr solves problems of the form



where Failed to parse (unknown function "\MATHSET"): {\displaystyle x,x_{L},x_{U}\in \MATHSET{R}^{n}} , Failed to parse (unknown function "\MATHSET"): {\displaystyle c(x),c_{L},c_{U}\in \MATHSET{R}^{m_{1}}} , Failed to parse (unknown function "\MATHSET"): {\displaystyle A\in \MATHSET{R}^{m_{2}\times n}} and Failed to parse (unknown function "\MATHSET"): {\displaystyle b_{L},b_{U}\in \MATHSET{R}^{m_{2}}} .

Calling Syntax

Result = sTrustr(Prob, varargin)

Inputs

Prob Problem description structure. The following fields are used:
A Constraint matrix for linear constraints.
b_L Lower bounds on the linear constraints.
b_U Upper bounds on the linear constraints.
c_L Lower bounds on the general constraints.
c_U Upper bounds on the general constraints.
x_L Lower bounds on the variables.
x_U Upper bounds on the variables.
x_0 Starting point.
FUNCS.f Name of m-file computing the objective function f (x).
FUNCS.g Name of m-file computing the gradient vector g(x).
FUNCS.H Name of m-file computing the Hessian matrix H (x).
FUNCS.c Name of m-file computing the vector of constraint functions c(x).
FUNCS.dc Name of m-file computing the matrix of constraint normals δc(x)/dx.
optParam Structure with special fields for optimization parameters, see TOMLAB Appendix A.

Fields used are: eps_f, eps_g, eps_c, eps_x, eps_Rank, MaxIter, wait, size_x, size_f, xTol, LowIts, PriLev, method and QN InitMatrix.

PartSep Structure with special fields for partially separable functions, see TOMLAB Appendix A.
varargin Other parameters directly sent to low level routines.

Description of Outputs

Result Structure with result from optimization. The following fields are changed:
x_k Optimal point.
f_k Function value at optimum.
g_k Gradient value at optimum.
c_k Value of constraints at optimum.
H_k Hessian value at optimum.
v_k Lagrange multipliers.
x_0 Starting point.
f_0 Function value at start.
cJac Constraint Jacobian at optimum.
xState State of each variable, described in TOMLAB Appendix A.
Iter Number of iterations.
ExitFlag Flag giving exit status.
Inform Binary code telling type of convergence:

1: Iteration points are close.

2: Projected gradient small.

3: Iteration points are close and projected gradient small.

4: Relative function value reduction low for LowIts iterations.

5: Iteration points are close and relative function value reduction low for LowIts iterations.

6: Projected gradient small and relative function value reduction low for LowIts iterations.

7: Iteration points are close, projected gradient small and relative function value reduction low for LowIts iterations.

8: Too small trust region.

9: Trust region small. Iteration points close.

10: Trust region and projected gradient small.

11: Trust region and projected gradient small, iterations close.

12: Trust region small, Relative f(x) reduction low.

13: Trust region small, Relative f(x) reduction low. Iteration points are close.

14: Trust region small, Relative f(x) reduction low. Projected gradient small.

15: Trust region small, Relative f(x) reduction low. Iteration points close, Projected gradient small.

101: Maximum number of iterations reached.

102: Function value below given estimate.

103: Convergence to saddle point (eigenvalues computed).

Solver Solver used.
SolverAlgorithm Solver algorithm used.
Prob Problem structure used.

Description

The routine sTrustr is a solver for general constrained optimization, which uses a structural trust region algorithm combined with an initial trust region radius algorithm (itrr). The feasible region defined by the constraints must be convex. BFGS or DFP is used for the Quasi-Newton update, if the analytical Hessian is not used. sTrustr calls internal routine itrr.

M-files Used

qpSolve.m, tomSolve.m, iniSolve.m, endSolve.m

See Also