NİŞANTAŞI ÜNİVERSİTESİ

Slides:



Advertisements
Benzer bir sunumlar
SONLU DURUM OTOMATLARI
Advertisements

SONLU DURUM OTOMATLARI
SONLU DURUM OTOMATLARI
Sonlu Durum Makinesi M=(S, I, O, f, g, s0) S:durumlar kümesi
Atama ve eşleme (eşleştirme) problemleri (Matching and Assignment problems)
RELATIVE CLAUSES YASEMİN TURAN ( B ) ELT 1.
Bağlama Duyarlı Diller
Derleyici Teorisine Giriş
Bir Problemin Programa Dönüştürülme Süreci
BAĞLAMDAN BAĞIMSIZ GRAMERLER ÖZYİNELEMELİ GEÇİŞ AĞLARI (Chomsky Hiyerarşisi: Tip 2) Yılmaz Kılıçaslan.
BAĞLAMA DUYARLI GRAMERLER
BAĞLAMA DUYARLI GRAMERLER
BAĞLAMA DUYARLI GRAMERLER
Lineer Cebir Prof.Dr.Şaban EREN
NOUN CLAUSES (İSİM CÜMLECİKLERİ).
DEVRE TEOREMLERİ.
Diferansiyel Denklemler
Today’s Lesson By the end of this lesson you should be able to say phone numbers in Turkish.
COSTUMES KILIKLAR (KOSTÜMLER)
Biçimsel Diller ve Soyut Makineler
SONLU OTOMATLAR Yılmaz Kılıçaslan.
Sentaks (Sözdizim) ve Semantik (Anlam)
BM-305 Mikrodenetleyiciler Güz 2015 (6. Sunu) (Yrd. Doç. Dr. Deniz Dal)
Biçimsel Diller ve Soyut Makineler Push-Down Automata (PDAs)
AVL Trees / Slide 1 Silme * Anahtar hedefi silmek için, x yaprağında buluruz ve sonra sileriz. * Dikkat edilmesi gereken iki durum vardır. (1) Hedef bazi.
Yığıt Soyut Veri Tipi (Stack ADT) Yığıt Veri Yapısı
21/02/2016 A Place In My Heart Nana Mouskouri « Istanbul « (A Different Adaptation)
Biçimsel Diller ve Soyut Makineler
ULUBATLI HASAN PRIMARY SCHOOL (ULUBATLI HASAN İLKÖĞRETİM OKULU) BERGAMA, İZMİR TURKEY.
Bölüm10 İteratif İyileştirme Copyright © 2007 Pearson Addison-Wesley. All rights reserved.
Thevenin (1883) ve Norton (1926) Teoremleri
GREETING MANNERS AND POLITE WORDS EMLAK KREDİ BANKASI İLKÖĞRETİM OKULU İstanbul(Bakırköy) SELAMLAMA VE KİBAR SÖZLER.
Students social life and join the social clubs. BARIŞ KILIÇ - EGE DÖVENCİ IŞIK ÜNİVERSİTESİ
(YAPABİLİRİM/YAPAMAM)
Formel Diller ve Soyut Makineler
Doğrusal programlama:İkililik teorisi (Duality theory)
Formel Diller ve Soyut Makineler
YDI101 YABANCI DIL 1 HAFTA 1. We use subject pronouns when the pronoun is the subject of the sentence. When the subject appears the second time, we don’t.
Turing Machines Turing Makineleri.
Formel Diller ve Soyut Makineler
BİLİMSEL ÇALIŞMA BASAMAKLARI SCIENTIFIC WORKING STEPS MHD BASHAR ALREFAEI Y
FINLAND EDUCATION SYSTEM I am talking about the Finnish education system today.
Bölüm 3 Talep, Arz ve Piyasa
Future: I will/shall & I am going to. Structure: Subject+will/shall+verb(base form)+object.
Döngüler ve Shift Register
NİŞANTAŞI ÜNİVERSİTESİ
NİŞANTAŞI ÜNİVERSİTESİ
NİŞANTAŞI ÜNİVERSİTESİ
NİŞANTAŞI ÜNİVERSİTESİ
NİŞANTAŞI ÜNİVERSİTESİ
NİŞANTAŞI ÜNİVERSİTESİ
NİŞANTAŞI ÜNİVERSİTESİ
NİŞANTAŞI ÜNİVERSİTESİ
NİŞANTAŞI ÜNİVERSİTESİ
NİŞANTAŞI ÜNİVERSİTESİ
NİŞANTAŞI ÜNİVERSİTESİ
OBG’nin ABÖ’ye Dönüştürülmesi ABÖ’nün OBG’ye Dönüştürülmesi
Feminism, unlike the idea of ​​ mankind, is a trend that is prioritized to bring gender inequality to the agenda. The notion of feminism, which is not.
NİŞANTAŞI ÜNİVERSİTESİ
Chapter 5 – Balancing of accounts
Imagine that you are a teacher and you are taking your 20 students to England for the summer school.
NİŞANTAŞI ÜNİVERSİTESİ
NİŞANTAŞI ÜNİVERSİTESİ
NİŞANTAŞI ÜNİVERSİTESİ
NİŞANTAŞI ÜNİVERSİTESİ
NİŞANTAŞI ÜNİVERSİTESİ
People with an entrepreneurial mindset are always brave.
NİŞANTAŞI ÜNİVERSİTESİ
Examples: In the Figure, the three points and coordinates are given that is obtained with CAD program. If these three points are represented by the curve.
Sunum transkripti:

