CGAL 4.5 - Linear and Quadratic Programming Solver
|
A model of QuadraticProgram
describes a convex quadratic program of the form.
(QP)minimizexTDx+cTx+c0subject toAx⋛b,l≤x≤u
in n real variables x=(x0,…,xn−1).
Here,
The description is given by appropriate random-access iterators over the program data, see below. The program therefore comes in dense representation which includes zero entries.
CGAL::Quadratic_program_from_mps<NT>
CGAL::Quadratic_program_from_iterators<A_it, B_it, R_it, FL_it, L_it, FU_it, U_it, D_it, C_it>
A_iterator
and D_iterator
) must be convertible to some common IntegralDomain
ET
.Types | |
typedef unspecified_type | A_iterator |
A random access iterator type to go columnwise over the constraint matrix A. More... | |
typedef unspecified_type | B_iterator |
A random access iterator type to go over the entries of the right-hand side b. | |
typedef unspecified_type | R_iterator |
A random access iterator type to go over the relations ⋛. More... | |
typedef unspecified_type | FL_iterator |
A random access iterator type to go over the existence (finiteness) of the lower bounds lj,j=0,…,n−1. More... | |
typedef unspecified_type | L_iterator |
A random acess iterator type to go over the entries of the lower bound vector l. | |
typedef unspecified_type | UL_iterator |
A random access iterator type to go over the existence (finiteness) of the upper bounds uj,j=0,…,n−1. More... | |
typedef unspecified_type | U_iterator |
A random acess iterator type to go over the entries of the upper bound vector u. | |
typedef unspecified_type | D_iterator |
A random access iterator type to go rowwise over the matrix 2D. More... | |
typedef unspecified_type | C_iterator |
A random access iterator type to go over the entries of the linear objective function vector c. | |
Operations | |
int | get_n () const |
returns the number n of variables (number of columns of A) in qp . | |
int | get_m () const |
returns the number m of constraints (number of rows of A) in qp . | |
A_iterator | get_a () const |
returns an iterator over the columns of A. More... | |
B_iterator | get_b () const |
returns an iterator over the entries of b. More... | |
R_iterator | get_r () const |
returns an iterator over the entries of ⋛. More... | |
FL_iterator | get_fl () const |
returns an iterator over the existence of the lower bounds lj,j=0,…,n−1. More... | |
L_iterator | get_l () const |
returns an iterator over the entries of l. More... | |
FU_iterator | get_fu () const |
returns an iterator over the existence of the upper bounds uj,j=0,…,n−1. More... | |
L_iterator | get_u () const |
returns an iterator over the entries of u. More... | |
D_iterator | get_d () const |
returns an iterator over the rows of 2D. More... | |
C_iterator | get_c () const |
returns an iterator over the entries of c. More... | |
std::iterator_traits < C_iterator >::value_type | get_c0 () const |
returns the constant term c0 of the objective function. | |
A random access iterator type to go columnwise over the constraint matrix A.
The value type is a random access iterator type for an individual column that goes over the entries in that column.
A random access iterator type to go rowwise over the matrix 2D.
The value type is a random access iterator type for an individual row that goes over the entries in that row, up to (and including) the entry on the main diagonal.
A random access iterator type to go over the existence (finiteness) of the lower bounds lj,j=0,…,n−1.
The value type of FL_iterator
is bool
.
A random access iterator type to go over the relations ⋛.
The value type of R_iterator
is CGAL::Comparison_result
.
A random access iterator type to go over the existence (finiteness) of the upper bounds uj,j=0,…,n−1.
The value type of UL_iterator
is bool
.
A_iterator QuadraticProgram::get_a | ( | ) | const |
B_iterator QuadraticProgram::get_b | ( | ) | const |
returns an iterator over the entries of b.
The corresponding past-the-end iterator is get_b()+get_m()
.
C_iterator QuadraticProgram::get_c | ( | ) | const |
returns an iterator over the entries of c.
The corresponding past-the-end iterator is get_c()+get_n()
.
D_iterator QuadraticProgram::get_d | ( | ) | const |
returns an iterator over the rows of 2D.
The corresponding past-the-end iterator is get_d()+get_n()
. For i=0,…,n−1, *(get_d()+i)
is a random access iterator for the entries in row i below or on the diagonal. The valid range of this iterator is guaranteed to have length i+1 but not more. Values to the right of the diagonal are deduced from the symmetry requirement on D.
FL_iterator QuadraticProgram::get_fl | ( | ) | const |
FU_iterator QuadraticProgram::get_fu | ( | ) | const |
L_iterator QuadraticProgram::get_l | ( | ) | const |
R_iterator QuadraticProgram::get_r | ( | ) | const |
returns an iterator over the entries of ⋛.
The corresponding past-the-end iterator is get_r()+get_m()
. The value CGAL::SMALLER
stands for ≤, CGAL::EQUAL
stands for =, and CGAL::LARGER
stands for ≥.
L_iterator QuadraticProgram::get_u | ( | ) | const |