最小正規表現を見つけることはNP完全問題ですか?


42

次の問題を考えています:特定の文字列セット(たとえば、有効な電子メールアドレス)に一致し、他の文字列(無効な電子メールアドレス)に一致しない正規表現を見つけたい。

正規表現によって、明確に定義された有限状態マシンを意味すると仮定します。正確な用語についてはよくわかりませんが、許可された表現のクラスについては同意しましょう。

式を手動で作成するのではなく、肯定的な例と否定的な例のセットを与えたいと思います。

次に、+の1に一致し、-の1を拒否し、明確に定義された意味で最小の式(オートマトンの状態の数?)を作成する必要があります。

私の質問は:

  • この問題は考慮されましたか、より具体的な方法でどのように定義でき、効率的に解決できますか?多項式時間で解決できますか?NPは完全ですか、どうにか近似できますか?どのクラスの式に対して機能しますか?このトピックについて説明している教科書、記事などへのポインタをいただければ幸いです。
  • これは何らかの形でコルモゴロフの複雑さに関連していますか?
  • これは何らかの形で学習に関連していますか?正規表現が私の例と一致している場合、それが最小限であるために、まだ見られない例の一般化力について何か言うことができますか?これにはどのような最小性の基準がより適していますか?どちらがより効率的でしょうか?これには機械学習とのつながりがありますか?繰り返しますが、どんなポインターでも役に立ちます...

厄介な質問でごめんなさい...これを理解するために私を正しい方向に向けてください。ありがとう!


2
次のページは、質問の学習の側面に非常に関連しているようです:people.dsv.su.se/~henke/ML/MERLIN.html
伊藤剛

1
… またはそうでないかもしれません。とにかくDFA学習に関する多くの作品があるようです。
伊藤剛

回答:


38

OPTkkP=NP

学習に関する質問について:Kearns and Valiant 、RSAをDFAにエンコードできることを証明しました。そのため、ラベルの付いた例が一様分布に由来する場合でも、将来の例に一般化できる(均一分布にも由来する)とRSAが壊れます。したがって、最悪の場合、ラベル付きの例を使用してもDFAを学習するのに役立ちません(PACモデルで)。これは、学習のための古典的な暗号硬度の結果の1つです。

これらの問題は両方とも、OccamのRazor Theoremと呼ばれるものが絡み合っています。基本的に、同じクラスの仮説によってラベル付けされたサンプルと一致する、与えられたクラスから最小の仮説を見つける手順があれば、そのクラスをPACで学習できると述べています。したがって、RSAの硬度の結果を考えると、一貫性のある最小のDFAを見つけることは一般に難しいと予想されます。

ポジティブな学習結果を追加するために、Angluin 、独自の例を作成すればDFAを学習できることを示しましたが、「現在の仮説は正しいですか?」これは、学習における独創的な論文でもありました。

他の質問に答えるために、これはすべて、コルモゴロフの複雑さに関連しています。ターゲットDFAの正規表現の複雑さが低い学習問題が容易なるためです。


3
あなたは最近のより強い結果で私を打ち負かしました!後でもっと良い答えを投稿してください!! 1 !!
伊藤剛

おっと、ごめんなさい!DFAの学習に十分な時間を費やしたので、これに飛びつく必要がありました:)
レフレイジン

1
念のため、前のコメントで冗談を言っていました。もちろん、より良い答えを見てうれしいです!
伊藤剛

1
つまり、この問題とDFAの定期的な最小化の主な違いは、否定的な例の存在です。
Suresh Venkat

1
分かりません。負例ことなく、最小の一貫DFAはちょうど1状態を有する-受け入れる状態をそれ自体にポイント...
レフReyzin

13

質問の学習関連の側面に答えます。

この問題は、文献では「DFA学習」と呼ばれるようです。

金【Gol78]は、与えられた、決定するためにNP完全であることを示した誘電 ∈ℕ及び2点の有限集合P及びNせいぜいと決定性有限状態オートマトン(DFA)が存在するかどうか、文字列のk個の中のすべての文字列を受け付ける状態PおよびNの文字列はなし。論文[PH01]は、この動機に関連する問題を議論しているようです(もっと多くの可能性があります。Googleで関連性のある論文を見つけようとしたときに思いついたものです)。

参照資料

[Gol78] Eマークゴールド。指定されたデータからのオートマトン識別の複雑さ。 情報制御、37(3):302から320、6月1978 http://dx.doi.org/10.1016/S0019-9958(78)90562-4

[PH01]ラジェシュ・パレフとヴァサント・ホナバール。簡単な例からDFAを学習します。 機械学習、44(1–2):9–35、2001年7月 。http //www.springerlink.com/content/kr2501h2442l8mk1/ http://www.cs.iastate.edu/~honavar/Papers/parekh- dfa.pdf


1
回答をありがとう、私は参考文献を見ています。このサイトで複数のベストアンサーに投票できますか?:)繰り返しますが、機械学習を何年も勉強していましたが、「DFA学習」サブフィールド全体を見逃したことは恥ずかしいです。
ラスズロ・コズマ

