2017-02-10 1 views
1

Le calcul le plus court chemin semble ne pas travailler avec moi:A défaut de lire la liste de bord dans NetworkX

import networkx as nx 
G = nx.read_edgelist(filename, delimiter=",", create_using=nx.DiGraph(), nodetype=int) 
print G 
print nx.shortest_path(G, 1, 5) 

Le fichier que je lis est:

1,2 
2,3 
3,4 
4,5 

Il n'y a pas de sortie.

+0

pouvez-vous obtenir à lire dans le fichier et l'imprimer pour vous juste pour confirmer qu'il n'y a pas une erreur? L'explication la plus probable est qu'il ne lit pas dans le fichier que vous pensez qu'il est. – Joel

Répondre

0

Votre code fonctionne pour moi.

import networkx as nx 
import matplotlib.pyplot as plt 

filename = 'test.txt' 
G = nx.read_edgelist(filename, delimiter=",", create_using=nx.DiGraph(), nodetype=int) 

nx.draw_networkx(G, with_labels=True) 
plt.axis('off') 
plt.show() 

print(type(G), G) 
# (<class 'networkx.classes.digraph.DiGraph'>, <networkx.classes.digraph.DiGraph object at 0x10e29c150>) 

print(nx.shortest_path(G, 1, 5)) 
#[1, 2, 3, 4, 5] 

qui produit,

enter image description here

+0

Je reçois [1] le chemin le plus court. Je ne sais pas pourquoi – Bob