特殊な場合のDFA交差アルゴリズム


9

特殊なケースでのDFA交差の効率的なアルゴリズムに興味があります。つまり、交差するDFAが特定の構造に従うか、制限されたアルファベットで動作する場合です。そのような場合のアルゴリズムを見つけることができるソースはありますか?

質問が広すぎないようにするために、次の構造が特に重要です。交差するすべてのDFAは2進アルファベット(0 | 1)で動作し、do n't care記号も使用できます。さらに、遷移が2つしかない最大でK個の特別な状態を除いて、すべての状態には1つの遷移しかありません(これらの遷移は常に0または1ですが、気にしないでください)。Kは整数で、実用上は10未満です。また、単一の受け入れ状態があります。さらに、交差は常に「ストリップ」の形式のDFAであることがわかっています。つまり、次の画像のように分岐はありません。

ここに画像の説明を入力してください

編集:おそらく、入力DFAの制約の説明はあまり明確ではありません。この段落でそれを改善しようと思います。入力としてT DFAがあります。これらのDFAはそれぞれ、バイナリアルファベットでのみ動作します。それらのそれぞれには、最大でN個の状態があります。DFAごとに、それぞれの状態は次のいずれかです。

1)受け入れ状態(1つだけであり、それから他の状態への遷移はありません)

2)同じターゲット状態への2つの遷移(0と1)がある状態(状態の大部分はこの種類です)

3)異なるターゲット状態への2つの遷移(0と1)がある状態(最大でこの種類のK

受け入れ状態は1つしかなく、各入力DFAにはタイプ(3)の状態が最大でK個あることが保証されています。また、すべての入力DFAの交差DFAが「ストリップ」(上記のとおり)であり、サイズがN未満であることも保証されています。

EDIT2: DWのコメントで要求されているいくつかの追加の制約:

  • 入力DFAはDAGです。
  • コメントのDW定義に従って、入力DFAは「平準化」されます。つまり、すべての遷移が整数uから整数vに移行するように、すべての状態に異なる整数を割り当てることができます(u + 1 = vなど)
  • 各入力DFAの受け入れ状態の数はKを超えません。

何か案は?ありがとう。


どのように正確に「ドントケア」をモデル化しますか?ある意味で、それはオートマトンを非決定的にするようです。
Shaull

@Shaullオートマトンを非決定的にする理由。これは、同じ状態から別の遷移があり、明示的に除外されている場合にのみ発生します。
バブー

1
なにa DFA in form of "strip", i.e., no branches?あなたの場合、標準のアルゴリズムよりもうまくいくと信じる理由がありますか?
バブー2015年

1
こんにちは。実際の交差点を計算することは、多くのことを単純化するので素晴らしいでしょうが、空を決定することも同様に役立ちます。
ale64bit 2015年

1
交差グラフに関する新しい論文に出くわしただけなのですが、この理論のいくつかは関連がありますか?Theoretical Computer Science Chatのコメントに記載されているアプリケーションを拡張できますか?そして、そこでさらに議論を続けるように他の人を招待してください。
vzn 2015年

回答:


9

[2]

NC3


[1]{0,1}uvuv

  1. 各DFAの1つの最終状態のLコンプリート、
  2. 各DFAの2つの最終状態のNL完了、および
  3. 各DFAの3つ以上の最終状態のNP完了。

KK=2

したがって、いいえ、あなたの問題に対して効率的なアルゴリズムがあるとは思いません。

[3]


x2x3x5

削減ガジェット

オートマトンはツリー(したがってDAG)であり、平準化され、3つの最終状態を持つことに注意してください。実際、DAGに満足すれば、3つの最終状態を1つの状態にマージできます。さらに、2つの状態のみが2つの(明確な)出力遷移を持ちます。

  1. マイケル・ブロンディン。Complexitéraffinéeduproblèmed'intersection d'automates、M.Sc. 論文、モントリオール大学、2012年。
  2. マイケル・ブロンディン、アンドレアス・クレブス、ピエール・マッケンジー。最終状態がほとんどない、有限オートマトンの交差の複雑さ、計算の複雑さ(CC)、2014年。
  3. マイケル・ウェハー。交差の非空の硬さの結果。ICALP、2014年。

2
どうもありがとう!私はあなたの答えを受け入れます。問題はいくつかの実用的なテストに由来し、多くのステップの後にすべてが減少し、この特定の特性を持つ多くのDFAのソリューションを交差させました。それにもかかわらず、最終的には単純なDFAを取得しますが、中間のDFA(順次交差している間)が急激に指数関数的な状態に成長しているため、プロセスは終了しませんでした。したがって、中間の「素朴な」ステップを経由せずに答えを取得する方法に関する質問。
ale64bit 2015年

1
どうもありがとう(そして不明瞭で申し訳ありませんが、私はこの分野の初心者以下です)。今では得られないものがあります。「ツリーの形をした」とは、「ルートから他のすべてのノードへの一意のパス」を意味すると述べました。しかし、たとえば、編集で投稿した画像では、それはツリーではありません(0/1遷移を1つのラベルとして数えない限り)?
ale64bit 2015年

1
あなたは正しいですが、私の理解では、「気にしない」移行を許可することでした。そうではありませんか?
Michael Blondin、2015年

2
こんにちはマイケル。素敵な答えをありがとう。すべてが元気であることを願っています。:)
Michael Wehar、2015年

2
@MichaelWehar kとcの両方を修正した場合、問題を「迅速に」解決できると述べました。ただし、時間の複雑さについては言及せず、空間の複雑さについてのみ言及します。その文脈で正確に「迅速に」とはどういう意味ですか?
ale64bit 2015年
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.