The symbolic constraint for directed Hamiltonian cycles. More...
#include <atour.h>
Classes | |
class | dir_cutset_inequality |
class | dir_cutset_inequality |
class | dir_degree_equality |
class | dir_degree_equality |
Public Member Functions | |
ATOUR (Graph &G_, var_map< edge_descriptor > &X) | |
Constructor. | |
void | init (subproblem &S) |
status | standard_separation (subproblem &S) |
status | fast_separation (subproblem &S) |
status | feasible (solution &S) |
void | info () |
This symbolic constraints takes as arguments a directed graph
G
and a var_map<edge>
X
. X
has to map every edge of the graph to a binary variable.
The feasible assignments of the symbolic constraint are those where the vector of the variables associated with the edges of the graph is an incidence-vector of a directed Hamiltonian cycle.
The symbolic constraint uses the cutting plane method, based on the well known subtour elimination formulation of directed Hamiltonian cycles.
Definition at line 33 of file atour.h.
ATOUR< Graph >::status ATOUR::fast_separation | ( | subproblem & | S | ) | [inline, virtual] |
Separates the subtour elimination constraints, i.e. for all
, only with a heuristic.
Reimplemented from SCIL::sym_constraint.
Returns true, if the induced graph is connected.
Reimplemented from SCIL::sym_constraint.
void ATOUR::info | ( | ) | [inline, virtual] |
Returns information on the symbolic constraints.
Reimplemented from SCIL::sym_constraint.
void ATOUR::init | ( | subproblem & | S | ) | [inline, virtual] |
Adds the degree constraints, i.e. and
for all
, to the LP.
Reimplemented from SCIL::sym_constraint.
ATOUR< Graph >::status ATOUR::standard_separation | ( | subproblem & | S | ) | [inline, virtual] |
Separates the subtour elimination constraints, i.e. for all
, with a heuristic and an exact separation algorithm.
Reimplemented from SCIL::sym_constraint.