Linear and Quadratic Programming Solver
Reference Manual

Kaspar Fischer, Bernd Gärtner, Sven Schönherr, and Frans Wessendorp

65.10   Classified Reference Pages

Concepts

QuadraticProgram
   (for quadratic programs with variable bounds l x u)
LinearProgram
  (for linear programs with variable bounds l x u)
NonnegativeQuadraticProgram
   (for quadratic programs with variable bounds x greater or equal 0)
NonnegativeLinearProgram
   (for linear programs with variable bounds x greater or equal 0)

MPSFormat
   (the format used for reading and writing linear and quadratic programs)

Classes

There is a class that represents the solution of a linear or quadratic program. An instance of this class is returned by any of the solution functions below.

CGAL::Quadratic_program_solution<ET>

We offer a number of predefined models for the above program concepts. The following two are simultaneously models for all four concepts and are probably the most convenient models; they allow you to construct linear or quadratic programs entry by entry, or from streams in MPSFormat. At any time, you can query these programs for linearity and nonnegativity and thus select the appropriate solution function.

CGAL::Quadratic_program<NT>
   (for linear and quadratic programs that own their data and are built entry-wise)
CGAL::Quadratic_program_from_mps<NT>
   (for linear and quadratic programs read from an input stream in MPSFormat; the constructed program can also be manipulate entry-wise)

Then there are specific models for any of the four program concepts above; these are useful if you want to maintain the program data yourself, since they simply wrap random access iterators over the program data and involve no further copying of data.

CGAL::Quadratic_program_from_iterators<A_it, B_it, R_it, FL_it, L_it, FU_it, U_it, D_it, C_it>
   (for quadratic programs that wrap given iterators, without copying data)

CGAL::Linear_program_from_iterators<A_it, B_it, R_it, FL_it, L_it, FU_it, U_it, C_it>
   (for linear programs wrapping given iterators)

CGAL::Nonnegative_quadratic_program_from_iterators<A_it, B_it, R_it, D_it, C_it>
   (for nonnegative quadratic programs, wrapping given iterators)

CGAL::Nonnegative_linear_program_from_iterators<A_it, B_it, R_it, C_it>
   (for nonnegative linear programs, wrapping given iterators)

Functions

In case you want to construct a program from complicated iterators (whose types you don't know, or simply don't want to bother with), we provide four makers.

CGAL::make_quadratic_program_from_iterators
CGAL::make_linear_program_from_iterators
CGAL::make_nonnegative_quadratic_program_from_iterators
CGAL::make_nonnegative_linear_program_from_iterators

There are four functions to solve a program, one for each program concept.

CGAL::solve_quadratic_program
CGAL::solve_linear_program
CGAL::solve_nonnegative_quadratic_program
CGAL::solve_nonnegative_linear_program

The solution process can customized by passing an object of the class

Quadratic_program_options

Programs can be written to an output stream in MPSFormat, using one of the following four functions.

CGAL::print_quadratic_program
CGAL::print_linear_program
CGAL::print_nonnegative_quadratic_program
CGAL::print_nonnegative_linear_program

65.11   Alphabetical List of Reference Pages

LinearProgram
Linear_program_from_iterators<A_it, B_it, R_it, FL_it, L_it, FU_it, U_it, C_it>
make_linear_program_from_iterators
make_nonnegative_linear_program_from_iterators
make_nonnegative_quadratic_program_from_iterators
make_quadratic_program_from_iterators
MPSFormat
NonnegativeLinearProgram
NonnegativeQuadraticProgram
Nonnegative_linear_program_from_iterators<A_it, B_it, R_it, C_it>
Nonnegative_quadratic_program_from_iterators<A_it, B_it, R_it, D_it, C_it>
print_linear_program
print_nonnegative_linear_program
print_nonnegative_quadratic_program
print_quadratic_program
QuadraticProgram
Quadratic_program<NT>
Quadratic_program_from_iterators<A_it, B_it, R_it, FL_it, L_it, FU_it, U_it, D_it, C_it>
Quadratic_program_from_mps<NT>
Quadratic_program_options
Quadratic_program_pricing_strategy
Quadratic_program_solution<ET>
Quadratic_program_status
solve_linear_program
solve_nonnegative_linear_program
solve_nonnegative_quadratic_program
solve_quadratic_program