Düzenli ifadeler neden birleşme, birleştirme ve yıldız işlemleri ile tanımlanır?


11

Bir düzenli ekspresyonu, ardışık olarak tanımlanır

  1. a Σa bazıları normal bir ifadedir,aΣ
  2. ε normal bir ifadedir,
  3. normal bir ifadedir,
  4. R ' 1 R, 2(R1R2) burada ve normal ifadelerdir normal bir ifadedir,R1R2
  5. R ' 1 R, 2(R1R2) burada ve normal ifadeler normal bir ifadedir,R,1R,2
  6. (R,1)* burada normal bir ifadedir, normal bir ifadedir.R,1

Bu tanım sayfa 64'ten alınmıştır.

Sipser, Michael. Hesaplama Teorisine Giriş, 3. Baskı. Cengage Learning, 2012.

Şimdi, aşağıdaki sorularım var.

  • Neden tanım içermeyen intersection, complementya da reverseoperasyonları?
  • 4. öğeyi , eşdeğer bir tanım alır mıyız, yani her normal dil için değiştirilmiş bir normal ifade var mı, yoksa tam tersi mi var?R,1R,2
  • Bu tanımın eksiksiz ve iyi tanımlanmış olduğunu biliyorum, ama neden diğer eşdeğer, iyi tanımlanmış ve tam tanımlara tercih ediliyor?

2
Lütfen kendinizi her gönderi için bir soru ile sınırlandırın.
Raphael

Yanıtlar:


16

1) Kavşak ve tamamlayıcıya da izin verirsek, sonuçta ortaya çıkan ifadelere bazen genişletilmiş düzenli ifadeler denir; normal diller boole işlemleri altında kapatıldığından hiçbir şey kazanılmaz. Sadece sözdizimsel şekerdir. Benzer bir sonuç ters işlem için de geçerlidir. İlk aşamada diğer tüm işlemlerden bahsedilmemesinin bir nedeni, tanımı mümkün olduğunca basit tutma amacıdır, böylece (endüktif) kanıtlar birçok davaya bakmak zorunda değildir. Başka bir neden, belirli işlemlere izin verirsek, ancak bazı durumlarda çok farklı (alt düzenli) dil sınıflarının ortaya çıkmaması olabilir, örneğin, yıldız operatörü olmadan genişletilmiş düzenli ifadeyi düşünürsek, normal olanların uygun bir alt sınıfını alırız. , sözde yıldızsız veya aperiodic diller, bkz. wikipedia: yıldızsız dil .

2) Eğer öğeleri 1. - 6. tutarsak, ancak sadece 4. maddeyi birleşim yerine kavşak kullanarak değiştirirsek, normal dillerin uygun bir alt sınıfını alırız. Örneğin, artık dilini { a } ve { b } birleşimini içereceği için tanımlayamadık (aşağıdaki kanıtlara bakın). Tamamlanmaya izin verirsek, DeMorgan yasalarına göre geri döndüğümüz için işler değişir.L={bir,b}{bir}{b}

3) Bu kısmen benim tarafımdan 1) cevaplandı, ama bu tanımın tercih edildiğini söylediğinde ne demek istiyorsun? 2'nin atlandığı (6'ya kadar yaptığımız gibi ) ) veya 3'ün atlandığı ( = L ( ¯ X ) olduğu gibi) veya her ikisinin de atlandığı tanımları biliyorum. ; bu bir minimum olası tanım değildir bu yüzden (o da biz açıklamak için ekstra sembolleri var gibi bazı sözdizimsel şeker bize verdiği { £ değenni } ve ).L(*)={ε}=L(X*¯{ε}

DÜZENLEME : 2) ilk bahsettiğim yorum yanlıştı, , ve altındaki endüktif kapanıştaki diller bazı x X için x alt kümeleridir, örneğin L ( a b ) = { a b } . Bununla birlikte, L = { a , b } 'nin böyle bir ifade ile tarif edilemediğine sahibiz . Bir kanıt vereceğim, yani L = L ( R )*x*xXL(birb)={birb}L={bir,b}L=L(R,)değiştirilmiş 4. öğeyle bazı ifadeler için (ve dolayısıyla a b ) { a , b } L a b L ise . Kanıt, R ifadesinde indüksiyonla devam eder . Bu vacuously tutan temel durum için, şimdi için de geçerlidir varsayalım L ( R, 1 ) , L ( R, 2 ) . Eğer L = L ( R, 1X={bir,b}birb

