Otomata Teorisi (BİL 2114)

Benzer belgeler
Otomata Teorisi (BİL 2114)

Bil 2114 Otomata Teorisi Çalışma Soruları ve Cevapları III (Hafta 7,8,9)

Otomata Teorisi (BİL 2114)

Otomata Teorisi (BİL 2114)

Otomata Teorisi (BİL 2114)

Otomata Teorisi (BİL 2114)

1 $/ " {ww R : w {a, b} * } ## S asa, S bsb S e#(3 * 5 $(6 )# (2 #$,(- (25 #5

BAĞLAMDAN BAĞIMSIZ VE BAĞLAMDAN BAĞIMSIZ OLMAYAN DİLLER (CONTEXT-FREE AND NON-CONTEXT-FREE LANGUAGES)

FORMEL DİLLER VE SOYUT MAKİNALAR. Hafta 2

Otomata Teorisi (BIL 2114)

A { x 3 x 9, x } kümesinin eleman sayısı A { x : x 1 3,x } kümesinin eleman sayısı KÜMELER

Tanım 2.1. X boş olmayan bir küme olmak üzere X den X üzerine bire-bir fonksiyona permütasyon denir.

! " # $ % & '( ) *' ' +, -. / $ 2 (.- 3( 3 4. (

MAT223 AYRIK MATEMATİK

sayıların kümesi N 1 = { 2i-1: i N } ve tüm çift doğal sayıların kümesi N 2 = { 2i: i N } şeklinde gösterilebilecektir. Hiç elemanı olmayan kümeye

Manisa Celal Bayar Üniversitesi Yazılım Mühendisliği Bölümü YZM Biçimsel Diller ve Otomata Teorisi. Final Sınavı Soruları A KİTAPÇIĞI

Şekil. 64 Kelimelik Yığıtın Blok Şeması

FORMEL DİLLER VE SOYUT MAKİNALAR. Hafta 3

! " # $ % & '( ) *' ' +, -. /.,

Python ile Programlamaya Giris

I/NET Seven MIMIC PANEL KULLANIMI

Algoritma ve Programlamaya Giriş

Manisa Celal Bayar Üniversitesi Yazılım Mühendisliği Bölümü YZM Biçimsel Diller ve Otomata Teorisi. Final Sınavı Örnek Soruları A0 KİTAPÇIĞI

2. SİMETRİK GRUPLAR. Tanım 2.1. X boş olmayan bir küme olmak üzere X den X e birebir örten fonksiyona permütasyon denir.

Bil101 Bilgisayar Yazılımı I. M. Erdem ÇORAPÇIOĞLU Bilgisayar Yüksek Mühendisi

MATM 133 MATEMATİK LOJİK. Dr. Doç. Çarıyar Aşıralıyev

Önermeler mantığındaki biçimsel kanıtlar

İÇERİK PROGRAMLAMAYA GİRİŞ ALGORİTMA AKIŞ DİYAGRAMLARI PROGRAMLAMA DİLLERİ JAVA DİLİNİN YAPISI JAVA DA KULLANILAN VERİ TİPLERİ JAVA DA PROGRAM YAZMA

Formal Diller Ve Otomat Teorisi

Bil101 Bilgisayar Yazılımı I. M. Erdem ÇORAPÇIOĞLU Bilgisayar Yüksek Mühendisi

0.1 Küme Cebri. Teorem 1 A ve B iki küme olmak üzere i) (A B) c = A c B c ii) (A B) c = A c B c

İnternet Programcılığı Öğr. Gör. Serkan AKSU PHP de Dizi-Değişkenler, Nesneler. Dizi Oluşturma. Tek Boyutlu Diziler

DOKUZ EYLÜL ÜNİVERSİTESİ MÜHENDİSLİK FAKÜLTESİ DEKANLIĞI DERS/MODÜL/BLOK TANITIM FORMU. Dersin Kodu: CME 3002

kavramını tanımlayıp bazı özelliklerini inceleyeceğiz. Ayrıca bir grup üzerinde tanımlı

