DFAの最小化がそうでないのに、なぜNFAの最小化は難しい問題なのですか?


14

同等の状態を見つけてマージすることでDFAを最小化できることは知っていますが、なぜNFAでも同じことができないのですか?証拠が理解しやすい場合を除き、証拠などを探していません。DFAの最小化が難しいのに、なぜNFAの最小化が難しいのかを直感的に理解したいだけです。

回答:


8

DFAには、等価な状態を決定する優れた代数構造があります。ストリングのMyhill-Nerodeの等価性は、DFAの最小化に関連しています。

NFAの場合、固有の最小限のNFAは一般に存在しないため、状況は複雑です。

以下は、有限言語です。2つのオートマトンは両方とも状態が最小です。この例は、Arnold、Dicky、Nivatによる論文「最小の非決定的オートマトンに関するノート」からのものです。{abacbcbacacb}

同じ言語の2つのNFA

この答えは、2つの問題が「技術的に」異なるという事実を表現しようとしています。問題の計算の複雑さの違いの詳細については、vznによる回答を参照してください。


8
最短経路問題と最小スパニングツリー問題のどちらにも(常に)独自の解決策はありませんが、それらは依然として効率的に解決可能です。
ラファエル

5

直感的なテイクについて尋ねました。

DFAでは、特定の入力プレフィックスは1つの状態にしか到達できません。その後、どの接尾語でも区別できない状態のペアをマージできます。接尾辞によって区別できる状態はマージできません。これは、他のすべての最小オートマトンと同型の最小オートマトンにつながります。

対照的に、オートマトンが非決定的である場合、接尾辞が区別できない単一の状態をマージするだけでは十分ではありません。特定の入力に対して、NFAのすべての遷移シーケンスが受け入れ状態になる必要はありません。そのようなシーケンスが1つだけ存在する場合、NFAが受け入れるには十分です。2つの状態をマージできるかどうかを正しく判断するには、DFAよりも多くの情報を追跡する必要がある場合があります。たとえば、言語に単語があり、接頭辞pがある状態Pになっているが、Pから接尾辞qの受け入れ状態がないとします。Pと区別できない別の状態Qがある可能性がありますpqpPPqQP以外の接尾辞。この場合、PQをマージする必要があります。そのため、そのような「幻想」の違いを考慮するために、状態が区別できない場合の概念を拡張する必要があります。これは本質的に州のすべての可能な部分集合を追跡するのを必要としますqPQ

状態の追跡から状態の2 n個のサブセットに進むと、最悪の場合にNFA最小化の処理が難しくなります。n2n


1

Onsログn

DFAの最小NFAを計算するこのTCS.seの質問も参照してください。


ハードの定義方法はわかりませんが、それを解決する効率的なアルゴリズムがないことを意味しました。
ダンカン

@duncan OK、それからあなたは確かに技術的な意味でこの言葉を使った。そのため、技術的な硬さについていくつかの明確化があります。CSでは、「効率的」とは、PTimeと同じものとして採用/定義された技術用語でもあります。あなたの質問は実際にTCSの重要な未解決の質問に関連しています。NFAの最小化は(すべてのPSpaceの完全な問題と共に)実際に「難しい」、つまりPではなく、まだ証明されていません。
vzn
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.