!"#$ %& '()*' ' +. $-$( /$% /$0 -(1($(2--(
3 #*'- # 4(5 (6" #7##0 7 $$(5 (6",7 - #, $$ -$(2,-0 # # *'6' (6" 6(50 #" #06 $8# 0 #0 7" 976 0#$ 6 $$" 76 $:;)8) (6",-07#$87 07" $8#< 6 $ < 6))70"
,-$#',-$#' j register numarasını gösterir (1 j < k). (k register sayısıdır) T[i], i.tape alanının içeriini gösterir. R j, j.register içeriini gösterir. s p programdaki instruction sıra numarasını gösterir. c doal sayıdır. bir sonra çalıtırılacak instruction adresini saklar. Bütün instruction lar aksi belirtilmedii sürece program sayacını bir artırır. Register 0 akümülator olarak kullanılır. Aritmetik ve lojik ilemlerde kullanılır. Makinenin çalıması bir halt instruction ile sonlandırılır.
Tanım: RATM M = (k, )eklinde bir ikiliyle ifade edilir. k > 0 olmak üzere register sayısını gösterir. = ( 1, 2,..., p,) olmak üzere sonlu sayıda instruction a sahip programı gösterir. Burada her i bir instruction ı gösterir. p son instruction dır ve halt olduu varsayılır. Program içinde baka halt instruction ları olabilir. Tanım: RATM için konfigürasyon k+2 tuple dır ve (, R 0, R 1,..., R k-1, T) eklinde ifade edilir. Burada N program counter ve 0 ile p arasındadır. Halted konfigürasyonu için sıfırdır. R j, j.register in imdiki deeridir. (0 j < k) T, tape içeriini gösterir, sonlu sayıda pozitif tamsayı çifti kümesidir ve (N {0} x N {0}) (i 1) olmak üzere (i, m) T eklinde gösterilir. i.tape alanının içerii m dir. (m > 0)
Tanım: M = (k, ) bir RATM olsun. Bir konfigürasyon C=(, R 0, R 1,..., R k-1, T) bir adım sonra C8=(8, R8 0, R 1,..., R8 k-1, T8) konfigürasyonuna geçiyorsa C M C8eklinde gösterilir. Eer k instruction ı read jeklinde ise, (j < k) R 0 register ı tape biriminin R j ile gösterilen alanının deerini alır. Tape alanı R j register ı tarafından adreslenir. Böylece R8 0 = T(R j ) olur ve T(R j ) unique bir deere sahiptir ve (R j, m) T dir. 8 = + 1 olur. Eer k instruction ı add = ceklinde ise, (c 0) R8 0 = R 0 + c ve 8 = + 1 olur. Eer k instruction ı write j eklinde ise, (j < k) 8 = + 1 olur. Tape biriminde R j nin deeriyle belirtilen sıradaki alana R 0 yazılır. Eer k instruction ı jpos s eklinde ise, (1 s p) eer R 0 > 0 ise8=s olur. Eer R 0 0 ise 8 = + 1 olur. * M ilikisi, M ilikisinin reflexive, transitive closure udur. Örnek (Çarpma): M = (k, ) bir RATM için iki sayının çarpımını yapan mply adında bir instruction ekleyelim. Register 0 x deerine ve Register 1 y deerine sahip olsun. RATM halt durumuna ulaınca Register 0 içinde x.y deeri olacaktır. Çarpma ilemi ardarda toplama ilemleriyle yapılacaktır.
Örnek (Çarpma): (devam) x y x+x z w z = y / 2 y z - z - Balangıçta R0 = x ve R1 = y. - Sonuçta R0 = x.y dir. w = w + x - mply 1 ilemi gerçekletirilir. x = x + x - Program her iterasyonda 2-18 arasındaki ilemleri yapar k.iterasyonda Register 2 = x2 k y = z Register 3 = y / 2 k Register 1 = y / 2 k-1 Register 4 = x.(y mod 2 k ) Örnek: R 1 := R 2 + R 1 1 1. load 1 2. add 2 3. sub = 1 4. store 1 Örnek: while x > 0 do x:= x 3 (x = Register 1) 1. load 1 2. jzero 6 3. sub = 3 4. store 1 5. jump 1
Örnek (Çarpma): w := x. y deerini hesaplar. w:= 0 while y > 0 do begin z:= half(y) if y z z 0 then w:= w + x x:= x + x y:= z end halt y R 1, x R 2, z R 3 ve w R 4 göstermektedir. Tanım: E, Σ ve {0, 1,, Σ 1} arasında bir bijection olsun (E() = 0). w = a 1 a 2 a n (Σ - ) * girii için bir RATM M = (k, ) nin balangıç konfigürasyonu (, R 0,, R k-1, T) olsun. Burada, = 1, R j = 0, ve T = {(1, E(a 1 )), (2, E(a 2 )),, (n, E(a n ))} M, w Σ * girii için halt durumuna ulatıında R 0 =1 ise bu string i kabul eder R 0 =0 ise bu string i red eder.
Örnek: L = {a n b n c n : n 0} dilini tanıyan RATM programını yazınız. acount:= bcount:= ccount:= 0, n:= 1 while T[n] = 1 do n:= n + 1, acount:= acount + 1 while T[n] = 2 do n:= n + 1, bcount:= bcount + 1 while T[n] = 3 do n:= n + 1, ccount:= ccount + 1 if acount = bcount = ccount and T[n] = 0 then accept - E(a) = 1, E(b) = 2, E(c) = 3 else reject - accept için load =1, halt ve reject için load =0, halt yazılabilir.. $-$( Bir nondeterministic Turing makinesi (K,,, s, H) eklinde quintuple olarak ifade edilir. K,, s, H standart Turing makineleriyle aynıdır. geçi ilikisi ((K H) x) x ((K x ( {, }) kümesinin alt kümesidir. * M ilikisi, M ilikisinin reflexive, transitive closure udur. Bir konfigürasyon M için birden fazla konfigürasyona geçilebilir. M, w (Σ {, }) * giriini kabul eder eer h H, a Σ ve u, v Σ * için (s,w) * M (h,uav) ise.
/$% Context-free gramerler terminal () ve nonterminallerin (V-) kümesi olan bir alfabeye sahiptir. A u (A V-, ve u V * ). Bir context-free gramer balangıç string S ile balayıp sürekli sol taraftaki nonterminal yerine kuralların sa tarafını deitirmektedir. CFG de bütün kuralların sol tarafları bir nonterminale sahiptir. Bir unrestricted gramerde ise kuralların sol tarafı en az bir tane nonterminale sahip olmak kaydıyla bir string olabilir. Sonuçta üretilen string CFG deki gibi sadece terminallerden oluabilir. /$% Tanım: Bir unrestricted grammer G = (V,, R, S) eklinde quadruple ile gösterilir. V V bir alfabe terminaller kümesi S V balangıç sembolü R kurallar kümesi, R (V * (V )V * )xv * u v yazılabilir eer (u, v) R ise u G v yazılabilir eer w 1,w 2 V *,u8 v8 R için u = w 1 u8w 2, v = w 1 v8w 2 ise * G, G geçilerinin reflexive, transitive, closure udur. Bir w string i G grameri tarafından üretilir eer S * G w ise
/$% Örnek: G = (V,, R, S) grameri L = {a n b n c n :n 1} dilini üretir. V = {S, a, b, c, A, B, C, D, T a, T b, T c } ve = {a, b, c} R = { SABCS, lk iki kural (ABC) n T c üretir ST c, CAAC, Sonraki üç kural A,B,C leri sıralar BAAB, A n B n C n Tc oluur CBBC, CT c T c c, Dier kurallar C yerine c, B yerine b, CT c T b c, A yerine a yazar BT b T b b, BT b T a b, AT a T a a, T a e } /$% Örnek: (devam) a 2 b 2 c 2 string inin üretilii aaıdadır. R = { SABCS, S G ABCS ST c, G ABCABCS G ABACBCS CAAC, G AABCBCS G AABBCCS BAAB, G AABBCCT c G AABBCT c c CBBC, G AABBT b cc G AABT b bcc CT c T c c, G AAT a bbcc G AT a abbcc CT c T b c, G T a aabbcc G aabbcc BT b T b b, BT b T a b, AT a T a a, T a e }
/$0 Church-Turing thesis Bu derste farklı hesaplama süreçleri için farklı matematiksel modeller verilmitir. Özellikle bir dilin decide, semidecide edilmesi ve language generator ve hesaplama fonksiyonları için modeller gelitirilmitir. Bir Turing makinesinin özelliklerinin artırılması (RATM) aslında hesaplama kabiliyetini arttırmamaktadır. Bir hesaplama makinesi bir algoritmanın gerçekletirilmesi için tasarlanır. /$0 Church-Turing thesis (devam) Bütün giriler için halt durumuna ulaan Turing makineleri algoritmadır. Bu prensip Church-Turing thesis olarak adlandırılır. Semidecide yapan Turing makineleri algoritma deillerdir. Church-Turing tezinin doruluu matematiksel olarak ispatlanamamıtır, yanlılııda ispatlanamamıtır. Church-Turing tezine göre, Turing makinesiyle gerçekletirilemeyen hesaplamalar undecidable olarak adlandırılır.
= >0 *''?"?"@ 5@@: >0 *''?"A": 5@@