Exact computation of a maximum c-planar subgraph. More...
#include <ogdf/cluster/MaximumCPlanarSubgraph.h>
Public Types | |
using | MaxCPlanarMaster = cluster_planarity::MaxCPlanarMaster |
using | NodePairs = List< NodePair > |
Public Types inherited from ogdf::Module | |
enum class | ReturnType { Feasible , Optimal , NoFeasibleSolution , TimeoutFeasible , TimeoutInfeasible , Error } |
The return type of a module. More... | |
Public Member Functions | |
MaximumCPlanarSubgraph () | |
Construction. | |
~MaximumCPlanarSubgraph () | |
ReturnType | callAndConnect (const ClusterGraph &G, const EdgeArray< double > *pCost, List< edge > &delEdges, NodePairs &addedEdges) |
Computes set of edges delEdges, which have to be deleted in order to get a c-planar subgraph and also returns a set of edges that augments the subgraph to be completely connected. For pure c-planarity testing, the computation can be sped up by setting setCheckCPlanar(2). Then, in case G is not c-planar, the list of deleted edges does not need to correspond to a valid solution, it just indicates the result. | |
double | getHeurTime () |
double | getLPSolverTime () |
double | getLPTime () |
int | getNumBCs () |
Returns number of generated LPs. | |
int | getNumCCons () |
Returns number of connectivity constraints added during computation. | |
int | getNumKCons () |
Returns number of Kuratowski constraints added during computation. | |
int | getNumLPs () |
Returns number of optimized LPs (only LP-relaxations) | |
int | getNumSubSelected () |
Returns number of subproblems selected by ABACUS. | |
int | getNumVars () |
Returns number of global variables. Todo: Real number from ABACUS. | |
double | getSeparationTime () |
double | getTotalTime () |
double | getTotalWTime () |
void | setBranchingGap (double d) |
void | setCheckCPlanar (bool b) |
void | setHeuristicBound (double d) |
void | setHeuristicLevel (int i) |
void | setHeuristicRuns (int i) |
void | setLowerRounding (double d) |
void | setNumAddVariables (int n) |
void | setNumberOfKuraIterations (int i) |
void | setNumberOfPermutations (int i) |
void | setNumberOfSubDivisions (int i) |
void | setNumberOfSupportGraphs (int i) |
void | setPerturbation (bool b) |
void | setPortaOutput (bool b) |
void | setPricing (bool b) |
void | setStrongConstraintViolation (double d) |
void | setStrongVariableViolation (double d) |
void | setTimeLimit (std::chrono::milliseconds milliSec) |
void | setTimeLimit (string s) |
void | setUpperRounding (double d) |
bool & | useDefaultCutPool () |
Use default abacus master cut pool or dedicated connectivity and kuratowski cut pools. | |
void | writeFeasible (const char *filename, MaxCPlanarMaster &master, abacus::Master::STATUS &status) |
Writes feasible solutions as a file in PORTA format. | |
Public Member Functions inherited from ogdf::CPlanarSubgraphModule | |
CPlanarSubgraphModule () | |
Constructs a cplanar subgraph module. | |
virtual | ~CPlanarSubgraphModule () |
Destruction. | |
ReturnType | call (const ClusterGraph &G, const EdgeArray< double > *pCost, List< edge > &delEdges) |
Computes set of edges delEdges, which have to be deleted in order to get a c-planar subgraph. | |
ReturnType | call (const ClusterGraph &G, List< edge > &delEdges) |
Computes set of edges delEdges, which have to be deleted in order to get a c-planar subgraph. | |
Public Member Functions inherited from ogdf::Module | |
Module () | |
Initializes a module. | |
virtual | ~Module () |
Public Member Functions inherited from ogdf::Timeouter | |
Timeouter () | |
timeout is turned of by default | |
Timeouter (bool t) | |
timeout is turned off (false) or on (true) (with 0 second) | |
Timeouter (const Timeouter &t) | |
Timeouter (double t) | |
timeout is set to the given value (seconds) | |
~Timeouter () | |
bool | isTimeLimit () const |
returns whether any time limit is set or not | |
Timeouter & | operator= (const Timeouter &t) |
double | timeLimit () const |
returns the current time limit for the call | |
void | timeLimit (bool t) |
shorthand to turn timelimit off or on (with 0 seconds) | |
void | timeLimit (double t) |
sets the time limit for the call (in seconds); <0 means no limit. | |
Protected Member Functions | |
virtual ReturnType | doCall (const ClusterGraph &G, const EdgeArray< double > *pCost, List< edge > &delEdges) override |
Computes a maximum c-planar subgraph, returns the set of edges that have to be deleted in delEdges if delEdges is empty on return, the clustered graph G is c-planar. | |
virtual ReturnType | doCall (const ClusterGraph &G, const EdgeArray< double > *pCost, List< edge > &delEdges, NodePairs &addedEdges) |
void | getBottomUpClusterList (const cluster c, List< cluster > &theList) |
Stores clusters in subtree at c in bottom up order in theList. | |
double | getDoubleTime (const Stopwatch &act) |
Private Member Functions | |
const char * | getIeqFileName () |
const char * | getPortaFileName () |
int | maxConLength () |
void | outputCons (std::ofstream &os, abacus::StandardPool< abacus::Constraint, abacus::Variable > *connCon, abacus::StandardPool< abacus::Variable, abacus::Constraint > *stdVar) |
Additional Inherited Members | |
Static Public Member Functions inherited from ogdf::Module | |
static bool | isSolution (ReturnType ret) |
Returns true iff ret indicates that the module returned a feasible solution. | |
Protected Attributes inherited from ogdf::Timeouter | |
double | m_timeLimit |
Time limit for module calls (< 0 means no limit). | |
Exact computation of a maximum c-planar subgraph.
Definition at line 51 of file MaximumCPlanarSubgraph.h.
Definition at line 54 of file MaximumCPlanarSubgraph.h.
Definition at line 53 of file MaximumCPlanarSubgraph.h.
|
inline |
Construction.
Definition at line 57 of file MaximumCPlanarSubgraph.h.
|
inline |
Definition at line 96 of file MaximumCPlanarSubgraph.h.
|
inline |
Computes set of edges delEdges, which have to be deleted in order to get a c-planar subgraph and also returns a set of edges that augments the subgraph to be completely connected. For pure c-planarity testing, the computation can be sped up by setting setCheckCPlanar(2). Then, in case G is not c-planar, the list of deleted edges does not need to correspond to a valid solution, it just indicates the result.
Definition at line 112 of file MaximumCPlanarSubgraph.h.
|
inlineoverrideprotectedvirtual |
Computes a maximum c-planar subgraph, returns the set of edges that have to be deleted in delEdges if delEdges is empty on return, the clustered graph G is c-planar.
Implements ogdf::CPlanarSubgraphModule.
Definition at line 217 of file MaximumCPlanarSubgraph.h.
|
protectedvirtual |
|
protected |
Stores clusters in subtree at c in bottom up order in theList.
Definition at line 229 of file MaximumCPlanarSubgraph.h.
|
inline |
Definition at line 176 of file MaximumCPlanarSubgraph.h.
Definition at line 256 of file MaximumCPlanarSubgraph.h.
|
inline |
Definition at line 180 of file MaximumCPlanarSubgraph.h.
|
inline |
Definition at line 178 of file MaximumCPlanarSubgraph.h.
|
inline |
Returns number of generated LPs.
Definition at line 196 of file MaximumCPlanarSubgraph.h.
|
inline |
Returns number of connectivity constraints added during computation.
Definition at line 187 of file MaximumCPlanarSubgraph.h.
|
inline |
Returns number of Kuratowski constraints added during computation.
Definition at line 190 of file MaximumCPlanarSubgraph.h.
|
inline |
Returns number of optimized LPs (only LP-relaxations)
Definition at line 193 of file MaximumCPlanarSubgraph.h.
|
inline |
Returns number of subproblems selected by ABACUS.
Definition at line 199 of file MaximumCPlanarSubgraph.h.
|
inline |
Returns number of global variables. Todo: Real number from ABACUS.
Definition at line 202 of file MaximumCPlanarSubgraph.h.
Definition at line 254 of file MaximumCPlanarSubgraph.h.
|
inline |
Definition at line 182 of file MaximumCPlanarSubgraph.h.
|
inline |
Definition at line 174 of file MaximumCPlanarSubgraph.h.
|
inline |
Definition at line 184 of file MaximumCPlanarSubgraph.h.
|
inlineprivate |
Definition at line 258 of file MaximumCPlanarSubgraph.h.
|
private |
Definition at line 138 of file MaximumCPlanarSubgraph.h.
Definition at line 161 of file MaximumCPlanarSubgraph.h.
Definition at line 122 of file MaximumCPlanarSubgraph.h.
Definition at line 118 of file MaximumCPlanarSubgraph.h.
Definition at line 120 of file MaximumCPlanarSubgraph.h.
Definition at line 134 of file MaximumCPlanarSubgraph.h.
Definition at line 163 of file MaximumCPlanarSubgraph.h.
Definition at line 126 of file MaximumCPlanarSubgraph.h.
Definition at line 124 of file MaximumCPlanarSubgraph.h.
Definition at line 128 of file MaximumCPlanarSubgraph.h.
Definition at line 130 of file MaximumCPlanarSubgraph.h.
Definition at line 136 of file MaximumCPlanarSubgraph.h.
Definition at line 157 of file MaximumCPlanarSubgraph.h.
Definition at line 159 of file MaximumCPlanarSubgraph.h.
Definition at line 165 of file MaximumCPlanarSubgraph.h.
Definition at line 167 of file MaximumCPlanarSubgraph.h.
|
inline |
Definition at line 142 of file MaximumCPlanarSubgraph.h.
|
inline |
Definition at line 140 of file MaximumCPlanarSubgraph.h.
Definition at line 132 of file MaximumCPlanarSubgraph.h.
|
inline |
Use default abacus master cut pool or dedicated connectivity and kuratowski cut pools.
Definition at line 171 of file MaximumCPlanarSubgraph.h.
void ogdf::MaximumCPlanarSubgraph::writeFeasible | ( | const char * | filename, |
MaxCPlanarMaster & | master, | ||
abacus::Master::STATUS & | status | ||
) |
Writes feasible solutions as a file in PORTA format.
|
private |
Definition at line 246 of file MaximumCPlanarSubgraph.h.
|
private |
Definition at line 249 of file MaximumCPlanarSubgraph.h.
|
private |
Definition at line 278 of file MaximumCPlanarSubgraph.h.
|
private |
Definition at line 240 of file MaximumCPlanarSubgraph.h.
|
private |
Definition at line 242 of file MaximumCPlanarSubgraph.h.
|
private |
Definition at line 241 of file MaximumCPlanarSubgraph.h.
|
private |
Definition at line 240 of file MaximumCPlanarSubgraph.h.
|
private |
Definition at line 266 of file MaximumCPlanarSubgraph.h.
|
private |
Definition at line 243 of file MaximumCPlanarSubgraph.h.
|
private |
Definition at line 244 of file MaximumCPlanarSubgraph.h.
|
private |
Definition at line 242 of file MaximumCPlanarSubgraph.h.
|
private |
Definition at line 244 of file MaximumCPlanarSubgraph.h.
|
private |
Definition at line 268 of file MaximumCPlanarSubgraph.h.
|
private |
Definition at line 267 of file MaximumCPlanarSubgraph.h.
|
private |
Definition at line 250 of file MaximumCPlanarSubgraph.h.
|
private |
Definition at line 274 of file MaximumCPlanarSubgraph.h.
|
private |
Definition at line 271 of file MaximumCPlanarSubgraph.h.
|
private |
Definition at line 272 of file MaximumCPlanarSubgraph.h.
|
private |
Definition at line 273 of file MaximumCPlanarSubgraph.h.
|
private |
Definition at line 275 of file MaximumCPlanarSubgraph.h.
|
private |
Definition at line 276 of file MaximumCPlanarSubgraph.h.
|
private |
Definition at line 245 of file MaximumCPlanarSubgraph.h.
|
private |
Definition at line 277 of file MaximumCPlanarSubgraph.h.
|
private |
Definition at line 248 of file MaximumCPlanarSubgraph.h.
|
private |
Definition at line 269 of file MaximumCPlanarSubgraph.h.
|
private |
Definition at line 251 of file MaximumCPlanarSubgraph.h.
|
private |
Definition at line 252 of file MaximumCPlanarSubgraph.h.
|
private |
Definition at line 243 of file MaximumCPlanarSubgraph.h.
|
private |
Definition at line 247 of file MaximumCPlanarSubgraph.h.
|
private |
Definition at line 265 of file MaximumCPlanarSubgraph.h.
|
private |
Definition at line 270 of file MaximumCPlanarSubgraph.h.