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 | ReturnType { ReturnType::Feasible, ReturnType::Optimal, ReturnType::NoFeasibleSolution, ReturnType::TimeoutFeasible, ReturnType::TimeoutInfeasible, ReturnType::Error } |
The return type of a module. More... | |
Public Member Functions | |
MaximumCPlanarSubgraph () | |
Construction. More... | |
~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. 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... | |
double | getSeparationTime () |
bool | getSolByHeuristic () |
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. More... | |
void | writeFeasible (const char *filename, MaxCPlanarMaster &master, abacus::Master::STATUS &status) |
Writes feasible solutions as a file in PORTA format. More... | |
Public Member Functions inherited from ogdf::CPlanarSubgraphModule | |
CPlanarSubgraphModule () | |
Constructs a cplanar subgraph module. More... | |
virtual | ~CPlanarSubgraphModule () |
Destruction. More... | |
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. More... | |
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. More... | |
Public Member Functions inherited from ogdf::Module | |
Module () | |
Initializes a module. More... | |
virtual | ~Module () |
Public Member Functions inherited from ogdf::Timeouter | |
Timeouter () | |
timeout is turned of by default More... | |
Timeouter (bool t) | |
timeout is turned off (false) or on (true) (with 0 second) More... | |
Timeouter (const Timeouter &t) | |
Timeouter (double t) | |
timeout is set to the given value (seconds) More... | |
~Timeouter () | |
bool | isTimeLimit () const |
returns whether any time limit is set or not More... | |
Timeouter & | operator= (const Timeouter &t) |
double | timeLimit () const |
returns the current time limit for the call More... | |
void | timeLimit (bool t) |
shorthand to turn timelimit off or on (with 0 seconds) More... | |
void | timeLimit (double t) |
sets the time limit for the call (in seconds); <0 means no limit. More... | |
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. More... | |
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. More... | |
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) |
Private Attributes | |
double | m_branchingGap |
bool | m_checkCPlanar |
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 |
bool | m_perturbation |
bool | m_portaOutput |
bool | m_pricing |
double | m_sepTime |
bool | m_solByHeuristic |
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... | |
Protected Attributes inherited from ogdf::Timeouter | |
double | m_timeLimit |
Time limit for module calls (< 0 means no limit). More... | |
Exact computation of a maximum c-planar subgraph.
Definition at line 61 of file MaximumCPlanarSubgraph.h.
Definition at line 64 of file MaximumCPlanarSubgraph.h.
Definition at line 63 of file MaximumCPlanarSubgraph.h.
|
inline |
Construction.
Definition at line 67 of file MaximumCPlanarSubgraph.h.
|
inline |
Definition at line 106 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 122 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 227 of file MaximumCPlanarSubgraph.h.
|
protectedvirtual |
|
protected |
Stores clusters in subtree at c in bottom up order in theList.
|
inlineprotected |
Definition at line 239 of file MaximumCPlanarSubgraph.h.
|
inline |
Definition at line 186 of file MaximumCPlanarSubgraph.h.
|
inlineprivate |
Definition at line 266 of file MaximumCPlanarSubgraph.h.
|
inline |
Definition at line 190 of file MaximumCPlanarSubgraph.h.
|
inline |
Definition at line 188 of file MaximumCPlanarSubgraph.h.
|
inline |
Returns number of generated LPs.
Definition at line 206 of file MaximumCPlanarSubgraph.h.
|
inline |
Returns number of connectivity constraints added during computation.
Definition at line 197 of file MaximumCPlanarSubgraph.h.
|
inline |
Returns number of Kuratowski constraints added during computation.
Definition at line 200 of file MaximumCPlanarSubgraph.h.
|
inline |
Returns number of optimized LPs (only LP-relaxations)
Definition at line 203 of file MaximumCPlanarSubgraph.h.
|
inline |
Returns number of subproblems selected by ABACUS.
Definition at line 209 of file MaximumCPlanarSubgraph.h.
|
inline |
Returns number of global variables. Todo: Real number from ABACUS.
Definition at line 212 of file MaximumCPlanarSubgraph.h.
|
inlineprivate |
Definition at line 264 of file MaximumCPlanarSubgraph.h.
|
inline |
Definition at line 192 of file MaximumCPlanarSubgraph.h.
|
inline |
Definition at line 218 of file MaximumCPlanarSubgraph.h.
|
inline |
Definition at line 184 of file MaximumCPlanarSubgraph.h.
|
inline |
Definition at line 194 of file MaximumCPlanarSubgraph.h.
|
inlineprivate |
Definition at line 268 of file MaximumCPlanarSubgraph.h.
|
private |
|
inline |
Definition at line 148 of file MaximumCPlanarSubgraph.h.
|
inline |
Definition at line 171 of file MaximumCPlanarSubgraph.h.
|
inline |
Definition at line 132 of file MaximumCPlanarSubgraph.h.
|
inline |
Definition at line 128 of file MaximumCPlanarSubgraph.h.
|
inline |
Definition at line 130 of file MaximumCPlanarSubgraph.h.
|
inline |
Definition at line 144 of file MaximumCPlanarSubgraph.h.
|
inline |
Definition at line 173 of file MaximumCPlanarSubgraph.h.
|
inline |
Definition at line 136 of file MaximumCPlanarSubgraph.h.
|
inline |
Definition at line 134 of file MaximumCPlanarSubgraph.h.
|
inline |
Definition at line 138 of file MaximumCPlanarSubgraph.h.
|
inline |
Definition at line 140 of file MaximumCPlanarSubgraph.h.
|
inline |
Definition at line 146 of file MaximumCPlanarSubgraph.h.
|
inline |
Definition at line 167 of file MaximumCPlanarSubgraph.h.
|
inline |
Definition at line 169 of file MaximumCPlanarSubgraph.h.
|
inline |
Definition at line 175 of file MaximumCPlanarSubgraph.h.
|
inline |
Definition at line 177 of file MaximumCPlanarSubgraph.h.
|
inline |
Definition at line 152 of file MaximumCPlanarSubgraph.h.
|
inline |
Definition at line 150 of file MaximumCPlanarSubgraph.h.
|
inline |
Definition at line 142 of file MaximumCPlanarSubgraph.h.
|
inline |
Use default abacus master cut pool or dedicated connectivity and kuratowski cut pools.
Definition at line 181 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 256 of file MaximumCPlanarSubgraph.h.
|
private |
Definition at line 259 of file MaximumCPlanarSubgraph.h.
|
private |
Definition at line 288 of file MaximumCPlanarSubgraph.h.
|
private |
Definition at line 250 of file MaximumCPlanarSubgraph.h.
|
private |
Definition at line 252 of file MaximumCPlanarSubgraph.h.
|
private |
Definition at line 251 of file MaximumCPlanarSubgraph.h.
|
private |
Definition at line 250 of file MaximumCPlanarSubgraph.h.
|
private |
Definition at line 276 of file MaximumCPlanarSubgraph.h.
|
private |
Definition at line 253 of file MaximumCPlanarSubgraph.h.
|
private |
Definition at line 254 of file MaximumCPlanarSubgraph.h.
|
private |
Definition at line 252 of file MaximumCPlanarSubgraph.h.
|
private |
Definition at line 254 of file MaximumCPlanarSubgraph.h.
|
private |
Definition at line 278 of file MaximumCPlanarSubgraph.h.
|
private |
Definition at line 277 of file MaximumCPlanarSubgraph.h.
|
private |
Definition at line 260 of file MaximumCPlanarSubgraph.h.
|
private |
Definition at line 284 of file MaximumCPlanarSubgraph.h.
|
private |
Definition at line 281 of file MaximumCPlanarSubgraph.h.
|
private |
Definition at line 282 of file MaximumCPlanarSubgraph.h.
|
private |
Definition at line 283 of file MaximumCPlanarSubgraph.h.
|
private |
Definition at line 285 of file MaximumCPlanarSubgraph.h.
|
private |
Definition at line 286 of file MaximumCPlanarSubgraph.h.
|
private |
Definition at line 255 of file MaximumCPlanarSubgraph.h.
|
private |
Definition at line 287 of file MaximumCPlanarSubgraph.h.
|
private |
Definition at line 258 of file MaximumCPlanarSubgraph.h.
|
private |
Definition at line 279 of file MaximumCPlanarSubgraph.h.
|
private |
Definition at line 290 of file MaximumCPlanarSubgraph.h.
|
private |
Definition at line 261 of file MaximumCPlanarSubgraph.h.
|
private |
Definition at line 262 of file MaximumCPlanarSubgraph.h.
|
private |
Definition at line 253 of file MaximumCPlanarSubgraph.h.
|
private |
Definition at line 257 of file MaximumCPlanarSubgraph.h.
|
private |
Definition at line 275 of file MaximumCPlanarSubgraph.h.
|
private |
Definition at line 280 of file MaximumCPlanarSubgraph.h.