ラベル付きDAGの辞書編集的に最小限のトポロジカルソート


13

非環式有向グラフ我々が入力として与えられている問題考える、標識機能からいくつかのセットに全順序と我々が求められ(例えば、整数)、及び辞書編集的に最小のトポロジカルソートを計算します。より正確には、トポロジカルソートGでの列挙であるVとして\ mathbfは、{V} = V_1、\ ldots、v_n、その結果、全てのためにI \ NEQ Jからのパスがあるときはいつでも、V_Iv_jではλ V L < LG=(V,E)λVL<LλGλV v = v 1v n i j v i v j GGVv=v1,,vnijvivjG、それからi <jでなければなりませんi<j。このようなトポロジカルソートのラベルは、\ mathbf {l} = \ lambda(v_1)、\ ldots、\ lambda(v_n)として取得されるSの要素のシーケンスです。そのようなシーケンス(すべての長さ| V |)の辞書式順序は、l_i <_L l_iのような位置iがある場合、\ mathbf {l} <_ {\ text {LEX}} \ mathbf {l '}として定義されます。'およびl_j = l'_jすべてのj <iに対してSの各ラベルをVの複数の頂点に割り当てることができることに注意してください(そうでない場合、問題は簡単です)。Sl=λ(v1),,λ(vn)|V|l<LEXlili<Llilj=ljj<iSV

この問題は、計算バリアント(「辞書編集的に最小限のトポロジカルソートを計算する」)または決定バリアント(「この入力語は最小限のトポロジカルソートですか?」)で述べることができます。私の質問は、この問題の複雑さは何ですか?それはPTIME(または計算バリアントのFP)ですか、それともNPハードですか?一般的な問題がNPハードである場合、可能なラベルのセットSが事前に固定されている(つまり、可能なラベルの数が一定しかない)バージョンについても興味があります。

備考:

ここに、問題の動機付けをするための小さな実例があります。DAGはプロジェクトのタスク(それらの間に依存関係がある)を表すものとして見ることができ、ラベルは各タスクにかかる日数を表す整数です。プロジェクトを完了するには、タスクに選択した順序に関係なく、同じ合計時間がかかります。しかし、私は上司に感銘を与えたいと思っています。これを行うには、できるだけ多くのタスクを可能な限り速く終了します(より難しいタスクが残っているため、最後に非常に遅くなることを意味する場合でも、貪欲な方法で)。辞書的に最小限の順序を選択すると、以下の基準を最適化:私は順序を選びたいは他のオーダーが存在しないようにとの日数場所後のo n n o o n o m < n o ooonn日は私がオーダーでより多くの作業が終了します注文とよりを(すなわち、私の上司のルックスは、一度場合、私はとのより良い印象を与える)が、すべてのために私は順番に劣らずの作業を終えました注文と比べて。oonom<noo

問題についての洞察を与えるために:以前の 回答から、次の関連する問題が難しいことをすでに知ってます:「次のシーケンスを達成するトポロジカルなソートはありますか?」ただし、この辞書式順序に対して最小限のシーケンスが必要なという事実は、それを達成する可能性のあるトポロジーの順序を大きく制約しているようです(特に、これらの他の回答の減少はもはや機能していないようです)。直観的には、選択の余地がある状況ははるかに少ないです。

注セットカバーの面で問題の興味深いrephrasingsがあるように思われること(二部ですのDAGに問題を制限する場合、すなわち、高さ2を持っている):セットのセットが指定されると、注文にそれらを列挙シーケンスを辞書式に最小化する、、、、。この問題は、無向グラフでも言い換えることができます(カバーされていないラベルの辞書式順序を最小化する順序に従って、グラフの接続領域を徐々に拡張します)。ただし、シーケンスに| S 1 | | S 2S 1 | | S 3S 1S 2| | S NS 1S のn - 1|S1,,Sn|S1||S2S1||S3(S1S2)||Sn(S1Sn1)| 辞書の順序の定義によって常に貪欲であるためには、(たとえば、シュタイナーツリーの)縮約が機能しません。

あなたのアイデアを事前に感謝します!

回答:


12

同じラベルの複数のコピーが許可されている場合、グラフ内のクリークを削減することで問題はNP困難です。グラフ所与検索するれた -cliqueを、各頂点のソース頂点とDAGを作るの各エッジのためのシンク頂点、及び有向エッジたび頂点であることエッジエンドポイントを形成します。頂点を与えるラベル値との縁ラベル値。k G G x y x G y G 1 G 0GkGGxyxGyG1G0

次に、ある中-cliqueと辞書最初のトポロジカル順序がシーケンスを形成する場合にのみ場合 'sおよびでの次の第。たとえば、6頂点のクリークはシーケンス表されます。これは、この構成によって指定されたラベル付きDAGのトポロジカルな順序付けを開始する可能性がある辞書編集的に最小のシーケンスです(のいずれかを置き換えます)G k 1 kkGk 1 10G(k2) i 1 0 i 1 1101001000100001000000i1 0i111010010001000010000010は、多くの頂点を持つ単純なグラフで見られるよりも多くのエッジを持つシーケンスを提供します)、が目的のクリークを含む場合にのみトポロジカルな順序の始まりになります。G


ああ、クリークについては考えていませんでした。それは素晴らしい削減です、ありがとう!したがって、これは、固定ラベルのアルファベットであっても、計算の問題がNP困難であることを示しています。また、決定問題は「辞書的に最小のこのシーケンスよりも小さいシーケンス」もNP困難であることを意味します(これを使用して、バイナリ検索で最小値を計算できます)。私が見る唯一の追加の質問は、問題が「この正確な入力シーケンスが最小のものであるか」もNP困難であるかどうかです。(それを使用すると、最小語が接頭辞で始まるかどうかを簡単にテストすることはできません。)そのためのアイデアはありますか?{0,1}
a3nm

1
私の疑いは、「この正確なシーケンスが達成可能か」という問題はNP完全であるが、手元にある削減はないということです。「この正確なシーケンスは最小のものです」は、多項式の階層の第2レベルにある必要があります。これは、実存的定量化(達成可能か)と普遍的定量化(すべてが少なくとも同じくらい達成可能なシーケンス)の組み合わせを必要とするためです
デビッドエップスタイン

実際に私はすでにマルツィオ・デ・BIASIによって単項3パーティションからの還元により正確な配列が達成可能であるかどうかをテストする(3つのラベル付きアルファベット上)NP困難であることを知って、ここでスケッチ:cstheory.stackexchange.com/a/19415を。しかし、問題のステータスは「これが最小の達成可能なシーケンスである」とは言えないと思います。特定のシーケンスが達成可能かどうかを尋ねると、通常、辞書式順序で最小になる可能性はほとんどありません。いずれにせよ、あなたの削減が示すことはまだ非常に興味深いです、再びありがとう!:)
a3nm

2

この参考文献(1)によると、辞書順で最初のトポロジカル順序の問題はNLOG完全です。

記事をより詳細に調べて、関心のあるケースを網羅していることを確認してください。特に、その記事のテクニカルレポートバージョン(pdf)に基づいて、頂点の辞書式順序を厳密に再処理します(例:表記法では、 for)、これが結果の適用可能性に影響するかどうかはません。u vλ(u)λ(v)uv

  1. しょうだい、たかよし。「辞書的に最初のトポロジカル順序の問題はNLOG完全です。」情報処理文字33.3(1989):121-124。

4
NLOG-completeは多項式時間のサブセットであり、(問題の最初の段落の「注意」文に従って)頂点のラベルを明確にすることで、多項式時間の貪欲アルゴリズムによって問題を簡単に解決できます。本当の問題は、ラベルが明確でない場合に何が起こるかです。
デビッドエップスタイン

それは公平なポイントです。あなたの答えから、ラベルの繰り返しは問題をユニークなラベルの場合よりも難しくすることが明らかになりました。
mhum
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.