@steve:回答は1つしか受け入れられませんが、必要なだけ回答できます。
ユッカスオメラ

2
[Gold78]は、DFAを多項式時間で学習できることも示していることに注意してください(限界における識別の学習可能性フレームワーク内)。概要については、最近の文法推論に関する本(pagesperso.lina.univ-nantes.fr/~cdlh/book_webpage.html)も参照してください。
mgalle

@mgalle:追加情報をありがとうございます。
伊藤剛

8

この議論を通して、最小限の正規表現を見つけることは、言語を認識する最小限のFSMを見つけることになると考えられてきましたが、これらは2つの異なることです。正しく覚えていれば、DFAは多項式時間で最小化できますが、特定の正規言語を表す最小正規表現を見つけるのはPSPACE困難です。後者は、オートマタ理論の伝承に属する結果の1つですが、その証拠はどこにも見つかりません。私はそれがパパディミトルの本の練習問題として述べられていると思います。


1
DFAの正規表現の長さと状態の数が異なる目的関数であることは正しいです。DFAの最小化について回答したのは、プロパティがより優れているため(たとえば、状態の数が最小の一意のDFAがある)、質問の記述方法から、正確な目的関数は柔軟であるという印象を受けました。
伊藤剛

ランダムコメント:サイズf(n)の正規表現はサイズO(f(n))のNFAでシミュレートできるという事実を考えると、正規表現を最小化することは、NFAを最小化することに似ており、明らかに困難です。
シェンロン-志チャン張顯之

これのいくつかは、@ keithの回答へのコメントで対処されています
レフ・レイジン

2

このスタックオーバーフローの記事もご覧くださいお探しの本は、Michael Sipserによる計算理論入門のようです。

あなたはいくつかの異なる質問をしているので、それらを一度に一つずつ取ってください:

Is finding a minimal Finite State Machine for a language L NP-complete?

いいえ、そうではありません。Stack Overflowの投稿では、FSMを最小サイズに縮小するための単純なn ^ 2アルゴリズムについて説明しています。(停止状態から逆方向に作業し、正確に「同一」の状態を結合します。)

どうやら(私はリンクをたどらなかった)、これを行うためのn log nアルゴリズムがあります。

I have a training set of strings, how do I find the minimal FSM 
that separates the good examples from the bad?

あなたがそれを言い表したように、あなたのトレーニングセットは有限の言語を説明しています。有限言語は自明でFSMにマップします。言語の文字列ごとに停止状態で終わる状態の線形セットを作成します。ループは必要ありません。次に、結果のマシンでFSM最小化アルゴリズムを実行します。

Is this a good way to build a classifier?

私はそうは言いません。FSMを最小化しても、その識別力は変わりません。それがポイントです。最小FSMは、ストリングのセットを、同等の非最小FSMとして正確に受け入れます。

一般に、正規表現は新規データの分類には適していません。有限トレーニングセットの場合、新しいデータに一般化する機能はなく、そのセットの肯定的な例のみに一致するRE / FSMを取得します。トレーニングコーパスに一致する無限の正規言語を見つけようとするアプローチを見たことはありません。

機械学習では、単純なベイズ分類器、決定木、ニューラルネットワーク、またはよりエキゾチックなものを探しています。Russell and Norvigの人工知能:モダンアプローチは、機械学習技術の概要(およびその他の多く)を見つけるのに最適な場所です。


2
私はこの答えに同意しません。すべての肯定的な例を取り上げ、それらの例のみを受け入れるFSMを構築し、それ以外は何もしない場合、FSMは巨大になる可能性があります。一方、すべての正の例を受け入れ、負の例を受け入れない最小のFSMは、はるかに小さい可能性があります。
ユッカスオメラ

3
元の質問はかなり明確になったと思います:「+に一致し、-を拒否し、明確に定義された意味で最小限の式」。
ユッカスオメラ

5
@keithあなたの答えと私の答えの違いは非常に微妙です。サンプルの各文字列に新しい状態を作成することにより、dfaを構築するときに、肯定的な例と否定的な例を区別する最小のdfaで表される言語とは異なる可能性のある言語にコミットします。したがって、dfaを生成し、それを残念ながら最小化するアルゴリズムはそれを行いません!
レフReyzin

1
この区別を理解しているかどうかはわかりません。正と負の例のセットがある場合、これらの制約をすべて満たす言語のファミリーがあります。それぞれに対して、最小限のDFA(のセット)があります。最小サイズのDFAを返す限り、これらの言語のどれを選択するかが重要になります。
スレシュヴェンカト

1
学習のために、最も一般的な能力を備えているため、最小のDFAを選択します。@kiethの手順では、これらすべての言語で最小DFAを選択するのではなく、彼の手順を使用することにコミットしている言語の最小DFAのみを選択します。
レフレイジン
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.