ash_model.measures.s_eccentricity

ash_model.measures.s_eccentricity(h, s, start=None, end=None, edges=True)[source]

Returns the eccentricity of the nodes in the line graph of the hypergraph. If edges is True, the function computes the eccentricity for hyperedges (the nodes of the line graph). If edges is False, it computes the eccentricity for nodes by first converting the hypergraph to its dual.

Parameters:
  • h (ASH) – the ASH instance

  • s (int) – minimum hyperedge overlap size for paths

  • start (int | None) – start time of the interval

  • end (int | None) – end time of the interval

  • edges (bool) – if True, compute for hyperedges; if False, compute for nodes

Returns:

a dictionary mapping node IDs (or edge IDs if edges is True) to their eccentricity values

Return type:

dict

Examples

>>> import numpy as np, networkx as nx
>>> from ash_model.utils.networkx import from_networkx_maximal_cliques_list
>>> Gs = [nx.barabasi_albert_graph(100, 3, seed=i) for i in range(10)]
>>> rng = np.random.default_rng(42)
>>> for G in Gs:
...     for n in G.nodes():
...         G.nodes[n]['color'] = 'red' if rng.integers(0, 2) == 0 else 'blue'
>>> h = from_networkx_maximal_cliques_list(Gs)
>>> head3 = sorted(list(s_eccentricity(h, 1, start=0, end=0).items()))[:3]
>>> head3
[('e1', 4), ('e10', 3), ('e100', 4)]