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

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

1
特定の正規表現で記述された言語を認識するDFAを構築するためのアルゴリズムは何ですか?
私の教科書はすべて、正規表現を指定してDFAを生成するために同じアルゴリズムを使用します。まず、正規表現の言語を認識するNFAを作成し、次にサブセット(別名「パワーセット」)構造を使用して、NFAを同等のDFA(オプションでDFAを最小化)。私はかつて、教授が他のアルゴリズムがあることを暗示するのを聞いたことがあります。誰もが知っていますか?おそらく、中間のNFAなしで正規表現からDFAに直接移動するものでしょうか?

2
注目すべき正規表現オートマトンの分類
私は、正規表現をオートマトンに変換するためのアルゴリズムの分類法を作成して、特定のドメインでそれらの複雑性プロパティのいくつかの経験的テストを実行しようとしています。 私はいくつかの「より大きな」名前を知っています、例えば、 トンプソン 「正規表現検索アルゴリズム」、トンプソン、1968 グリシコフ 「正規表現をオートマトンに変換する新しい二次アルゴリズム」、Ponty、等。al、1996 アンチミロフ 「正規表現の部分微分と有限オートマトン構成」、Antimirov、1996 従う 「オートマトンに従ってください」、Ilie、et。2003年。 「式のフォローオートマトンの計算」、シャンパルノー、他 al、2002 フロムコビッチ 「正規表現を小さなe-free非決定性有限オートマトンに変換する」、Hromkovic、他 al、2001 そしてそれらの特徴的な特性(イプシロン自由度、決定論、サイズ、最小化など)が、これが完全なリストではないことを知っています。 私は特に、上記のものとは大幅に異なる時間の複雑さ、および/または大幅に異なるトポロジーを提示するアルゴリズムに興味があります。 他の人を知っている場合は、構築アルゴリズムを詳細に説明している論文へのリンクをいただければ幸いです(実装する場合は必ず読んでください)。 編集:要求に応じていくつかの参照を追加しました。

1
代替なしの正規表現
正規表現の制限によってどの言語セットが生成されるのか疑問に思いました。すべての制限に、と連結の各要素に対する定数記号があると仮定します。次に、補集合/否定、変更/和集合、およびクリーネ星の有無によって、8つのクラスを形成できます。(はい、「通常の」正規表現にはC演算子がありませんが、ここでは便利です。)ΣΣ\SigmaCC^C 交代を許可する表現と、補完ありまたはなしでのクリーネスター(友達の間の少しの指数関数的な爆発は何ですか?)は、通常の言語を生成します。Kleeneスターではなく代替と補完を許可する式は、スターフリー言語を生成します。代替を許さないが補完を許さない表現またはクリーネ星は有限言語を生成します。 しかし、言語の興味深いクラスを交互に生成することはできますか?3つの演算子がなければ、生成できるのは1つの単語だけです。ここでは、補数演算子はあまり役に立ちません。 Kleene starだけではクラスはやや興味深いです...それらが通常の言語よりも速く認識できるかどうかは明確ではありません。(これらについて重要なことは何ですか?) Kleeneスターと補完物の両方で...何か面白いことはありますか?このクラスに名前はありますか? この質問は、math.seの正規表現の質問に触発されました。

1
完全線形時間の正規表現マッチング
固定サイズのアルファベットが重要であると仮定して、サイズnの正規表現がサイズmの文字列と一致するかどうかをチェックするアルゴリズムはありますか?O(n+m)O(n+m)O(n+m)nnnmmm 標準のNFAアルゴリズムは最悪の場合です。Groz et al。すべてではなく、さまざまな正規表現クラスの線形時間を実現します。より良い結果はありますか?O(nm)O(nm)O(nm) Groz、B.、Maneth、S.&Staworko、S.(2012年5月)。線形時間での決定論的な正規表現。

1
正規表現のファミリーの正規表現
私は星の高さの問題について読んでいて、Egganの正規表現のファミリーは、正規表現で記述できる単純なパターンに従っていることに気付きました。私の質問は、正規表現のファミリーを説明する正規表現に関する興味深い結果はありますか?このプロセスをさらに続けることができるので、正規表現のファミリーを説明する正規表現があり、それぞれが順番に正規表現のファミリーを説明していますか?ちょっとした考え。

1
貪欲でない(消極的な)数量詞を含む正規表現は、それらを使用しないように書き換えることができますか?
貪欲な量指定子、貪欲でない量指定子を含む正規表現言語について考えてみましょ、順序付けられた代替、および文字クラス。(これは本質的にPCREのサブ言語であり、後方参照、ルックアラウンドアサーション、またはその他のより洗練されたビットはありません。)∗?∗∗*∗?∗?{*}? 文字列正規表現の一致 は、半分開いた間隔であり、は、。R s = s 0 … s n N s a 0 … s a 1 − 1 R[ a0、a1)[a0、a1)[a_0,a_1)RRRs = s0… sんs=s0…sんs = s_0\dots s_nNN\mathbb{N}sa0… sa1− 1sa0…sa1−1s_{a_0}\dots s_{a_1-1}RRR あるマッチを他のマッチよりも良くするものを再帰的に定義します。一致正規表現のためのの文字列には、より良い別の一致よりも場合又は、もしと:Ra = [ a0、a1)a=[a0、a1)a = [a_0,a_1)RRRa 0 < b 0 a 0 = b 0b = [ b0、b1)b=[b0、b1)b = …
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.