Processing math: 100%
 
CGAL 6.0.1 - Linear and Quadratic Programming Solver
All Classes Namespaces Files Functions Variables Typedefs Enumerations Friends Modules Pages
Loading...
Searching...
No Matches
NonnegativeLinearProgram Concept Reference

Definition

A model of NonnegativeLinearProgram describes a linear program of the form.

\begin{eqnarray*} \mbox{(QP)}& \mbox{minimize} &\qpc^{T}\qpx+c_0 \\ &\mbox{subject to} & A\qpx\qprel \qpb, \\ & & \qpx \geq 0 \end{eqnarray*}

in n real variables \qpx=(x_0,\ldots,x_{n-1}). Here,

  • A is an m\times n matrix (the constraint matrix),
  • \qpb is an m-dimensional vector (the right-hand side),
  • \qprel is an m-dimensional vector of relations from \{\leq, =, \geq\},
  • \qpc is an n-dimensional vector (the linear objective function), and
  • c_0 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
CGAL::Quadratic_program<NT>
CGAL::Quadratic_program_from_mps<NT>
CGAL::Nonnegative_linear_program_from_iterators<A_it, B_it, R_it, FL_it, L_it, FU_it, U_it, D_it, C_it>

The value types of all iterator types (nested iterator types, respectively, for A_iterator) must be convertible to some common IntegralDomain ET.

Has models
CGAL::Quadratic_program<NT>
CGAL::Quadratic_program_from_mps<NT>
CGAL::Nonnegative_linear_program_from_iterators<A_it, B_it, R_it, C_it>
See also
QuadraticProgram
LinearProgram
NonnegativeQuadraticProgram

Types

typedef unspecified_type A_iterator
 A random access iterator type to go columnwise over the constraint matrix A.
 
typedef unspecified_type B_iterator
 A random access iterator type to go over the entries of the right-hand side \qpb.
 
typedef unspecified_type R_iterator
 A random access iterator type to go over the relations \qprel.
 
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 lp.
 
int get_m () const
 returns the number m of constraints (number of rows of A) in lp.
 
A_iterator get_a () const
 returns an iterator over the columns of A.
 
B_iterator get_b () const
 returns an iterator over the entries of \qpb.
 
R_iterator get_r () const
 returns an iterator over the entries of \qprel.
 
C_iterator get_c () const
 returns an iterator over the entries of \qpc.
 
std::iterator_traits< C_iterator >::value_type get_c0 () const
 returns the constant term c_0 of the objective function.
 

Member Typedef Documentation

◆ 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.

◆ R_iterator

A random access iterator type to go over the relations \qprel.

The value type of R_iterator is CGAL::Comparison_result.

Member Function Documentation

◆ get_a()

A_iterator NonnegativeLinearProgram::get_a ( ) const

returns an iterator over the columns of A.

The corresponding past-the-end iterator is get_a()+get_n(). For j=0,\ldots,n-1, *(get_a()+j) a random access iterator for column j.

◆ get_b()

B_iterator NonnegativeLinearProgram::get_b ( ) const

returns an iterator over the entries of \qpb.

The corresponding past-the-end iterator is get_b()+get_m().

◆ get_c()

C_iterator NonnegativeLinearProgram::get_c ( ) const

returns an iterator over the entries of \qpc.

The corresponding past-the-end iterator is get_c()+get_n().

◆ get_r()

R_iterator NonnegativeLinearProgram::get_r ( ) const

returns an iterator over the entries of \qprel.

The corresponding past-the-end iterator is get_r()+get_m(). The value CGAL::SMALLER stands for \leq, CGAL::EQUAL stands for =, and CGAL::LARGER stands for \geq.