有向グラフが重要なのはなぜですか?


18

有向グラフのMST、強い接続性、ルーティングなどのアルゴリズムについて読んでいます。

また最近では、有向グラフの動的でフォールトトレラントなアルゴリズムの研究が行われています。

しかし、下線グラフネットワークが「指示」される実用的なアプリケーションがあるかどうか疑問に思っていました。ソーシャルネットワーク以外に、鉄道/道路網、インターネットネットワークなど、考えられるすべての問題は、無向グラフのみを処理します。

編集1:これらはリンクが向けられているいくつかのシナリオをモデル化するために使用できることを理解していますが、これらのシナリオが実際にどのくらいの頻度で発生するのか、そして有向グラフのフォールトトレランスの研究はどれほど重要であるのか疑問に思っていました。


6
すべてのコンピューターサイエンスにおける有向グラフの最も有名な2つのクラスは、ツリーとDAG(有向非巡回グラフ)です。ツリーは多くのことに使用されます(家系図、階層など)。DAGは、これらの高度なバージョンを実行できます。DAGは、基本的に、相互に依存関係を持つエンティティのセットがある場合に使用されます。問題に「時間」または「ステップバイステップ」コンポーネントがある場合、指向性はその容赦ない進歩の進行を表します。DAGは、フローチャート図、パッケージ管理ソフトウェア、コンパイラーの中間表現SSAフォームなどにあります。
Iwillnotexist Idonotexist

2
OK、あなたの実際の質問は何ですか?有向グラフが重要な理由、または有向グラフのフォールトトレランスが重要な理由を知りたいですか?これらは2つの完全に別個の質問です。
デヴィッドリチャービー

2
あなたの例は、実装において物理的に「無向」ですが、それでも論理的に動作する有向グラフを頻繁に使用しています。たとえば、列車は双方向に移動しません-スケジュールに従って片道または他の方向に移動します。電車のスケジュールは設定せず、乗客のスケジュールのみを設定するとします。それから、その人は、列車が理論的にどちらの方向にもレール上を移動できるというarbitrary意的な事実にもかかわらず、有向グラフに興味を持っています。
ダレンリンガー

5
chyle:ネットワークは、有向グラフで表されることから最も確実に恩恵を受けることができます。ほとんどの家庭用インターネット接続は非対称です。アップストリームリンクとダウンストリームリンクは、完全に異なるプロパティ(帯域幅、遅延、パケット損失など)を持つことができます
アレクサンダー-モニカの

1
他の人については知りませんが、家系図は有向グラフです。私は母の親ではありません。

回答:


36

ことを想起有向グラフは、エッジは、それらに関連付けられた方向を有するグラフです。

有向グラフを使用すると、ノード間の非対称関係を表すことができますが、無向グラフでは対称関係のみを表すことができます。

実際には、有向グラフを使用して次を表すことができます。

  • 道路網(有向グラフを使用して、道路の方向を表すことができます);
  • Webページを接続するハイパーリンク
  • ソフトウェアモジュールの依存関係
  • 捕食者と捕食者の関係 ;
  • 決定論的有限オートマトン

これらの古典的な例に加えて、秩序ある関係を必要とする他の多くの現実世界のシナリオ(金融取引、スケジューリング、感染症、引用、制御フローなど)を描くことができます[1]


4
素晴らしい答え。OPは、ストリートがある場合、実際には2つのストリート(各方向に1つ、通常は完全に平行)があることを忘れていると思います。それら単純なグラフとして表すことできますが、有向グラフは重要な情報をモデルに追加します。
ecc

私はこれが好きです、そして、この答えはハイパーリンク接続されたウェブページを言うことに注意していることに気付きます-これは戻る機能の使用を除外します。;-)
SDsolar

@eccのコメントを専門用語に入れるには、2つのエッジで接続された2つのノードがあります。各エッジは、反対側に向けられています。多くの場合、確定的な状態図で見られます。道路の場合は、有向(一方向)または無向のいずれであっても、単一のエッジに縮小されます。
–SDsolar

4
@eccも、私がカリフォルニア州出身で、片道があります
-k_g

5

有向グラフは存在します。コメントで述べたように、特に有向非巡回グラフ(DAG)は、コードのコンパイルなどの多くの計算タスクで非常に役立ちます。

また、ほとんどの有向グラフアルゴリズムは、各無向エッジを2つの有向エッジに置き換えるだけで、無向の場合に使用できることに注意してください。無向グラフから有向グラフを作成しようとするこの二重は、ほとんどのアルゴリズムでは実行できません。


3

トポロジカルソート(有向非循環グラフの基本操作)の始まりは、プロジェクト管理、特にPERTメソッドの依存関係のネットワークにあります。 カーンとラッサーはどちらも論文でPERTを引用し、それに基づいて例を挙げています。

30,000アクティビティのPERTネットワークは、1時間未満のマシン時間で注文できます。

オンラインジョブスケジューリングは、このタイプのネットワークでも引き続き行われます。たとえば、ETLシステムは、入力データを提供するジョブが実行された後にのみ実行されるようにジョブをスケジュールします。


2

回答:OPから、質問は実際にはSDG(Signed Directed Graphs)に関連していると推測します。そこで、基本的な有向グラフに対処し、SDGに導く私の答えを次に示します。

有向グラフは、産業システムのフォールトツリー分析で広く利用されています。障害の原因を取り除くには、有向グラフに従って他の可能性を探ってください。

有向グラフは、効果的に除去されたノードの非生産的な再訪を防ぐために利用されます。障害診断では、多くの場合、サービスの復旧までの時間が重要です。複雑な産業用システムでは、時間に基づいた並列ツリーが常に存在し、さまざまな時間制限内で障害が修正されない場合、システム全体がシャットダウンする可能性があります。行ったり来たりすると、全体的な障害が発生する可能性が高くなります。これにより、はるかに時間がかかる復元操作が発生する可能性があります(精製所を再起動するためのタンクやパイプラインの排水など)。

それは木の枝を切り取るようなものです-単一の小枝を見つけようとしているときにトランクに戻る必要はありません。

SDGには、ツリーをたどるときに決定を下すために、確率またはしきい値に基づいてガイダンスを提供するという追加のプロパティがあります。

以下は、SDGベースの診断の利点を説明する、産業システムでの障害検出と診断(224ページ)と呼ばれる、このテーマに関する優れた本へのリンクです。

https://books.google.com/books?id=KFLlBwAAQBAJ&pg=PA224

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.