TOMLAB Solver Reference: Difference between revisions
Line 135: | Line 135: | ||
*[[nlpSolve]] | *[[nlpSolve]] | ||
==pdcoTL== | ====pdcoTL==== | ||
'''Purpose''' | |||
''pdcoTL ''solves linearly constrained convex nonlinear optimization problems. | ''pdcoTL ''solves linearly constrained convex nonlinear optimization problems. | ||
*[ | |||
<math> | |||
\begin{array}{cccccc} | |||
\min\limits_x & f(x) \\ | |||
\mathrm{s/t} & x_L & \leq & x & \leq & x_U \\ | |||
{} & b_L & \leq & Ax & \leq & b_U \\ | |||
\end{array} | |||
</math> | |||
where <math>f(x)</math> is a convex nonlinear function, <math>x,x_L,x_U \in \RR^n</math> , <math>A\in \RR^{m \times n}</math> and <math>b_L, b_U \in \RR^m</math>. | |||
'''Calling Syntax''' | |||
Result=tomRun('pdco',Prob,...); | |||
'''Description of Inputs''' | |||
{| | |||
|''Prob''||colspan="2"|Problem description structure. The following fields are used: | |||
|- | |||
|||''x_0''||Initial ''x ''vector, used if non-empty. | |||
|- | |||
|||''A''||The linear constraint matrix. | |||
|- | |||
|||''b_L,b_U''||Lower and upper bounds for the linear constraints. | |||
|- | |||
|||''PriLevOpt''||Print level in ''pdsco ''solver. If ''> ''0: prints summary information. | |||
|- | |||
|||''SOL''||Structure with SOL special parameters: | |||
|- | |||
|||''pdco''||Options structure with fields as defined by ''pdcoSet''. | |||
|-valign="top" | |||
|||''d1''||Primal regularization vector. Must be a positive vector (length ''n'') or scalar, in which case ''D''1 = ''diag''(''d''1) is used. Default: 10''-''4 . | |||
|-valign="top" | |||
|||''d2''||Dual regularization vector. Must be a positive vector (length ''m'') or a scalar value, in which case ''D''2 = ''diag''(''d''2) is used. Default: 10''-''4 . | |||
|- | |||
|||''y0''||Initial dual parameters for linear constraints (default 0) | |||
|-valign="top" | |||
|||''z0''||Initial dual parameters for simple bounds (default 1''/N '') | |||
''xsize'',''zsize ''are used to scale (''x, y, z''). Good estimates should improve the performance of the barrier method. | |||
|- | |||
|||''xsize''||Estimate of the biggest x at the solution. (default 1''/N '') | |||
|- | |||
|||''zsize''||Estimate of the biggest z at the solution. (default 1''/N '') | |||
|- | |||
|||''optParam''||Structure with optimization parameters. The following fields are used: | |||
|- | |||
|||''MaxIter''||Maximum number of iterations. (''Prob.SOL.pdco.MaxIter''). | |||
|-valign="top" | |||
|||''MinorIter''||Maximum number of iterations in ''LSQR'' (''Prob.SOL.pdco.LSQRMaxIter''). | |||
|- | |||
|||''eps_x''||Accuracy for satisfying ''x''1 ''. * z''1 = 0'', x''2 ''.z''1 = 0, where ''z ''= ''z''1 ''- z''2 and ''z''1 '', z''2 ''> ''0.(''Prob.SOL.pdco.OptTol'') | |||
|-valign="top" | |||
|||''bTol''||Accuracy for satisfying ''Ax ''+ ''D''2 ''r ''= ''b'', ''AT y ''+ ''z ''= ''?f ''(''x'') and ''x - x''1 = ''bL , x ''+''x''2 = ''bU '', where ''x''1 '', x''2 ''> ''0 (''Prob.SOL.pdco.FeaTol'') | |||
|- | |||
|||''wait''||0 - solve the problem with default internal parameters; 1 - pause: allows interactive resetting of parameters. (''Prob.SOL.pdco.wait'') | |||
|} | |||
'''Description of Outputs''' | |||
{| | |||
|''Result''||colspan="2"|Structure with result from optimization. The following fields are set by ''pdcoTL'' | |||
|- | |||
|||''x_k''||Solution vector | |||
|- | |||
|||''f_k''||Function value at optimum | |||
|- | |||
|||''g_k''||Gradient of the function at the solution | |||
|- | |||
|||''H_k''||Hessian of the function at the solution, diagonal only | |||
|- | |||
|||''x_0''||Initial solution vector | |||
|- | |||
|||''f_0''||Function value at start, x = x_0 | |||
|- | |||
|||''xState''||State of variables. Free == 0; On lower == 1; On upper == 2; Fixed == 3; | |||
|-valign="top" | |||
|||''bState''||State of linear constraints. Free == 0; Lower == 1; Upper == 2; Equality == 3; | |||
|- | |||
|||''v_k''||Lagrangian multipliers (orignal bounds + constraints ) | |||
|-valign="top" | |||
|||''y_k''||Lagrangian multipliers (for bounds + dual solution vector) The full \[''z''; ''y''\] vec- tor as returned from ''pdco'', including slacks and extra linear constraints after rewriting constraints: ''-inf < b L < A * x < b U < inf ''; non-inf lower AND upper bounds | |||
|- | |||
|||''ExitFlag''||Tomlab Exit status from ''pdco ''MEX | |||
|- | |||
|||''Inform''||''pdco''information parameter: 0 = Solution found; | |||
|- | |||
|||0||Solution found | |||
|- | |||
|||1||Too many iterations | |||
|- | |||
|||2||Linesearch failed too often | |||
|- | |||
|||''Iter''||Number of iterations | |||
|- | |||
|||''FuncEv''||Number of function evaluations | |||
|- | |||
|||''GradEv''||Number of gradient evaluations | |||
|- | |||
|||''HessEv''||Number of Hessian evaluations | |||
|- | |||
|||''Solver''||Name of the solver ('pdco') | |||
|- | |||
|||''SolverAlgorithm''||Description of the solver | |||
|} | |||
'''Description''' | |||
''pdco ''implements an primal-dual barrier method developed at Stanford Systems Optimization Laboratory (SOL). | |||
The problem (19) is first reformulated into SOL PDCO form: | |||
<math> | |||
\begin{array}{cccccc} | |||
\min\limits_x & f(x) \\ | |||
\mathrm{s/t} & x_L & \leq & x & \leq & x_U \\ | |||
{} & & & Ax & = & b \\ | |||
{} & \multicolumn{5}{l}{r \mathrm{\ unconstrained}} \\ | |||
\end{array} | |||
</math> | |||
The problem actually solved by ''pdco ''is | |||
<math> | |||
\begin{array}{lllcll} | |||
\min\limits_{x,r} & | |||
\multicolumn{5}{l}{\phi(x) + \frac{1}{2}\|D_1 x\|^2 + \frac{1}{2}\|r\|^2 } \\ | |||
\\ | |||
\mathrm{s/t} & x_L & \leq & x & \leq & x_U \\ | |||
{} & Ax & + & D_{2}r & = & b \\ | |||
\end{array} | |||
</math> | |||
where <math>D_1</math> and <math>D_2</math> are positive-definite diagonal matrices defined from <math>d_1</math>, <math>d_2</math> given in Prob.SOL.d1 and Prob.SOL.d2. | |||
In particular, <math>d_2</math> indicates the accuracy required for satisfying each row of <math>Ax=b</math>. See ''pdco'' for a detailed discussion of <math>D_1</math> and <math>D_2</math>. Note that in ''pdco'', the objective <math>f(x)</math> is denoted <math>\phi(x)</math>, <math>bl == x\_L</math> and <math>bu == x\_U</math>. | |||
'''Examples''' | |||
Problem 14 and 15 in ''tomlab/testprob/con prob.m.m ''are good examples of the use of ''pdcoTL''. | |||
'''M-files Used''' | |||
''pdcoSet.m'', ''pdco.m'', ''Tlsqrmat.m'' | |||
'''See Also''' | |||
''pdscoTL.m'' | |||
==pdscoTL== | ==pdscoTL== |
Revision as of 06:49, 11 July 2011
{{#switch:
| left =
| #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 = |
}}
This page is part of the TOMLAB Manual. See TOMLAB Manual. |
Detailed descriptions of the TOMLAB solvers, driver routines and some utilities are given in the following sections. Also see the M-file help for each solver. All solvers except for the TOMLAB Base Module are described in separate manuals.
For a description of solvers called using the MEX-file interface, see the M-file help, e.g. for the MINOS solver minosTL.m. For more details, see the User's Guide for the particular solver.
clsSolve
Solves dense and sparse nonlinear least squares optimization problems with linear inequality and equality con- straints and simple bounds on the variables.
conSolve
Solve general constrained nonlinear optimization problems.
cutPlane
Solve mixed integer linear programming problems (MIP).
DualSolve
Solve linear programming problems when a dual feasible solution is available.
expSolve
Solve exponential fitting problems for given number of terms p.
glbDirect
Solve box-bounded global optimization problems.
glbSolve
Solve box-bounded global optimization problems.
glcCluster
Solve general constrained mixed-integer global optimization problems using a hybrid algorithm.
glcDirect
Solve global mixed-integer nonlinear programming problems.
glcSolve
Solve general constrained mixed-integer global optimization problems.
infLinSolve
Finds a linearly constrained minimax solution of a function of several variables with the use of any suitable TOMLAB solver. The decision variables may be binary or integer.
infSolve
Find a constrained minimax solution with the use of any suitable TOMLAB solver.
linRatSolve
Finds a linearly constrained solution of a function of the ratio of two linear functions with the use of any suitable TOMLAB solver. Binary and integer variables are not supported.
lpSimplex
Solve general linear programming problems.
L1Solve
Find a constrained L1 solution of a function of several variables with the use of any suitable nonlinear TOMLAB solver.
MilpSolve
Solve mixed integer linear programming problems (MILP).
minlpSolve
Branch & Bound algorithm for Mixed-Integer Nonlinear Programming (MINLP) with convex or nonconvex sub problems using NLP relaxation (Formulated as minlp-IP).
mipSolve
Solve mixed integer linear programming problems (MIP).
multiMin
multiMin solves general constrained mixed-integer global optimization problems. It tries to find all local minima by a multi-start method using a suitable nonlinear programming subsolver.
multiMINLP
multiMINLP solves general constrained mixed-integer global nonlinear optimization problems.
nlpSolve
Solve general constrained nonlinear optimization problems.
pdcoTL
Purpose
pdcoTL solves linearly constrained convex nonlinear optimization problems.
where is a convex nonlinear function, 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 x,x_L,x_U \in \RR^n}
, Failed to parse (unknown function "\RR"): {\displaystyle A\in \RR^{m \times n}}
and Failed to parse (unknown function "\RR"): {\displaystyle b_L, b_U \in \RR^m}
.
Calling Syntax
Result=tomRun('pdco',Prob,...);
Description of Inputs
Prob | Problem description structure. The following fields are used: | |
x_0 | Initial x vector, used if non-empty. | |
A | The linear constraint matrix. | |
b_L,b_U | Lower and upper bounds for the linear constraints. | |
PriLevOpt | Print level in pdsco solver. If > 0: prints summary information. | |
SOL | Structure with SOL special parameters: | |
pdco | Options structure with fields as defined by pdcoSet. | |
d1 | Primal regularization vector. Must be a positive vector (length n) or scalar, in which case D1 = diag(d1) is used. Default: 10-4 . | |
d2 | Dual regularization vector. Must be a positive vector (length m) or a scalar value, in which case D2 = diag(d2) is used. Default: 10-4 . | |
y0 | Initial dual parameters for linear constraints (default 0) | |
z0 | Initial dual parameters for simple bounds (default 1/N )
xsize,zsize are used to scale (x, y, z). Good estimates should improve the performance of the barrier method. | |
xsize | Estimate of the biggest x at the solution. (default 1/N ) | |
zsize | Estimate of the biggest z at the solution. (default 1/N ) | |
optParam | Structure with optimization parameters. The following fields are used: | |
MaxIter | Maximum number of iterations. (Prob.SOL.pdco.MaxIter). | |
MinorIter | Maximum number of iterations in LSQR (Prob.SOL.pdco.LSQRMaxIter). | |
eps_x | Accuracy for satisfying x1 . * z1 = 0, x2 .z1 = 0, where z = z1 - z2 and z1 , z2 > 0.(Prob.SOL.pdco.OptTol) | |
bTol | Accuracy for satisfying Ax + D2 r = b, AT y + z = ?f (x) and x - x1 = bL , x +x2 = bU , where x1 , x2 > 0 (Prob.SOL.pdco.FeaTol) | |
wait | 0 - solve the problem with default internal parameters; 1 - pause: allows interactive resetting of parameters. (Prob.SOL.pdco.wait) |
Description of Outputs
Result | Structure with result from optimization. The following fields are set by pdcoTL | |
x_k | Solution vector | |
f_k | Function value at optimum | |
g_k | Gradient of the function at the solution | |
H_k | Hessian of the function at the solution, diagonal only | |
x_0 | Initial solution vector | |
f_0 | Function value at start, x = x_0 | |
xState | State of variables. Free == 0; On lower == 1; On upper == 2; Fixed == 3; | |
bState | State of linear constraints. Free == 0; Lower == 1; Upper == 2; Equality == 3; | |
v_k | Lagrangian multipliers (orignal bounds + constraints ) | |
y_k | Lagrangian multipliers (for bounds + dual solution vector) The full \[z; y\] vec- tor as returned from pdco, including slacks and extra linear constraints after rewriting constraints: -inf < b L < A * x < b U < inf ; non-inf lower AND upper bounds | |
ExitFlag | Tomlab Exit status from pdco MEX | |
Inform | pdcoinformation parameter: 0 = Solution found; | |
0 | Solution found | |
1 | Too many iterations | |
2 | Linesearch failed too often | |
Iter | Number of iterations | |
FuncEv | Number of function evaluations | |
GradEv | Number of gradient evaluations | |
HessEv | Number of Hessian evaluations | |
Solver | Name of the solver ('pdco') | |
SolverAlgorithm | Description of the solver |
Description
pdco implements an primal-dual barrier method developed at Stanford Systems Optimization Laboratory (SOL).
The problem (19) is first reformulated into SOL PDCO form:
Failed to parse (unknown function "\multicolumn"): {\displaystyle \begin{array}{cccccc} \min\limits_x & f(x) \\ \mathrm{s/t} & x_L & \leq & x & \leq & x_U \\ {} & & & Ax & = & b \\ {} & \multicolumn{5}{l}{r \mathrm{\ unconstrained}} \\ \end{array} }
The problem actually solved by pdco is
Failed to parse (unknown function "\multicolumn"): {\displaystyle \begin{array}{lllcll} \min\limits_{x,r} & \multicolumn{5}{l}{\phi(x) + \frac{1}{2}\|D_1 x\|^2 + \frac{1}{2}\|r\|^2 } \\ \\ \mathrm{s/t} & x_L & \leq & x & \leq & x_U \\ {} & Ax & + & D_{2}r & = & b \\ \end{array} }
where and are positive-definite diagonal matrices defined from , given in Prob.SOL.d1 and Prob.SOL.d2.
In particular, indicates the accuracy required for satisfying each row of . See pdco for a detailed discussion of and . Note that in pdco, the objective is denoted , and .
Examples
Problem 14 and 15 in tomlab/testprob/con prob.m.m are good examples of the use of pdcoTL.
M-files Used
pdcoSet.m, pdco.m, Tlsqrmat.m
See Also
pdscoTL.m
pdscoTL
pdscoTL solves linearly constrained convex nonlinear optimization problems.