Detailed Description
template<class T>
class gcg::Hypergraph< T >
Definition at line 54 of file hypergraph.h.
#include <hypergraph.h>
Public Member Functions | |
Hypergraph (SCIP *scip) | |
void | swap (Hypergraph &other) |
Hypergraph & | operator= (Hypergraph other) |
~Hypergraph () | |
SCIP_RETCODE | addNode (int i, int weight) |
SCIP_RETCODE | addHyperedge (std::vector< int > &edge, int weight) |
SCIP_RETCODE | addNodeToHyperedge (int node, int hedge) |
int | getNNodes () |
int | getNHyperedges () |
int | getNNeighbors (int i) |
std::vector< int > | getNeighbors (int i) |
std::vector< int > | getHyperedgeNodes (int i) |
int | getNHyperedgeNodes (int i) |
void | setPartition (int i, int ID) |
SCIP_RETCODE | writeToFile (int fd, SCIP_Bool writeweights) |
SCIP_RETCODE | readPartition (const char *filename) |
int | getWeight (int i) |
int | getHyperedgeWeight (int i) |
void | setDummynodes (int dummynodes_) |
int | getDummynodes () const |
SCIP_RETCODE | flush () |
Public Member Functions inherited from gcg::GraphInterface | |
GraphInterface () | |
virtual | ~GraphInterface () |
virtual std::vector< int > | getPartition () const |
virtual SCIP_RETCODE | createDecompFromPartition (DEC_DECOMP **decomp) |
Data Fields | |
std::string | name |
Protected Attributes | |
SCIP * | scip_ |
Graph< T > * | graph |
std::vector< int > | nodes |
std::vector< int > | hedges |
std::vector< int > | mapping |
int | lastnode |
int | dummynodes |
Protected Attributes inherited from gcg::GraphInterface | |
std::vector< int > | partition |
Constructor & Destructor Documentation
◆ Hypergraph()
gcg::Hypergraph< T >::Hypergraph | ( | SCIP * | scip | ) |
Constructor
- Parameters
-
scip SCIP data structure
Definition at line 45 of file hypergraph_def.h.
References gcg::Hypergraph< T >::graph.
◆ ~Hypergraph()
gcg::Hypergraph< T >::~Hypergraph |
Destruktor
Definition at line 54 of file hypergraph_def.h.
Member Function Documentation
◆ swap()
|
inline |
Definition at line 72 of file hypergraph.h.
References gcg::Hypergraph< T >::dummynodes, gcg::Hypergraph< T >::graph, gcg::Hypergraph< T >::hedges, gcg::Hypergraph< T >::lastnode, gcg::Hypergraph< T >::nodes, gcg::GraphInterface::partition, and gcg::Hypergraph< T >::scip_.
Referenced by gcg::Hypergraph< T >::operator=().
◆ operator=()
|
inline |
Definition at line 84 of file hypergraph.h.
References gcg::Hypergraph< T >::swap().
◆ addNode()
SCIP_RETCODE gcg::Hypergraph< T >::addNode | ( | int | i, |
int | weight | ||
) |
adds the node with the given weight to the graph
Definition at line 75 of file hypergraph_def.h.
◆ addHyperedge()
SCIP_RETCODE gcg::Hypergraph< T >::addHyperedge | ( | std::vector< int > & | edge, |
int | weight | ||
) |
adds the edge to the graph
Definition at line 89 of file hypergraph_def.h.
◆ addNodeToHyperedge()
SCIP_RETCODE gcg::Hypergraph< T >::addNodeToHyperedge | ( | int | node, |
int | hedge | ||
) |
adds the edge to the graph
Definition at line 108 of file hypergraph_def.h.
◆ getNNodes()
int gcg::Hypergraph< T >::getNNodes |
return the number of nodes
Definition at line 119 of file hypergraph_def.h.
◆ getNHyperedges()
int gcg::Hypergraph< T >::getNHyperedges |
return the number of edges (or hyperedges)
Definition at line 124 of file hypergraph_def.h.
Referenced by gcg::GraphAlgorithms< T >::computekMetric(), gcg::GraphAlgorithms< T >::computeMincut(), and gcg::GraphAlgorithms< T >::computeSoed().
◆ getNNeighbors()
int gcg::Hypergraph< T >::getNNeighbors | ( | int | i | ) |
return the number of neighbor nodes of given node
- Parameters
-
i the given node
Definition at line 129 of file hypergraph_def.h.
◆ getNeighbors()
std::vector< int > gcg::Hypergraph< T >::getNeighbors | ( | int | i | ) |
return the neighboring nodes of a given node
- Parameters
-
i the given node
Definition at line 135 of file hypergraph_def.h.
Referenced by gcg::HyperrowGraph< T >::getNeighbors(), and gcg::HypercolGraph< T >::getNeighbors().
◆ getHyperedgeNodes()
std::vector< int > gcg::Hypergraph< T >::getHyperedgeNodes | ( | int | i | ) |
return the nodes spanned by hyperedge
Definition at line 157 of file hypergraph_def.h.
Referenced by gcg::GraphAlgorithms< T >::computekMetric(), gcg::GraphAlgorithms< T >::computeMincut(), and gcg::GraphAlgorithms< T >::computeSoed().
◆ getNHyperedgeNodes()
int gcg::Hypergraph< T >::getNHyperedgeNodes | ( | int | i | ) |
return the number of nodes spanned by hyperedge
Definition at line 170 of file hypergraph_def.h.
◆ setPartition()
|
virtual |
assigns partition to a given node
Implements gcg::GraphInterface.
Definition at line 178 of file hypergraph_def.h.
References partition().
◆ writeToFile()
|
virtual |
writes the hypergraph to the given file. The format is hypergraph dependent
write the hypergraph to a file
- Parameters
-
fd filename where the graph should be written to writeweights whether to write weights
Implements gcg::GraphInterface.
Definition at line 185 of file hypergraph_def.h.
◆ readPartition()
|
virtual |
reads the partition from the given file. The format is hypergraph dependent. The default is a file with one line for each node a
read in the partition from a file
- Parameters
-
filename filename where the partition is stored
Implements gcg::GraphInterface.
Definition at line 218 of file hypergraph_def.h.
References partition().
Referenced by gcg::HyperrowGraph< T >::readPartition(), and gcg::HypercolGraph< T >::readPartition().
◆ getWeight()
int gcg::Hypergraph< T >::getWeight | ( | int | i | ) |
return the weight of given node
- Parameters
-
i the given node
Definition at line 246 of file hypergraph_def.h.
◆ getHyperedgeWeight()
int gcg::Hypergraph< T >::getHyperedgeWeight | ( | int | i | ) |
return the weight of given hyperedge
- Parameters
-
i the given hyperedge
Definition at line 255 of file hypergraph_def.h.
Referenced by gcg::GraphAlgorithms< T >::computekMetric(), gcg::GraphAlgorithms< T >::computeMincut(), and gcg::GraphAlgorithms< T >::computeSoed().
◆ setDummynodes()
|
inline |
set the number of dummy nodes
Definition at line 160 of file hypergraph.h.
References gcg::Hypergraph< T >::dummynodes.
◆ getDummynodes()
|
inline |
Definition at line 166 of file hypergraph.h.
References gcg::Hypergraph< T >::dummynodes.
◆ flush()
|
virtual |
Implements gcg::GraphInterface.
Definition at line 265 of file hypergraph_def.h.
Field Documentation
◆ name
std::string gcg::Hypergraph< T >::name |
Definition at line 56 of file hypergraph.h.
◆ scip_
|
protected |
Definition at line 58 of file hypergraph.h.
Referenced by gcg::Hypergraph< T >::swap().
◆ graph
|
protected |
Definition at line 59 of file hypergraph.h.
Referenced by gcg::Hypergraph< T >::Hypergraph(), and gcg::Hypergraph< T >::swap().
◆ nodes
|
protected |
Definition at line 60 of file hypergraph.h.
Referenced by gcg::Hypergraph< T >::swap().
◆ hedges
|
protected |
Definition at line 61 of file hypergraph.h.
Referenced by gcg::Hypergraph< T >::swap().
◆ mapping
|
protected |
Definition at line 62 of file hypergraph.h.
◆ lastnode
|
protected |
Definition at line 63 of file hypergraph.h.
Referenced by gcg::Hypergraph< T >::swap().
◆ dummynodes
|
protected |
Definition at line 64 of file hypergraph.h.
Referenced by gcg::Hypergraph< T >::getDummynodes(), gcg::Hypergraph< T >::setDummynodes(), and gcg::Hypergraph< T >::swap().