QpSolve: Difference between revisions
No edit summary |
No edit summary |
||
(2 intermediate revisions by the same user not shown) | |||
Line 1: | Line 1: | ||
[[Category:Solvers]] | [[Category:Solvers]] | ||
==Purpose== | ==Purpose== | ||
Solve general quadratic programming problems. | Solve general quadratic programming problems. | ||
''qpSolve ''solves problems | ''qpSolve ''solves problems of the form | ||
Line 16: | Line 14: | ||
where <math>x,x_{L},x_{U}\in \ | where <math>x,x_{L},x_{U}\in \mathbb{R} ^{n}</math>, <math>F\in \mathbb{R}^{n\times n}</math>, <math>c \in \mathbb{R}^{n}</math>, <math>A\in \mathbb{R}^{m\times n}</math> and <math>b_{L},b_{U}\in \mathbb{R}^{m}</math>. | ||
==Calling Syntax== | ==Calling Syntax== | ||
<source lang="matlab"> | |||
Result = qpSolve(Prob) or | Result = qpSolve(Prob) or | ||
Result = tomRun('qpSolve', Prob, 1); | Result = tomRun('qpSolve', Prob, 1); | ||
</source> | |||
== | ==Inputs== | ||
{| | {| class="wikitable" | ||
!''Prob''||colspan="2"|Problem description structure. The following fields are used: | |||
|- | |- | ||
|||''QP.F''||Constant matrix, the Hessian. | |||''QP.F''||Constant matrix, the Hessian. | ||
Line 45: | Line 44: | ||
|||''x_0''||Starting point. | |||''x_0''||Starting point. | ||
|-valign="top" | |-valign="top" | ||
|||''optParam''||Structure with special fields for optimization parameters, see | |||''optParam''||Structure with special fields for optimization parameters, see [[TOMLAB Appendix A]]. Fields used are: ''eps_f'', ''eps_Rank'', ''MaxIter'', ''wait'', ''bTol ''and ''PriLev''. | ||
|} | |} | ||
== | ==Outputs== | ||
{| class="wikitable" | |||
!''Result''||colspan="2"|Structure with result from optimization. The following fields are changed: | |||
|- | |- | ||
|||''x_k''||Optimal point. | |||''x_k''||Optimal point. | ||
Line 67: | Line 67: | ||
|||''f_0''||Function value at start. | |||''f_0''||Function value at start. | ||
|- | |- | ||
|||''xState''||State of each variable, described in | |||''xState''||State of each variable, described in [[TOMLAB Appendix B]]. | ||
|- | |- | ||
|||''Iter''||Number of iterations. | |||''Iter''||Number of iterations. | ||
|- | |-valign="top" | ||
|||''ExitFlag''||0: OK, see ''Inform ''for type of convergence. | |||''ExitFlag''||0: OK, see ''Inform ''for type of convergence. | ||
2: Can not find feasible starting point ''x_0''. | |||
3: Rank problems. Can not find any solution point. | |||
4: Unbounded solution. | |||
10: Errors in input parameters. | |||
|-valign="top" | |-valign="top" | ||
|||''Inform''||If ''ExitF lag > ''0, '' | |||''Inform''||If ''ExitF lag > ''0, ''Inform ''= ''ExitFlag'', otherwise ''I nf orm ''show type of convergence: | ||
0: Unconstrained solution. | |||
1: ''λ = ''0. | |||
2: ''λ = ''0. No second order Lagrange mult. estimate available. | |||
3: ''λ ''and 2nd order Lagr. mult. positive, problem is not negative definite. | |||
4: Negative definite problem. 2nd order Lagr. mult. positive, but releasing variables leads to the same working set. | |||
|- | |- | ||
|||''Solver''||Solver used. | |||''Solver''||Solver used. | ||
Line 102: | Line 102: | ||
==Description== | ==Description== | ||
Implements an active set strategy for Quadratic Programming. For negative definite problems it computes | Implements an active set strategy for Quadratic Programming. For negative definite problems it computes eigenvalues and is using directions of negative curvature to proceed. To find an initial feasible point the Phase 1 LP problem is solved calling [[lpSimplex]]. The routine is the standard QP solver used by [[nlpSolve]], [[sTrustr]] and [[conSolve]]. | ||
==M-files Used== | ==M-files Used== | ||
Line 110: | Line 110: | ||
==See Also== | ==See Also== | ||
* | *qpBiggs | ||
* | *qpe | ||
* | *qplm | ||
* | *nlpSolve] | ||
* | *sTrustr | ||
* | *conSolve |
Latest revision as of 08:17, 16 January 2012
Purpose
Solve general quadratic programming problems.
qpSolve solves problems of the form
where , , , and .
Calling Syntax
Result = qpSolve(Prob) or
Result = tomRun('qpSolve', Prob, 1);
Inputs
Prob | Problem description structure. The following fields are used: | |
---|---|---|
QP.F | Constant matrix, the Hessian. | |
QP.c | Constant vector. | |
A | Constraint matrix for linear constraints. | |
b_L | Lower bounds on the linear constraints. | |
b_U | Upper bounds on the linear constraints. | |
x_L | Lower bounds on the variables. | |
x_U | Upper bounds on the variables. | |
x_0 | Starting point. | |
optParam | Structure with special fields for optimization parameters, see TOMLAB Appendix A. Fields used are: eps_f, eps_Rank, MaxIter, wait, bTol and PriLev. |
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. | |
H_k | Hessian value at optimum. | |
v_k | Lagrange multipliers. | |
x_0 | Starting point. | |
f_0 | Function value at start. | |
xState | State of each variable, described in TOMLAB Appendix B. | |
Iter | Number of iterations. | |
ExitFlag | 0: OK, see Inform for type of convergence.
2: Can not find feasible starting point x_0. 3: Rank problems. Can not find any solution point. 4: Unbounded solution. 10: Errors in input parameters. | |
Inform | If ExitF lag > 0, Inform = ExitFlag, otherwise I nf orm show type of convergence:
0: Unconstrained solution. 1: λ = 0. 2: λ = 0. No second order Lagrange mult. estimate available. 3: λ and 2nd order Lagr. mult. positive, problem is not negative definite. 4: Negative definite problem. 2nd order Lagr. mult. positive, but releasing variables leads to the same working set. | |
Solver | Solver used. | |
SolverAlgorithm | Solver algorithm used. | |
Prob | Problem structure used. |
Description
Implements an active set strategy for Quadratic Programming. For negative definite problems it computes eigenvalues and is using directions of negative curvature to proceed. To find an initial feasible point the Phase 1 LP problem is solved calling lpSimplex. The routine is the standard QP solver used by nlpSolve, sTrustr and conSolve.
M-files Used
ResultDef.m, lpSimplex.m, tomSolve.m, iniSolve.m, endSolve.m
See Also
- qpBiggs
- qpe
- qplm
- nlpSolve]
- sTrustr
- conSolve