DETERMİNİSTİK SONLU OTOMATLAR (DETERMINISTIC FINITE AUTOMATA) Bir Sonlu Otomat (FA) sabit ve sonlu kapasitede bir merkezi işlem ünitesine sahiptir. Giriş bilgisini input tape üzerinden string olarak alır. Herhangi bir çıkış üretmeden sadece giriş bilgisinin kabul edilip edilmediğini gösterir. Dil Tanıyıcı Cihaz (Language Recognition Device) olarak işlem yapar. Compiler da begin, +, for gibi program birimlerinin belirlendiği sözcüksel analiz (lexical analysis) aşamasında ve protokol tanımlamalarında kullanılır. Şerit (input tape) a b a b a. a b a b a okuma kafası.. Sonlu Kontrol q 3 q 1 Birimi Başlangıç Görünümü q 3 q 1 3 Hareket Sonraki Görünüm Giriş bilgisi şerit üzerindeki string dir. Makinenin ana kısmı karakutudur (blackbox) ve sonlu sayıda farklı duruma sahiptir. Bu karakutu Sonlu Kontrol Birimi (Finite Control Unit) olarak adlandırılır ve hareketli okuma kafası (reading head) ile şerit üzerinde herhangi bir pozisyonda bulunan sembolü algılar. Başlangıçta okuma kafası en soldaki kare üzerinde bulunur ve Sonlu Kontrol Birimi başlangıç durumundadır (initial state). Otomat her seferinde şeritten bir sembol okur ve gerekli ise yeni bir duruma geçer. Yeni duruma geçme sadece ve sadece mevcut durum ile okunan sembole bağlıdır! Bu sebeple deterministik sonlu otomat şeklinde isimlendirilir. 1 Yrd.Doç.Dr.Hacer KARACAN
Her sembol okunuşundan sonra okuma kafası bir sağdaki sembole geçer ve şerit üzerindeki string tamamlanana kadar bu şekilde okumaya devam eder. Eğer string tamamlandığında otomat sonuç durumlarından (finite state(s)) birinde ise bu string kabul edilir. Bir otomat tarafından kabul edilen dil, kabul edilen tüm string lerin kümesidir. Bir DFA quintuple (beşli) olarak tanımlanır. M = (K,,δ, s, F) K sonlu sayıda durumlar kümesi alfabe δ geçiş fonksiyonu (transition function) K x dan K ya s K başlangıç durumu (sadece bir tane) F K final state(s) kümesi M otomatının sonraki duruma geçişi transition function ile belirlenir. Eğer M otomatı q K durumunda iken input tape ten a okumuşsa, δ(q, a) K unique (tek) durumuna geçer. Örnek: M bir DFA ve M = (K,,δ, s, F)şeklinde tanımlanmıştır. K = {, q 1 }, q σ δ(q, σ ) = {a, b}, a s = b q 1 F = { } q 1 a q 1 q 1 b 2 Yrd.Doç.Dr.Hacer KARACAN
L(M) içerisinde çift sayıda b bulunduran tüm stringlerin kümesidir. Konfigürasyon Otomatın herhangi bir andaki durumu ile şeritte sağ kısımdaki string i (okunmamış) ifade eder. K x * ın bir elemanıdır. Örneğin aşağıdaki otomat için konfigürasyon (q 1, baba) dır. a b a b a b a q 3 q 1 M gösterimi ardarda iki konfigürasyon arasında binary relation ı ifade eder. (q, w) ve (q, w ) ardarda iki konfigürasyon ise (q, w) M (q, w ) şeklinde belirtilir. Burada w = aw, a ve δ(q, a) = q olmak zorundadır. M fonksiyonu K x + dan K x * ya bir fonksiyondur. (q, e) konfigürasyonu giriş string inin sonunu gösterir ve otomat işlemini bitirir. M fonksiyonunun reflexive, transitive closure u * M şeklinde tanımlanır. Bir string w * sadece ve sadece (s, w) * M (q, e) ve q F ise kabul edilir. Sonuç olarak bir M otomatı tarafından tanınan dil L(M) olarak gösterilir ve tüm kabul edilen string lerin kümesidir. 3 Yrd.Doç.Dr.Hacer KARACAN
Örnek: M bir DFA ve M = (K,,δ, s, F) şeklinde tanımlanmıştır. BM312 Ders Notları - 3 214 K = {, q 1 }, q σ δ(q, σ ) = {a, b}, a s = b q 1 F = { } q 1 a q 1 q 1 b L(M) içerisinde çift sayıda b bulunduran tüm stringlerin kümesidir. (q, aabba) M (q, abba) M (q, bba) M (q1, ba) M (q, a) M (q, e) (, aabba) * M (, e) olduğu için aabba" M tarafından kabul edilir. Çıkış Üreten Deterministik Sonlu Otomatlar (Deterministic Finite-State Transducer) Giriş string ini çıkış string ine çeviren bir sonlu otomattır. Transducer her durum geçişinde çıkış şeridi (output tape) üzerine bir sembol, boş sembol veya string yazar. a/w girişten a okur ve çıkışta w yazar. Yandaki otomat bütün b leri geçer ve her iki a dan ikincisinin yerine boş sembol (e) yazar. 4 Yrd.Doç.Dr.Hacer KARACAN
Çıkış Üreten Deterministik Sonlu Otomatlar, Moore ve Mealy makinesi olarak iki türdedir. Moore makinesi durum düzeyinde çıkış üreten, Mealy makinesi ise durum geçişi düzeyinde çıkış üreten makinelerdir. Moore makinesi Moore makinesi, bir sextuple (altılı) şeklinde tanımlanır. M = (K,,, δ, λ, ) K sonlu sayıda durumlar kümesi giriş alfabesi Δ çıkış alfabesi δ geçiş fonksiyonu (transition function) (K x ) dan K ya λ çıkış fonksiyonu K dan ya K başlangıç durumu (sadece bir tane) Örnek: 1 q 4 4 1 q 1 1 2 Durum q 1 Sonraki Durum x = x = 1 q 1 q 3 q 4 Çıkış 1 2 1 1 q 3 q 1 3 q 3 3 q 4 q 3 q 4 4 Giriş 1 1 1 1 1 Durum q 1 q 1 q 3 q 4 Çıkış 1 2 1 3 2 4 5 Yrd.Doç.Dr.Hacer KARACAN
Mealy makinesi Mealy makinesi de bir sextuple (altılı) şeklinde tanımlanır. M = (K,,, δ, λ, ) K sonlu sayıda durumlar kümesi giriş alfabesi Δ çıkış alfabesi δ geçiş fonksiyonu (transition function) (K x ) dan K ya λ çıkış fonksiyonu (K x ) dan ya K başlangıç durumu (sadece bir tane) / 1/1 1/1 /2 1/2 q 3 /1 /1 q 1 1/ Durum q 1 q 3 Sonraki Durum, çıkış x = x = 1, q 1, 1, 2 q 3, 1, 1 q 1, 2, 1 q 3, Giriş 1 1 1 1 Durum q 1 q 3 q 1 q 1 Çıkış 1 1 1 2 2 2 6 Yrd.Doç.Dr.Hacer KARACAN
2 Girişli Deterministik Sonlu Otomat (Deterministic 2-tape Finite Automaton) String çiftlerini kabul eden ve iki girişe sahip olan sonlu otomattır. Geçiş fonksiyonu 1.tape ve 2.tape için ayrı ayrı tanımlıdır. w 1 w 2 (w 1, w 2 ) є {a, b}* x {a, b}* stringlerini w 2 =2 w 1 olması koşuluyla kabul eder. 1. tape için durumlar 2. tape için durumlar Örnek: (w 1, w 2 ) є {a, b}* x {a, b}* string çiftlerini w 2 değerinin w 1 içindeki a sayısının iki katı artı b sayısının üç katına eşit olması koşuluyla kabul eder. 7 Yrd.Doç.Dr.Hacer KARACAN