gcg::GraphGCG Class Reference

Detailed Description

Definition at line 57 of file graph_gcg.h.

#include <graph_gcg.h>

Public Member Functions

 GraphGCG ()
 
 GraphGCG (int _n_nodes, bool _undirected)
 
virtual ~GraphGCG ()
 
virtual SCIP_RETCODE addNNodes (int _n_nodes)
 
virtual SCIP_RETCODE addNNodes (int _n_nodes, std::vector< int > weights)
 
virtual int getNNodes ()
 
virtual int getNEdges ()
 
virtual std::vector< std::vector< double > > getAdjMatrix ()
 
virtual SCIP_RETCODE getEdges (std::vector< void * > &edges)
 
virtual SCIP_Bool isEdge (int node_i, int node_j)
 
virtual int getNNeighbors (int node)
 
virtual std::vector< int > getNeighbors (int node)
 
virtual std::vector< std::pair< int, double > > getNeighborWeights (int node)
 
virtual SCIP_RETCODE addNode (int node, int weight)
 
virtual SCIP_RETCODE addNode ()
 
virtual SCIP_RETCODE deleteNode (int node)
 
virtual SCIP_RETCODE addEdge (int i, int j)
 
virtual SCIP_RETCODE addEdge (int node_i, int node_j, double weight)
 
virtual SCIP_RETCODE setEdge (int node_i, int node_j, double weight)
 
virtual SCIP_RETCODE deleteEdge (int node_i, int node_j)
 
virtual int graphGetWeights (int node)
 
virtual double getEdgeWeight (int node_i, int node_j)
 
virtual int edgeComp (const EdgeGCG *a, const EdgeGCG *b)
 
virtual SCIP_RETCODE flush ()
 
virtual SCIP_RETCODE normalize ()
 
virtual double getEdgeWeightPercentile (double q)
 
- Public Member Functions inherited from gcg::Bridge
 Bridge ()
 
virtual ~Bridge ()
 

Constructor & Destructor Documentation

gcg::GraphGCG::GraphGCG ( )

Definition at line 49 of file graph_gcg.cpp.

gcg::GraphGCG::GraphGCG ( int  _n_nodes,
bool  _undirected 
)

Definition at line 62 of file graph_gcg.cpp.

gcg::GraphGCG::~GraphGCG ( )
virtual

Definition at line 77 of file graph_gcg.cpp.

Member Function Documentation

SCIP_RETCODE gcg::GraphGCG::addEdge ( int  i,
int  j 
)
virtual

adds the edge to the graph

Implements gcg::Bridge.

Definition at line 608 of file graph_gcg.cpp.

SCIP_RETCODE gcg::GraphGCG::addEdge ( int  node_i,
int  node_j,
double  weight 
)
virtual

Sets edge weight to 1.

Implements gcg::Bridge.

Definition at line 613 of file graph_gcg.cpp.

SCIP_RETCODE gcg::GraphGCG::addNNodes ( int  _n_nodes)
virtual

add n nodes in the graph at the same time. it is much faster than to call addNode() many times

Implements gcg::Bridge.

Definition at line 96 of file graph_gcg.cpp.

SCIP_RETCODE gcg::GraphGCG::addNNodes ( int  _n_nodes,
std::vector< int >  weights 
)
virtual

add n nodes in the graph at the same time. it is much faster than to call addNode() many times. weights represent node weights

Implements gcg::Bridge.

Definition at line 120 of file graph_gcg.cpp.

SCIP_RETCODE gcg::GraphGCG::addNode ( int  node,
int  weight 
)
virtual

int node is obsolete, it must be the next available id

Implements gcg::Bridge.

Definition at line 553 of file graph_gcg.cpp.

SCIP_RETCODE gcg::GraphGCG::addNode ( )
virtual

adds the node with 0 weight to the graph

Implements gcg::Bridge.

Definition at line 589 of file graph_gcg.cpp.

SCIP_RETCODE gcg::GraphGCG::deleteEdge ( int  i,
int  j 
)
virtual

deletes the edge from the graph

