#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().
1.6.3