xgi.generators.uniform
Generate random uniform hypergraphs.
Functions
- xgi.generators.uniform.uniform_hypergraph_configuration_model(k, m, seed=None)[source]
A function to generate an m-uniform configuration model
- Parameters:
k (dictionary) – This is a dictionary where the keys are node ids and the values are node degrees.
m (int) – specifies the hyperedge size
seed (integer or None (default)) – The seed for the random number generator
- Returns:
The generated hypergraph
- Return type:
Hypergraph object
- Warns:
warnings.warn – If the sums of the degrees are not divisible by m, the algorithm still runs, but raises a warning and adds an additional connection to random nodes to satisfy this condition.
Notes
This algorithm normally creates multi-edges and loopy hyperedges. We remove the loopy hyperedges.
References
“The effect of heterogeneity on hypergraph contagion models” by Nicholas W. Landry and Juan G. Restrepo https://doi.org/10.1063/5.0020034
Example
>>> import xgi >>> import random >>> n = 1000 >>> m = 3 >>> k = {1: 1, 2: 2, 3: 3, 4: 3} >>> H = xgi.uniform_hypergraph_configuration_model(k, m)
- xgi.generators.uniform.uniform_erdos_renyi_hypergraph(n, m, p, p_type='degree', seed=None)[source]
Generate an m-uniform Erdős–Rényi hypergraph
This creates a hypergraph with n nodes where hyperedges of size m are created at random to obtain a mean degree of k.
- Parameters:
n (int > 0) – Number of nodes
m (int > 0) – Hyperedge size
p (float or int > 0) – Mean expected degree if p_type=”degree” and probability of an m-hyperedge if p_type=”prob”
p_type (str) – “degree” or “prob”, by default “degree”
seed (integer or None (default)) – The seed for the random number generator
- Returns:
The Erdos Renyi hypergraph
- Return type:
See also
random_hypergraph
- xgi.generators.uniform.uniform_HSBM(n, m, p, sizes, seed=None)[source]
Create a uniform hypergraph stochastic block model (HSBM).
- Parameters:
n (int) – The number of nodes
m (int) – The hyperedge size
p (m-dimensional numpy array) – tensor of probabilities between communities
sizes (list or 1D numpy array) – The sizes of the community blocks in order
seed (integer or None (default)) – The seed for the random number generator
- Returns:
The constructed SBM hypergraph
- Return type:
- Raises:
XGIError –
If the length of sizes and p do not match. - If p is not a tensor with every dimension equal - If p is not m-dimensional - If the entries of p are not in the range [0, 1] - If the sum of the vector of sizes does not equal the number of nodes.
Exception – If there is an integer overflow error
See also
References
Nicholas W. Landry and Juan G. Restrepo. “Polarization in hypergraphs with community structure.” Preprint, 2023. https://doi.org/10.48550/arXiv.2302.13967
- xgi.generators.uniform.uniform_HPPM(n, m, k, epsilon, rho=0.5, seed=None)[source]
Construct the m-uniform hypergraph planted partition model (m-HPPM)
- Parameters:
n (int > 0) – Number of nodes
m (int > 0) – Hyperedge size
k (float > 0) – Mean degree
epsilon (float > 0) – Imbalance parameter
rho (float between 0 and 1, optional) – The fraction of nodes in community 1, default 0.5
seed (integer or None (default)) – The seed for the random number generator
- Returns:
The constructed m-HPPM hypergraph.
- Return type:
- Raises:
XGIError –
If rho is not between 0 and 1 - If the mean degree is negative. - If epsilon is not between 0 and 1
See also
References
Nicholas W. Landry and Juan G. Restrepo. “Polarization in hypergraphs with community structure.” Preprint, 2023. https://doi.org/10.48550/arXiv.2302.13967