Functions to solve various forms of constrained quadratic programming. More...
Go to the source code of this file.
Functions | |
bool | vnl_solve_qp_with_equality_constraints (const vnl_matrix< double > &H, const vnl_vector< double > &g, const vnl_matrix< double > &A, const vnl_vector< double > &b, vnl_vector< double > &x) |
Solve quadratic programming problem with linear constraints. | |
bool | vnl_solve_qp_zero_sum (const vnl_matrix< double > &H, const vnl_vector< double > &g, vnl_vector< double > &x) |
Solve quadratic programming problem with constraint sum(x)=0. | |
bool | vnl_solve_qp_with_non_neg_constraints (const vnl_matrix< double > &H, const vnl_vector< double > &g, const vnl_matrix< double > &A, const vnl_vector< double > &b, vnl_vector< double > &x, double con_tol=1e-8, bool verbose=true) |
Find non-negative solution to a constrained quadratic programming problem. | |
bool | vnl_solve_qp_non_neg_sum_one (const vnl_matrix< double > &H, const vnl_vector< double > &g, vnl_vector< double > &x, bool verbose=true) |
Find non-negative solution to a constrained quadratic programming problem. |
Functions to solve various forms of constrained quadratic programming.
Definition in file vnl_solve_qp.h.
bool vnl_solve_qp_non_neg_sum_one | ( | const vnl_matrix< double > & | H, |
const vnl_vector< double > & | g, | ||
vnl_vector< double > & | x, | ||
bool | verbose | ||
) |
Find non-negative solution to a constrained quadratic programming problem.
Minimise F(x)=0.5x'Hx + g'x subject to sum(x)=1 and x(i)>=0 for all i
Uses a variant of the active set strategy to solve the problem. This performs a sequence of unconstrained solutions. If the inequality constraints are violated, the most violated x(i) is set to zero and a slightly smaller problem is solved.
H | Hessian of F(x) - must be symmetric |
x | On input, it must satisfy all constraints (sum(x)=1, x(i)>=0) |
verbose | When true, output error messages to cerr if failed |
True | if successful |
Definition at line 344 of file vnl_solve_qp.cxx.
bool vnl_solve_qp_with_equality_constraints | ( | const vnl_matrix< double > & | H, |
const vnl_vector< double > & | g, | ||
const vnl_matrix< double > & | A, | ||
const vnl_vector< double > & | b, | ||
vnl_vector< double > & | x | ||
) |
Solve quadratic programming problem with linear constraints.
Minimise F(x)=0.5x'Hx + g'x subject to Ax=b
H | Hessian of F(x) - must be symmetric |
True | if successful |
Definition at line 31 of file vnl_solve_qp.cxx.
bool vnl_solve_qp_with_non_neg_constraints | ( | const vnl_matrix< double > & | H, |
const vnl_vector< double > & | g, | ||
const vnl_matrix< double > & | A, | ||
const vnl_vector< double > & | b, | ||
vnl_vector< double > & | x, | ||
double | con_tol, | ||
bool | verbose | ||
) |
Find non-negative solution to a constrained quadratic programming problem.
Minimise F(x)=0.5x'Hx + g'x subject to Ax=b and x(i)>=0 for all i
Uses a variant of the active set strategy to solve the problem. This performs a sequence of unconstrained solutions. If the inequality constraints are violated, the most violated x(i) is set to zero and a slightly smaller problem is solved.
H | Hessian of F(x) - must be symmetric |
x | On input, it must satisfy all constraints (Ax=b, x(i)>=0) |
con_tol | Tolerance for testing constraints: |Ax-b|^2<con_tol |
verbose | When true, output error messages to cerr if failed |
True | if successful |
Definition at line 285 of file vnl_solve_qp.cxx.
bool vnl_solve_qp_zero_sum | ( | const vnl_matrix< double > & | H, |
const vnl_vector< double > & | g, | ||
vnl_vector< double > & | x | ||
) |
Solve quadratic programming problem with constraint sum(x)=0.
Minimise F(x)=0.5x'Hx + g'x subject to sum(x)=0 Special case of quadratic programming (Equality constraint: x.1=0)
H | Hessian of F(x) - must be symmetric |
True | if successful |
Definition at line 77 of file vnl_solve_qp.cxx.