Sunuyu indir
Sunum yükleniyor. Lütfen bekleyiniz
1
Ortam Bağımsız Dillerin Özellikleri
Karar Özellikleri Kapalılık Özellikleri
2
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?
3
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.
4
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.
5
Ü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.
6
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.
7
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}
8
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}
9
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}
10
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}
11
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}
12
Ö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}
13
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.
14
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.
15
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.
16
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.
17
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.
18
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.
19
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.
20
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.
21
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.
22
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.
23
Ö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.
24
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.
25
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ı
26
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 ,ε].
27
P’ nın Tasarımı – (2) P’ girdileri, h’nin uygulandığı sembollerdir.
q P nin final durumu ise, [q, ε] P’ nin final durumudur.
28
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.
29
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.
30
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.
31
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.
32
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Ö.
33
DSÖ ile ABÖ Paralel Çalışması
ABÖ durumuna benzer DSÖ İkisi de kabul ederse Kabul et Girdi ABÖ S t a c k
34
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.
35
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, , ).
Benzer bir sunumlar
© 2024 SlidePlayer.biz.tr Inc.
All rights reserved.