C-planarity testing via completely connected graph extension. More...
#include <ogdf/cluster/ILPClusterPlanarity.h>
Public Types | |
using | CP_MasterBase = cluster_planarity::CP_MasterBase |
using | NodePairs = List< NodePair > |
enum | solmeth { solmeth::Fallback, solmeth::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 | ReturnType { ReturnType::Feasible, ReturnType::Optimal, ReturnType::NoFeasibleSolution, ReturnType::TimeoutFeasible, ReturnType::TimeoutInfeasible, ReturnType::Error } |
The return type of a module. More... | |
Public Member Functions | |
ILPClusterPlanarity () | |
Construction. More... | |
~ILPClusterPlanarity () | |
bool | clusterPlanarEmbedClusterPlanarGraph (ClusterGraph &CG, Graph &G) override |
Constructs a cluster-planar embedding of CG . CG has to be cluster-planar! More... | |
double | getHeurTime () |
double | getLPSolverTime () |
double | getLPTime () |
int | getNumBCs () |
Returns number of generated LPs. More... | |
int | getNumCCons () |
Returns number of connectivity constraints added during computation. More... | |
int | getNumKCons () |
Returns number of Kuratowski constraints added during computation. More... | |
int | getNumLPs () |
Returns number of optimized LPs (only LP-relaxations) More... | |
int | getNumSubSelected () |
Returns number of subproblems selected by ABACUS. More... | |
int | getNumVars () |
Returns number of global variables. Todo: Real number from ABACUS. More... | |
abacus::Master::STATUS | getOptStatus () |
double | getSeparationTime () |
bool | getSolByHeuristic () |
double | getTotalTime () |
double | getTotalWTime () |
bool | isClusterPlanar (const ClusterGraph &CG) override |
Returns c-planarity status of CG . More... | |
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. More... | |
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. More... | |
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. More... | |
void | writeFeasible (const char *filename, CP_MasterBase &master, abacus::Master::STATUS &status) |
Writes feasible solutions as a file in PORTA format. More... | |
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. More... | |
Public Member Functions inherited from ogdf::Module | |
Module () | |
Initializes a module. More... | |
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. More... | |
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. More... | |
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. More... | |
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.