タグ付けされた質問 「regular-expressions」

Kleeneの元の定義とPOSIX正規表現の両方の意味での正規表現の理論に関する質問。

4
最小正規表現を見つけることはNP完全問題ですか?
次の問題を考えています:特定の文字列セット(たとえば、有効な電子メールアドレス)に一致し、他の文字列(無効な電子メールアドレス)に一致しない正規表現を見つけたい。 正規表現によって、明確に定義された有限状態マシンを意味すると仮定します。正確な用語についてはよくわかりませんが、許可された表現のクラスについては同意しましょう。 式を手動で作成するのではなく、肯定的な例と否定的な例のセットを与えたいと思います。 次に、+の1に一致し、-の1を拒否し、明確に定義された意味で最小の式(オートマトンの状態の数?)を作成する必要があります。 私の質問は: この問題は考慮されましたか、より具体的な方法でどのように定義でき、効率的に解決できますか?多項式時間で解決できますか?NPは完全ですか、どうにか近似できますか?どのクラスの式に対して機能しますか?このトピックについて説明している教科書、記事などへのポインタをいただければ幸いです。 これは何らかの形でコルモゴロフの複雑さに関連していますか? これは何らかの形で学習に関連していますか?正規表現が私の例と一致している場合、それが最小限であるために、まだ見られない例の一般化力について何か言うことができますか?これにはどのような最小性の基準がより適していますか?どちらがより効率的でしょうか?これには機械学習とのつながりがありますか?繰り返しますが、どんなポインターでも役に立ちます... 厄介な質問でごめんなさい...これを理解するために私を正しい方向に向けてください。ありがとう!

6
正規表現は
コンピュータサイエンスのバックグラウンドを持つ人でさえ、正規表現とは何かを尋ねると、その答えは、有限状態オートマトンの範囲内にあるという制約を超える可能性があります。 たとえば、「正規表現」 /^1?$|^(11+?)\1+$/ 著名なPerlパーソナリティAbigail(および2002年以降のPerlのテストスイートの一部)によって作成された複合単項数のみを受け入れるマシンについて説明していますが、Peter Linzの第3版の正式な言語とオートマトンの演習4.5(b)では読者が使用しますそれを証明するポンピング補題 L = { an:n i s n o t a p r i m e n u m b e r } L={an:n is not a prime number}\mathcal{L} = \left\{ a^n : n\ \mathrm{is\ not\ a\ prime\ number} \right\} 通常の言語ではありません。 区別が重要なコンテキストでは、厳密に強力な表現を何と呼ぶべきでしょうか?

4
正規表現を効率的に照合できる「小さな」マシンはありますか?
正規表現は、正規表現に比例するサイズの非決定性有限オートマトン、または潜在的に指数関数的に大きい決定性FAによって認識できることはよく知られています。さらに、文字列sssと正規表現と、NFAは比例してメンバーシップをテストできます、およびDFAは比例してメンバーシップをテストできます。NFAのスローダウンは、本質的にオートマトンが存在する可能性のある状態のセットを追跡する必要があるという事実から生じます。DFAの指数関数的な爆発は、その状態が、 NFA。rrr|s|⋅|r||s|⋅|r||s| \cdot |r||s||s||s| より強力なマシンの使用を許可する場合、正規表現を効率的に(つまり、よりも良い時間で、よりも良いスペースで)認識できますか有限オートマトンよりも (たとえば、プッシュダウンオートマトンまたはカウンターマシンを使用して通常の言語を認識することで簡潔さが向上しますか?)O(|r|⋅|s|)O(|r|⋅|s|)O(|r| \cdot |s|)O(2|r|)O(2|r|)O(2^{|r|})

3
DFAから正規表現に移行する既知のアルゴリズム
DFA から開始し、L (A)= L (r )のような正規表現rを構築する「より良い」(どのような意味で説明する)アルゴリズムがあるのか​​疑問に思っていましたHopcroft and Ullman(1979)による本。そこでは、集合R k i jを使用して、kよりも大きい番号の状態を経由せずに状態q iからq jに DFAを取る文字列のセットを表します。この構造は、明らかに正確で非常に便利ですが、かなり技術的です。AA\mathcal{A}rrrL(A)=L(r)L(A)=L(r)L(\mathcal{A})=L(r)RkijRijkR_{ij}^kqiqiq_iqjqjq_jkkk 私は代数オートマトン理論についてのモノグラフを書いているので、あまりにも多くの技術的詳細で聴衆の注意をそらしたくはありません(少なくとも、表示したい結果とは無関係な詳細では)。完全を期すためのDFAと正規表現の等価性の証明。記録のために、私はGlushkovオートマトンを使用して、正規表現からDFAに移行しています。それは遷移よりも直感的であるように見えました。εε\varepsilon DFAから正規表現に移行することが知られている他のアルゴリズムは何ですか?効率よりも単純さ(この場合は「より良い」)を重視していますが、それは要件ではありません。 よろしくお願いします!

