Skip to content

GraphGeneration

Graph Generation

Graph Generation can be decomposed naturally along two sub-categories: Deterministic or Random, depending on the primary mechanism the underlies the graph data generation.

  • From node and edge lists provided in some format
  • From adjacency or incidence matrices
  • From dataframes
  • From formulas

  • Complete Graphs

  • Tree and Star Graphs
  • Lattice Graphs
  • Circular Graphs

Generate a random graph, with a given degree distribution and (optionally) vertex-vertex correlation.

Shuffle the graph in-place, following a variety of possible statistical models, chosen via the parameter model

Add new edges to a graph, chosen uniformly at random.

Remove edges from the graph, chosen uniformly at random.

Closes open triads in a graph, according to an ego-based process.

A generalized version of Price's --- or Barabási-Albert if undirected --- preferential attachment network model.

Generating Random Graphs

  • Barabási-Albert model
  • Erdős-Rényi
  • Watts-Strogatz
  • Random Tree
  • Forest Fire Game
  • random geometric graph Graph.GRG()
  • growing Graph.Growing_Random()
  • establishment game Graph.Establishment()
  • preference, the non-growing variant of establishment Graph.Preference()
  • asymmetric preference Graph.Asymmetric_Prefernce()
  • recent degree Graph.Recent_Degree()
  • k-regular (each node has degree k) Graph.K_Regular()
  • non-growing graph with edge probabilities proportional to node fitnesses Graph.Static_Fitness()
  • non-growing graph with prescribed power-law degree distribution(s) Graph.Static_Power_Law()
  • random graph with a given degree sequence Graph.Degree_Sequence()
  • bipartite Graph.Random_Bipartite()

Stochastic Block Models

Generate a random graph by sampling from the Poisson or microcanonical stochastic block model. Generate a random graph by sampling from the maximum-entropy "canonical" stochastic block model. Obtain SBM fugacities, given expected degrees and edge counts between groups.

Geometric Models

Generate a graph of k-nearest neighbors (or pairs) from a set of multidimensional points. Generate a geometric network form a set of N-dimensional points. Generate a 2D or 3D triangulation graph from a given point set.

Further Resources on Graph Generation

  • https://github.com/yuanqidu/awesome-graph-generation