Symbolic Constraints.
#include <sym_constraint.h>
Public Types | |
enum | status { no_constraint_found, constraint_found, fathom, exception_branch, resolve_immediately, feasible_solution, infeasible_solution, variable_found, no_variable_found, preemtion, continue_work } |
Public Member Functions | |
virtual status | standard_separation (subproblem &) |
virtual status | fast_separation (subproblem &) |
virtual void | init (subproblem &) |
virtual status | feasible (solution &) |
virtual status | LP_pricing (subproblem &) |
virtual status | mf_pricing (subproblem &) |
virtual status | close_subproblem (subproblem &) |
virtual status | open_subproblem (subproblem &) |
void | set_feps (double feps_) |
virtual void | info () |
Protected Attributes | |
double | feps |
Definition at line 13 of file sym_constraint.h.
the possible return values of all functions that are allowed to modify the current LP.
Definition at line 22 of file sym_constraint.h.
virtual status SCIL::sym_constraint::close_subproblem | ( | subproblem & | ) | [inline, virtual] |
This function is called if the BCP-system wants to close the subproblem (either fathom, preemtion, or branch). If shoud return continue
. It can also return fathom
, preemtion
, exception_branch
or resolve
.
Definition at line 79 of file sym_constraint.h.
This function is called, if the BCP-System wants to save the solution of the LP-solver as primal solution. If this function if called, it is guaranteed that all interal variabes have integral values in the LP-solution. The function should return either feasible
or infeasible
. It could also return fathom
, preemtion
, exception_branch
or resolve_immedialtely
.
Reimplemented in SCIL::ATOUR< Graph >, SCIL::CUT< Graph >, SCIL::KCONNECTED< Graph >, SCIL::MATCHING< Graph >, SCIL::MAX, SCIL::PATH< Graph >, SCIL::QuadRef, SCIL::SpanTree< Graph >, SCIL::STABLESET< Graph >, SCIL::SteinerArborescence< Graph >, SCIL::StronglyConnected< Graph >, SCIL::submodular, SCIL::TJOIN< Graph >, SCIL::TOUR< Graph >, SCIL::bool_inst, SCIL::monomial_inst, SCIL::nonlinear_inst, and reformulation_constraint.
Definition at line 53 of file sym_constraint.h.
virtual void SCIL::sym_constraint::info | ( | ) | [inline, virtual] |
This function should output information on the symbolic constraint (the method used, the possible configurations).
Reimplemented in SCIL::ATOUR< Graph >, SCIL::CP_KNAPSACK, SCIL::CUT< Graph >, SCIL::FLOW< Graph >, SCIL::KCONNECTED< Graph >, SCIL::MATCHING< Graph >, SCIL::MAX, SCIL::PATH< Graph >, SCIL::SpanTree< Graph >, SCIL::STABLESET< Graph >, SCIL::SteinerArborescence< Graph >, SCIL::StronglyConnected< Graph >, and SCIL::TOUR< Graph >.
Definition at line 99 of file sym_constraint.h.
virtual void SCIL::sym_constraint::init | ( | subproblem & | ) | [inline, virtual] |
This function is called before the first LP at the root of the BCP-tree is solved.
Reimplemented in SCIL::ATOUR< Graph >, SCIL::CP_KNAPSACK, SCIL::CUT< Graph >, SCIL::FLOW< Graph >, SCIL::KCONNECTED< Graph >, SCIL::MATCHING< Graph >, SCIL::MAX, SCIL::QuadRef, SCIL::SpanTree< Graph >, SCIL::STABLESET< Graph >, SCIL::SteinerArborescence< Graph >, SCIL::submodular, SCIL::TJOIN< Graph >, SCIL::TOUR< Graph >, SCIL::nonlinear_inst, and reformulation_constraint.
Definition at line 44 of file sym_constraint.h.
virtual status SCIL::sym_constraint::LP_pricing | ( | subproblem & | ) | [inline, virtual] |
This function is called, if the BCP-system wants to etablish the solution of the current LP as new lower bound. It shoud return either variable_found
or no_variable_found
. It could also return fathom
, preemtion
, exception_branch
or resolve_immedialtely
.
Reimplemented in PrimerPricer.
Definition at line 62 of file sym_constraint.h.
virtual status SCIL::sym_constraint::mf_pricing | ( | subproblem & | ) | [inline, virtual] |
This function is called, if the BCP-system has to deal with an infeasible LP. It shoud return either variable_found
or no_variable_found
. It could also return fathom
, preemtion
, exception_branch
or resolve_immedialtely
.
Definition at line 71 of file sym_constraint.h.
virtual status SCIL::sym_constraint::open_subproblem | ( | subproblem & | ) | [inline, virtual] |
This function is called if the BCP-system wants to start working at another subproblem. If shoud return continue
. It can also return fathom
, preemtion
, exception_branch
or resolve
.
Definition at line 87 of file sym_constraint.h.
void SCIL::sym_constraint::set_feps | ( | double | feps_ | ) | [inline] |
Function to set member float epsilon (feps).
Definition at line 93 of file sym_constraint.h.
virtual status SCIL::sym_constraint::standard_separation | ( | subproblem & | ) | [inline, virtual] |
This function is called if the BCP-System wants to cut of the solution that was found by the LP-solver. It should return either no_cons_found
or cons_found
. But it is also possible that it returns fathom
, preemption
, exception_branch
, or resolve_immediately
.
Reimplemented in SCIL::ATOUR< Graph >, SCIL::CP_KNAPSACK, SCIL::CUT< Graph >, SCIL::KCONNECTED< Graph >, SCIL::MATCHING< Graph >, SCIL::MAX, SCIL::PATH< Graph >, SCIL::QuadRef, SCIL::SpanTree< Graph >, SCIL::STABLESET< Graph >, SCIL::SteinerArborescence< Graph >, SCIL::StronglyConnected< Graph >, SCIL::submodular, SCIL::TJOIN< Graph >, SCIL::TOUR< Graph >, SCIL::nonlinear_inst, and reformulation_constraint.
Definition at line 34 of file sym_constraint.h.