1
通常の言語が「通常」と呼ばれるのはなぜですか?
なぜ正規言語(およびその正規表現から)が「正規」と呼ばれるのですか?文脈自由言語や他の種類の言語にも多くの規則性があります。 最初は、そのタイプの言語を他の「非正規」または何らかの異常な言語と区別するために、形容詞「正規」が使用されたと思います。もしそうなら、これらの他のタイプはどこにあり、それらの非規則性は何でしたか?

2
プロトコルのパーティション番号と確定的な通信の複雑さ
ほかに(決定的)通信複雑 関係の、必要な通信量の別の基本的な尺度であるプロトコルパーティション数。これら2つの測定値の関係は、一定の係数まで知られています。Kushilevitz and Nisan(1997)によるモノグラフは、Rc c (R )cc(R)cc(R)RRR p p (R )pp(R)pp(R) C C (R )/ 3 ≤ ログ2(P P (R ))≤ C C (R )。cc(R)/3≤ログ2⁡(pp(R))≤cc(R)。cc(R)/3 \le \log_2(pp(R)) \le cc(R). 2番目の不等式に関しては、関係(の無限族)を与えるのは簡単です。log 2(p p (R ))= c c (R )RRRログ2(p p (R ))= c c (R )ログ2⁡(pp(R))=cc(R)\log_2(pp(R)) = cc(R) 最初の不等式に関して、Doerr(1999)は、最初の境界の係数を置き換えることができることを示し。仮にあったとしても、最初の限界をどれだけ改善できますか? c = …

1
どの正規表現
次の問題がPSPACEに完全であることはよく知られています。 正規表現与えられた場合、L (β )= Σ ∗ですか?ββ\betaL(β)=Σ∗L(β)=Σ∗L(\beta) = \Sigma^* 他の(固定された)正規表現との等価性を判断するのはどうですか?αα\alpha 正規表現与えられた場合、L (β )= L (α )ですか?ββ\betaL(β)=L(α)L(β)=L(α)L(\beta) = L(\alpha) 以下が知られています: 以下のために、問題はPSPACE完全ですα=(0+1)∗α=(0+1)∗\alpha = (0+1)^* 以下のために、またはより一般的にはα有限集合を記述し、問題が多項式時間で決定可能です。α=∅α=∅\alpha = \emptysetαα\alpha また、が単項言語の場合、問題はPにあると思われます。αα\alpha だから私の質問は: 上記の決定問題PSPACE完全なのは、どのですか?完全な特性評価はありますか?αα\alpha 決定問題にある程度の複雑さ(NP完全など)があるはありますか?αα\alpha

4
ほとんどのREGEX実装はどこで複雑さのスケールに分類されますか?
perlや.NETなどの正規表現の最新の実装は、lookaheadやlookbehindなどの機能を備えたREGEXの古典的なコンピューターサイエンスの定義を超えています。これらの機能により、有限の非プッシュダウンオートマトンでは記述できないステートメントを解析できますか?可能な場合、チューリング完了にどれだけ近いのでしょうか?

2
JSONは通常の言語ですか?
JSON仕様が通常の言語を定義しているかどうか疑問に思っていました。簡単そうに思えますが、自分でそれを証明する方法はわかりません。 私が尋ねる理由は、JSONを効果的に解析するために正規表現を使用できるかどうか疑問に思ったからです。 十分な担当者がいる人は、 json と regular-languageの タグを作成してください。

