Am 25.09.18 um 00:51 schrieb Ozgun Altunkaya:
> Hi,
> 
> Thanks for the reply. I've got two more questions:
> 
> edges = g.edge(1, 536)
> for e in edges:
>     print(e)
> 
> returns None because there's no such edge. However, when I run
> 
>     gt.shortest_distance(g, 1, 536)
> 
> it returns 2, but there shouldn't exist a path with length 2 between those
> points, am I wrong about this? What am I missing?

The existence of an edge between two nodes means that they are at a distance
one from one another. The absence of an edge means the distance must be 2 or
larger. A distance of 2 just means they share a neighbor.

> Also, slightly related, I added those points with
> g.add_edge_list(my_edge_list), which is a list of integer couples between 1
> and 18000. Is there a way to run shortest_path just by using those numbers,
> without indexes?
> 
> Like, gt.shortest_path(g, 1, 536)
> 
> The above returns
> 
> Traceback (most recent call last):
>   File "<stdin>", line 1, in <module>
>   File
> "/opt/anaconda3/lib/python3.6/site-packages/graph_tool/topology/__init__.py", 
> line
> 1882, in shortest_path
>     for e in v.in_edges() if g.is_directed() else v.out_edges():
> AttributeError: 'int' object has no attribute 'in_edges'

The function expects vertex descriptors:

    shortest_path(g, g.vertex(1), g.vertex(536))

I'll fix it so that it accept indices for convenience.

Best,
Tiago
_______________________________________________
graph-tool mailing list
graph-tool@skewed.de
https://lists.skewed.de/mailman/listinfo/graph-tool

Reply via email to