|
TOMLAB OPTIMIZATION ENVIRONMENT: qpSolve |
![]() |
qpSolve
Purpose
For solving quadratic programming problems.
Syntax
Result = qpSolve(Prob)
Description
Active set strategy for Quadratic Programming.
Problem
min 0.5 * x' * F * x + c' * x. x in R^n
x
s/t x_L <= x <= x_U
b_L <= A x <= b_U
Equality equations: Set b_L==b_U
Fixed variables: Set x_L==x_U
Input Parameters
Fields in Prob:
QP.F: The matrix F in 0.5 x' F x
QP.c: The vector c in c'x
A: The linear constraint matrix
b_L: The lower bounds for the linear constraints
b_U: The upper bounds for the linear constraints
x_L: Lower bounds on x
x_U: Upper bounds on x
b_L, b_U, x_L, x_U must either be empty or of full length
x_0: Starting point x
PriLevOpt Print level: 0 None, 1 Final result, 2 Each iteration, short
3 More information each iteration
optParam struct:
wait: Pause at each iteration if wait is true ( = 1)
MaxIter max([500,3*n,optParam.MaxIter]); Maximal number of iterations
epsRank Rank tolerance
xTol Tolerance to judge that x are close
bTol Linear feasibility tolerance
-----------------------------------------------------------------------
Hot basis (Warm start) variables:
Prob.QP.UseHot If > 0, Uses a warm start basis, either from file or from
the structure Prob
Prob.QP.HotFile If nonempty, a warm start basis are read from this file
If Prob.QP.HotFile is empty, read warm start basis from structure
Prob:
x = Prob.QP.Hot.x; B = Prob.QP.Hot.B; Q = Prob.QP.Hot.Q; R = Prob.QP.Hot.R; E = Prob.QP.Hot.E; Prob.QP.HotFreq If > 0, a warm start basis are saved, either on a file
HotP1xxx or HotP2xxx, where HotP1 is used when
solving PhaseI problems, and HotP2 when solving PhaseII problems.
xxx is a number.
Prob.QP.HotN The number of warm start basis files, xxx=mod(Freq,HotN),
where xxx is a number from 0 to HotN-1
-----------------------------------------------------------------------
Output Parameters
Structure Result. Fields used:
Iter Number of iterations
ExitFlag Exit flag
== 0 => OK
== 1 => Maximal number of iterations reached. No bfs found.
== 2 => Unbounded feasible region.
== 3 => Rank problems
== 4 => No feasible point found with lpSolve
== 10 => Errors in input parameters
ExitTest Text string giving ExitFlag and Inform information
Inform If ExitFlag > 0, Inform=ExitFlag, otherwise Inform show type
of convergence:
0 = Unconstrained solution
1 = lambda >= 0.
2 = lambda >= 0. No 2nd order Lagrange mult. estimate available
3 = lambda and 2nd order Lagrange mult. positive, problem is
not negative definite.
4 = Negative definite problem. 2nd order Lagrange mult. positive,
but releasing variables leads to same working set.
x_k Solution
v_k Lagrange parameters; lower/upper bounds, then linear constraints
p_dx Search steps in x
alphaV Step lengths for each search step
f_k Function value 0.5*x'*F*x+c'*x
g_k Gradient F*x+c
H_k Hessian F (constant)
Solver qpSolve
x_0 Starting point x_0
xState State variable: Free==0; On lower == 1; On upper == 2; Fixed == 3;
![]() |
qld | slsSolve | ![]() |