ホームページ  >  記事  >  バックエンド開発  >  どのサイクルにも属さない有向グラフ内のノードを出力する

どのサイクルにも属さない有向グラフ内のノードを出力する

王林
王林転載
2023-09-13 22:25:021067ブラウズ

どのサイクルにも属さない有向グラフ内のノードを出力する

コーディネーション図では、どのサイクルにも属していないハブを特定することが、さまざまなアプリケーションにとって重要です。これらの中心は非巡回サブグラフの基礎を形成し、一般的なグラフ構造を理解する上で重要な役割を果たします。 Profundity First Hunt (DFS) や密接に関連する部分の Tarjan の計算など、効率的なグラフ交差計算を使用することで、ループに参加しないハブを簡単に決定して出力できます。これらの方法は、循環的なコラボレーションを行わずにセンターの特性評価を確実に行い、図の非循環部分に関する重要な知識を提供し、図に関連するさまざまな批判的思考状況をサポートします。

使用説明書

  • ループ検出による深さ優先検索 (DFS)

  • Tarjan の強接続コンポーネント アルゴリズム

ループ検出を備えた深さ優先検索 (DFS)

このアプローチでは、深さ優先追跡 (DFS) を使用して調整チャートをナビゲートし、途中のサイクルを区別します。継続的な DFS 方式でセンターを追跡できるように、訪問したセンターにマークを付けてリストを保持します。トレーリング エッジに到達した場合 (持続的な DFS 方式でハブのエッジに到達した場合)、サイクルを区別します。 DFS の終了時には、進行中の DFS 方法の中心がサイクルにとって重要になります。永続的な DFS を使用しないハブはループの一部ではないため、出力できます。

###アルゴリズム###

    チャート上の未訪問の各センターからディープ ファースト ハント (DFS) を実行します。
  • DFS 中に、訪問したハブはマークされ、進行中の DFS パス リストに追加されます。
  • トレーリング エッジ (現在の DFS モードのハブへのエッジ) に遭遇した場合、サイクルを区別し、現在の DFS モードのすべてのハブをサイクルの一部としてマークします。
  • ハブの DFS が完了したら、進行中の DFS パスのリストからそのハブを削除します。
  • すべてのハブの DFS が完了すると、どのサイクルにも属さないハブは変更されず、印刷できるようになります。
  • ###例### リーリー ###出力### リーリー
  • Tarjan の強接続コンポーネント アルゴリズム

Tarjan の計算は、調整図のすべての主要な関連部分を追跡するために使用される強力な計算です。明示的に関連するパーツは、サブセット内の任意の 2 つのハブ間に調整が存在するハブのサブセットです。密接に関連したコンポーネントの一部ではないハブは、どのサイクルの一部でもありません。主要な関連パーツを見つけることで、どのサイクルにも属していないハブを特定し、それらを出力できます\

###アルゴリズム###

Tarjan の計算をブートストラップ図に適用して、すべての重要な関連部分を追跡します。

すべての重要な関連パーツをトレースした後、密接に関連するパーツにとって重要な中心を区別します。

  • 明示的に関連付けられたパーツに属さないハブは、どのループにも属さないため、印刷できます。

  • どちらの方法でも、調整図のどのサイクルにも属さない中心を区別して出力します。 DFS メソッドはよりシンプルで直接的な実装を提供します。一方、Tarjan の計算はより複雑ですが、焦点を当てた相関部分に関する追加データを提供し、特定のチャート関連タスクに役立ちます。アプローチの決定は、特定のニーズと主要な差し迫った問題の状況によって異なります。

  • ###例### リーリー ###出力### リーリー ###結論は###

    これら 2 つの方法は、調整図内のどのサイクルにも属さない中心を特定する問題を解決します。 DFS メソッドは実装が簡単で、追加の情報構造を多く必要としません。一方、Tarjan の計算では、主要な相関コンポーネントに関する追加データが得られ、特定の状況では役立つ可能性があります。

  • 2 つの方法のどちらを選択するかは、問題の特定の前提条件と、期間に依存しない微分センターを通過する追加データの要件によって異なります。一般に、どのサイクルにも属さないハブを見つけることだけが目的の場合は、その単純さのため DFS アプローチが好まれる可能性があります。それにもかかわらず、主要な関連部分のさらなる調査が必要な場合、Tarjan の計算は重要なツールになる可能性があります。どちらの方法も熟練した手配を提供し、調整表の特性や試験の望ましい結果に適応させることができます。

以上がどのサイクルにも属さない有向グラフ内のノードを出力するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はtutorialspoint.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。