NİŞANTAŞI ÜNİVERSİTESİ BİÇİMSEL DİLLER VE OTOMATLAR HAFTA 12 NİŞANTAŞI ÜNİVERSİTESİ © Mühendislik Mimarlık Fakültesi mmf.nisantasi.edu.tr

Aşağı-itme Otomatı, Polindromes 12. HAFTA Aşağı-itme Otomatı, Polindromes NİŞANTAŞI ÜNİVERSİTESİ ©

PDAs and CFLs: Theorem : Herhangi bir bağlamdan bağımsız L dili için, L = L(M) eşitliğini sağlayan bir M NPDA vardır.

PDAs and CFLs: Proof: L bir Context Free Dil ise, bu dili oluşturan bir G Context Free Gramer vardır. Bir CFG’yi her zaman Greibach Normal Form’a (GNF) dönüştürebiliriz. Greibach Normal Formdaki gramerin soldan türetimlerini (leftmost derivations) gösteren bir NPDA her zaman oluşturulabilir.

Greibach Normal Form: Greibach Normal Form (GNF) for Context-Free Grammars requires the Context-Free Grammar to have only productions of the following form: A  ax where a  T and x  V*. That is, Nonterminal  one Terminal concatenated with a string of 0 or more Nonterminals Convert the following Context-Free Grammar to GNF: S  abSb | aa

Greibach Normal Form: S  abSb | aa İlk olarak S  aa kuralının sonundaki terminal sembol yerine S  aA yazıp, yeni bir kural oluşturalım A  a. S  abSb kuralında da bSb yerine S  aX yazalım ve X  bSb yeni kural oluşturalım. Unfortunately, this rule itself needs fixing. Replace the rule with X  bSB by creating a new rule, B  b.

Greibach Normal Form: So, starting with this set of production rules: S  abSb | aa we now have: (GNF) S  aA | aX X  bSB A  a B  b (other solutions are possible)

CFG to PDA Bir context-free grammar’i eşdeğer PDA’ya dönüştürmek için: Grameri Greibach Normal Form (GNF)’a dönüştürün. PDA için, S (the Start symbol in the grammar)’i yığına atan bir geçiş kuralı(transition rule) yazın. Gramerdeki her türetim kuralı (production rule) için, eşdeğer geçiş kuralını yazın. Girdi dizgisindeki semboller bittiğinde otomatı kabul durumuna götürecek ve yığın da boş olacak şekilde bir geçiş kuralı yazın. Boş dizgi gramer tarafından tanımlanan dil tarafından kabul ediliyorsa, otomatı başlangıç durumundan kabul durumuna direk götüren bir geçiş kuralı yazılır.

CFG to PDA How do you write the transition rules? It’s really simple: 1. Every rule in the GNF grammar has the following form: One variable  one terminal + 0 or more variables Example: A  bB

CFG to PDA 2. Her geçiş kuralının sol tarafı, bir sonraki duruma geçmeden önce sağlanması gereken koşulları gösteren bir üçlüdür. Bu üçlü, o anki durum, girdi dizgisinden o anda okunan sembol, yığının en üstünden o anda çıkarılan semboldür. Bu nedenle geçiş kuralında bu üçlü şu şekilde yazılır: o anki durum, gramer kuralındaki terminal ve gramer kuralında soldaki değişken Our grammar rule: A  bB Geçiş kuralının sol tarafı bu şekilde oluşturulur (precondition): (q1, b, A)

CFG to PDA 3. Geçiş kuralının sağ tarafı post-condition (sağlanması istenen koşul) olarak adlandırılır. Post-condition da gidilecek durum ve yığına atılacak sembol(ler)den oluşur. Böylece bu geçiş kuralı için post-condition, gidilecek durum ve gramer kuralının sağ tarafındaki değişken(ler) olacaktır. Example: (q1, b, A) = {(q1, B)}

CFG to PDA Eğer gramer kuralının sağ tarafında hiçbir değişken yok ise, yığına hiçbirşey atılmaz. Geçiş kuralında,  konur. Example: A  a[no variable here] would be represented in transition rule form as: (q1, a, A) = {(q1, )}

