Ortam Bağımsız Dillerin Özellikleri

Slides:



Advertisements
Benzer bir sunumlar
STRİNG FONKSİYONLARI.
Advertisements

KÜMELER BİRLEŞİM KESİŞİM FARK.
ERÜNAL SOSYAL BİLİMLER LİSESİ
BU KONUDA ÖĞRENECEKLERİMİZ
MIT503 Veri Yapıları ve algoritmalar Algoritmalara giriş
TURING MAKİNELERİ Yılmaz Kılıçaslan.
ÖĞRENCİNİN; ADI: SOYADI: ÖĞETMENİN;
Doğruların doğrultuları
TBF Genel Matematik I DERS – 1 : Sayı Kümeleri ve Koordinatlar
Sonlu Durum Makinesi M=(S, I, O, f, g, s0) S:durumlar kümesi
İŞ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,’’
Celal Bayar Üniversitesi Hasan Ferdi Turgutlu Teknoloji Fakültesi
Bağlama Duyarlı Diller
Derleyici Teorisine Giriş
İŞLEM ve MODÜLER ARİTMETİK.
DÜZENLİ GRAMERLER Yılmaz Kılıçaslan.
KONU: FONKSİYONLARIN LİMİTİ
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
TEK FONKSİYON-ÇİFT FONKSİYON
Çizge Algoritmaları Ders 2.
Otomata Teorisinin Uygulama Alanları
Yrd. Doç. Dr. Mustafa AKKOL
MUSTAFA GÜLTEKİN Matematik A Şubesi.
KÜMELER.
Biçimsel Diller ve Soyut Makineler
KÜMELER ERDİNÇ BAŞAR.
KÜMELER KAZANIM:Bu konu 6. sınıf konusu olup bir kümeyi modelleri ile belirler, farklı temsil biçimleri ile gösterir.
BAĞINTI & FONKSİYONLAR.
BOOLEAN MATEMATİĞİ.
Biçimsel Diller ve Soyut Makineler
Matematiksel Veri Yapıları. İçerik Matematiksel Veri Yapıları – Kümeler – Diziler – Fonksiyonlar – İkili ilişkiler Sonsuz kümeler – Sonlu nicelik – Sonsuz.
BMS-301 Kabuk Programlama Güz 2015 (5. Sunu) (Yrd. Doç. Dr. Deniz Dal)
Sayısal Analiz Sayısal İntegral 3. Hafta
NFA-, NFA, DFA dönüşümü 1.
Biçimsel Diller ve Soyut Makineler
Biçimsel Diller ve Soyut Makineler
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.
TAM SAYILARLA ÇARPMA VE BÖLME İŞLEMLERİ
Bu derste ders notundan 57,58,59 ve 67,68,69,70,71 nolu sayfalar kullanılacak.
Mekatronik Mühendisliği
O R T L G İ M A A Ve Akış şemaları.
Formel Diller ve Soyut Makineler
BİLGİSAYAR PROGRAMLAMA Ders 6: Diziler
Formel Diller ve Soyut Makineler
Insertion Sort Fikir: Oyun kartlarını sıralamaya benzer.
Turing Machines Turing Makineleri.
Formel Diller ve Soyut Makineler
Teorem 2: Lineer zamanla değişmeyen sistemi
Teorem NU4 Lineer Kombinasyonlar ‘de lineer bağımsız bir küme Tanıt
TAM SAYILAR.
Sentaks ve semantik tarifi
İleri Algoritma Analizi
Algoritma Nedir? Algoritmayı, herhangi bir problemin çözümü için izlenecek yolun adımlar halinde yazılması olarak tanımlayabiliriz. Algoritma, bir problemin.
Bilgisayar Programlamasına ve Veri Analizine Giriş
EŞİTSİZLİKLER ÖMER ASKERDEN UZMAN İLKÖĞRETİM MATEMATİK ÖĞRETMENİ
Ayrıştırma Ağaçları Tanımlar Soldan ve Sağdan Türemeler ile İlişkisi
Düzenli Diller Hakkında Sorular (“ Karar Özellikleri ”)
Sonlu Özdevinirlere Giriş
Belirsiz Sonlu Özdevinirler
OBG’nin ABÖ’ye Dönüştürülmesi ABÖ’nün OBG’ye Dönüştürülmesi
ÖĞRENCİNİN; ADI: SOYADI: ÖĞETMENİN; ADI: SOYADI:
Düzenli Dillerin Kapalılık Özellikleri
Konu : Fonksiyonların Lİmiti
Ortam-Bağımsız Gramerler (OBG)
Altbasımlı Özdevinirler
Sunum transkripti:

