4

私は自分のグラフを隣接リストとして表しています。内部で接続されているが、エッジが外側を向いていないノードのクラスターを見つける方法を知りたいです。私が使用できるよく知られたアルゴリズムはありますか?

たとえば、これは私のグラフです。

1---->2
2---->1
2---->3
3---->1
3---->4
4---->5
5---->4

ここでは、ノード4と5が内部で接続されています。しかし、これから外縁は生まれません。これが私の答えです。同様に、ノード1、2、3はサイクルを形成しますが、外側のエッジがノード3から発生するため、基準に適合しません。したがって、隣接リストでサイクルを見つけることと同じではありません。

オプションの読み取り:(なぜこれが必要なのか)私はランキングページ(検索エンジン)アルゴリズムに取り組んでいます。4や5のようなノードはランクシンクと呼ばれます。

4

1 に答える 1

7

KosarajuTarjan、またはCheriyan-Mehldorn / Gabowアルゴリズムを使用して、強連結成分を検出できます。

これらのコンポーネントを見つけたら、強く接続された各コンポーネントを1つの単一ノードに圧縮します(つまり、コンポーネント全体を1つのノードで表します)。

結果のグラフで、出力エッジのないノードを探します。これらのノードは、関心のあるコンポーネントを表します。

于 2011-09-14T12:54:36.250 に答える