CFG to PDA How do you know which state to move to? It’s simple: We always start off with this special transition rule: (q0, , #) = {(q1, S#)} This rule says: q0 durumundan başlanır. Yığının en üstündeki eleman alınır. Eğer # (the empty stack symbol) ise, o halde Girdi dizgisinden bir şey okunmadan q1 durumuna geçilir ve yığına tekrar # atılır ve daha sonra S (the Start symbol in the grammar) yığına atılır.

CFG to PDA 2. We always end up with this special transition rule: (q1, , #) = {(q2, #)} This rule says: q1 durumundan başlanır. Yığının en üstündeki eleman alınır. Eğer bu # (the empty stack symbol) ise bu durumda, Girdi dizgisinden birşey okunmadan q2 durumuna geçilir ve yığına # atılır. q1 durumunda olmak için yığına daha önce birşey atmış olmamız gerekmektedir. q1 durumunda iken yığının en üstündeki elemanı alırsak ve boş yığın sembolünü (#) bulursak, bu bize dizginin işlenmesinin bittiğini gösterir. Böylece q2 durumuna gidebiliriz.

CFG to PDA 3. Diğer geçiş kurallarının hepsi bizi q1 durumunda bırakır.

CFG to PDA Örnek: GNF gramerini ele alalım: V = {S, A, B, C}, T = {a, b, c,}, S = S, ve P : S  aA A  aABC | bB | a B  b C  c G = (V, T, S, P) Bu grameri bir PDA’ya dönüştürelim.

Gramer kuralı: PDA geçiş kuralı: Böylece eşdeğer PDA şu şekilde tanımlanabilir: M = ({q0, q1, q2}, T, V  {Z}, , q0, Z, {q2}), burada  yukarda verilen geçiş kuralları kümesidir.

Bu gramer gerekirci midir? 1. (q0, , Z) = {(q1, SZ)} 2. (q1, a, S) = {(q1, A)} 3. (q1, a, A) = {(q1, ABC), (q1, )} 4. (q1, b, A) = {(q1, B)} 5. (q1, b, B) = {(q1, )} 6. (q1, c, C) = {(q1, )}  (q1, , Z) = {(q2, Z)} Görüyoruz ki 3 numaralı kural aynı önkoşula ve iki farklı post-condition’a sahiptir. Bu nedenle bu PDA nondeterministic’tir.

aaabc dizgisinin, başlangıç önkoşulu ile başlayarak, bu PDA tarafından nasıl işlendiğine bakalım: CFG’de buna ait türetim: S ⇒ aA ⇒ aaABC ⇒ aaaBC ⇒ aaabC ⇒ aaabc

CFG’den PDA oluşturmak için alternatif yaklaşım G = (V, , S, P) bir CFG (context-free grammar) olsun. Bu durumda L(M) = G eşitliğini sağlayan bir M yığın yapılı otomat (PDA) vardır. Bir CFG’den, önce GNF’ye dönüştürmeden, bir NPDA oluşturabilir miyiz? Evet

CFG Bu yaklaşımda da türetim kurallarının başı ve sonu GNF yöntemi ile aynıdır. Bu nedenle PDA’mızdaki türetim kurallarında her zaman aşağıdaki 2 türetim kuralı olacaktır:  (q0, , #) = {(q1, S#)} ve  (q1, , #) = {(q2, #)}

CFG Diğer türetim kuralları gramer kurallarından elde edilir: Yığının en üstündeki eleman çıkarılırsa (POP) ve bu bir değişken(nonterminal) ise girdi dizgisinden hiçbirşey okunmaz. Bu değişkeni içeren gramer kuralının sağ tarafı yığına atılır. Yığının en üstündeki eleman çıkarılırsa (POP) ve bu bir terminal ise, girdi dizgisinin bir sonraki karakteri okunur. Yığına hiçbirşey atılmaz.

CFG den PDA oluşturma Given G = (V, , S, P), construct M = (Q,   δ, q0, # F, ), with Q = {q0, q1, q2}  = V    {#} | #  V   F = q2  (q0, , #) = {(q1, S #)} For A  V,  (q1, , A) = {(q1, )}, where A   For a  ,  (q1, a, a) = {(q1, )}  (q1, , #) = {(q2, #)}

CFG den PDA oluşturma Dil: L = {x  {a, b}* | na(x) > nb(x)} Context-free grammar: S  a | aS | bSS | SSb | SbS

CFG den PDA oluşturma S  a | aS | bSS | SSb | SbS M = (Q,   q0, z A, ), daha önce tanımladığımız PDA olsun. Türetim kuralları şöyle olacaktır: Rule # State Input Top of Stack Move(s) 1 q0 λ # (q1, S#) 2 q1 S (q1, a), (q1, aS), (q1, bSS), (q1, SSb), (q1, SbS) 3 a (q1, λ) 4 b 5 (q2, #)

baaba dizgisinin işlenmesi: (q0, baaba, #) |- (q1, baaba, S#) |- (q1, baaba, bSS#) rule 1 rule 2, 3rd alternative |- (q1, aaba, SS#) (q1, aaba, aS#) rule 4 rule 2, 1st alternative (q1, aba, S#) rule 3 (q1, aba, SbS#) rule 2, 5th alternative (q1, aba, abS#) (q1, ba, bS#) (q1, a, S#) (q1, a, a#) (q1, λ, #) (q2, λ, #) rule 5

NİŞANTAŞI ÜNİVERSİTESİ © KAYNAKLAR An Introduction to Formal Languages and Automata, Peter Linz. Introduction to Automata Theory, Languages and Computation, John E. Hopcroft, Rajeev Motwani, Jeffrey D. Ullman. NİŞANTAŞI ÜNİVERSİTESİ ©