NonnegativeLinearProgram
Definition
A model of NonnegativeLinearProgram describes a linear program of the form
in n real variables x=(x0,...,xn-1).
Here,
- A is an m × n matrix (the constraint matrix),
- b is an m-dimensional vector (the right-hand side),
- ~ is an m-dimensional vector of relations
from { , =, },
- c is an n-dimensional vector (the linear objective
function), and
- c0 is a constant.
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.
Has Models
Quadratic_program<NT>
Quadratic_program_from_mps<NT>
Nonnegative_linear_program_from_iterators<A_it, B_it, R_it, FL_it, L_it, FU_it, U_it, D_it, C_it>
Types
NonnegativeLinearProgram::A_iterator
|
|
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.
|
|
NonnegativeLinearProgram::B_iterator
|
|
A random access iterator type to go over
the entries of the right-hand side b.
|
|
NonnegativeLinearProgram::R_iterator
|
|
A random access iterator type to go over the
relations ~ . The value type of R_iterator is
CGAL::Comparison_result.
|
|
NonnegativeLinearProgram::C_iterator
|
|
A random access iterator type to go over the
entries of the linear objective function vector c.
|
Operations
int
|
lp.get_n ()
|
returns the number n of variables (number
of columns of A) in lp.
|
|
int
|
lp.get_m ()
|
returns the number m of constraints
(number of rows of A) in lp.
|
|
A_iterator
|
lp.get_a ()
|
returns an iterator over the columns
of A. The corresponding past-the-end iterator is get_a()+get_n().
For j=0,...,n-1, *(get_a()+j) is a random access
iterator for column j.
|
|
B_iterator
|
lp.get_b ()
|
returns an iterator over the entries
of b. The corresponding past-the-end iterator is
get_b()+get_m().
|
|
R_iterator
|
lp.get_r ()
|
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 .
|
|
C_iterator
|
lp.get_c ()
|
returns an iterator over the entries
of c. The corresponding past-the-end iterator is
get_c()+get_n().
|
|
std::iterator_traits<C_iterator>::value_type
|
|
lp.get_c0 ()
|
returns the constant term c0 of the objective function.
|
Requirements
The value types of all iterator types (nested iterator types,
respectively, for A_iterator) must be convertible to some common
IntegralDomain ET.
See Also
The models
Quadratic_program<NT>
Quadratic_program_from_mps<NT>
Nonnegative_linear_program_from_iterators<A_it, B_it, R_it, C_it>
and the other concepts
QuadraticProgram
LinearProgram
NonnegativeQuadraticProgram