2つのNFAが同じ言語を受け入れるかどうかをテストする方法はありますか?


10

または、少なくとも1つのNFAが受け入れる文字列のセットを生成して、他のNFAにフィードできるようにします。NFAのすべてのパスを検索すると、うまくいきますか?それには長い時間がかかりますが。


いいえ(少なくとも私たちの知る限りでは)。NFAの同等性はPSPACE完全です。このディスカッションをご覧ください。
Shaull、2013年

@Shaull:OPは効率的な方法ではありませんでした。
frafl 2013年

@frafl:その通りです。「時間がかかる」と私はOPが効率的なソリューションを望んでいると想定しました。それでも、私のコメントは、それがPSPACEにあることを言及しているため、決定可能です。
Shaull、2013年

回答:


10

Shaullが指摘したように、決定の問題はPSPACE完全です。

ただし、実際には、NFAの同等性を合理的に迅速に決定できることがよくあります。MayrとClemente(実験的証拠に基づく)は、平均ケースの複雑さは二次的にスケーリングすると主張しています。彼らの技術は、痕跡包含の局所近似を介して、基礎となるラベル付き遷移システムの剪定に依存しています。

SATが最悪のケースの分析でNP完全であるように、実際のインスタンスでは驚くほど扱いやすいことが判明することが多いので、NFAの同等性は多くの実際のインスタンスで効率的に決定できると思われます。

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