3
非決定論的有限オートマトン(NDFA)を部分指数空間/時間で決定論的有限オートマトン(DFA)に効率的に変換できますか?
20年前、正規表現から有限状態マシン(DFA)への変換を含む正規表現パッケージを作成し、多数の閉じた正規表現操作(Kleeneスター、連結、リバース、集合操作など)をサポートしました。パッケージの最悪の場合のパフォーマンスについては確信が持てませんでした。 n状態のNDFAは2 ^ n状態のDFAに簡単に変換できるため、DFAにはNDFAと同じ表現力があります。ただし、状態の指数関数的な爆発を必要としないこのような変換の下限保証はありますか? 正常に動作しない正規表現やNDFAの例を見つけることはできませんでしたが、それについて考えるのに多くの時間を費やしませんでした。(((((e | A | B | C)*(e | D | E | F))*(e | G | H | I))*(e | J | K | Lのような正規表現を推測しています。 | M))*多くの交代とクリーン星を混ぜると、NDFAは直線的なサイズになりますが、DFAは拡張されます。

2
有限集合の正規表現のサイズを最小化する
言語の仕様としてDFAを使用している場合でも、正規表現のサイズを最小化することはPSPACE完全であることが知られています。 言語が有限の場合、結果はどうなりますか? この問題は2つのモデルで検討できます。 入力は言語のすべての文字列であり、すべての文字列の長さの合計によって入力サイズを測定します。 入力はDFAであり、DFAの状態の数によって入力サイズを測定します。 Kleene starは有限の場合には役に立たないため、、式では(連結)が使用されます。もちろん、正規表現の長さは任意です。代わりに、各操作に重みを付け(括弧の追加を含む)、正規表現の重みを最小化するように要求できます。()()()|||⋅⋅\cdot 編集: adrianNが指摘したように、それは文法ベースのコードに関連しています。有限集合を記述するために最小長の文脈自由文法を生成することはNP完全です。最小サイズの文脈自由文法が最小サイズの正規表現について多くを暗示している理由は明らかではありません。巧妙な書き換えルールがこれら2つを関連付け、最初のモデルでは問題がNPにあることを証明できます。

3
一般化された星の高さの問題の進展?
言語の(一般化された)星の高さは、拡張正規表現によって言語を表すために必要なKleene星の最小のネストです。有限アルファベット拡張正規表現は次の条件を満たすことを思い出してください。AAA (1)とすべてのための正規表現に拡張さ∈ Aを∅ 、1∅、1\emptyset, 1aaa∈ Aa∈Aa\in A (2)すべての拡張正規表現。E ∪ F、E 、F、E *およびE cが正規表現を拡張していますE、FE、FE,F E∪ FE∪FE\cup FEFEFEFE∗E∗E^*EcEcE^c 一般化された星の高さの問題の言い回しは、最小化された一般化された星の高さを計算するアルゴリズムがあるかどうかです。この問題に関して、いくつか質問があります。 この問題に関して最近の進展(または研究関心)はありましたか?私は何年も前に、Pin StraubingとThérienがこの分野でいくつかの論文を発表したことを知っています。 星の高さの制限の問題は、1988年に橋口によって解決されましたが、一般的なバージョン(私の知る限り)はまだ開いています。なぜこれが当てはまるのか、誰にも直観がありますか? 役立つリンクは次のとおりです。starheight

4
通常言語の階層
任意の既知の「素敵」の階層がありL0⊆L1⊆L2⊆…L0⊆L1⊆L2⊆…L_0 \subseteq L_1 \subseteq L_2 \subseteq \dots定期的な言語のクラスの内部(有限でもよい)LLL?ここでいいことに、各階層のクラスは異なる表現力/力/複雑さをキャプチャします。また、各クラスのメンバーシップは、いくつかの要素によって「適切に」示されます(問題になる可能性のある星の高さの問題とは異なります)。 ありがとうございました!

1
DFAの等価クエリのコスト
この質問に触発されて、私は次のことに興味があります: 特定のDFAが特定の正規表現と同じ言語を受け入れるかどうかを確認する最悪のケースの複雑さは何ですか? これは知られていますか?この問題はPにあり、両方のサイズにアルゴリズム多項式があることが期待されます。

1
通常言語の包含のパラメーター化された複雑さ
私は古典的な問題であるレギュラー言語の包含に興味があります。正規表現与えられると、それに関連付けられた正規言語をL (E )で示します。(正規表現は、演算ユニオン、Kleene-star、および連結を含む固定アルファベットΣ上にあります。)EEEL (E)L(E)L(E)ΣΣ\Sigma 入力: 2つの正規表現及びE 2質問:それは真実であることをL (E 1)⊆ L (E 2)?E1E1E_1E2E2E_2 L (E1)⊆ L (E2)L(E1)⊆L(E2)L(E_1)\subseteq L(E_2) 通常の言語の包含は、PSPACE-completeであることが知られています[1]。 (PSPACEで)それを解決する古典的な方法は、E 1およびE 2に関連付けられたNFA およびA 2を構築し、A 2からDFA D 2を構築し、DFA D C 2に補完し、最後に、L (E 1)とL (E 2 )Cの交差に対応するA 1とD C 2から交差オートマトンA Pを構築するA1A1A_1A2A2A_2E1E1E_1E2E2E_2D2D2D_2A2A2A_2DC2D2CD_2^CAPAPA_PA1A1A_1DC2D2CD_2^CL(E1)L(E1)L(E_1)L(E2)CL(E2)CL(E_2)^C。今のみで受け付けパスないがもしあればA P。L(E1)⊆L(E2)L(E1)⊆L(E2)L(E_1)\subseteq L(E_2)APAPA_P 誤解しない限り、が固定言語の場合、A 2をD 2に変換することで指数関数的な爆発が生じるため、プロセス全体を多項式時間で行うことができます。さらに良いことに、|によってパラメータ化されたときの問題はFPTです。E 2 | 、E 2の長さ。E2E2E_2A2A2A_2D2D2D_2|E2||E2||E_2|E2E2E_2 これは私の質問の動機です: 質問:とき固定式で、正規言語のINCLUSIONの複雑さは何ですか?PSPACE-completeのままですか?E1E1E_1 [1] …

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