Altbasımlı Özdevinirler

Slides:



Advertisements
Benzer bir sunumlar
Yinelemeli Algoritma Analizi & Asimptotik Notasyon
Advertisements

Ayrık Yapılar Algoritma Analizi.
STRİNG FONKSİYONLARI.
KÜMELER BİRLEŞİM KESİŞİM FARK.
DİFERANSİYEL AKIŞ ANALİZİ
Karar Verme: Eşitlik ve Karşılaştırma Operatörleri
Yığın ve Kuyruk.
BAS-BIRAK OTOMATLARI (YIĞITLI ÖZDEVİNİRLER)
SONLU DURUM OTOMATLARI
SONLU DURUM OTOMATLARI
C++ STACK SINIFI.
FIRAT ÜNİVERSİTESİ TEKNOLOJİ FAKÜLTESİ
TURING MAKİNELERİ Yılmaz Kılıçaslan.
Bölüm 9 Dizgiler Dizgi Tanımı Dizgi Girdi İşlemleri
Çerez(Cookie) Kullanımı Oturum Yönetimi
Bölüm 3 – Yapısal Programlama
Çizge Algoritmaları.
BPR152 ALGORİTMA VE PROGRAMLAMA - II
TBF Genel Matematik I DERS – 1 : Sayı Kümeleri ve Koordinatlar
Yapısal Program Geliştirme – if, if-else
Sonlu Durum Makinesi M=(S, I, O, f, g, s0) S:durumlar kümesi
While Döngüsü Tekrarlama deyimidir. Bir küme ya da deyim while kullanılarak bir çok kez yinelenebilir. Yinelenmesi için koşul sınaması döngüye girilmeden.
ÇİZGELERİN GÖSTERİMİ Yılmaz KILIÇASLAN. Sunu Planı Bu derste, çizgelerin bilgisayarda gösterimine ilişkin iki standart yaklaşımı inceleyeceğiz.
AST409 Astronomide Sayısal Çözümleme
İŞLEM TANIM: A boş olmayan bir küme olmak üzere,A×A nın bir R alt kümesinden A ya tanımlanan her fonksiyona, işlem denir.İşlemi tanımlarken,’’
ÇİZGELERİN GÖSTERİMİ Yılmaz KILIÇASLAN.
Bağlama Duyarlı Diller
Derleyici Teorisine Giriş
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
SONLU DURUM OTOMATLARININ PROGRAMLANMASI
Dizgiler Dizgi Tanımı Dizgi Girdi İşlemleri Dizgi Çıktı İşlemleri Dizgi Fonksiyonları Karakter Fonksiyonları Gösterge Dizgileri.
TÜREV İ:K (2008). GİRİŞ: Türevin ne olduğunu anlatmaya başlamadan önce limit kavramını tekrar masaya yatıralım. TANIM: (İ:K ) y=f(x) A kümesinde tanımlı.
SONLU OTOMATLAR Yılmaz Kılıçaslan.
Biçimsel Diller ve Soyut Makineler Push-Down Automata (PDAs)
Romen Rakamları Bu şablon bir grup ayarında eğitim malzemesi sunmak için başlangıç dosyası olarak kullanılabilir. Bölümler Bölüm eklemek için slaydı sağ.
NFA-, NFA, DFA dönüşümü 1.
Bulanık Mantık Kavramlar:
Regüler İfadeler ve Regüler Diller
Tanım: Bir x 0  A = [a,b] alalım. f : A  R ye veya f : A -{x 0 }  R ye bir Fonksiyon olsun Terimleri A - {x 0 } Cümlesine ait ve x 0 ’a yakınsayan.
İLERİ GERİ Sayfa:2 GERİ Tanım: Bir x 0  A = [a,b] alalım. f : A  R ye veya f : A -{x 0 }  R ye bir Fonksiyon olsun Terimleri A - {x 0 } Cümlesine.
Bir başka ifade biçimi: Blok Diyagramları
Bu derste ders notundan 57,58,59 ve 67,68,69,70,71 nolu sayfalar kullanılacak.
Algoritma ve Akış Şemaları
Formel Diller ve Soyut Makineler
Formel Diller ve Soyut Makineler
Özdeğerler, Sıfırlar ve Kutuplar
Insertion Sort Fikir: Oyun kartlarını sıralamaya benzer.
Algoritmalar II Ders 4 Dinamik Programlama Yöntemi.
Turing Machines Turing Makineleri.
Formel Diller ve Soyut Makineler
Tamsayılı Doğrusal Programlama Algoritmaları
Bölüm 9 Dizgiler Dizgi Tanımı Dizgi Girdi İşlemleri
Sentaks ve semantik tarifi
İleri Algoritma Analizi
Başlık Düzeni Alt Başlık.
Ayrıştırma Ağaçları Tanımlar Soldan ve Sağdan Türemeler ile İlişkisi
Sonlu Özdevinirlere Giriş
Resimli Başlık Düzeni Alt Başlık
Belirsiz Sonlu Özdevinirler
NİŞANTAŞI ÜNİVERSİTESİ
Ortam Bağımsız Dillerin Özellikleri
OBG’nin ABÖ’ye Dönüştürülmesi ABÖ’nün OBG’ye Dönüştürülmesi
NİŞANTAŞI ÜNİVERSİTESİ
Düzenli Dillerin Kapalılık Özellikleri
RESİMLİ BAŞLIK DÜZENİ alt başlık
NİŞANTAŞI ÜNİVERSİTESİ
Ortam-Bağımsız Gramerler (OBG)
Sunum transkripti:

