C-planarity testing via Hanani-Tutte approach. More...
#include <ogdf/cluster/HananiTutteCPlanarity.h>
Classes | |
struct | HananiTutteSolver |
struct | Stats |
Public Types | |
enum | Solver { Solver::HananiTutte, Solver::HananiTutteVerify, Solver::ILP } |
enum | Status { Status::invalid, Status::emptyAfterPreproc, Status::cConnectedAfterPreproc, Status::nonPlanarAfterPreproc, Status::applyHananiTutte, Status::applyILP, Status::timeoutILP, Status::errorILP } |
enum | SubType : uint16_t { SubType::stVertex, SubType::stCluster, SubType::stEdge, SubType::stInnerCluster, SubType::stOuterCluster, SubType::stVertexCluster, SubType::stClusterCluster, SubType::stCrossCluster } |
enum | Type : uint16_t { Type::tVertex, Type::tEdge } |
enum | Verification { Verification::cPlanar, Verification::cPlanarVerified, Verification::nonCPlanarVerified, Verification::verificationFailed, Verification::timeout } |
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 | |
bool | isClusterPlanar (const ClusterGraph &CG) override |
Returns true, if CG is cluster-planar, false otherwise. 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... | |
Verification | isCPlanar (const ClusterGraph &C, bool doPreproc=true, bool forceSolver=false, Solver solver=Solver::HananiTutte) |
int | numClustersPreproc () const |
int | numEdgesPreproc () const |
int | numMatrixCols () const |
int | numMatrixRows () const |
int | numNodesPreproc () const |
const Stats & | stats () const |
Status | status () const |
int64_t | timeCreateSparse () const |
int64_t | timePrepare () const |
int64_t | timesolve () const |
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... | |
virtual bool | clusterPlanarEmbedClusterPlanarGraph (ClusterGraph &CG, Graph &G) |
Constructs a cluster-planar embedding of CG . CG has to be cluster-planar! More... | |
Public Member Functions inherited from ogdf::Module | |
Module () | |
Initializes a module. More... | |
virtual | ~Module () |
Static Public Member Functions | |
static HananiTutteSolver * | getSolver (const ClusterGraph &C) |
static void | preprocessing (ClusterGraph &C, Graph &G) |
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... | |
Private Attributes | |
int | m_numClustersPreproc = 0 |
int | m_numEdgesPreproc = 0 |
int | m_numNodesPreproc = 0 |
Stats | m_stats |
Status | m_status = Status::invalid |
Additional Inherited Members | |
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 |
C-planarity testing via Hanani-Tutte approach.
Definition at line 49 of file HananiTutteCPlanarity.h.
|
strong |
Enumerator | |
---|---|
HananiTutte | |
HananiTutteVerify | |
ILP |
Definition at line 72 of file HananiTutteCPlanarity.h.
|
strong |
Enumerator | |
---|---|
invalid | |
emptyAfterPreproc | |
cConnectedAfterPreproc | |
nonPlanarAfterPreproc | |
applyHananiTutte | |
applyILP | |
timeoutILP | |
errorILP |
Definition at line 73 of file HananiTutteCPlanarity.h.
|
strong |
Enumerator | |
---|---|
stVertex | |
stCluster | |
stEdge | |
stInnerCluster | |
stOuterCluster | |
stVertexCluster | |
stClusterCluster | |
stCrossCluster |
Definition at line 92 of file HananiTutteCPlanarity.h.
|
strong |
Enumerator | |
---|---|
tVertex | |
tEdge |
Definition at line 91 of file HananiTutteCPlanarity.h.
|
strong |
Enumerator | |
---|---|
cPlanar | |
cPlanarVerified | |
nonCPlanarVerified | |
verificationFailed | |
timeout |
Definition at line 83 of file HananiTutteCPlanarity.h.
|
static |
|
inlineoverridevirtual |
Returns true, if CG
is cluster-planar, false otherwise.
Reimplemented from ogdf::ClusterPlanarityModule.
Definition at line 103 of file HananiTutteCPlanarity.h.
|
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 114 of file HananiTutteCPlanarity.h.
Verification ogdf::HananiTutteCPlanarity::isCPlanar | ( | const ClusterGraph & | C, |
bool | doPreproc = true , |
||
bool | forceSolver = false , |
||
Solver | solver = Solver::HananiTutte |
||
) |
|
inline |
Definition at line 130 of file HananiTutteCPlanarity.h.
|
inline |
Definition at line 128 of file HananiTutteCPlanarity.h.
|
inline |
Definition at line 134 of file HananiTutteCPlanarity.h.
|
inline |
Definition at line 132 of file HananiTutteCPlanarity.h.
|
inline |
Definition at line 126 of file HananiTutteCPlanarity.h.
|
static |
|
inline |
Definition at line 142 of file HananiTutteCPlanarity.h.
|
inline |
Definition at line 121 of file HananiTutteCPlanarity.h.
|
inline |
Definition at line 138 of file HananiTutteCPlanarity.h.
|
inline |
Definition at line 136 of file HananiTutteCPlanarity.h.
|
inline |
Definition at line 140 of file HananiTutteCPlanarity.h.
|
private |
Definition at line 151 of file HananiTutteCPlanarity.h.
|
private |
Definition at line 150 of file HananiTutteCPlanarity.h.
|
private |
Definition at line 149 of file HananiTutteCPlanarity.h.
|
private |
Definition at line 147 of file HananiTutteCPlanarity.h.
|
private |
Definition at line 148 of file HananiTutteCPlanarity.h.