Ortam Bağımsız Dillerin Özellikleri Karar Özellikleri Kapalılık Özellikleri

Karar Özelliklerinin Özeti Her zamanki gibi, “bir OBD ” dediğimiz zaman, gerçekte “OBD’yi temsil eden birşey ” demek isteriz, örneğin OBG veya altbasımlı özdevinir (göreceğiz). Aşağıdakileri cevaplamak için algoritmalar mevcuttur: w dizisi L OBD’sinin içinde midir? L OBD’si boş mudur? L OBD’si sonsuz mudur?

Karar Verilemeyen Özellikler Düzenli diller için cevaplanabilen birçok soru, OBD’ler için cevaplanamaz. Örnek: İki OBD ayni midir? Örnek: İki OBD’nin kesişimi boş küme midir? Algoritma olmadığını ispatlamak için Turing makineleri ve karar verme teorisine ihtiyaç var.

Boş Olmayı Test Etme Bunu yapmayı halihazırda biliyoruz. Terminal dizisi üretmeyen değişkenleri yok etmeyi öğrendik. Eğer başlangıç sembolü bunlardan biri ise, o zaman dil boştur; aksi halde boş değil.

Üyeliği Test Etme w dizisinin L(G) içinde olup olmadığını bilmek istiyoruz. G’nin CNŞ’de olduğunu varsayalım. Veya grameri CNŞ’ye dönüştürün. w = ε özel bir durumdur. Başlangıç sembolünün sıfırlanabilirlik testi problemi çözer. CYK algoritması dinamik programlamanın güzel bir örneğidir ve n = |w| ise O(n3) zamanda çalışır.

CYK Algoritması w = a1…an olsun. Değişken kümelerinden oluşan n x n üçgen yaratırız. Xij = {A değişkenleri | A =>* ai…aj}. j–i+1 üzerine tümevarım Türetilen dizinin uzunluğu. Sounda, S, X1n içindemi diye sorarız.

CYK Algoritması – (2) Temel: Xii = {A | A -> ai bir kural}. Tümevarım: Xij = {A | A -> BC kuralı vardır, ve bir k tamsayısı vardır, şöyle ki i < k < j, B Xik içindedir ve C Xk+1,j içindedir}

Example: CYK Algorithm Grammar: S -> AB, A -> BC | a, B -> AC | b, C -> a | b String w = ababa X12={B,S} X23={A} X34={B,S} X45={A} X11={A,C} X22={B,C} X33={A,C} X44={B,C} X55={A,C}

Example: CYK Algorithm Grammar: S -> AB, A -> BC | a, B -> AC | b, C -> a | b String w = ababa X13={} Yields nothing X12={B,S} X23={A} X34={B,S} X45={A} X11={A,C} X22={B,C} X33={A,C} X44={B,C} X55={A,C}

Example: CYK Algorithm Grammar: S -> AB, A -> BC | a, B -> AC | b, C -> a | b String w = ababa X13={A} X24={B,S} X35={A} X12={B,S} X23={A} X34={B,S} X45={A} X11={A,C} X22={B,C} X33={A,C} X44={B,C} X55={A,C}

Example: CYK Algorithm Grammar: S -> AB, A -> BC | a, B -> AC | b, C -> a | b String w = ababa X14={B,S} X13={A} X24={B,S} X35={A} X12={B,S} X23={A} X34={B,S} X45={A} X11={A,C} X22={B,C} X33={A,C} X44={B,C} X55={A,C}

Örnek: CYK Algoritması Gramer: S -> AB, A -> BC | a, B -> AC | b, C -> a | b Dizi w = ababa X15={A} X14={B,S} X25={A} X13={A} X24={B,S} X35={A} X12={B,S} X23={A} X34={B,S} X45={A} X11={A,C} X22={B,C} X33={A,C} X44={B,C} X55={A,C}