Altbasımlı Özdevinirler Tanım ABÖ Hareketleri ABÖ Dilleri Deterministik ABÖ’ler

Altbasımlı Özdevinirler Dil tanımlama gücü açısından ABÖ OBG’ye eşdeğerdir. Tüm OBD’leri sadece belirsiz ABÖ tanımlayabilir. Deterministik olan versiyonu ayrıştırıcıları (parser) modeller. Birçok programlama dilinin deterministik ABÖ’leri vardır.

İçgüdü: ABÖ Yığını idare edebilen bir ε-BSÖ düşünün. Hamleleri aşağıdakiler tarafından belirlenir: Şimdiki durum, Girdi sembolü (veya ε), ve Yığın üstündeki sembol.

İçgüdü: ABÖ – (2) Belirsiz olduğundan, ABÖ’nün birden çok “ sonraki hamlesi ” olabilir. Her tercihte, ABÖ: Durumunu değişebilir, ve hem de Yığın üstündeki sembokü sıfır veya daha çok sayıda sembolle değiştirebilir. Sıfır sembol = “at.” Birçok sembol = “it”ler dizisi

ABÖ Biçimselliği Bir ABÖ aşağıdakiler ile tanımlanır: Sonlu durumlar kümesi(tipik olarak Q). Bir girdi alfabesi (tipik olarak Σ). Bir yığın alfabesi (tipik olarak Γ). Bir geçiş fonksiyonu (tipik olarak δ). Bir başlangıç durumu (tipik olarak q0  Q). Bir başlangıç sembolü (tipik olarak Z0  Γ). Bir final durumları kümesi (tipik olarak F ⊆ Q).

Gelenekler a, b, … girdi sembolleridirler. Ancak bazen ε de bir değer olarak kabul edilebilir. …, X, Y, Z yığıt sembolleridirler. …, w, x, y, z girdi sembol dizileridirler. , ,… yığıt sembol dizileridirler.

Geçiş Fonksiyonu Üç parametre alır: Q içinden bir durum. Ya Σ içinden bir sembol, ya da ε olan bir girdi. Γ içinden bir yığıt sembolü. δ(q, a, Z), (p, ) şeklinde sıfır veya daha fazla sayıda hamledir. p bir durumdur;  bir yığıt sembolleri dizisidir.

ABÖ’nün Hamleleri δ(q, a, Z)’nın hamleleri arasında (p, ) varsa, ABÖ’nün durumu q, girdide a ve yığın üzerinde Z olduğunda, aşağıdakini yapabilir: Durumu p olarak değiştirmek. a’yı giridnin önünden kaldırmak (a, ε de olabilir). Yığının üstündeki Z’yi  ile değiştirmek.

Örnek: ABÖ {0n1n | n > 1} dilini kabul eden bir ABÖ tasarlayalım. Durumlar: q = başlangıç durumu. Şu ana kadar sadece 0’lar görmüşsek, q durumundayız. p = en az bir tane 1 gördük, ve geri kalanlar 1 ise devam edebiliriz. f = final durumu; kabul.

Örnek: ABÖ – (2) Yığın sembolleri: Z0 = başlangıç sembolü. Ayni zamanda,eşit sayıda 0 ve 1 gördüğümüzü anlamamız için yığının altını işaretler. X = girdide gördüğümüz 0’ların sayısını tutar.

Örnek: ABÖ – (3) Geçişler: δ(q, 0, Z0) = {(q, XZ0)}. δ(q, 0, X) = {(q, XX)}. Bu iki kural, okuduğumuz her 0 için yığın üzerine bir X itilmesını sağlar. δ(q, 1, X) = {(p, ε)}. 1 gördüğümüzde, p durumuna git ve bir X dışarı at. δ(p, 1, X) = {(p, ε)}. Her 1 için bir X dışarı at. δ(p, ε, Z0) = {(f, Z0)}. Yığın dibinde kabul et.

Örnek ABÖ’nün Hamleleri 0 0 0 1 1 1 q Z0

Örnek ABÖ’nün Hamleleri 0 0 1 1 1 q X Z0

Örnek ABÖ’nün Hamleleri 0 1 1 1 q X Z0

Örnek ABÖ’nün Hamleleri 1 1 1 q X Z0

