STrustr: Difference between revisions
(Created page with "==Purpose== Solve optimization problems constrained by a convex feasible region. ''sTrustr ''solves problems of the form <math> \begin{array}{cccccc} \min\limits_{x} & f(x) &...") |
No edit summary |
||
Line 1: | Line 1: | ||
[[Category:Solvers]] | |||
{{cleanup|Clean this article.}} | |||
==Purpose== | ==Purpose== | ||
Revision as of 08:23, 11 July 2011
{{#switch: | left =
{{#switch:{{#if: | {{{smallimage}}} | }} | none =| #default =
}} {{#if:{{#if: | {{{smallimageright}}} | }} | {{#ifeq:{{#if: | {{{smallimageright}}} | }}|none | | }} }}{{
#switch:left | left =| #default = }} {{#if:{{#if: | {{{smallimage}}} | }} | {{#if: | {{{smallimage}}} | }} | [[File:{{#switch:caution | critical = Ambox speedy deletion.png | important = Ambox deletion.png | warning = Ambox content.png | caution = Cleanup.png | move = Ambox move.png | protection = Ambox protection.png | notice | #default = Cleanup.png }} | {{#switch:left | left = 20x20px | #default = 40x40px }} |link=|alt=]] }}{{#switch:left | left =| #default = | {{#if:
| {{{smalltext}}} | Cleanup is needed}} | {{#switch:left
| left = {{#if: | {{{smallimageright}}} | }}| #default = {{#if:
}}| {{{smallimageright}}} |}} |
| #default =
{{#switch: | none =| #default =
}}{{#if: | {{#ifeq:|none
|| }} }}
{{
#switch: | left =| #default = }} {{#if: | | [[File:{{#switch:caution | critical = Ambox speedy deletion.png | important = Ambox deletion.png | warning = Ambox content.png | caution = Cleanup.png | move = Ambox move.png | protection = Ambox protection.png | notice | #default = Cleanup.png }} | {{#switch: | left = 20x20px | #default = 40x40px }} |link=|alt=]] }}{{#switch: | left =| #default = | Cleanup is needed Clean this article. |
{{#switch:
| left =| #default = |
}}
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 (SVG with PNG fallback (MathML can be enabled via browser plugin): Invalid response ("Math extension cannot connect to Restbase.") from server "https://wikimedia.org/api/rest_v1/":): {\displaystyle b_{L},b_{U}\in \MATHSET{R}^{m_{2}}}
.
Calling Syntax
Result = sTrustr(Prob, varargin)
Description of 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 Table 141. | |
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. | |
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 Table 150. | |
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. 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.
M-files Used
qpSolve.m, tomSolve.m, iniSolve.m, endSolve.m