NİŞANTAŞI ÜNİVERSİTESİ BİÇİMSEL DİLLER VE OTOMATLAR HAFTA 3 NİŞANTAŞI ÜNİVERSİTESİ © Mühendislik Mimarlık Fakültesi mmf.nisantasi.edu.tr
3. HAFTA SONLU OTOMATALAR, DÜZENLİ İFADELER 1. HAFTA NİŞANTAŞI ÜNİVERSİTESİ ©
NİŞANTAŞI ÜNİVERSİTESİ © Otomata Otomatların en temel özellikleri girisleri okuyabilen mekanizmalarıdır. Giris, bir alfabe üzerine olusturulur. Otomat giris dosyasından bir dizgiyi okuyabilir ancak degistiremez. Giris mekanizması bu dosyayı soldan sagadogru her seferde tek bir sembol olarak okur. Geçici bir çalısma bellegi ve kontrol birimine sahiptir. NİŞANTAŞI ÜNİVERSİTESİ ©
NİŞANTAŞI ÜNİVERSİTESİ © SONLU OTOMATLAR Deterministic Finite Automata (DFA) (Gerekirci Sonlu Otomat) M = (Q,∑, , q0, F) ile tanımlanır. Q durumların sonlu kümesi ∑ sembollerin sonlu kümesi q0 baslangıç durumu (initial state, q0 is in Q) F kabul durumları kümesi (final/accepting states, which is a subset of Q) geçis fonksiyonu (transition function, which is a total function from Q x to Q) NİŞANTAŞI ÜNİVERSİTESİ ©
NİŞANTAŞI ÜNİVERSİTESİ © SONLU OTOMATLAR Deterministic Finite Automata (DFA) (Gerekirci Sonlu Otomat) M = (Q,∑, , q0, F) ile tanımlanır. Q durumların sonlu kümesi ∑ sembollerin sonlu kümesi q0 baslangıç durumu (initial state, q0 is in Q) F kabul durumları kümesi (final/accepting states, which is a subset of Q) geçis fonksiyonu (transition function, which is a total function from Q x to Q) NİŞANTAŞI ÜNİVERSİTESİ ©
SONLU OTOMATLAR 6
SONLU OTOMATLAR 7
SONLU OTOMATLAR
SONLU OTOMATLAR 9
SONLU OTOMATLAR 1010
SONLU OTOMATLAR
SONLU OTOMATLAR
SONLU OTOMATLAR
SONLU OTOMATLAR
SONLU OTOMATLAR
SONLU OTOMATLAR
SONLU OTOMATLAR
Genişletilmiş Geçiş Fonksiyonu δ* fonksiyonunun ikinci argümanı tek bir sembol değil, bir dizgidir. NİŞANTAŞI ÜNİVERSİTESİ ©
NİŞANTAŞI ÜNİVERSİTESİ © DILLER VE DFA’LAR M = (Q, , ,q0,F) DFA’sı tarafından kabul edilen dil, M tarafından kabul edilen tüm dizgilerin kümesidir. ∑ L(M) = {w | w ∈ ∑ * : *(q0,w) ∈F } DFA tarafından kabul edilmeyen dil: () = {w ∈ ∑* : *(q0,w)∉ F } NİŞANTAŞI ÜNİVERSİTESİ ©
NİŞANTAŞI ÜNİVERSİTESİ © DÜZGÜN Dİller Bir L dilinin düzgün olması için L=L(M) esitligini sağlayan bir DFA olmalıdır. Yani L dilini kabul eden bir DFA olmalıdır. Örnegin; L={awa: w ∈ {a,b}* } dilinin düzgün olduğunu gösteriniz. NİŞANTAŞI ÜNİVERSİTESİ ©
NİŞANTAŞI ÜNİVERSİTESİ © DÜZGÜN Dİller L2 dilinin de düzgün bir dil olduğunu gösterelim: L2 = {aw1aaw2a: w1, w2 ∈ {a,b}* } Sonuç olarak bir L dili düzgün ise L2, L3, … dilleri de düzgündür. NİŞANTAŞI ÜNİVERSİTESİ ©
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İ ©