Sonsuzluk Testi Fikir düzenli diller için olanla esasen ayni. Tekrarlama yardımcı önermesi sabitini (n) kullanın. Dil içinde n ve 2n-1 arasında bir dizi varsa, dil sonsuzdur. Aksi halde sonludur.

OBD’lerin Kapalılık Özellikleri OBD’ler birleşim, bitiştirme ve Kleene kapatması altında kapalıdırlar. Ayni zamanda tersleme (reversal), homomorfizm ve ters homomorfizm altında kapalıdırlar. Ama kesişim veya fark (difference) altında kapalı değildirler.

OBD’lerin Birleşim Altında Kapalılığı L ve M, gramerleri sırası ile G ve H olan OBD’ler olsun. G ve H’nin ortak değişkeni olmadığını varsayalım. Değişken isimleri dili etkilemez. S1 ve S2, G ve H’nin başlangıç sembolleri olsun.

Birleşim Altında Kapalılık – (2) L  M için, G ve H’nin tüm sembollerini ve kurallarını birleştirerek yeni bir gramer oluşturun. Sonra, yeni bir başlangıç sembolü S’yi ekleyin. S -> S1 | S2 kurallarını ekleyin.

Birleşim Altında Kapalılık– (3) Yeni gramerde, tür türemeler S ile başlar. İlk türeme adımı S’yi ya S1 ile, ya da or S2 ile değiştirir. İlk durumda, sonuç L(G) = L içinde bir dizidir, ve ikinci durumda L(H) = M içinde bir dizidir.

OBD’lerin Bitiştirme Altında Kapalılığı L ve M, gramerleri sırası ile G ve H olan OBD’ler olsun. G ve H’nin ortak değişkeni olmadığını varsayalım. G ve H’nin başlangıç sembolleri sırası ile S1 ve S2 olsun.

Bitiştirme Altında Kapalılık – (2) LM için G ve H’nin tüm sembollerinden ve kurallarından başlayarak bir gramer oluşturalım. Yeni bir başlangıç sembolü S ekleyelim. S -> S1S2 kuralını ekleyelim. S’den başlayan her türeme, önce L, sonra da M içide olan dizileri üretir.

Yıldız Altında Kapalılık L dilinin grameri G, G’nin de başlangıç sembolü S1 olsun. L* için yeni bir gramer oluşturalım: G’ye yeni bir başlangıç sembolü S, ve S -> S1S | ε kurallarını ekleyelim. S den başlayan bir sağdan türeme, sıfır veya daha fazla S1 üretir, ve bunların her biri L içinde bir dizi üretir.

OBD’lerin Tersini Alma Altında Kapalılığı L, grameri G olan bir OBD ise, LR için G’nin kurallarının sağ taraflarını ters çevirerek gramer elde ediniz. Örnek: G’nin kuralları S  0S1 | 01 olsun. L(G)’nin tersinin grameri S  1S0 | 10 olur.

OBD’lerin Homomorfizm Altında Kapalılığı L, grameri G olan bir OBD olsun. h, G’nin terminal sembolleri üzerine homomorfizm olsun. h(L) için, her terminal sembol a’yı h(a) ile değiştirin.

Örnek: Homomorfizm Altında Kapalılık G’nin kuralları S  0S1 | 01 olsun. h şöyle tanımlanmış olsun: h(0) = ab, h(1) = ε. h(L(G))’nin grameri şöyle olur: S  abS | ab.

OBD’lerin Ters Homomorfizm Altına Kapalılığı Burda, gramerler yardımcımız değil. Ancak altbasımlı özdevinir (ABÖ) işimize yarar. İçgüdü: ABÖ P için, L = L(P) olsun. h-1(L)’yi kabul edecek ABÖ P’ yı tasarlayalım. P’, P gibi davranır, ancak iki parçalı durumunun ikinci kısmında h’nin bir sembole uygulanmasının neticesini saklar.

P’ nın Mimarisi Girdi: 0 0 1 1 h(0) Önce, ara bölgedeki sembolü sanki P’ye verilmiş gibi okuyun. P’nin durumu P’nin yığıtı

