PdscoTL
Purpose
pdscoTL solves linearly constrained convex nonlinear optimization problems.
<equation id="eqn:pdsco">
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 \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} }
</equation>
where 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 f(x)}
is a convex separable 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 \mathbb{R}^{n}}
, 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 A\in \mathbb{R}^{m \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\mathbb{R}^{m}}
.
Calling Syntax
Result=tomRun('pdsco',Prob,...);Inputs
| Prob | Problem description structure. The following fields are used: | |
| x_0 | Initial x vector, used if non-empty. | |
| A | The linear constraints coefficient matrix. | |
| b_L,b_U | Lower and upper bounds for the linear constraints. | |
| HessPattern | Non-zero pattern for the objective function. Only the diagonal is needed. Default if empty is the unit matrix. | |
| 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 pdscoSet. | |
| gamma | Primal regularization parameter. | |
| delta | Dual regularization parameter. | |
| 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 x. * z = 0 | |
| bTol | Accuracy for satisfying Ax + r = b, ATy + 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) | |
Outputs
| Result | Structure with result from optimization. The following fields are set by pdscoTL: | |
| 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] vector as returned from pdsco, 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 pdsco MEX | |
| Inform | pdsco information parameter:
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 ('pdsco') | |
| SolverAlgorithm | Description of the solver | |
Description
pdsco implements an primal-dual barrier method developed at Stanford Systems Optimization Laboratory (SOL). The problem (#Equation: pdsco) is first reformulated into SOL PDSCO form:
Equation: pdsco
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 \begin{array}{clll} \min\limits_x & f(x) \\ \mathrm{s/t} & x & \geq & x_U \\ {} & Ax & = & b. \\ \end{array} }
The problem actually solved by pdsco is
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 \begin{array}{lllcll} \min\limits_{x,r} & {f(x) + \frac{1}{2}\|\gamma x\|^2 + \frac{1}{2}\|r / \delta \|^2 } \\ \\ \mathrm{s/t} & & & x & \geq & 0 \\ {} & Ax & + & r & = & b \\ {} & {r \mathrm{\ unconstrained}} \\ \end{array} }
where 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 \gamma}
is the primal regularization parameter, typically small but 0 is allowed. Furthermore, 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 \delta}
is the dual regularization parameter, typically small or 1; must be strictly greater than zero.
With positive 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 \gamma,\delta} the primal-dual solution 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,y,z)} is bounded and unique.
See pdsco.m for a detailed discussion of 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 \gamma} 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 \delta} . Note that in pdsco.m, the objective 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 f(x)} is denoted 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 \phi(x)} , 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 bl == x\_L} 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 bu == x\_U} .
Examples
Problem 14 and 15 in tomlab/testprob/con prob.m are good examples of the use of pdscoTL.
M-files Used
pdscoSet.m, pdsco.m, Tlsqrmat.m
See Also
pdcoTL.m