Scippy

GCG

Branch-and-Price & Column Generation for Everyone

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

◆ GraphGCG() [1/2]

gcg::GraphGCG::GraphGCG ( )

Definition at line 49 of file graph_gcg.cpp.

◆ GraphGCG() [2/2]

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

Definition at line 61 of file graph_gcg.cpp.

◆ ~GraphGCG()

gcg::GraphGCG::~GraphGCG ( )
virtual

Definition at line 76 of file graph_gcg.cpp.

Member Function Documentation

◆ addNNodes() [1/2]

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 95 of file graph_gcg.cpp.

◆ addNNodes() [2/2]

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 119 of file graph_gcg.cpp.

◆ getNNodes()

int gcg::GraphGCG::getNNodes ( )
virtual

get number of nodes in the graph

Implements gcg::Bridge.

Definition at line 127 of file graph_gcg.cpp.

◆ getNEdges()

int gcg::GraphGCG::getNEdges ( )
virtual

get number of edges in the graph

Implements gcg::Bridge.

Definition at line 407 of file graph_gcg.cpp.

◆ getAdjMatrix()

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

Definition at line 399 of file graph_gcg.cpp.

◆ getEdges()

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 799 of file graph_gcg.cpp.

◆ isEdge()

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 430 of file graph_gcg.cpp.

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

◆ getNNeighbors()

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

get number of neighbors of a given node

Implements gcg::Bridge.

Definition at line 448 of file graph_gcg.cpp.

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

◆ getNeighbors()

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

get a vector of all neighbors of a given node

Implements gcg::Bridge.

Definition at line 475 of file graph_gcg.cpp.

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

◆ getNeighborWeights()

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

Reimplemented from gcg::Bridge.

Definition at line 506 of file graph_gcg.cpp.

◆ addNode() [1/2]

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 550 of file graph_gcg.cpp.

◆ addNode() [2/2]

SCIP_RETCODE gcg::GraphGCG::addNode ( )
virtual

adds the node with 0 weight to the graph

Implements gcg::Bridge.

Definition at line 586 of file graph_gcg.cpp.

◆ deleteNode()

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 595 of file graph_gcg.cpp.

◆ addEdge() [1/2]

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

adds the edge to the graph

Implements gcg::Bridge.

Definition at line 605 of file graph_gcg.cpp.

◆ addEdge() [2/2]

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 610 of file graph_gcg.cpp.

◆ setEdge()

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 657 of file graph_gcg.cpp.

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

◆ deleteEdge()

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

deletes the edge from the graph

Implements gcg::Bridge.

Definition at line 694 of file graph_gcg.cpp.

◆ graphGetWeights()

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

return the weight of a node

Implements gcg::Bridge.

Definition at line 699 of file graph_gcg.cpp.

◆ getEdgeWeight()

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

returns the weight of the edge in the graph

Implements gcg::Bridge.

Definition at line 704 of file graph_gcg.cpp.

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

◆ edgeComp()

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

Definition at line 816 of file graph_gcg.cpp.

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

◆ flush()

SCIP_RETCODE gcg::GraphGCG::flush ( )
virtual

flushes the data stuctures, if needed

Implements gcg::Bridge.

Definition at line 721 of file graph_gcg.cpp.

◆ normalize()

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 732 of file graph_gcg.cpp.

◆ getEdgeWeightPercentile()

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

Implements gcg::Bridge.

Definition at line 765 of file graph_gcg.cpp.