P’ nin Formel Tanımı Durumlar [q, b] çiftleridir, şöyle ki: q P’nin bir durumudur. b, bir a sembolü için h(a)’nın sonekidir (suffix) b için sadece sonlu sayıda değer var. P’ nin yığıt sembolleri, P ninkilerle ayni. P’ nin başlangıç durumu [q0 ,ε].

P’ nın Tasarımı – (2) P’ girdileri, h’nin uygulandığı sembollerdir. q P nin final durumu ise, [q, ε] P’ nin final durumudur.

P’ nin Geçişleri P’ nin girdi a ve yığıt sembolü X için, δ’([q, ε], a, X) = {([q, h(a)], X)} Ara bölge boş olduğunda, onu tekrar yükle. Eğer δ(q, b, X) içinde (p, ) varsa, o zaman δ’([q, bw], ε, X) içinde ([p, w], ) vardır (b ya P nin girdi sembolüdür, ya da ε’dur). Ara bölgeyi kullanarak P’yi taklit et.

P’ Doğruluk İspatı L(P’) = h-1(L(P)) olduğunu göstermemiz gerekiyor. Ana argüman: P’ ([q0, ε], w, Z0)⊦*([q, x], ε, ) geçişini sadece ve sadece P (q0, y, Z0) ⊦*(q, ε, ) geçişini yaparsa yapar, şöyle ki h(w) = yx, ve x w’nun son sembolünün bir sonekidir. İspat, her iki yönde yapılan adımların sayısı üzerine tümevarım. Bir hata olmalı. Belki y=ub, b bir sembol, x de h(b)’nin bir sonekidir.

Kesişim Altında Kapalılığın Olmaması Düzenli dillerin tersine, OBD’ler  altında kapalı değildir. L1 = {0n1n2n | n > 1} dilinin OBD olmadığını biliyoruz. (tekrarlama yardımcı önermesini kullanın). L2 = {0n1n2i | n > 1, i > 1} OBD’dir. OBG: S  AB, A  0A1 | 01, B  2B | 2. Benzer şekilde L3 = {0i1n2n | n > 1, i > 1} OBD’dir. Ama L1 = L2  L3.

Fark Altında Kapalılığın Olmaması Daha genel birşeyi ispatlayabiliriz: Bir dil grubu fark altında kapalı ise, kesişim altında da kapalıdır. İspat: L  M = L – (L – M). Böylece, OBD’ler fark altında kapalı olsalardı, kesişim altında da kapalı olmaları gerekirdi, ama öyle değiller. Yeterince genel bir ispat olmayabilir! Hatta bir örnek kapalı olmadığını ispatlamaya yeter! Bir önceki slide.

Bir Düzenli Dil İle Kesişim İki OBD’nin kesişimi ortam bağımsız olmak zorunda değil. Ama bir OBD’nin bir düzenli dil ile kesişimi her zaman bir OBD’dir. İspat bir DSÖ ile ABÖ’nün paralel çalıştırılması ile olur. Kombinasyon yine ABÖ’dür. Son durumla kabul eden ABÖ.

DSÖ ile ABÖ Paralel Çalışması ABÖ durumuna benzer DSÖ İkisi de kabul ederse Kabul et Girdi ABÖ S t a c k

Formel Tasarım δA A DSÖ’sünün geçiş fonksiyonu olsun. δP P ASÖ’sünün geçiş fonksiyonu olsun. Birleştirilmiş ASÖ’nün durumları [q,p] olur, şöyle ki q A’nın bir durumudur ve p P’nin bir durumudur. Eğer δP(p, a, X) içinde (r, ) varsa, δ([q,p], a, X) içinde ([δA(q,a),r], ) olur. Not: a  olabilir, bu durumda δA(q,a) = q.

Formel Tasarım – (2) q A’nın final durumu ise ve p P’nin final durumu ise, [q,p] birleştirilmiş ASÖ’nün final (kabul eden) durumu olur. Doğruluk ispatı tümevarımla: ([q0,p0], w, Z0)⊦* ([q,p], , ) sadece ve sadece δA(q0,w) = q ve (p0, w, Z0)⊦*(p, , ).