Örnek ABÖ’nün Hamleleri 1 1 p X Z0

Örnek ABÖ’nün Hamleleri 1 p X Z0

Örnek ABÖ’nün Hamleleri p Z0

Örnek ABÖ’nün Hamleleri f Z0

Anlık Tarifler Biraz önce gördüğümüz resimleri anlık tariflerle (AT) formalize edebiliriz. AT (q, w, ) şeklinde bir üçlüdür, şöyle ki: q şu anki durumdur. w geri kalan girdidir. , üst solda olacak şekilde, yığın içeriğidir.

“Gider” İlişkisi ABÖ’nün bir hamlesinde AT I’nin AT J’yegidebileceğini I⊦J olarak yazarız. Formel olarak, eğer δ(q, a, X) içinde (p, ) varsa, herhangi bir w and  için (q, aw, X)⊦(p, w, ). ⊦* notasyonunun anlamı “sıfır veya daha çok hamle” Temel: I⊦*I. Tümevarım: I⊦*J ve J⊦K ise, o zaman then I⊦*K.

Örnek: Gider Bir önceki örnek ABÖ’yü kullanarak, hamleler dizisini şöyle gösterebiliriz: (q, 000111, Z0)⊦(q, 00111, XZ0)⊦ (q, 0111, XXZ0)⊦(q, 111, XXXZ0)⊦ (p, 11, XXZ0)⊦(p, 1, XZ0)⊦(p, ε, Z0)⊦ (f, ε, Z0) Böylece, (q, 000111, Z0)⊦*(f, ε, Z0). Girdi 0001111 olsa ne olurdu?

Mümkün, çünkü girdi kalmış olsa bile ABÖ ε kullanabilir. Cevap (q, 0001111, Z0)⊦(q, 001111, XZ0)⊦ (q, 01111, XXZ0)⊦(q, 1111, XXXZ0)⊦ (p, 111, XXZ0)⊦(p, 11, XZ0)⊦(p, 1, Z0)⊦ (f, 1, Z0) Dikkat: Son AT’den başka hamle yok. 0001111 kabul edilmez, çünkü kullanılmayan girdi var.

ABÖ’nün Dili ABÖ’nün dilini tanımlamanın en yaygın yolu final durum iledir. P bir ABÖ ise, o zaman L(P) = {w| (q0, w, Z0) ⊦*(f, ε, ), f bir final durumudur ve  herhangi bir yığın içeriğidir}.

ABÖ’nün Dili– (2) Ayni ABÖ bir de boş yığın ile dil tanımlar. P bir ABÖ ise, o zaman N(P) = { w | (q0, w, Z0) ⊦* (q, ε, ε), q herhangi bir durumdur} .

Dil Tanımlarının Eşdeğerliği L = L(P) ise, o zaman L = N(P’) olan başka bir ABÖ P’ vardır. If L = N(P) ise, o zaman L = L(P’’) olan başka bir ABÖ P’’ vardır.

İspat: L(P) -> N(P’) İçgüdü P’ ,P yi simüle edecek. P kabul ederse, P’ yığınını boşaltacak. P’ nın yanlışlıkla yığınını boşaltmasını (ve kabul etmesini) engellemek gerekiyor, dolayısı ile özel bir yıgın altı işaretçisi kullanır. (P yığınını boşaltıp final durumunda olmadığında kabel etmez, ayni şekilde P’ nın da kabul etmemesi lazım).

İspat: L(P) -> N(P’) P nin tüm durumları, sembollleri ve hamleleri P’ da da var, ilaveten: Yanlışlıkla yığının boşalmasını engellemek için yeni yığın sembolü X0. Yeni bir başlangıç durumu s and “silme” durumu e. δ(s, ε, X0) = {(q0, Z0X0)}. P yi başlat. P nin tüm final durumları f ve yığın sembolleri X için δ(f, ε, X) = {(e, ε), δ(e, ε, X) = {(e, ε)}.

İspat: N(P) -> L(P’’) İçgüdü P” , P yi simüle eder. P nin yığınını boşalttığını tespit etmek için P” nın özel bir yığın altı işaretçisi var. Yığın boşalırsa, P” kabul eder.

İspat: N(P) -> L(P’’) P’’ da P nin tüm durumları, sembolleri ve hamleleri var, ilaveten: Yeni bir yığın altı işaretçisi X0. Yeni bir başlangıç durumu s ve final durumu f. δ(s, ε, X0) = {(q0, Z0X0)}. P yi başlat. P deki tüm q durumları için δ(q, ε, X0) = {(f, ε)}.

Deterministik ABÖ’ler Deterministik olmak için, herhangi bir durum q, girdi a ve yığın sembolü X için en çok bir hamle olmalı. İlaveten, gerçek bir girdi kullanımı ile ε arasında bir tercih olmamalı. Formel olarak, δ(q, a, X) ve δ(q, ε, X) ayni anda boş olmamalı.