私は有向グラフを持っており、次のプログラムはランダムな開始点からランダムな終了点までグラフをトラバースします。必要なのは、グラフをx回ランダムにトラバースし、前のノードから毎回ランダムにノードを選択することです。ノードですが、これを達成する方法がわかりません。ノードが複数回アクセスされても問題ありません。
def find_path(graph, start, end, path=[]):
path = path + [start]
print path
if start == end:
return path
for node in graph[start]:
if node not in path:
newpath = find_path(graph, node, end, path)
if newpath: return newpath
return None
print path
# main function
def main():
start = str(random.randint(1,10))
finish = str(random.randint(1,10))
print start
print finish
graph = {'1': ['9'],
'2': ['10'],
'3': ['6', '8'],
'4': ['1', '6'],
'5': ['1'],
'6': ['7'],
'7': ['1', '3'],
'8': ['2'],
'9': ['4'],
'10': ['3', '5']}
find_path(graph, start, finish)
if __name__ == '__main__':
main()