Sto provando ad estrarre da un grafico grande il sotto-grafico di tutti i nodi connessi che contengono un nodo specifico.Networkx: estrae il componente connesso che contiene un determinato nodo (grafico diretto)
C'è una soluzione nella libreria Networkx?
[EDIT]
mio grafico è un digramma
[EDIT]
riformulato semplicemente:
voglio la parte del mio grafico che contiene il mio nodo specifico N_i e e tutti i nodi che sono collegati direttamente o indirettamente (passando da altri nodi) utilizzando i bordi in entrata o in uscita.
Esempio:
>>> g = nx.DiGraph()
>>> g.add_path(['A','B','C',])
>>> g.add_path(['X','Y','Z',])
>>> g.edges()
[('A', 'B'), ('B', 'C'), ('Y', 'Z'), ('X', 'Y')]
mio risultato desiderato sarebbe:
>>> g2 = getSubGraph(g, 'B')
>>> g2.nodes()
['A', 'B', 'C']
>>> g2.edges()
[('A', 'B'), ('B', 'C')]
Non è chiaro dalla tua domanda che cosa sottografo che vuoi. Se si desidera un sottografo che contenga il nodo N_i senza nodi isolati, ad es. i vicini di N_i lo soddisfano. Se si desidera il sottografo più grande contenente N_i ma con nessun nodo isolato, la rimozione di tutti i nodi isolati dal grafico potrebbe funzionare (a condizione che N_i non sia il grado 0). Questo grafico non sarà necessariamente connesso. Se vuoi che tutti i nodi siano raggiungibili da N_i considera nx.shortest_path (G, N_i) ... – Aric
Non sei sicuro se stai verificando questo, ma per favore controlla la modifica che ho fatto del tuo titolo. Quello che avevi non era in realtà la domanda che hai finito per chiedere. – Joel