NonnegativeLinearProgram

Definition

A model of NonnegativeLinearProgram describes a linear program of the form

(QP) minimize cTx+c0
subject to Ax ~ b,
x greater or equal 0

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.

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 greater or equal .

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