#include <subproblem.h>
Public Member Functions | |
bool | check_LP () |
ABA_LPSUB * | get_lp () |
ABA_BRANCHRULE * | get_branch_rule () |
subproblem (ABA_MASTER *master) | |
subproblem (ABA_MASTER *master, ABA_SUB *father, ABA_BRANCHRULE *branchRule) | |
virtual bool | feasible () |
virtual bool | feasible (subproblem &, solution &) |
void | update_indices () |
virtual int | separate () |
virtual int | separate (subproblem &) |
void | activate (subproblem &S) |
void | activate () |
void | deactivate (subproblem &S) |
void | deactivate () |
double | myvalue (int i) |
virtual int | pricing () |
virtual int | pricing (subproblem &) |
virtual int | mf_pricing (subproblem &) |
virtual int | improve (double &) |
double * | MxVal () |
virtual ABA_SUB * | generateSon (ABA_BRANCHRULE *rule) |
Public Attributes | |
int | t |
ILP_Problem & | GM |
bool | initpricing |
ABA_BUFFER< ABA_VARIABLE * > * | newvarbuffer |
std::list< sym_constraint * > | sym_constraints |
int | updateLP |
double | prio |
Protected Member Functions | |
virtual void | fixByLogImp (ABA_BUFFER< int > &variable, ABA_BUFFER< ABA_FSVARSTAT * > &status) |
virtual void | setByLogImp (ABA_BUFFER< int > &variable, ABA_BUFFER< ABA_FSVARSTAT * > &status) |
Friends | |
class | ABA_Variable |
class | ABA_Constraint |
class | ILP_Problem |
Modifying the linear program. | |
| |
*var | add_binary_variable (double obj, Activation a=Static) |
*var | add_variable (double obj, double lBound, double uBound, Vartype, Activation a=Static) |
void | add_variable (var, Activation a=Static) |
*virtual cons | add_basic_constraint (cons_sense, double, Activation a=Dynamic, Validity v=Global) |
virtual cons | add_basic_constraint (cons_obj *c, Activation a=Dynamic, Validity v=Global) |
virtual cons | _add_basic_constraint (cons_obj *c, Activation a=Dynamic, Validity v=Global) |
void | add_sym_constraint (sym_constraint *c) |
adds a symbolic constraint to the current node of the BCP-Tree | |
void | remove_variable (var V) |
void | set_coefficient (var v, cons i, double d) |
Inspection of the current node. | |
| |
Varstat | get_varstat (var v) |
var | get_var (int i) |
returns the variable with index i. | |
int | nVar () const |
returns the number of active variables in the current node. | |
double | get_coeff (var v, cons i) |
returns the coefficient of the LP-matrix for v and | |
int | get_level () const |
returns the level of the current node in the enumeration tree | |
int | first_variable_item () const |
Returns the index of the first variable. | |
int | next_variable_item (int i) const |
returns the index of the variable succeding the variable with index i. | |
int | first_constraint_item () const |
int | next_constraint_item (int i) const |
returns the index of the variable succeding the variable with index i. | |
cons | get_cons (int i) |
returns the basic constraint with index i | |
int | found_constraint () |
int | ncons () |
returns the number of basic constraints in the current LP. | |
virtual double | value (var v) |
returns the value of v of the last solved LP. | |
double | value (row &r) |
returns the value of r of the last solved LP. | |
double | lower_bound (var v) |
returns the lower bound of the variable in the current node. | |
double | upper_bound (var v) |
returns the upper bound of the variable in the current node. | |
double | value (cons i, as_what as=as_is) |
double | red_cost (var v) |
returns the value of v of the last solved LP. | |
bool | save_solution (solution &s) |
Configurations | |
| |
const std::string | configuration (const std::string &s) const |
returns the configuration for s. | |
void | configuration (const std::string &s, const std::string &t) |
sets the configuration for s to t. |
Subproblem - A node in the branch & cut tree
Definition at line 34 of file subproblem.h.
cons subproblem::_add_basic_constraint | ( | cons_obj * | c, | |
Activation | a = Dynamic , |
|||
Validity | v = Global | |||
) | [virtual] |
adds an instance of a basic-constraint-schema to the root or the current node of the BCP-tree.
Definition at line 79 of file subproblem.cc.
References SCIL::ILP_Problem::number_of_constraints().
Referenced by add_basic_constraint().
cons subproblem::add_basic_constraint | ( | cons_obj * | c, | |
Activation | a = Dynamic , |
|||
Validity | v = Global | |||
) | [virtual] |
if |SQK2| is true, the constraint is checked for reformulation. (note: in case of reformulation only existing variables are used) calls in every case _add_basic_constraint
Definition at line 35 of file subproblem.cc.
References _add_basic_constraint(), SCIL::ILP_Problem::get_qr_on_separate(), SCIL::ILP_Problem::get_qrType(), SCIL::QuadRef::reformulate_SQK2(), and SCIL::QuadRef::reformulate_SQK3().
cons subproblem::add_basic_constraint | ( | cons_sense | s, | |
double | rhs, | |||
Activation | a = Dynamic , |
|||
Validity | v = Global | |||
) | [virtual] |
adds a primitive basic constraint to the root or the current node of the BCP-tree (depends on the parameter |Validity|). |s| specifies the sense (one of |Less|, |Equal|, or |Greater|) and |r| the right-hand-side of the constraint.}
Definition at line 90 of file subproblem.cc.
Referenced by SCIL::STABLESET< Graph >::exactOddCycleSeparation(), SCIL::CUT< Graph >::fast_separation(), SCIL::STABLESET< Graph >::heuristicCliqueSeparation(), SCIL::TOUR< Graph >::init(), SCIL::SteinerArborescence< Graph >::init(), SCIL::STABLESET< Graph >::init(), SCIL::SpanTree< Graph >::init(), SCIL::MAX::init(), SCIL::MATCHING< Graph >::init(), SCIL::KCONNECTED< Graph >::init(), SCIL::CP_KNAPSACK::init(), reformulation_constraint::standard_separation(), SCIL::TJOIN< Graph >::standard_separation(), SCIL::submodular::standard_separation(), SCIL::StronglyConnected< Graph >::standard_separation(), SCIL::SpanTree< Graph >::standard_separation(), SCIL::QuadRef::standard_separation(), SCIL::MAX::standard_separation(), SCIL::KCONNECTED< Graph >::standard_separation(), and SCIL::CUT< Graph >::standard_separation().
var subproblem::add_binary_variable | ( | double | obj, | |
Activation | a = Static | |||
) |
adds a primitve binary variable to the root or the current node of the BCP-tree (depends on the parameter |Validity|). |obj| specifies the objectiv function value.
Definition at line 99 of file subproblem.cc.
References add_variable().
void subproblem::add_variable | ( | var | v, | |
Activation | a = Static | |||
) |
adds a variable-generator to the root or the current node of the BCP-tree.
Definition at line 129 of file subproblem.cc.
References SCIL::var::Avar_pointer(), and SCIL::var::var_pointer().
var subproblem::add_variable | ( | double | obj, | |
double | lBound, | |||
double | uBound, | |||
Vartype | t, | |||
Activation | a = Static | |||
) |
adds a primitve variable to the root or the current node of the BCP-tree (depends on the parameter |Validity|). |obj| specifies the objectiv function value, |lBound| and |uBound| the lower and upper bound of the variable and |vt| the type of the variable (one of |Vartype_Integer|, |Vartype_Binary| or |Vartype_Continous|).}
Definition at line 105 of file subproblem.cc.
References SCIL::var::Avar_pointer(), and SCIL::var::var_pointer().
Referenced by add_binary_variable(), and PrimerPricer::LP_pricing().
void subproblem::remove_variable | ( | var | V | ) |
removes a variable for the linear program of the current node.
Definition at line 336 of file subproblem.cc.
References SCIL::var_obj::index(), and SCIL::var::var_pointer().
sets the coefficient for variable $v$ and basic constraint $i$ to $d$ in the LP-Matrix.
Definition at line 352 of file subproblem.cc.
References SCIL::cons::cons_pointer(), and SCIL::var::var_pointer().
double subproblem::value | ( | cons | i, | |
as_what | as = as_is | |||
) |
returns the value of |i| of the last solved LP. as_what is one of as_is
, as_min
or as_max
. The returned dual value of the constraint is either the dual value as specified by the LP (as_is
) or what it would be if the objective sense of the LP would be minimization (as_min
) or maximization (as_max
).
Definition at line 427 of file subproblem.cc.
References SCIL::cons::cons_pointer().