1. Formal Diller Ve Otomat TeorisiPumping Lemma(pompalama önsavı) Erhan BURHAN Çanakkale Onsekiz Mart Üniversitesi www.eburhan.com 1 www.eburhan.com 08.07.2011
2. Pumping Lemma Tanımı Pumping Lemma, bir dilin düzenli (regular) olmadığını ispatlamak için kullanılan bir kanıtlama yöntemidir. L düzenli bir dil olsun. Bu dil için “pumping number (pompalama sayısı)” isimli bir “p” sayısı mevcuttur. Ve bu dil içerisinden seçilen herhangi bir “w” stringinin uzunluğu, p sayısına eşit veya ondan daha büyük olmak zorundadır. not: pumping işlemi w stringinin ilk p sembolü içerisinde yapılabilir. w w ϵ L ise |w| > p p 2 www.eburhan.com 08.07.2011
3. Pumping Lemma Şartları İşte böyle bir “w” stringi aynı zamanda şu 4 şartı da sağlıyor olmalıdır: 1. w = xyz (w stringi x,y,z şeklinde 3 parçaya ayrılabilmeli) 2. |y| > 1 (orta kısım boş olamaz, y ≠ null) 3. |xy| < p (pumping ilk p sembol içinde meydana gelir) 4. xyiz ϵ L ve i > 0 (y kısmı sürekli olarak pump edilebilmeli) 3 www.eburhan.com 08.07.2011
4. Basit Bir Örnek 4 www.eburhan.com 08.07.2011 L = {anbn | n > 0 } dilinin düzenli olmadığını adım adım gösterelim.
5. adım: 1 5 www.eburhan.com 08.07.2011 şeklinde bir örnek string seçelim (seçim yaparken bize verilen örnekteki dile uyacak şekilde bir seçim yaptık). p > 0 için w = apbpϵ L Örneğin p = 3 seçilirse w = a3b3 = aaabbb elde edilir. |w| = 6 olur. Bu da pumping lemma tanımındaki |w|> p koşulu için uygundur. 6 > 3 Şimdi diğer adıma geçip, seçtiğimiz bu w stringinin pumping lemma şartlarına (4 tane) uyup uymadığına bakalım.
6. adım: 2 6 www.eburhan.com 08.07.2011 seçilen w stringi xyz şeklinde üç parçaya ayrılmalıdır. Yani w = xyz olmalıdır. Aynı zamanda da |xy| < p olmalıdır. (1. ve 3. şartlardan) örnek olarak w = aaa bbb için xy kısmı sadece a’lardan oluşacaktır. z xy |xy| < p yani |xy| < 3 olacak şekilde xy kısmı seçildi bu şartları sağlayacak şekilde x, y, z kısımlarını ayrı ayrı belirleyelim: xy içindeki x kısmının uzunluğu r olsun: (x = ar) xy içindeki y kısmının uzunluğu s olsun: (y = as) geriye kalan semboller de z’nin olacak: (z = ap-r-s bp)
7. adım: 2 7 www.eburhan.com 08.07.2011 NOT: dikkat ederseniz y’yi seçerken (y = as) olarak seçtik. Yani y’yi boş bırakmadık ve |y| > 1 şartını da sağlamış olduk. (2. şarttan) 1. , 2. ve 3. şartlara baktığımıza göre son şartımız olan 4. şartı kontrol etmeye geçebiliriz.
8. adım: 3 8 www.eburhan.com 08.07.2011 şimdi w = xyz stringinin (xyiz ϵ L ve i > 0) şartına uyup uymadığını kontrol etmeliyiz. (4. şarttan) i = 0 seçersek x = xy0z = xz olur. x ile z’yi yerine yazarsak; w = ar ap-r-s bp olur. Bunu düzenlersek w = ap-s bp elde ederiz. Fakat bize en başta verilen dil tanımında (anbn ifadesi için) üstlerin eşit olması gerektiği söyleniyordu. Burada ise p-s ≠ pçıktığı için “L dili düzenli değildir” diyoruz ve kanıtlamayı sona erdiriyoruz. (i= 1,2,3… için bakmaya gerek bile kalmadı)
9. NOT:Bu sunumda anlattıklarımı okuyup geçmekten ziyade, boş bir kağıda adım adım yazarak çalışırsanız “Pumping Lemma” mantığını daha kolay ve kalıcı bir şekilde anlamış olursunuz. 9 www.eburhan.com 08.07.2011 UYARI:Bu sunumda anlatıklarım herhangi bir akademik bilgi niteliği taşımamaktadır. Yalnızca kişisel bir ders çalışma notundan ibarettir. Siz yine de her zaman bilgiyi gerçek kaynağından öğrenmeye çalışın.
10. Formal Diller Ve Otomat TeorisiPumping Lemma(pompalama önsavı) Erhan BURHAN Çanakkale Onsekiz Mart Üniversitesi www.eburhan.com 10 www.eburhan.com 08.07.2011