Deterministic Turing Machines
Unique accept state. Also no arrows are coming out. Constituents Infinite tape Head Transition diagram … … q1 q0 qf Unique accept state. Also no arrows are coming out.
Formal definition A Deterministic Turing Machine (DTM) is a sextuple (Q, Σ, Γ, δ, q0, qf) where: Q is a finite set of states Σ is the input alphabet Γ is the tape alphabet, Σ ⊆ Γ There is a special blank symbol □ in Γ q0 is the start state qf is the final state δ: Q x Γ → Q x Γ x {L,R,S}, where L stands for Left, R stands for Right and S stands for Stay.
Formal definition (cont.) δ(q , a) = (q’ , b, L) means: “if you are in state q and the head in the tape points to symbol a then move to state q’, replace symbol a with symbol b in the tape and move the head one position to the left” Illustration: … … … … a b head head q‘ q‘ a→b,L … a→b,L … … q … q
Determinism Determinism means that I have no choices! The transition function δ sends pair (q, a) to at most one triple (q’, b, x) (in other words there is at most one arrow from state q reading symbol a –maybe there are no such arrows). No ε-moves are allowed (I must read something in the tape in order to change state).
Machine’s special status Start: Be at initial state , the tape contains only the input and the head points to the first (leftmost symbol of the input) Accept: Reach the accept state. The machine stops the computation and accepts (notice that part of the input might be unread). Reject: Be in a state q (other than the accept state), read symbol a and find no outgoing arrows under symbol a. Loop for ever: Enter a subset of states which repeat for ever (different than the “reject case”)
Machine’s special status Start: … … a b a a b head q1 a→b,R q0 …
Machine’s special status Accept: … … b b a a b head … qf
Machine’s special status Reject: … … b b a a b head q’ … a→b,R q …
Machine’s special status Loop: … … b b a a b head … q b→b,S
Recursive Languages A language is recursive (or decidable, or computable) if there is a Turing Machine which: Accepts for every string in the language Rejects for every string not in the language
Example Find a DTM that computes the language L = {anbn : n ≥ 0}. High level program: Repeat Erase an a. Pass along the rest of as. Erase a b Pass along the rest of bs. Go to the beginning of the input. Until either the whole input is erased (accept) or you find unmatched as or bs (reject).
Example Find a DTM that computes the language L = {anbn : n ≥ 0}. Answer: a → a , R x → x , R x → x , R b → b , R a → x , R b → x , R q0 q1 q2 □ → □ , R □ → □ , L □ → □ , R qf q3 a → a , L b → b , L x → x , L
Testing Test the machine for several possible inputs to see if it works as it should. Test inputs: ε (it should accept) aaabbb (it should accept) aaabb (it should reject) aabbb (it should reject) aabba (it should reject) (See file dtm_example.pptx).