C-planarity testing via completely connected graph extension. More...
#include <ogdf/cluster/ILPClusterPlanarity.h>
Inheritance diagram for ogdf::ILPClusterPlanarity:Public Types | |
| using | CP_MasterBase = cluster_planarity::CP_MasterBase |
| using | NodePairs = List< NodePair > |
| enum class | solmeth { Fallback , New } |
| Solution method, fallback to old version (allowing all extension edges, based on c-planar subgraph computation) or new direct version (allowing only a reduced set of extension edges for complete connectivity). More... | |
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 | |
| ILPClusterPlanarity () | |
| Construction. | |
| ~ILPClusterPlanarity () | |
| bool | clusterPlanarEmbedClusterPlanarGraph (ClusterGraph &CG, Graph &G) override |
Constructs a cluster-planar embedding of CG. CG has to be cluster-planar! | |
| 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. | |
| abacus::Master::STATUS | getOptStatus () |
| double | getSeparationTime () |
| bool | getSolByHeuristic () |
| double | getTotalTime () |
| double | getTotalWTime () |
| bool | isClusterPlanar (const ClusterGraph &CG) override |
Returns c-planarity status of CG. | |
| bool | isClusterPlanar (const ClusterGraph &CG, NodePairs &addedEdges) |
| Computes a set of edges that augments the subgraph to be completely connected and returns c-planarity status and edge set. | |
| bool | isClusterPlanarDestructive (ClusterGraph &CG, Graph &G) override |
Returns true, if CG is cluster-planar, false otherwise. In it is non-cluster-planar, the (Cluster)Graph may be arbitrarily changed after the call. | |
| void | setBranchingGap (double d) |
| 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 (string s) |
| void | setUpperRounding (double d) |
| solmeth & | solutionMethod () |
| bool & | useDefaultCutPool () |
| Use default abacus master cut pool or dedicated connectivity and kuratowski cut pools. | |
| void | writeFeasible (const char *filename, CP_MasterBase &master, abacus::Master::STATUS &status) |
| Writes feasible solutions as a file in PORTA format. | |
Public Member Functions inherited from ogdf::ClusterPlanarityModule | |
| ClusterPlanarityModule ()=default | |
| virtual | ~ClusterPlanarityModule ()=default |
| virtual bool | clusterPlanarEmbed (ClusterGraph &CG, Graph &G) |
Returns true, if CG is cluster-planar, false otherwise. If true, CG contains a cluster-planar embedding. | |
Public Member Functions inherited from ogdf::Module | |
| Module () | |
| Initializes a module. | |
| virtual | ~Module () |
Protected Member Functions | |
| bool | doTest (const ClusterGraph &CG) |
| bool | doTest (const ClusterGraph &G, 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) |
Protected Member Functions inherited from ogdf::ClusterPlanarityModule | |
| virtual void | copyBackEmbedding (ClusterGraph &CG, Graph &G, const ClusterGraph &CGcopy, const Graph &Gcopy, const ClusterArray< cluster > ©C, const NodeArray< node > ©N, const EdgeArray< edge > ©E, const EdgeArray< edge > &origE) const |
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) |
Private Attributes | |
| double | m_branchingGap |
| bool | m_defaultCutPool |
| int | m_heuristicLevel |
| int | m_heuristicNPermLists |
| double | m_heuristicOEdgeBound |
| int | m_heuristicRuns |
| double | m_heurTime |
| int | m_kSupportGraphs |
| double | m_kuratowskiHigh |
| int | m_kuratowskiIterations |
| double | m_kuratowskiLow |
| double | m_lpSolverTime |
| double | m_lpTime |
| int | m_numAddVariables |
| int | m_numBCs |
| int | m_numCCons |
| int | m_numKCons |
| int | m_numLPs |
| int | m_numSubSelected |
| int | m_numVars |
| abacus::Master::STATUS | m_optStatus |
| bool | m_perturbation |
| bool | m_portaOutput |
| bool | m_pricing |
| double | m_sepTime |
| bool | m_solByHeuristic |
| solmeth | m_solmeth |
| Solution method, see description of solmeth. | |
| double | m_strongConstraintViolation |
| double | m_strongVariableViolation |
| int | m_subdivisions |
| string | m_time |
| double | m_totalTime |
| double | m_totalWTime |
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. | |
C-planarity testing via completely connected graph extension.
Definition at line 61 of file ILPClusterPlanarity.h.
Definition at line 64 of file ILPClusterPlanarity.h.
Definition at line 63 of file ILPClusterPlanarity.h.
|
strong |
Solution method, fallback to old version (allowing all extension edges, based on c-planar subgraph computation) or new direct version (allowing only a reduced set of extension edges for complete connectivity).
| Enumerator | |
|---|---|
| Fallback | |
| New | |
Definition at line 69 of file ILPClusterPlanarity.h.
|
inline |
Construction.
Definition at line 72 of file ILPClusterPlanarity.h.
|
inline |
Definition at line 112 of file ILPClusterPlanarity.h.
|
overridevirtual |
Constructs a cluster-planar embedding of CG. CG has to be cluster-planar!
Returns true if the embedding was successful. Returns false if the given graph was non-cluster-planar (and leaves the (Cluster)Graph in an at least partially invalidated state).
This routine may be slightly faster than clusterPlanarEmbed, but requires CG to be cluster-planar. If CG is not cluster-planar, the (Cluster)Graph will be (partially) destroyed while trying to embed it!
Reimplemented from ogdf::ClusterPlanarityModule.
|
protected |
|
protected |
|
protected |
Stores clusters in subtree at c in bottom up order in theList.
|
inlineprotected |
Definition at line 221 of file ILPClusterPlanarity.h.
|
inline |
Definition at line 171 of file ILPClusterPlanarity.h.
|
inlineprivate |
Definition at line 249 of file ILPClusterPlanarity.h.
|
inline |
Definition at line 175 of file ILPClusterPlanarity.h.
|
inline |
Definition at line 173 of file ILPClusterPlanarity.h.
|
inline |
Returns number of generated LPs.
Definition at line 191 of file ILPClusterPlanarity.h.
|
inline |
Returns number of connectivity constraints added during computation.
Definition at line 182 of file ILPClusterPlanarity.h.
|
inline |
Returns number of Kuratowski constraints added during computation.
Definition at line 185 of file ILPClusterPlanarity.h.
|
inline |
Returns number of optimized LPs (only LP-relaxations)
Definition at line 188 of file ILPClusterPlanarity.h.
|
inline |
Returns number of subproblems selected by ABACUS.
Definition at line 194 of file ILPClusterPlanarity.h.
|
inline |
Returns number of global variables. Todo: Real number from ABACUS.
Definition at line 197 of file ILPClusterPlanarity.h.
|
inline |
Definition at line 167 of file ILPClusterPlanarity.h.
|
inlineprivate |
Definition at line 247 of file ILPClusterPlanarity.h.
|
inline |
Definition at line 177 of file ILPClusterPlanarity.h.
|
inline |
Definition at line 202 of file ILPClusterPlanarity.h.
|
inline |
Definition at line 169 of file ILPClusterPlanarity.h.
|
inline |
Definition at line 179 of file ILPClusterPlanarity.h.
|
overridevirtual |
Returns c-planarity status of CG.
Reimplemented from ogdf::ClusterPlanarityModule.
| bool ogdf::ILPClusterPlanarity::isClusterPlanar | ( | const ClusterGraph & | CG, |
| NodePairs & | addedEdges | ||
| ) |
Computes a set of edges that augments the subgraph to be completely connected and returns c-planarity status and edge set.
|
inlineoverridevirtual |
Returns true, if CG is cluster-planar, false otherwise. In it is non-cluster-planar, the (Cluster)Graph may be arbitrarily changed after the call.
This variant may be slightly faster than the default isClusterPlanar
Implements ogdf::ClusterPlanarityModule.
Definition at line 121 of file ILPClusterPlanarity.h.
|
inlineprivate |
Definition at line 251 of file ILPClusterPlanarity.h.
|
private |
|
inline |
Definition at line 148 of file ILPClusterPlanarity.h.
|
inline |
Definition at line 132 of file ILPClusterPlanarity.h.
|
inline |
Definition at line 128 of file ILPClusterPlanarity.h.
|
inline |
Definition at line 130 of file ILPClusterPlanarity.h.
|
inline |
Definition at line 144 of file ILPClusterPlanarity.h.
|
inline |
Definition at line 156 of file ILPClusterPlanarity.h.
|
inline |
Definition at line 136 of file ILPClusterPlanarity.h.
|
inline |
Definition at line 134 of file ILPClusterPlanarity.h.
|
inline |
Definition at line 138 of file ILPClusterPlanarity.h.
|
inline |
Definition at line 140 of file ILPClusterPlanarity.h.
|
inline |
Definition at line 146 of file ILPClusterPlanarity.h.
|
inline |
Definition at line 152 of file ILPClusterPlanarity.h.
|
inline |
Definition at line 154 of file ILPClusterPlanarity.h.
|
inline |
Definition at line 158 of file ILPClusterPlanarity.h.
|
inline |
Definition at line 160 of file ILPClusterPlanarity.h.
|
inline |
Definition at line 150 of file ILPClusterPlanarity.h.
|
inline |
Definition at line 142 of file ILPClusterPlanarity.h.
|
inline |
Definition at line 205 of file ILPClusterPlanarity.h.
|
inline |
Use default abacus master cut pool or dedicated connectivity and kuratowski cut pools.
Definition at line 164 of file ILPClusterPlanarity.h.
| void ogdf::ILPClusterPlanarity::writeFeasible | ( | const char * | filename, |
| CP_MasterBase & | master, | ||
| abacus::Master::STATUS & | status | ||
| ) |
Writes feasible solutions as a file in PORTA format.
|
private |
Definition at line 238 of file ILPClusterPlanarity.h.
|
private |
Definition at line 272 of file ILPClusterPlanarity.h.
|
private |
Definition at line 232 of file ILPClusterPlanarity.h.
|
private |
Definition at line 234 of file ILPClusterPlanarity.h.
|
private |
Definition at line 233 of file ILPClusterPlanarity.h.
|
private |
Definition at line 232 of file ILPClusterPlanarity.h.
|
private |
Definition at line 260 of file ILPClusterPlanarity.h.
|
private |
Definition at line 235 of file ILPClusterPlanarity.h.
|
private |
Definition at line 236 of file ILPClusterPlanarity.h.
|
private |
Definition at line 234 of file ILPClusterPlanarity.h.
|
private |
Definition at line 236 of file ILPClusterPlanarity.h.
|
private |
Definition at line 262 of file ILPClusterPlanarity.h.
|
private |
Definition at line 261 of file ILPClusterPlanarity.h.
|
private |
Definition at line 241 of file ILPClusterPlanarity.h.
|
private |
Definition at line 268 of file ILPClusterPlanarity.h.
|
private |
Definition at line 265 of file ILPClusterPlanarity.h.
|
private |
Definition at line 266 of file ILPClusterPlanarity.h.
|
private |
Definition at line 267 of file ILPClusterPlanarity.h.
|
private |
Definition at line 269 of file ILPClusterPlanarity.h.
|
private |
Definition at line 270 of file ILPClusterPlanarity.h.
|
private |
Definition at line 258 of file ILPClusterPlanarity.h.
|
private |
Definition at line 237 of file ILPClusterPlanarity.h.
|
private |
Definition at line 271 of file ILPClusterPlanarity.h.
|
private |
Definition at line 240 of file ILPClusterPlanarity.h.
|
private |
Definition at line 263 of file ILPClusterPlanarity.h.
|
private |
Definition at line 274 of file ILPClusterPlanarity.h.
|
private |
Solution method, see description of solmeth.
Definition at line 245 of file ILPClusterPlanarity.h.
|
private |
Definition at line 242 of file ILPClusterPlanarity.h.
|
private |
Definition at line 243 of file ILPClusterPlanarity.h.
|
private |
Definition at line 235 of file ILPClusterPlanarity.h.
|
private |
Definition at line 239 of file ILPClusterPlanarity.h.
|
private |
Definition at line 259 of file ILPClusterPlanarity.h.
|
private |
Definition at line 264 of file ILPClusterPlanarity.h.