2

複数のサイクルを含む有向非巡回グラフがあり、ダイグラフに存在する各サイクルを検出(および一覧表示)する方法が必要です。

グラフはここで見ることができます:http://img412.imageshack.us/img412/3327/schematic.gif

これは、Pythonスクリプトをデバッグするためにまとめたダミーグラフです。サイクルが含まれています:

[n13, n14], [n6, n8, n15, n16, n7], [n6, n8, n9, n7]

アルゴリズムは、最小のものだけでなく、最初に遭遇したものだけでなく、有向グラフのすべてのサイクルを検出する必要があります。

4

3 に答える 3

2

有向グラフをどのように表現するかを実際に指定していませんが、Neopythonic:有向グラフでのサイクルの検出を確認できます。

于 2010-07-28T10:34:45.893 に答える
1

私の知る限り、python-graph は、考えられるすべてのサイクルではなく、1 つのサイクルのみを検出します。見る:

http://groups.google.com/group/python-graph/browse_thread/thread/9170926f1bdd097b

この他の記事は、この質問で提示された問題を解決するようです:

http://www.bitformation.com/art/python_toposort.html

1972 年に RE Tarjan によって考案されたアルゴリズムを使用しています。

于 2011-07-22T16:31:01.723 に答える
0

このライブラリを試してみてください。サイクル検出アルゴリズムを備えています。

于 2011-06-19T08:38:52.933 に答える