I have a graph defined as a dictionary:
{0: [19, 8, 11], 1: [18, 19, 8, 14, 15], 2: [16, 18, 4, 10, 11, 13], 3: [6,
13, 15], 4: [2, 19, 13], 5: [11], 6: [16, 3, 9], 7: [18, 9, 12, 14], 8: [0,
16, 1, 19, 12], 9: [16, 17, 19, 6, 7, 11], 10: [17, 2, 18], 11: [0, 2, 5,
9], 12: [7, 8, 14], 13: [2, 18, 3, 4], 14: [1, 7, 12], 15: [1, 3, 19], 16:
[2, 18, 19, 6, 8, 9], 17: [9, 10], 18: [16, 1, 2, 7, 10, 13], 19: [0, 16,
1, 4, 8, 9, 15]}
Pardon the large input here. The thing to note is that the lists following
each key are not sorted. When I ask Sage to do a breadth first search of
this graph starting from vertex 0
(syntax: list(g.breadth_first_search(0))), I get:
[0, 19, 8, 11, 16, 1, 4, 9, 15, 12, 2, 5, 18, 6, 14, 13, 17, 7, 3, 10]
I.e. Sage is performing the BFS in the order in which the vertices appear
in the lists, rather than in numerical order. I want the BFS to be done in
numerical order on neighbors. I tried this:
for key in dict:
dict[key] = sorted(dict[key])
and then redefining the graph with the new, sorted-values dictionary but I
get the same BFS results. How can I convince Sage to perform the BFS by
going through neighbors in numerical order?
This is sort of important because I have 60 papers to grade with four graph
searches each and if Sage can't automate the process then this will be a
major PITA. Thanks, rt
--
You received this message because you are subscribed to the Google Groups
"sage-edu" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/sage-edu.
For more options, visit https://groups.google.com/d/optout.