タグ付けされた質問 「directed-acyclic-graph」

これは、一連の点または頂点と一連のコネクタまたはエッジで構成される数学的構造です。エッジは頂点を接続し、それらの頂点は方向付けられます。また、サイクル、つまり頂点を頂点に接続する有向エッジは許可されません。

3
すべての頂点のDAG内の到達可能な頂点の数
ましょう出次数任意頂点となるように、非環式有向グラフであるO (ログ| V |)。Gのすべての頂点について、すべての頂点からdfsを実行するだけで、到達可能な頂点の数をカウントできます。これにはO (| V | | E |)時間かかります。この問題を解決するより良い方法はありますか?G (V、E)G(V,E)G(V,E)O (ログ| V| )O(log⁡|V|)O(\log{|V|})GGGO (| V| | E| )O(|V||E|)O(|V||E|)

1
グラフは、最大で1歩の方向があることをいつ認めますか?
次の問題を検討してください。 入力:単純な(無向)グラフ。G = (V、E)G=(V,E)G=(V,E) 質問:の方向性があります。の特性を満足させるには、すべてのためにというS 、T ∈ V(監督)多くても1つであり、S - トンの散歩?GGGs,t∈Vs,t∈Vs,t \in Vsssttt これは同等に次のように表現できます。 入力:単純な(無向)グラフ。G=(V,E)G=(V,E)G=(V,E) 質問:の非環式向きあり性を満たすには、すべてのためにそのS 、T ∈ V(有向)多くても1つである、S - Tのパス?GGGs,t∈Vs,t∈Vs,t \in Vsssttt 答えが「はい」であるグラフのクラスは何ですか?この問題は多項式時間で解決できますか? いくつかの観察: グラフが2部構成の場合、答えは「はい」です。 グラフに三角形がある場合、答えは「いいえ」です。 最初の観察は、一方のパーティションから他方のパーティションにエッジを向けることによって行われます。2番目の観察は簡単に確認できます。これにより、2つの誤った推測が行われました。 答えが「はい」であるのは、グラフが2部グラフである場合のみです。(反例:5サイクル) グラフに三角形が含まれていない場合にのみ、答えは「はい」です(反例:5サイクルのエッジのデカルト積)


1
一般的な重み付き無向グラフから最適な並列化を見つける
重なり合う画像の「ブレンド」セットの問題を解決しています。これらのセットは、次のような無向の重み付きグラフで表すことができます。 各ノードは画像を表します。重なっている画像はエッジで接続されています。エッジの重みはオーバーラップエリアのサイズを表します(大きいオーバーラップをブレンドすると、全体的な品質が向上します)。 アルゴリズムは通常、エッジを削除します。順次または並行して実行できます。ただし、ブレンドが発生すると、ノードがマージされ、グラフ構造が変化します。したがって、並列化は、それら自体が重複していない接続されたコンポーネントでのみ可能です! このような重複しないコンポーネントは、DBとFEGです。これらのコンポーネントでブレンドアルゴリズムを安全に並行して実行できます。結果は次のグラフになります(マージされたノードは緑色で表示されます)。 これで、2つの接続されたコンポーネントがオーバーラップしている(コンポーネント間に直接エッジがある)ため、これ以上の並列化は不可能です。 アルゴリズムの並列バージョンは次のようになります。 1. Find connected components (no two are connected directly) and create task for each. 2. Run the tasks in parallel. 3. Update graph. 4. Until single node remains, continue with 1. トリッキーな部分は最初のステップです:接続されたコンポーネントの最良のセットを見つける方法? 1つの方法は、特定の反復でコンポーネントの最大数を単純に見つける貪欲なアルゴリズムです。貪欲なアルゴリズムは、最初は並列化を最大化しますが、後で多くの反復を犠牲にします。 最適なソリューションは、並列化を最大化し、同時に反復回数を最小化するために、各反復で適切な量の接続コンポーネントをもたらすことです(最適化には2つの変数があります)。 私は、バックトラッキング以外の最適化アルゴリズム、つまり可能なすべての進化の空間を検索し、最大の並列化を持つものを選択することは考えられません。 エッジの重みは無視できますが、大きいバージョンのブレンドには時間がかかるため、アルゴリズムの改良版ではそれが考慮される場合があります(たとえば、サイズ200のエリアのブレンドには、サイズ100の2つのエリアの約2倍の時間がかかります)。重みを考慮に入れると、コンポーネントを選択する際の戦略が向上する可能性があります(アルゴリズムの全体的な実行時間の高速化)。 最大の並列化と最小の反復回数が得られるようにグラフの一部を選択する最良の戦略を見つける、そのような最適化アルゴリズムの手がかりはありますか?

3
nペアのノード間のルートの存在
ノードの有向非循環グラフが与えられた場合、ノードの次のnペア(1 → n + 1 )、… 、(n → n + n )の間にパスがあるかどうかをどのように判断できますか?そこに簡単なアルゴリズムであり、O (nが⋅ (N + M ))各ノードからの検索実行することによって(mはエッジの数である)1 ... N、それはより良好に行うことができますか?2 n2n2n(1 → n + 1 )、… 、(n → n + n )(1→n+1),…,(n→n+n)(1 \rightarrow n+1), \ldots, (n \rightarrow n+n)O (N ⋅ (N + M ))O(n⋅(n+m))O(n \cdot (n + m))1 … n1…n1 \ldots …

2
トポロジーソーティングのテスト/識別
個の頂点Vの同じセット有向非グラフセットが与えられます。頂点のセット(v_1、v_2、...、v_m)の順列も与えられます。間のグラフを特定することができる最高のアルゴリズムは何であるG_1、G_2は、...、G_Nその持っている(V_1、V_2、...、V_M)トポロジカルソートなどを?誰かが(v_1、v_2、...、v_m)がV上のDAG Gのトポロジカルな種類であるかどうかを準線形時間でテストできますか? G 1、G 2、。。。、G nは m個のV (V 1、V 2、。。。、のV M)G 1、G 2、。。。、G N(V 1、V 2、。。。、のV M)(V 1、V 2んんnG1、G2、。。。、GんG1、G2、。。。、GんG_1, G_2, ..., G_nメートルメートルmVVV(v1、v2、。。。、vメートル)(v1、v2、。。。、vメートル)(v_1,v_2,...,v_m)G1、G2、。。。、GんG1、G2、。。。、GんG_1, G_2, ..., G_n(v1、v2、。。。、vメートル)(v1、v2、。。。、vメートル)(v_1,v_2,...,v_m)G V(v1、v2、。。。、vメートル)(v1、v2、。。。、vメートル)(v_1,v_2,...,v_m)GGGVVV
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.