強連結成分(強連結成分)

強連結成分(強連結成分)

時間:2019年8月1日

問題を解決するためにTarjan強連結成分アルゴリズムを使用してください。強連結成分のグラフに定義されています。私たちは、それぞれの強連結成分は、異なる色を染めます。これは、圧縮ポイントDAGの後に得ることができます。

最初のグラフトラバーサルのエッジに導入された4つがあります。

エッジ4種類の

  1. ツリーの側:DFSツリーの図エッジ側にツリートラバーサルを有するが呼び出されます。

    edge_1.png

  2. フォワードエッジ:子に接続されているサブツリーのルートからツリー内のノードのいくつかのエッジ。このような側面は、前に呼ばれる側に。

    edge_2.png

  3. 復帰エッジ:祖先側縁反転と呼ぶも、現在の点(いくつかの文献では、「奥側」と称します)

    edge_3.png

  4. フォーク側縁:サブツリーをフォークのサブツリー側縁の反対側に接続されています。第一のサブツリーの接続(矢印先端)がよりトラバースすることに留意されたいです。

    edge_4.png

後者の二つの点DFS順序も小さく、両側に、DFS順序はより大きい4の最初の2つの点を接続します。ツリーの第一の側面に加えて、さらにポイントに残りの3辺が再帰DFS機能なしでアクセスされています。

DFNおよび低

Tarjanアルゴリズムは、記憶が強く、現在の点の構成要素を接​​続することができる、スタックを維持します。ノードが同定されており、まだスタック上には表示されません訪問されていません。以下はスタックノード「スタック・ポイント」は、としてノードを積み重ねないと述べ、「非スタックポイント。」

各ノードのための2つの値を保存します\(DFN \)\(低\) それらは次の通り定義されています。

  1. \([U] DFN \)ノードを表し\(U \) DFS配列。この値は、最初の訪問です\(uは\)の時間を確認されていました。

  2. \(\ [U]ロー)からノードを表す\(U \)サブツリーのみ有向エッジによっては到達可能スタック・ポイント\(DFN \)ツリーで最小、および子ノード(\ DFN \)最小(実際には、\(DFN [U] \) )、最小値(一口の設定フレーズビット、次いでqwq再びそれを読みます)。

    しかし!スタックは、むしろ非小数点スタックよりも、ポイントに到達しなければならないことに注意してください。

おすすめ

転載: www.cnblogs.com/longlongzhu123/p/11285650.html