!"#$ %& '()*' ' +,-. / 0 100$ 2 (.-3( 34.(
,-. '45 45 6#5 6+ 6"#0" '7086 $ $ 89 44" :#! ;{0, 1, 2, 3,..., 9}, L * olarak tanımlı olsun ve sadece 2 ye veya 3 e bölünebilen ve önünde 0 olmayan pozitif sayılara sahip olsun. (0, 3, 6, 244 L ve 1, 03, 00 L) )0<# 04" :#!,-. ;{0, 1, 2, 3,..., 9}, L *, 2 ye veya 3 e bölünebilen ve önünde 0 olmayan pozitif sayılara sahiptir 1- L 1 dili pozitif tamsayıların kümesi olsun L 1 = 0 {1, 2,... 9} * (regular) 2- L 2 dili 2 ye bölünebilen pozitif tamsayıların kümesi olsun L 2 = L 1 * {0, 2, 4, 6, 8} (regular)
:#!,-. ;{0, 1, 2, 3,..., 9}, L *, 2 ye veya 3 e bölünebilen ve önünde 0 olmayan pozitif sayılara sahiptir 3-3 e bölünebilen pozitif tamsayıların kümesi olan dili yandaki otomat tanır (regular) 4- L 3 bu otomat ile L 1 in kesiimidir. Sonuç olarak elde edilen dil regular dildir ve L = L 2 L 3 eklinde ifade edilir.,-. ')* * $# ' )* #*( " =#*#' '46$#' 4 > ))#80 )4 ##0 (946 448)4)" :#!;? 4! @)"48# 45)##)4)) #" 2 8(0'6*' (0 +7089 *4" :#!;?! A @)"=0( $#"
,-. L = { a n b n : n 0 } eklinde tanımlanmı olsun. Eer bu dil regular ise bir sonlu otomat tarafından tanınır. n = 96 için a 96 b 96 olur. Toplam 95 duruma sahip bir otomat bu dili tanıyor olsun. En az bir noktada yol daha önce geçtii durumlara geri döner ve tekrar geçer. Bu tekrar geçilere loop adı verilir. Aaıdaki 10 durumlu otomat a 9 b 9 için geçileri vermektedir. Otomatta sadece geçilen yollar verilmitir. a 13 b 9 için nasıl bir yol izlenir?,-. a 13 b 9 için 6-3-4-5 yolunda bir tur daha atılır. a 9 (a 4 ) m b 9, m 0 eklinde tanımlanan tüm stringleri tanır. (Örn : a 25 b 9 ) Bu ekilde bir string in önündeki ve sonundakine bakmadan ortasına ekleme yapmaya pumping denilmektedir. String in önündeki ve/veya sonundaki bo olabilir.
,-. Teorem: Sonsuz sayıda string e sahip bir regular L dilinde kendisini tanıyan otomatın durum sayısından fazla sembole sahip tüm stringler için x, y, z eklinde üç substring tanımlanabilir ve tüm stringler xy n z olarak parçalarla ifade edilebilir. (n = 1, 2, 3,...) spat: L dilinde sonsuz string olduu için bazı w stringleri kendisini tanıyan otomatın durum sayısından daha fazla sembole sahiptir. Bu stringler için otomat üzerinde loop oluur. w string leri x, y, z olarak üç kısımda incelenebilir; 1. x yeniden geçilen ilk duruma kadar olan sembolleri içersin. x eer bo ise loop balangıç durumunuda içine almıtır. 2. y string i, x den hemen sonra balayıp loop un sonuna kadar olan kısmı içersin. Bir loop olutuu için y bo olamaz. 3. z string i loop tan hemen sonra balayıp w string inin sonuna kadar olan kısmı içersin. z bo ise loop sonuç durumunuda içine almıtır.,-. Teorem: (devam) Sonsuz sayıda string e sahip bir regular L dilindeki tüm stringler için x, y, z eklinde üç string tanımlanabilir ve tüm stringler xy n z olarak parçalarla ifade edilebilir. (n = 1, 2, 3,...) xyz, xyyz, xyyyz,...xy n z string leri tanınır. xyz xyyz
,-. Örnek : Aaıdaki otomatta - balangıç + sonuç durumlarını göstermektedir ve w = bbbababa string ini tanır. Durum sayısından fazla sembol olduu için loop olmak zorundadır. x = b, y = bba ve z = baba alınabilir.,-. Örnek : L = {a n b n : n 0} dili regular deildir. Eer L regular olsaydı tüm string ler x, y, z olarak üç parçaya ayrılabilirdi. Tipik bir string aaa...aaaabbbb...bbb eklindedir. Eer y, a ları içerirse xyyz eklindeki string daha fazla a içerir ve elde edilen string L diline ait deildir. Eer y, b leri içerirse xyyz eklindeki string daha fazla b içerir ve elde edilen string L diline ait deildir. Eer y, ortadaki a ve b leri içerirse xyyz string i iki tane ab substringine sahiptir. L dilindeki tüm stringler sadece bir tane ab substringine sahip olabilecei için bu string L diline ait deildir. Bunların sonucu olarak L dili regular deildir.
/ 0 Teorem: L regular dil olsun. Dile balı olarak seçilen bir n 1 için w n olacak ekilde bir w L string i vardır ve w = xyz, y e, xy neklinde yeniden yazılabilir. Her i 0 için xy i z L olur. spat: L regular dil olduundan deterministic finite automata M tarafından kabul edilir. M automata nın n duruma sahip olduunu varsayalım ve w = m, m n olsun. M automata nın ilk m adımı aaıdaki gibidir; (q 0, w 1 w 2...w m ) M (q 1, w 2...w m ) M... M (q m, e) / 0 spat: (devam) (q 0, w 1 w 2...w m ) M (q 1, w 2...w m ) M... M (q m, e) Burada q 0 balangıç durumu ve w 1 w 2...w m ilk m semboldür M, n adet duruma sahiptir ancak m n adet konfigürasyon vardır. Pigeonhole prensibine göre 0 i < j m olacak ekilde i ve j sayıları vardır ve q i = q j olur. y = w i w i+1... w j vardır ve q i durumundan tekrar q i durumuna geçi yapar. i < j olduu için y bo olamaz. y string i w dan atılarak veya istendii kadar tekrar edilerek bulunan stringler de M tarafından tanınır. i 0 olmak üzere xy i z L olur.
/ 0 0 )4 # #" :$#4n 4" (0 n84w84" w8xyz5#0" xy i z L $#5#4i)4" B)45#4)4 L )" / 0 Örnek: (tekrar) L = { a i b i : i 0 } dili regular deildir. spat: w = a n b n L olduunu varsayalım. Pumping teoreminden w = xyz yazılabilir. xy n alınırsa ve y e, y = a i, i > 0 deerleri için. y nin çıkarıldıı string olan xz = a n-i b n olur ve L diline ait deildir. Bu sonuç y = b i, i > 0 içinde aynıdır. Böylece bu dil regular deildir.
/ 0 Örnek: L = { a k : k asal sayı } dili regular deildir. spat: Pumping teoreminden w = xyz yazılabilir. p, r 0, q > 0 için x = a p, y = a q, ve z = a r olsun. Teoremden xy n z L olduundan n 0 için p + nq + r asal sayı olmak zorundadır. n = p + 2q + r + 2 için p + nq + r = (q + 1)(p + 2q + r) olur. Burada iki çarpanda 1 den büyüktür ve böylece p + nq + r asal sayı olamaz. n = p + 2q + r + 2 için elde edilen string L diline ait deildir. / 0 Örnek: L = { w { a, b} * : w eit sayıda a ve b ya sahiptir } dili regular deildir. spat: Bu ispat closure özellii ile yapılabilir. Eer L dili regular ise, regular bir dil ile kesiim ilemi kapalı olur. Ancak L a * b * kesiiminin sonucunda elde edilen dil {a n b n : n 0 } olur. {a n b n : n 0 } regular dil olmadıı için L dilide regular deildir. Örnek: L = {ab, abba, aabb, abab, aaabbb,...}, L(a * b * ) = {a, b, aa, ab, aab, bb, aabb, abbbb, aaabbb,...} L a * b * = {ab, aabb, aaabbb,...}
2 4# * # 4 4" 5)# L=(ab ba) * " q 7 $(45 " C$(4 8#4" -854# 0 0 #" 2 C$(4 4 5)#4> R := {s}; while there is a state p R and a and δ(p, a) R do add δ(p, a) to R (# (04" q 4 q 6 #8D" '4 # 454" q 4 q 6 # *''" # ) *'4"
2 3!L * ve x, y * olsun. Eer z * ve xz L iken yz L olursa x ve y, L diline göre denk olarak adlandırılır, x L y eklinde gösterilir. x ve y string lerinin ikiside L diline ait olabilir veya olmayabilir. Sonlarına eklenen herhangi bir string x ve y i L diline ait yapabilir veya yapmayabilir. 2 Örnek: x bir string ve L bir dil ise, [x] bu L diline göre x in sahip olduu denk sınıfı göstersin. Aaıdaki otomat L = (ab ba) * dilini tanır ve L için 4 denk sınıf vardır; 1. [e] = L 2. [a] = La 3. [b] = Lb 4. [aa] = L(aa bb)* 1. durumda herhangi bir x L için, x = e bile olsa xz L yapan her z string ide L diline aittir. 2. durumda herhangi bir x La string i xz L olabilmesi için z string inin bl eklinde olması gereklidir. 3. durumda z string inin bl eklinde olması gereklidir. 4. durumda hiçbir z string i L(aa bb) prefix i için bu string i dile ait yapamaz. 1. durumdaki kümeye ait tüm stringler aynı durumlara, ve dier 2., 3., veya 4. durumlardaki string kümeleride aynı durumlara götürür.
2 3!M = (K,, δ, s, F) bir deterministic automata olsun. Eer iki string x, y * M otomatını s balangıç durumundan aynı duruma götürüyorsa denktir ve x M yeklinde gösterilir. (s, x) * M (q, e) ve (s, y) * M (q, e) ise x M y olur. Herhangi bir q durumu için denk sınıf E q eklinde gösterilir. Bu durumların s balangıç durumundan eriilebilir olması zorunludur. 2 Örnek: Aaıdaki otomat L = (ab ba) * dilini tanır ve M için 6 denk sınıf vardır; 1. E q1 = (ba) * 2. E q2 = La a 3. E q3 = abl 4. E q4 = b(ab)* 5. E q5 = L(bb aa)* 6. E q6 = ablb Teorem: Deterministic M = (K,, δ, s, F) otomatında herhangi x, y * string leri için x M y ise x L(M) y olur.
(.-3( Teorem: L * regular dil olsun. L dilini tanıyan ve L içindeki denk sınıfların sayısına tam eit sayıda duruma sahip olan bir deterministic automata vardır. spat: x * string i için L ilikisi içinde denk sınıflar [x]eklinde gösterilir. Bu dil için M = (K,, δ, s, F) otomatı aaıdaki gibi oluturulabilir; K = { [x] : x * }, L altında denk sınıflar kümesi s = [e], L altında e için denk sınıflar kümesi F = { [x] : x L }, Son olarak herhangi bir [x] K ve herhangi bir a için, δ([x], a) = [xa] geçileri tanımlanır. (.-3( Örnek: L = (ab ba) * dilini tanıyan 6 duruma sahip olan deterministic otomat 4 durumla gösterilebilir. Corollary: L bir regular dildir, eer L sonlu sayıda denk sınıfa sahipse. spat : L = L(M) regular ise, en az L deki denk sınıfların sayısı kadar duruma sahip bir M deterministic sonlu otomat vardır.
2 Örnek: Aaıdaki otomat ın en az duruma sahip eitini bulalım. denk durum var mıdır? C ve G denk deildir! A ve G denk midir? - e-string için ikisi denktir. Çünkü ikiside final state deildir. 0 için ikisi B ve G ye gider. kiside final state deildir ve denktir. 1 için F ve E ye giderler. kiside final state deildir ve denktir. 01 için sırasıyla C ve E ye giderler. C final state E deildir. Böylece 01 için denk deillerdir. Herhangi bir string için seçilen iki durumdan birisi final state e giderken dieri gitmiyorsa denk olmadıkları ispat edilmi olur. 2 Örnek: Aaıdaki otomat ın en az duruma sahip eitini bulalım. A ve E durumlarına bakalım. kiside final state olmadıı için e- string için denktirler. 1 için ikiside F ye gider. 1 le balayan tüm stringler için denktirler. 0 için B ve H ye giderler. kiside final state olmadıı için denktir. 01 için ikiside C ye 00 için ikiside G ye gider. δ(a, *)= δ(e, *)
2 Denk durumların bulunması için tüm durumları tek tek test etmek gerekir. Bu zor ve zaman alıcıdır. Hata yapma olasılıı yüksektir. Bunun yerine Tablo Doldurma Algoritması kullanılır. Durumların kendi kendisini içermeyecek ekilde bir tablo hazırlanır. Balangıçta final state ler ile dierleri denk deil olarak iaretlenir. Örnek: 2 C final state tir. C ile dier durumlar arasına x konur. Dier durum çiftlerinde 0 ve/veya 1 girileri için final state ve dier durumlara gidiliyorsa x ile iaretlenir. Örn: E ve F 0 için H ve C ye gider. C final state ve H final state deil E ve F çifti iaretlenir. Örnein A ve G için 1 giriinde F ve E ye gider. E-F çifti iaretli olduu (denk olmadıı) için A-G iaretlenir.
2 Örnek: (devam) A-E, B-H ve D-F durumları denk durumlardır ve birletirilebilir. 2 Örnek: (devam) States kümesinin partition kümesi, ({A, E}, {B, H}, {C}, {D, F}, {G}) olarak oluturulur. Denk durumlar transitive dir. p-q denk ise ve q-r denk ise p-r de denktir. Partition kümesindeki her bir eleman bir durum olarak oluturulur. Balangıç durumu {A, E} dir. Çünkü A orijinal otomatta balangıç durumudur. C final state dir. Çünkü orijinal otomatta final state dir. Yeni oluturulan her bir durumun tüm giriler için geçileri düzenlenir. Örnek: {A, E} 0 için {B, H} ye geçer. Orijinal otomatta A 0 için B ye E ise H ye geçer. {A, E} 1 için {D, F} ye geçer. Orijinal otomatta A 1 için F ye ve E 1 için F ye geçer.
2 Örnek: Aaıdaki otomata denk minimum duruma sahip otomatı bulunuz. : /4 *''E"<"<6E"<" 9F /4 *''E"" 9AA