なぜ正規表現は共用体、連結、スター演算で定義されているのですか?


11

定期expresssionは再帰的に定義されます

  1. いくつかのために、A ∈ Σは、正規表現ですaa∈Σ
  2. は正規表現です。ε
  3. は正規表現です。∅
  4. ここで、 R 1及び R 2は、正規表現では、正規表現であります(R1∪R2)R1R2
  5. ここで、 R 1及び R 2は、正規表現では、正規表現であります(R1∘R2)R1R2
  6. ここで、 R 1は正規表現であり、正規表現です。(R1)∗R1

この定義は、64ページの

シプサー、マイケル。計算理論入門、第3版。Cengage Learning、2012年。

さて、以下の質問です。

  • 定義にintersection、complementまたはreverse操作が含まれていないのはなぜですか?
  • 我々は4番目の項目を変更する場合は、私たちはそれぞれの正規言語のために、すなわち、同等の定義を得るのですか、修正正規表現とその逆はありますか?R1∩R2
  • この定義が完全かつ明確に定義されていることを知っていますが、他の同等の明確に定義された完全な定義よりもなぜ好ましいのですか?

2
投稿ごとに1つの質問に限定してください。
— ラファエル

回答:


16

1)交差と補完も許可する場合、結果の式は拡張正規表現と呼ばれることがあります; 通常の言語はブール演算の下で閉じられているため、通常の言語では何も得られません。それは単なる構文上の砂糖です。同様の結論が逆の操作にも当てはまります。他のすべての操作が最初に言及されていない理由の一部は、定義をできるだけ単純に保つことを目的としているため、(帰納的)証明は多くの場合に対応する必要がありません。別の原因としては、特定の操作を許可しても、許可しない場合、非常に明確な(準正規)言語クラスが発生することがあります。たとえば、スター演算子なしの拡張正規表現を検討すると、正規の適切なサブクラスが取得されます。 、いわゆるスターフリーまたは非周期的言語。wikipedia:star-free languageを参照してください。

2)アイテム1〜6を保持するが、アイテム4を変更するだけで、共用体の代わりに共通部分を使用すると、通常の言語の適切なサブクラスが取得されます。たとえば、という言語は、それが{ a }と{ b }の和集合を含むため記述できなくなりました(以下の証明を参照)。補完を許可すると、DeMorganの法則によって労働組合が戻ってくるため、状況は変化します。L={a,b}{a}{b}

3)これは1)で部分的に回答されましたが、この定義が好ましいと言うとき、どういう意味ですか?(我々は6で持っているようにすることを私は2が省略された定義を知っている)(我々が持っているように、または3を省略し∅ = L (¯ X * ))を、または両方が省略されています; したがって、これは可能な最小の定義ではありません({ ε }と∅を説明する追加の記号があるので、これによって構文上の砂糖も得られます)。L(∅∗)={ε}∅=L(X∗¯{ε}∅

EDIT:2での私の最初に述べたコメント)間違っていた、下に誘導閉鎖中の言語、*および∩ neccessarilyのサブセットであるしていないxが*いくつかのためのx ∈ X、例えば考えるL (∘ B )= { B }。それにもかかわらず、L = { a 、b }は、そのような式では記述できませんでした。証明を与えます。つまり、L = L (R )の場合、∘∗∩x∗x∈XL(a∘b)={ab}L={a,b}L=L(R)修飾された4項目は、場合といくつかの発現のために(ひいては≠ B) { 、B } ⊆ L ⇒ B ∈ L 。 証明は、式Rの帰納法です。基本的なケースの場合、それは空虚に保持されますが、L (R 1)、L (R 2)に対して保持されると仮定します。もしL = L (R 1 ∩X={a,b}a≠b

{a,b}⊆L⇒ab∈L.
RL(R1),L(R2)と、{ 、B } ⊆ Lは、 { 、B } ⊆ L (R I)、iは= 1 、2、したがって帰納法の仮定により、我々は Bを∈ L (R 1)∩ L (R 2)。もしL=L(R1∩R2)=L(R1)∩L(R2){a,b}⊆L{a,b}⊆L(Ri),i=1,2ab∈L(R1)∩L(R2)次にとして、A = A ⋅ ε = ε ⋅ A我々が有していなければならない ∈ L (R 1)および ε ∈ L (R 2)またはその逆。最初のケースを想定します。もし B ∈ L ({a,b}⊆L(R1∘R2)=L(R1)L(R2)a=a⋅ε=ε⋅aa∈L(R1)ε∈L(R2)、次いで、 B ∈ L (R 1)従って帰納法の仮定により、 B = B ⋅ ε ∈ L (R 1)L (R 2)。今仮定する B ∈ L (R 2)、その後、我々は持っている ⋅ B ∈ L (R 2)L (R 2)の定義によるとb∈L(R1)ab∈L(R1)ab=ab⋅ε∈L(R1)L(R2)b∈L(R2)a⋅b∈L(R2)L(R2)。最後なら、B ∈ L (R * 1)、次いで、 ∈ L (R 1 )N および B ∈ L (R 2 )Mいくつかのために N 、M > 0。もし N = M = 1、我々は見つける B ∈ L (RをL(R1)L(R2)a,b∈L(R1∗)a∈L(R1)nb∈L(R2)mn,m>0n=m=1帰納法の仮定により、そう仮定 N > 1、これは得られる ∈ L (R 1)のいずれかと同様に、 M = 1又は M > 1が得られる bは∈ L (R 1)と帰納法の仮定が与え B ∈ Lを(R 1)⊆ L (R * 1)。◻ab∈L(R1)n>1a∈L(R1)m=1m>1b∈L(R1)ab∈L(R1)⊆L(R1∗)◻

a=uwu=aw=a1=|a|=|uw|=|u|+|w||u|=0|w|=1|u|=1|w|=0u=εa=w


2
{a,b}{a,b}∗{a,b}∗=(a∗∘b∗)∗

はい、表現できるものと、スターと他の人がかなり遠くまで到達できる他の賢い組み合わせでは何がそうでないかを確認するのは、少し難しい場合があります。
— StefanH 2016年

10

正規言語、正規表現、有限オートマトンを紹介したテクニカルレポートは、70ページで質問をしています。

E∨FEFE∗F

E∗E∗FE∗

答えはいくつかのページを占めています。最初に、結果の言語が興味深いクラスを形成するかどうか、および他の手段で記述された言語とどのように比較するかで答えを探す必要があることに注意してください。72ページで、否定と論理積は冗長であると述べられています。これらは表現力を追加しません。80ページ以降では、通常の言語が有限状態マシンで認識される言語であることが証明されています。

言い換えると、ステファンの答えは、これらの概念を最初に紹介したレポートですでに与えられているので、安全に決定的に考えることができます。


リンクをありがとう。私は常に、操作が選択(if-then-elseなど)シーケンス(互いに続く命令)および反復(while-doなど)からの自然な抽象化であることを生徒に説明しています。しかし、明らかにそれはクリーネによって言及されていませんか?
— Hendrik Jan

私はクリーネの記事を調べただけの男で、私の答えのすべてがすでにそこにあることに驚いていました。他に何も知りません。だから私は答えが記事を読んで、おそらくこれまでにKleeneがこれについて書いた何かを探すことだと思います。
— reinierpost 2016

4

演算子(ユニオン、連結、スター)のこの選択から、式のサイズに線形なサイズのNFAを構築できます。一方、交差と補完を追加すると、同等のオートマトンのサイズが非基本的に爆発する可能性があり、通常は望ましくありません。

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