All Classes Namespaces Files Functions Variables Typedefs Enumerations Friends Macros Pages
Namespaces | Classes | Typedefs | Enumerations | Functions
paal::lp Namespace Reference

Linear Programming namespace. More...

Namespaces

 detail
 Detail of Linear Programming namespace.
 

Classes

struct  LowerBoundTag
 
struct  UpperBoundTag
 
struct  RightBoundTag
 
struct  LeftBoundTag
 
class  single_bounded_expression
 
class  double_bounded_expression
 
class  linear_expression
 
class  Id
 
struct  col_id
 
struct  row_id
 
class  add_max_violated
 functor for adding maximum violated constraint More...
 
struct  max_violated_separation_oracle
 functor computing add_max_violated More...
 
class  add_first_violated
 functor More...
 
struct  first_violated_separation_oracle
 functor computing add_first_violated More...
 
struct  random_violated_separation_oracle
 detail More...
 

Typedefs

using glp = detail::lp_base< detail::glp_impl >
 

Enumerations

enum  optimization_type { MINIMIZE, MAXIMIZE }
 optimization type
 
enum  simplex_type { PRIMAL, DUAL }
 simplex method type
 
enum  problem_type { OPTIMAL, INFEASIBLE, UNBOUNDED, UNDEFINED }
 LP problem type.
 

Functions

template<typename Stream , typename BoundDirection >
Stream & operator<< (Stream &o, const single_bounded_expression< LowerBoundTag, BoundDirection > &expr)
 operator<< for Lower Bound
 
template<typename Stream , typename BoundDirection >
Stream & operator<< (Stream &o, const single_bounded_expression< UpperBoundTag, BoundDirection > &expr)
 operator<< for Upper Bound
 
template<typename Stream >
Stream & operator<< (Stream &o, const double_bounded_expression &expr)
 detail More...
 
single_bounded_expression
< LowerBoundTag, LeftBoundTag
operator<= (double val, const linear_expression &expr)
 double <= linear_expression operator.
 
single_bounded_expression
< LowerBoundTag, RightBoundTag
operator>= (const linear_expression &expr, double val)
 linear_expression >= double operator.
 
single_bounded_expression
< UpperBoundTag, LeftBoundTag
operator>= (double val, const linear_expression &expr)
 double >= linear_expression operator.
 
single_bounded_expression
< UpperBoundTag, RightBoundTag
operator<= (const linear_expression &expr, double val)
 linear_expression <= double operator.
 
double_bounded_expression operator>= (double val, const single_bounded_expression< LowerBoundTag, RightBoundTag > &expr)
 double >= right_lower_bound_expression operator.
 
double_bounded_expression operator<= (const single_bounded_expression< LowerBoundTag, LeftBoundTag > &expr, double val)
 left_lower_bound_expression <= double operator.
 
double_bounded_expression operator<= (double val, const single_bounded_expression< UpperBoundTag, RightBoundTag > &expr)
 double <= right_upper_bound_expression operator.
 
double_bounded_expression operator>= (const single_bounded_expression< UpperBoundTag, LeftBoundTag > &expr, double val)
 left_upper_bound_expression >= double operator.
 
double_bounded_expression operator== (double val, const linear_expression &expr)
 double == linear_expression operator.
 
double_bounded_expression operator== (const linear_expression &expr, double val)
 linear_expression == double operator.
 
template<typename Stream >
Stream & operator<< (Stream &o, const linear_expression &expr)
 operator<< : printing expression
 
linear_expression operator+ (linear_expression expr_left, const linear_expression &expr_right)
 linear_expression + linear_expression operator.
 
linear_expression operator- (linear_expression expr_left, const linear_expression &expr_right)
 linear_expression - linear_expression operator.
 
linear_expression operator* (linear_expression expr, double val)
 linear_expression * double operator.
 
linear_expression operator* (double val, const linear_expression &expr)
 double * linear_expression operator.
 
linear_expression operator/ (linear_expression expr, double val)
 linear_expression / double operator.
 
linear_expression operator- (const linear_expression &expr)
 Unary - operator.
 
template<class TryAddViolated , class SolveLp >
problem_type row_generation (TryAddViolated try_add_violated, SolveLp solve_lp)
 

Detailed Description

Linear Programming namespace.

Function Documentation

template<typename Stream >
Stream& paal::lp::operator<< ( Stream &  o,
const double_bounded_expression &  expr 
)

detail

operator<< for double_bounded_expression

Definition at line 173 of file constraints.hpp.

template<class TryAddViolated , class SolveLp >
problem_type paal::lp::row_generation ( TryAddViolated  try_add_violated,
SolveLp  solve_lp 
)

Finds an extreme point solution to the LP using row generation: solves the initial LP and then ask the separation oracle if the found solution is a feasible solution to the complete problem. If not, adds a new row (generated by the oracle) to the LP and re-optimizes it. This procedure is iterated until a feasible solution to the full LP is found.

Definition at line 36 of file lp_row_generation.hpp.