有向 networkx グラフを介してランダム トラバーサルをシミュレートしようとしています。擬似コードは次のとおりです
Create graph G with nodes holding the value true or false.
// true -> visited, false -> not visited
pick random node N from G
save N.successors as templist
while true
nooptions = false
pick random node N from templist
while N from templist has been visited
remove N from templist
pick random node N from templist
if templist is empty
nooptions = true
break
if nooptions = true
break
save N.successors as templist
一時的なリストを作成し、訪問済みとしてマークされている場合は要素を削除する以外に、パスを移動済みとしてマークするより効率的な方法はありますか?
編集
このアルゴリズムの目的は、グラフ内のノードをランダムに選択することです。そのノードの後継者/子をランダムに選択します。未訪問の場合は、そこに移動して訪問済みとしてマークします。後続者/子がなくなるか、未訪問の後続者/子がなくなるまで繰り返します。