{bir,b}LbirbL.
R,L(R,1),L(R,2) ve { a , b } L , o { a , b } L ( R i ) , i = 1 , 2 , dolayısıyla indüksiyon hipotezi ile biz , bir b L ( R, 1 ) L ( R, 2 ) . EğerL=L(R,1R,2)=L(R,1)L(R,2){bir,b}L{bir,b}L(R,ben),ben=1,2birbL(R,1)L(R,2) daha sonra da bir = bir s = s bir biz olmalıdır bir L ( R, 1 ) ve s L ( R, 2 ) ya da tam tersi. İlk vakayı varsayalım. Eğer b L ({bir,b}L(R,1R,2)=L(R,1)L(R,2)bir=birε=εbirbirL(R,1)εL(R,2) , daha sonra , bir B L ( R, 1 ), indüksiyon hipotezi ile, bu nedenle , bir B = bir b s L ( R, 1 ) L ( R, 2 ) . Şimdi varsayalım b L ( R, 2 ) , o zaman var bir b L ( R, 2 ) L ( R, 2 ) tanımına görebL(R,1)birbL(R,1)ab=abεL(R1)L(R2)bL(R2)abL(R2)L(R2) . Son olarak ise , bir , b L ( R * 1 ) , daha sonra bir L ( R, 1 ) , n ve B L ( R, 2 ) m bazıları için , n , m > 0 . Eğer , n = m = 1 bulduğumuz bir b L ( R,L(R1)L(R2)a,bL(R1)aL(R1)nbL(R2)mn,m>0n=m=1 indüksiyon hipotezi ile, yani varsayalım , n > 1 , ancak bu veren bir L ( R, 1 ) içindeki, her iki m, = 1 veya m > 1 verir b L ( R, 1 ) ve indüksiyon hipotez veren bir b L ( R ' 1 ) L ( R * 1 ) . abL(R1)n>1aL(R1)m=1m>1bL(R1)abL(R1)L(R1)

Not: Yaygın olarak kullanılan bir sonuç: , u = a veya w = a olur . Bunu 1 = | a | = | u w | = | u | + | w | , dolayısıyla | u | = 0 ve | w | = 1 veya | u | = 1 ve | w | =a=uwu=aw=bir1=|a|=|uw|=|u|+|w||u|=0|w|=1|u|=1 . İlk durumda u = ε ve dolayısıyla a = w var .|w|=0u=εa=w


2
Aslında, "alt-düzenli" diller kümesinde değildir, ancak { a , b } , { a , b } = ( a b ) ∗'dir . {a,b}{a,b}{a,b}=(ab)
rici

Evet, bazen neyin ifade edilebileceğini ve neyin yıldız ve diğerlerinin akıllıca bir kombinasyonuyla olduğu gibi görünmemesi biraz zor olabilir.
StefanH

10

Düzenli dilleri, düzenli ifadeleri ve sonlu otomataları tanıtan teknik rapor, 70. sayfada sorunuzu sorar:

Soru okuyucuya gelebilir, neden belirli üç işlemi EF , EF ve EF seçtik ?

(Kısa bir süre sonra, o kaydedildi E daha uygun daha operatörüdür EF ve güç eşdeğer. Bu günlerde Yani, kullandığımız E yerine.)

Cevap birkaç sayfayı kaplar. İlk olarak, ortaya çıkan dillerin ilginç bir sınıf oluşturup oluşturmadığı ve diğer yollarla açıklanan dillerle nasıl karşılaştırıldığı konusunda cevap aranması gerektiği belirtilmektedir. 72 Sayfasında, olumsuzlama ve kavuşumun gereksiz olduğu belirtilmektedir: herhangi bir ifade gücü eklemezler. Sayfa 80 ve sonrasında, normal dillerin tam olarak sonlu durum makineleri tarafından tanınan diller olduğu kanıtlanmıştır.

Başka bir deyişle: Stefan'ın cevabı, bu kavramları ilk kez tanıtan raporda zaten verildiği gibi, kesin olarak kesin olarak kabul edilebilir.


Bağlantı için teşekkürler. Öğrencilerime her zaman, işlemlerin seçimden (if-then-else gibi) ve birbirini izleyen talimatlardan (yineleme gibi) doğal soyutlamalar olduğunu açıklarım. Ama görünüşe göre bu Kleene tarafından belirtilmemiş mi?
Hendrik Ocak

Ben sadece Kleene'in makalesine bakan ve cevabımdaki her şeyin zaten orada olduğuna şaşırmış bir adamım. Başka bir şey bilmiyorum. Sanırım cevap, makaleyi okumak ve belki de Kleene'in daha önce bu konuda yazdığı herhangi bir şeyi aramaktır.
reinierpost

4

Bu operatör seçiminden (birleşim, birleştirme ve yıldız), ifadenin boyutuna doğrusal bir boyutta bir NFA oluşturulabilir. Öte yandan, kavşak ve tamamlama eklerseniz, eşdeğer otomatiğin boyutu temel olarak patlayabilir ve bu genellikle istenmez.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.