public class GraphGenerators
extends Object
Constructor and Description |
---|
GraphGenerators() |
Modifier and Type | Method and Description |
---|---|
static Edge<Object>[] |
generateRandomEdges(int src,
int numEdges,
int maxVertexId,
long seed) |
static Graph<scala.Tuple2<Object,Object>,Object> |
gridGraph(SparkContext sc,
int rows,
int cols)
Create
rows by cols grid graph with each vertex connected to its
row+1 and col+1 neighbors. |
static Graph<Object,Object> |
logNormalGraph(SparkContext sc,
int numVertices,
int numEParts,
double mu,
double sigma,
long seed)
Generate a graph whose vertex out degree distribution is log normal.
|
static double |
RMATa() |
static double |
RMATb() |
static double |
RMATc() |
static double |
RMATd() |
static Graph<Object,Object> |
rmatGraph(SparkContext sc,
int requestedNumVertices,
int numEdges)
A random graph generator using the R-MAT model, proposed in
"R-MAT: A Recursive Model for Graph Mining" by Chakrabarti et al.
|
static int |
sampleLogNormal(double mu,
double sigma,
int maxVal,
long seed)
Randomly samples from a log normal distribution whose corresponding normal distribution has
the given mean and standard deviation.
|
static Graph<Object,Object> |
starGraph(SparkContext sc,
int nverts)
Create a star graph with vertex 0 being the center.
|
public static double RMATa()
public static double RMATb()
public static double RMATd()
public static Graph<Object,Object> logNormalGraph(SparkContext sc, int numVertices, int numEParts, double mu, double sigma, long seed)
The default values for mu and sigma are taken from the Pregel paper:
Grzegorz Malewicz, Matthew H. Austern, Aart J.C Bik, James C. Dehnert, Ilan Horn, Naty Leiser, and Grzegorz Czajkowski. 2010. Pregel: a system for large-scale graph processing. SIGMOD '10.
If the seed is -1 (default), a random seed is chosen. Otherwise, use the user-specified seed.
sc
- Spark ContextnumVertices
- number of vertices in generated graphnumEParts
- (optional) number of partitionsmu
- (optional, default: 4.0) mean of out-degree distributionsigma
- (optional, default: 1.3) standard deviation of out-degree distributionseed
- (optional, default: -1) seed for RNGs, -1 causes a random seed to be chosenpublic static double RMATc()
public static Edge<Object>[] generateRandomEdges(int src, int numEdges, int maxVertexId, long seed)
public static int sampleLogNormal(double mu, double sigma, int maxVal, long seed)
X = exp(m+s*Z)
where m
,
s
are the mean, standard deviation of the lognormal distribution and
Z ~ N(0, 1)
. In this function,
m = e^(mu+sigma^2/2)
and s = sqrt[(e^(sigma^2) - 1)(e^(2*mu+sigma^2))]
.
mu
- the mean of the normal distributionsigma
- the standard deviation of the normal distributionmaxVal
- exclusive upper bound on the value of the sampleseed
- optional seedpublic static Graph<Object,Object> rmatGraph(SparkContext sc, int requestedNumVertices, int numEdges)
See http://www.cs.cmu.edu/~christos/PUBLICATIONS/siam04.pdf
.
public static Graph<scala.Tuple2<Object,Object>,Object> gridGraph(SparkContext sc, int rows, int cols)
rows
by cols
grid graph with each vertex connected to its
row+1 and col+1 neighbors. Vertex ids are assigned in row major
order.
sc
- the spark context in which to construct the graphrows
- the number of rowscols
- the number of columns
public static Graph<Object,Object> starGraph(SparkContext sc, int nverts)
sc
- the spark context in which to construct the graphnverts
- the number of vertices in the star
nverts
vertices with vertex 0
being the center vertex.