1.4. KISMİ SIRALAMA VE DENKLİK BAĞINTILARI

YENİ ORTAÖĞRETİM MATEMATİK PROGRAMINA UYGUNDUR. YGS MATEMATİK 3. KİTAP MERVE ÇELENK FİKRET ÇELENK

2. Aşağıdaki pseudocode ile verilen satırlar işletilirse, cnt isimli değişkenin son değeri ne olur?

PERMÜTASYON DERS NOTLARI. Sayma Yöntemleri. TEMEL SAYMA KURALLARI Toplama yoluyla sayma. Çarpma yoluyla sayma

BM312 Ders Notları

Syntax Analysis. 4/5/2004 Formal Diller 4.1

BIL1202 ALGORİTMA VE PROGRAMLAMAYA GİRİŞ (Algoritma Geliştirmek, Satır Kod)

Programın Akışının Denetimi. Bir arada yürütülmesi istenen deyimleri içeren bir yapıdır. Söz dizimi şöyledir:

Küme Temel Kavramları

ARDIŞIK SAYILAR. lab2_pc32 BERRIN_ESMA_OZGE

Örnek...4 : A = { a, b, c, d, {a}, {b,c}} kümesi veriliyor. Aşağıdakilerin doğru mu yanlış mı olduğunu yazınız.

ALGORİTMA VE PROGRAMLAMA II

Algoritma Geliştirme ve Veri Yapıları 10 Graf Veri Modeli. Mustafa Kemal Üniversitesi

Problem 1. Problem 2. Problem 3. Problem 4. Problem 5. PURPLE COMET MATEMATİK BULUŞMASI Nisan c Copyright Titu Andreescu and Jonathan Kane

Merkezi Limit Teoremi

! " # $ % & '( ) *' ' +, -. /) /) 0 # /) %, %, 1 2

Akış Kontrol Mekanizmaları

Atatürk Anadolu. Temel Kavramlar Üzerine Kısa Çalışmalar

E-Posta Hesabı Oluşturma

için Örnek 7.1. simetri grubunu göz önüne alalım. Şu halde dür. Şimdi kalan sınıflarını göz önüne alalım. Eğer ve olarak alırsak işlemini kullanarak

10. DİREKT ÇARPIMLAR

Bundan sonra Sabahlatan da hayatın çeşitli alanlarına dair eğitim serileri bulunacak. Bunlara da bu İspanyolca eğitim makalesi ile başlıyoruz.

T I M U R K A R A Ç AY - H AY D A R E Ş C A L C U L U S S E Ç K I N YAY I N C I L I K A N K A R A

HESAP. (kesiklik var; süreklilik örnekleniyor) Hesap sürecinin zaman ekseninde geçtiği durumlar

İspanyol Alfabesi 27 harf ve 2 digraf, yani tek ses veren ikili harf kombinasyonundan oluşur.

BLM-111 PROGRAMLAMA DİLLERİ I. Ders-11 Karakter Diziler. Yrd. Doç. Dr. Ümit ATİLA

Dilbilgisi ve Diller

Eln 1001 Bilgisayar Programlama I

ALGORİTMA VE PROGRAMLAMA II

Programlama. Simdide 1 den 10 a kadar olan sayilari yazdiralim. 1 den 10 e kadar olan sayilarin karesini yazdiralim. Do[Print[Mathematica], 5]

Sonlu Durum ve Turing Makineleri

Kısa Dönemli Amaç Davranışlar Araç Gereçler

İÇİNDEKİLER. Önsöz...2. Önermeler ve İspat Yöntemleri...3. Küme Teorisi Bağıntı Fonksiyon İşlem...48

Bir tan mla bafllayal m. E er n bir do al say ysa, n! diye yaz -

ideal Sistem Tester Kullanım Klavuzu

KÜMELER 05/12/2011 0

