150 likes | 518 Vues
Deterministic Turing Machines. Constituents. …. …. Infinite tape Head Transition diagram. q 1. q 0. q f. Unique accept state. Also no arrows are coming out. Formal definition. A Deterministic Turing Machine (DTM) is a sextuple (Q, Σ, Γ, δ, q 0 , q f ) where:
E N D
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).