VTK
|
a distributed graph with random edges built accorting to the recursive matrix (R-MAT) model. More...
#include <vtkPBGLRMATGraphSource.h>
Inherits vtkGraphAlgorithm.
Public Types | |
typedef vtkGraphAlgorithm | Superclass |
Public Member Functions | |
virtual int | IsA (const char *type) |
vtkPBGLRMATGraphSource * | NewInstance () const |
void | PrintSelf (ostream &os, vtkIndent indent) |
virtual void | SetNumberOfVertices (vtkIdType value) |
void | SetProbabilities (double A, double B, double C, double D) |
void | GetProbabilities (double *A, double *B, double *C, double *D) |
virtual vtkIdType | GetNumberOfVertices () |
virtual vtkIdType | GetNumberOfEdges () |
virtual void | SetNumberOfEdges (vtkIdType) |
virtual void | SetIncludeEdgeWeights (bool) |
virtual bool | GetIncludeEdgeWeights () |
virtual void | IncludeEdgeWeightsOn () |
virtual void | IncludeEdgeWeightsOff () |
virtual void | SetEdgeWeightArrayName (const char *) |
virtual char * | GetEdgeWeightArrayName () |
virtual void | SetAllowSelfLoops (bool) |
virtual bool | GetAllowSelfLoops () |
virtual void | AllowSelfLoopsOn () |
virtual void | AllowSelfLoopsOff () |
virtual void | SetGeneratePedigreeIds (bool) |
virtual bool | GetGeneratePedigreeIds () |
virtual void | GeneratePedigreeIdsOn () |
virtual void | GeneratePedigreeIdsOff () |
virtual void | SetVertexPedigreeIdArrayName (const char *) |
virtual char * | GetVertexPedigreeIdArrayName () |
virtual void | SetEdgePedigreeIdArrayName (const char *) |
virtual char * | GetEdgePedigreeIdArrayName () |
virtual void | SetSeed (int) |
virtual int | GetSeed () |
Static Public Member Functions | |
static vtkPBGLRMATGraphSource * | New () |
static int | IsTypeOf (const char *type) |
static vtkPBGLRMATGraphSource * | SafeDownCast (vtkObjectBase *o) |
Protected Member Functions | |
virtual vtkObjectBase * | NewInstanceInternal () const |
vtkPBGLRMATGraphSource () | |
~vtkPBGLRMATGraphSource () | |
virtual int | RequestData (vtkInformation *, vtkInformationVector **, vtkInformationVector *) |
virtual int | RequestDataObject (vtkInformation *, vtkInformationVector **inputVector, vtkInformationVector *outputVector) |
Protected Attributes | |
vtkIdType | NumberOfVertices |
vtkIdType | NumberOfEdges |
double | A |
double | B |
double | C |
double | D |
bool | IncludeEdgeWeights |
bool | AllowSelfLoops |
bool | GeneratePedigreeIds |
int | Seed |
char * | EdgeWeightArrayName |
char * | VertexPedigreeIdArrayName |
char * | EdgePedigreeIdArrayName |
a distributed graph with random edges built accorting to the recursive matrix (R-MAT) model.
Generates a directed distributed graph with a specified number of vertices (N=2^X) and a set of probabilities A, B, C, and D, using the recursive matrix (R-MAT) method of Chakrabarti, Zhan, and Faloutsos. Edges are generated by randomly selecting an element within the adjacency matrix, then adding the corresponding edge. The element in the adjacency matrix is selected by placing set of grids over the adjacency list. The topmost grid has four quadrants, and the probability of creating an edge within that quadrant is specified by A, B, C, or D, corresponding to the top-left, top-right, bottom-left, and bottom-right quadrants in the grid, respectively:
+-+-+ |A|B| +-+-+ |C|D| +-+-+
Naturally, A+B+C+D must equal 1. Once a quadrant has been selected, the quadrant itself is subdivided into another A-B-C-D grid and the same process is applied repeatedly until the grid itself matches the adjacency matrix and a specific edge is selected.
Typically, A >= B, A >= C, and A >= D. A and D are viewed as two separate communities, while B and C provide interconnections between those two communities. The more skewed the probabilities between the communities (A >= D), the more unbalanced the resulting degree distributions will be. With no skew (A=B=C=D=0.25), this generator produces graphs similar to the random graphs provided by vtkPRandomGraphSource. Greater skew values tend to produce graphs with a power-law degree distribution, which mimics the behavior of many real-world graphs based on social networks.
Definition at line 76 of file vtkPBGLRMATGraphSource.h.
typedef vtkGraphAlgorithm vtkPBGLRMATGraphSource::Superclass |
Definition at line 80 of file vtkPBGLRMATGraphSource.h.
|
protected |
|
protected |
|
static |
|
static |
|
virtual |
|
static |
|
protectedvirtual |
vtkPBGLRMATGraphSource* vtkPBGLRMATGraphSource::NewInstance | ( | ) | const |
void vtkPBGLRMATGraphSource::PrintSelf | ( | ostream & | os, |
vtkIndent | indent | ||
) |
|
virtual |
The number of vertices in the graph. This value will always be a power of two.
|
virtual |
Sets the number of vertices in the graph, which will be rounded to the nearest power of two.
|
virtual |
Creates a graph with the specified number of edges. Duplicate (parallel) edges are allowed.
|
virtual |
Creates a graph with the specified number of edges. Duplicate (parallel) edges are allowed.
void vtkPBGLRMATGraphSource::SetProbabilities | ( | double | A, |
double | B, | ||
double | C, | ||
double | D | ||
) |
Set the quadrant probabilities A, B, C, D. Requires that A+B+C+D=1.
void vtkPBGLRMATGraphSource::GetProbabilities | ( | double * | A, |
double * | B, | ||
double * | C, | ||
double * | D | ||
) |
Retrieves the quadrant probabilities.
|
virtual |
When set, includes edge weights in an array named "edge_weights". Defaults to off. Weights are random between 0 and 1.
|
virtual |
When set, includes edge weights in an array named "edge_weights". Defaults to off. Weights are random between 0 and 1.
|
virtual |
When set, includes edge weights in an array named "edge_weights". Defaults to off. Weights are random between 0 and 1.
|
virtual |
When set, includes edge weights in an array named "edge_weights". Defaults to off. Weights are random between 0 and 1.
|
virtual |
The name of the edge weight array. Default "edge weight".
|
virtual |
The name of the edge weight array. Default "edge weight".
|
virtual |
If this flag is set to true, edges where the source and target vertex are the same can be generated. The default is to forbid such loops.
|
virtual |
If this flag is set to true, edges where the source and target vertex are the same can be generated. The default is to forbid such loops.
|
virtual |
If this flag is set to true, edges where the source and target vertex are the same can be generated. The default is to forbid such loops.
|
virtual |
If this flag is set to true, edges where the source and target vertex are the same can be generated. The default is to forbid such loops.
|
virtual |
Add pedigree ids to vertex and edge data.
|
virtual |
Add pedigree ids to vertex and edge data.
|
virtual |
Add pedigree ids to vertex and edge data.
|
virtual |
Add pedigree ids to vertex and edge data.
|
virtual |
The name of the vertex pedigree id array. Default "vertex id".
|
virtual |
The name of the vertex pedigree id array. Default "vertex id".
|
virtual |
The name of the edge pedigree id array. Default "edge id".
|
virtual |
The name of the edge pedigree id array. Default "edge id".
|
virtual |
Control the seed used for pseudo-random-number generation. This ensures that vtkPBGLRMATGraphSource can produce repeatable results. The seed values provided for each process should be different,
|
virtual |
Control the seed used for pseudo-random-number generation. This ensures that vtkPBGLRMATGraphSource can produce repeatable results. The seed values provided for each process should be different,
|
protectedvirtual |
|
protectedvirtual |
Creates directed or undirected output based on Directed flag.
|
protected |
Definition at line 158 of file vtkPBGLRMATGraphSource.h.
|
protected |
Definition at line 159 of file vtkPBGLRMATGraphSource.h.
|
protected |
Definition at line 160 of file vtkPBGLRMATGraphSource.h.
|
protected |
Definition at line 161 of file vtkPBGLRMATGraphSource.h.
|
protected |
Definition at line 162 of file vtkPBGLRMATGraphSource.h.
|
protected |
Definition at line 163 of file vtkPBGLRMATGraphSource.h.
|
protected |
Definition at line 164 of file vtkPBGLRMATGraphSource.h.
|
protected |
Definition at line 165 of file vtkPBGLRMATGraphSource.h.
|
protected |
Definition at line 166 of file vtkPBGLRMATGraphSource.h.
|
protected |
Definition at line 167 of file vtkPBGLRMATGraphSource.h.
|
protected |
Definition at line 168 of file vtkPBGLRMATGraphSource.h.
|
protected |
Definition at line 169 of file vtkPBGLRMATGraphSource.h.
|
protected |
Definition at line 170 of file vtkPBGLRMATGraphSource.h.