TAMSAYILAR. 9www.unkapani.com.tr. Z = {.., -3, -2, -1, 0, 1, 2, 3, } kümesinin her bir elemanına. a, b, c birer tamsayı olmak üzere, Burada,

1 BAĞINTILAR VE FONKSİYONLAR

PROGRAMLAMAYA GİRİŞ DERS NOTLARI

TCP/IP ye Genel Bir Bakis

BÖLÜM 2: ALGORİTMALAR

11.Konu Tam sayılarda bölünebilme, modüler aritmetik, Diofant denklemler

BİLGİSAYAR PROGRAMLAMA. Algoritma ve Akış Şemaları

,$( -./(,$( 0$0$ (,$(

Fonksiyonlarda limiti öğrenirken değişkenlerin limitini ve sağdan-soldan limit kavramlarını öğreneceksiniz.

BİREYSELLEŞTİRİLMİŞ EĞİTİM PROGRAMI (BEP) ÖĞRENCİNİN ADI-SOYADI:

EĞİTİM ÖĞRETİM YILI. İLKOKULU 1. SINIF TÜRKÇE DERSİ ÜNİTELENDİRİLMİŞ YILLIK PLANI

Örnek...2 : Örnek...3 : Örnek...1 : MANTIK 1. p: Bir yıl 265 gün 6 saattir. w w w. m a t b a z. c o m ÖNERMELER- BİLEŞİK ÖNERMELER

ALGORİTMA VE PROGRAMLAMA II

PERMÜTASYON, KOMBİNASYON. Örnek: Örnek: Örnek:

SÜREKLİLİK. 9.1 Süreklilik ve Süreksizlik Kavramları

0.1 Zarf Teoremi (Envelope Teorem)

Tanım: (1. Tip Üretken Fonksiyonlar) (a r ) = (a 1, a 2, a 3,,a r, ) sayı dizisi olmak üzere, (a r ) dizisinin 1. Tip üretken fonksiyonu

CEVAPLAR. n = n 1 + n 2 + n 3 + n 4 + n 5 + n 6 + n 7 = = 11 dir.

Çok değişkenli fonksiyonlar. Maksimum- Minimum

PROJE ADI: TEKRARLI PERMÜTASYONA BİNOM LA FARKLI BİR BAKIŞ

ARAZİ ÖLÇMELERİ. Koordinat sistemleri. Kartezyen koordinat sistemi

SONUÇ YAYINLARI. 9. Sınıf Kümeler

MAT223 AYRIK MATEMATİK

KÜMELER ÜNİTE 1. ÜNİTE 1. ÜNİTE 2. ÜNİTE 1. ÜNİT

A (B C) = {4, 5, 6} {2, 3, 4, 6, 7} = {4, 6} ; ve (A B) (A C) = {4, 6} {6} = {4, 6}. 6. Dağıtıcı yasayı Venn şeması yoluyla doğrulayınız.

Kanguru Matematik 2016 Kategori 1-2

ÇARPANLAR VE KATLAR ÖĞRENİYORUM

BÖLÜM 3: AKIŞ DİYAGRAMLARI

Şimdi de [ ] vektörünün ile gösterilen boyu veya büyüklüğü Pisagor. teoreminini iki kere kullanarak

Transkript:

Otomata Teorisi (BİL 2114) Fırat İsmailoğlu Hafta 8: İçerikten Bağımsız Diller (I1I. Bölüm) 1

Hafta 8 Plan l. Pushdown Otomata (PDO) Giriş 2. PDO Geçişler 3. PDO Ornekler 4. PDO nun Formal Gösterimi 5. JFLAP ile PDO 6. PDO ile Icerikten Bagimsiz Dillerin Denkligi 2

Pushdown Otomata (PDO) Giriş Pushdown kelimesinin karsiligi olarak asagi itimli kelimesini dusunebiliriz. Pushdown otomata aslinda bir nondetermisintik sonlu otoma (NSO) dur. Konvensiyonel NSO dan farki bir yığına (stack) sahip olmasidir. Bu yığını restoranlarda tabaklarin ust uste konuldugu ve altta bu tabakalari yukariya dogru iten bir mekanizmanin oldugu alete benzetebiliriz. PDO lar icerikten bagimsiz grammerlerin gücüne sahiptirler. İcerikten bagimsiz grammerler icerikten bagimsiz dilleri uretirler, PDO lar ise icerikten bagimsiz dilleri tanırlar. 3

Pushdown Otomata (PDO) Giriş Yandaki resimdeki alete tabaklar en usten birer birer konur, ve yeni tabaklar geldikce eski tabaklar asagi dogru itilir. Buradan bir tabak almak istedigimizde en usttekini aliriz. Bunun sonucunda bir alttaki tabak en uste cikar. Bu kuralin adi son gelen ilk giderdir (Last In First Out). otomata x y 0 1 1... 0 1 kelime... yığın 4

Pushdown Otomata (PDO) Giriş PDA harfleri yığına yazabilir Yazılan harf yığının en üstüne konur, yığındaki diğer harfler aşağı itilir. PDA yığından harfler okuyabilir Okunan harf yığının en üsteki harfidir, bu harf okunduğunda yığından çıkartılmış olur, böylece yığındaki diğer harfler bir basamak üste çıkar. Yığının sonuz miktarda bilgi tutabildiği varsayılır. Yani yığına ıstedığımız kadar harf koyabiliriz. PDA nin ikinci en onemli ozelligi nondetermisnistik olmasıdır. Böylece ayni anda birden fazla durum aktif olabilir. 5

Pushdown Otomata Geçişler En geniş anlamda, bir PDA da bir durumdan diger bir duruma, o anki durum, okunan kelimenin harfi ve yığının en üstteki harfi dikkate alınarak geçilir. q 0, x 1 1 q 2 Yukarıdaki örnekte, q 1 durumunda iken eğer kelimenin sıradaki harfi 0 ve yığının en üstteki harfi x ise q 2 ye geçeriz. Burada x harfini yığından okuruz, yani böylece bu harfi yığından çıkarmış oluruz. Daha sonra yığının en üstüne 1 harfini koyariz. (Yiğindan x i alir, yerine 1 koyariz). 6

Pushdown Otomata Geçişler Epsilondan Kaynaklanan Bazı Özel Haller: 1. ε, x 1 ise okunan kelimenin harfi ne olursa olsun yığının en üstünde x harfi varsa q 1 den q 2 ye geçiş sağlanır. Yığından x çıkartılır. 1 yığına eklenir (en üstüne konur). 2. 0, ε 1 ise yığına bakmaksızın 0 harfini okuduğumuzda geçiş yaparız ve 1 harfini yığının en üstüne koyarız (yığından bır şey çıkartılmaz). 3. 0, x ε ise okunan kelimedeki sıradaki harf 0 ise ve yığının en üstündeki harf x ise geçiş sağlanır. Bu geçiş sonucunda yığından (en üstünden) x harfi çikartılır. Yığına yeni bir harf konmaz. 4. ε, ε ε ise okunan kelimeye ve yığına bakılmaksizin geçiş olur. Bu geçiş sonucunda yığından bir harf okunmaz (yığından bir harf çikmaz) ve yığına bir harf konmaz. 7

Pushdown Otomata Örnek L = 0 n 1 n ȁn 1 dilini tanıyan PDO tasarlıyalım. Bu dilin düzenli olmadığını Pumping lemma yardımıyla görmüştük. Bundan başka, 1 harflerini okumaya başlamadan önce daha önce kaç tane 0 harfi okuduğunu hatirlaması gerektiği içinde bu dili taniyan bir NSO tanımlayamamıştik. Not. PDO larda $ özel bir harftir (simgedir). Yığının en sonundaki (en dibindeki) harfi temsil eder. Bu harf ürettiğimiz yığınla birlikte gelmez. Bunu bilhassa yığına eklemek gerekir. Bir yığındaki $ harfini okuduğumuzda (yani yığından bu harfi çikarttığımızda) yığının içinde hiçbir harf kalmaz. Yığın boşalmış olur. Not. Bazı kaynaklarda $ yerine Z yada Z 0 da kullanılır. 8

Pushdown Otomata Örnek 1 q 0 da harf okumaksizin ve yiğina bakilmaksizin q 1 e gidilir. $ yığına eklenir. q 2 de iken eğer yığının en üstünde $ varsa yani yığının en alt harfi varsa q 3 e geçilir. q 1 de iken kelimeden 1 harfi gelirse yığından bir 0 okuyarak q 2 ye geceriz q ε, ε $ q 1 1,0 ε q ε, $ ε 0 2 q 3 q 1 de kelimeden 0 harfi geldikçe q 1 de kalınır, ve herbir 0 harfi icin bir 0 harfi yığına eklenir. 0, ε 0 1,0 ε q 2 de iken eğer kelimeden 1 harfi gelirse, bu 1 lere karsilik, yiğindan bir tane 0 okunur (yani cikartilir) ve yigina bir sey eklenmez. 9

Pushdown Otomata Örnek 1 q ε, ε $ q 1 1,0 ε q ε, $ ε 0 2 q 3 0, ε 0 1,0 ε Yukaridaki PDO elimizde varken w = 0 2 1 2 kelimesini okuyalim. Okunan Harf Aktif Durum Yığın q 0, q 1 $ 0 q 1 0, $ 0 q 1 0,0, $ 1 q 2 0, $ 1 q 2 $ q 3 10

Pushdown Otomata Örnek II L = ww R หw 0,1 dilini tanıyan PDO tasarlıyalım. Burada w R w kelimesinin tersten yazilmiş halidir. Örnegin w = 01 iken w R = 10 olur. Su halde L dili çıft uzunluktaki palindromlarin dilidir. q ε, ε $ q 1 ε, ε ε q ε, $ ε 0 2 q 3 q 1 de kelimeden 0 harfi geldikçe q 1 de kalınır, ve yığına 0 harfi eklenir. q 1 de kelimeden 1 harfi geldikçe q 1 de kalınır, ve yığına 1 harfi eklenir. 0, ε 0 0,0 ε 1, ε 1 1,1 ε q 1 de iken kelimeden ve yığından hiçbir harf okumadan ve yığına hiçbir şey eklemeden q 2 ye geçilir. q 2 de iken kelimden 0 (1) gelirse ve yığının en üstunde 0 (1) varsa, yığından 0 (1) çikartilarak yine q 2 de kalınır. 11

Pushdown Otomata Formal Gosterimi Bir pushdown otomata 6-li siradir M = Q, Σ, Γ, δ, q 0, F. Burada 1. Q durumlarin kumesidir, 2. Σ alfabe (kelime icin), 3. Γ yiginin kullandigi alfabe, 4. δ: Q Σ ε Γ ε P Q Γ ε, ge 5. q 0 Q baslangic durumu, 6. F Q final durumlarinin kumesidir. Not 1. Yiginin kullandigi alfabe Γ (yigina ekledigimiz harfler) kelimenin alfabesinden (Σ) farkli olabilir. Ornegin $ Γ. Not 2. Gecis fonksiyonun 3 tane girisi vardir: Q, Σ ε, Γ ε. Bu demektirki bir PDO da, bir durumdan digerine gecebilmek icin, icinde bulunulan durum, kelimenin o anki harfi ve yiginin o andaki en ustteki harfi dikkate alinir. Gecis icin bunlarinin ucunun de musait olmasi gerekir. c 12

Pushdown Otomata Formal Gosterimi Not 3. Gecis fonksiyonun deger kumesi P Q Γ ε dir. Gecis sonunda birden fazla duruma gecebilecegimizi ve birden fazla harfi yigina koyabilecigimizi ifade eder. or. q 1, 0, q 2, ε P Q Γ ε. or. M = q 0, q 1,,, $,,, δ, q 0, q 0 PDO su su sekilde olsun: (, ε ( ε, ε $ ), ( ε q 0 q 1 ε, $ ε Bu PDO, düzgün olarak ic ice geçmiş parentezlerin dilini taniyan PDO dur. 13

Bu PDO icin w = ( ) () kelimesini okuyalim: (, ε ( ε, ε $ ), ( ε q 0 q 1 ε, $ ε Okunan Harf Aktif Durum Yığın q 0, q 1 $ ( q 1 (, $ ( q 1 (, (, $ ) q 1 (, $ ) q 0 q 0, q 1 $ ( q 1 (, $ ) q 0 14

JFLAP ile Pushdown Otomata JFLAP Pushdown Automata Multiple Character Input adimlari izlendikten sonra daha once sonlu otomatalarda yaptigimiz gibi, durumlar ve gecisler olusturulur. JLAP da yiginin son elemanini simgelemek icin $ yerine Z kullanilir. Ve Z simgesi, JFLAP da bir PDO olusturudugumuzda otomatik olarak gelir. L = 0 n 1 n ȁn 1 (ε yerine λ kullaniliyor.) 15

PDO ile Icerikten Bagimsiz Dillerin Birbirine Denkligi Teorem: Bir dilin ıçerikten bağimsiz olmasi icin gerek ve yeter sart o dilin bir pushdown otomata tarafindan tanınmasıdır. Lemma 1: Bir dil ıçerikten bağimsiz ise onu taniyan bir pushdown otomata vardır. Bir ıçerikten bağisimsiz grammerden bir PDO elde ederek, verilen bir kelimenin bu grammerden üretıp üretilmedigini kolayca görebiliriz. Böylece bu iş için CYK algoritmasina alternatif bir yontemimiz olur. 16

İcerikten Bağimsız Grammerlerden Pushdown Otomataya Bir içerikten bagimsiz grammerden türetilen PDO nun üç durumu vardır: q 0, q döngü ve q f. Bu PDO şu formdadir: q 0 ε, ε S$ ε, A w(a w kurali icin) a, a ε (bir a terminali için) ε, $ ε q döngü q f Not: q r a, s xyz şu şekilde de gösterilebilir: q q a, s x q 1 q 2 ε, ε y ε, ε z 17

İcerikten Bağimsız Grammerlerden Pushdown Otomataya Bir içerikten bagimsiz grammerden PDO türetmek icin asagidaki prosedür izlenir. 1. Bir onceki sekildeki gibi q 0, q döngü ve q f durumlari çizilerek birbirine baglanir. 2. Yiğina başlangıç degiskeni S ve $ eklenir. (ε, ε S$) 3. Degiskenler (nonterminaller) yigindan cikartilarak yerlerine bu degiskene karsilik gelen kelime eklenir. Ornegin bir A w kurali icin yigindan A cikartilip w kelimesi en sag sembolden baslayarak eklenir. Ortaya çikan geçişler q döngü ye eklenir. 4. Yigindan terminaller cikartilir. Ornegin bir a terminali için, a, a ε gecisi q döngü ye eklenir. 5. $ yigindan cikartilirak (ε, $ ε) final durumu q f ye gidirlir. 18

İcerikten Bağimsız Grammerlerden Pushdown Otomataya ör. G = S, T, {a, b}, R, S ve R kuralları S atbȁb T Taȁε İle verilen grammerden PDO elde edelim: q 0 ε, S b ε, T ε a, a ε b, b ε ε, ε S$ q döngü ε, $ ε ε, ε a ε, T a q f 19

İcerikten Bağimsız Grammerlerden Pushdown Otomataya ör. G = E, {a,, +, (, )}, R, E ve R kuralları S (E) ቚE + EหE Eȁa İle verilen grammerden PDO elde edelim: q 0 a, a ε, ε +,+ ε ), ) ε (, ( ε ε, E a ε, ε S$ q döngü q f ε, $ ε ε, ε E ε, E ) 20