Forward- and backward operations on graphs with a lot of fuzzyness.
Install via
- pip:
pip install pygarn - poetry:
poetry add pygarn - or add in your conda environment:
name: sur-your-env-namechannels:
- defaultsdependencies:
- python>=3.8
- pip
- pip:
- pygarnimportnetworkxasnxfrompygarn.baseimportRandomVertexSelectorfrompygarn.growthimportAddCompleteGraphn_vertices_initial=20g_initial=nx.erdos_renyi_graph(n_vertices_initial, 0.3)
op_add_kcomplete=AddCompleteGraph(
size=3,
sources=RandomVertexSelector(min=1, max=3),
targets=RandomVertexSelector(min=1, max=3),
)
g_new=op_add_kcomplete.forward(g_initial)
g_orig=op_add_kcomplete.backward(g_new)
# Should be highly likely:assertnx.is_isomorphic(g_orig, g_initial)importnetworkxasnxfrompygarn.baseimportVertexDegreeSelectorfrompygarn.growthimportAddVertexn_vertices_initial=20g_initial=nx.erdos_renyi_graph(n_vertices_initial, 0.3)
n_edges_initial=len(g_initial.edges)
degrees_initial= [(v, d) forv, ding_initial.degree()]
selector=VertexDegreeSelector()
op_add=AddVertex()
n_rounds=5g_current=g_initial.copy()
for_inrange(n_rounds):
g_current=op_add.forward(g_current)