Implements gcg::Bridge.

Definition at line 697 of file graph_gcg.cpp.

SCIP_RETCODE gcg::GraphGCG::deleteNode ( int  node)
virtual

Sets node weight to 0 and the ID to the next available.

Implements gcg::Bridge.

Definition at line 598 of file graph_gcg.cpp.

int gcg::GraphGCG::edgeComp ( const EdgeGCG a,
const EdgeGCG b 
)
virtual

Definition at line 821 of file graph_gcg.cpp.

References gcg::EdgeGCG::src, and gcg::EdgeGCG::weight.

SCIP_RETCODE gcg::GraphGCG::flush ( )
virtual

flushes the data stuctures, if needed

Implements gcg::Bridge.

Definition at line 725 of file graph_gcg.cpp.

vector< vector< double > > gcg::GraphGCG::getAdjMatrix ( )
virtual

Definition at line 401 of file graph_gcg.cpp.

SCIP_RETCODE gcg::GraphGCG::getEdges ( std::vector< void * > &  edges)
virtual

get list of edges in the graph (not defined how edges are implemented)

Implements gcg::Bridge.

Definition at line 803 of file graph_gcg.cpp.

double gcg::GraphGCG::getEdgeWeight ( int  i,
int  j 
)
virtual

returns the weight of the edge in the graph

Implements gcg::Bridge.

Definition at line 707 of file graph_gcg.cpp.

Referenced by gcg::Seeed::calcStairlinkingVars(), and gcg::Seeed::changeBlockOrderGreedily().

double gcg::GraphGCG::getEdgeWeightPercentile ( double  q)
virtual

Implements gcg::Bridge.

Definition at line 769 of file graph_gcg.cpp.

int gcg::GraphGCG::getNEdges ( )
virtual

get number of edges in the graph

Implements gcg::Bridge.

Definition at line 409 of file graph_gcg.cpp.

vector< int > gcg::GraphGCG::getNeighbors ( int  i)
virtual

get a vector of all neighbors of a given node

Implements gcg::Bridge.

Definition at line 477 of file graph_gcg.cpp.

Referenced by gcg::Seeed::calcStairlinkingVars(), gcg::Seeed::changeBlockOrderGreedily(), and gcg::Seeed::changeBlockOrderStaircase().

vector< pair< int, double > > gcg::GraphGCG::getNeighborWeights ( int  node)
virtual

Reimplemented from gcg::Bridge.

Definition at line 509 of file graph_gcg.cpp.

int gcg::GraphGCG::getNNeighbors ( int  i)
virtual

get number of neighbors of a given node

Implements gcg::Bridge.

Definition at line 450 of file graph_gcg.cpp.

Referenced by gcg::Seeed::calcStairlinkingVars(), gcg::Seeed::changeBlockOrderGreedily(), and gcg::Seeed::changeBlockOrderStaircase().

int gcg::GraphGCG::getNNodes ( )
virtual

get number of nodes in the graph

Implements gcg::Bridge.

Definition at line 128 of file graph_gcg.cpp.

int gcg::GraphGCG::graphGetWeights ( int  i)
virtual

return the weight of a node

Implements gcg::Bridge.

Definition at line 702 of file graph_gcg.cpp.

SCIP_Bool gcg::GraphGCG::isEdge ( int  i,
int  j 
)
virtual

return whether a given pair of vertices is connected by an edge

Implements gcg::Bridge.

Definition at line 432 of file graph_gcg.cpp.

Referenced by gcg::Seeed::calcStairlinkingVars().

SCIP_RETCODE gcg::GraphGCG::normalize ( )
virtual

normalizes the edge weights, so that the biggest edge egiht in the graph is 1

Implements gcg::Bridge.

Definition at line 736 of file graph_gcg.cpp.

SCIP_RETCODE gcg::GraphGCG::setEdge ( int  i,
int  j,
double  weight 
)
virtual

sets the weight of the edge in the graph

Implements gcg::Bridge.

Definition at line 660 of file graph_gcg.cpp.

Referenced by gcg::Seeed::calcStairlinkingVars().