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().
Public Member Functions inherited from 