260 likes | 270 Views
This session provides an introduction to Turing Machines in the theory of computing, including the formal definition, computation process, configurations, and languages recognized. Includes examples and design exercises.
E N D
CSCI 2670Introduction to Theory of Computing October 7, 2004
Agenda • Yesterday • Test • Today • Continue Turing Machines October 7, 2004
Announcements • Homework due Wednesday • 3.2 b,d 3.5 all, 3.7, 3.8 a,c (high-level descriptions) • Reminder: tutorial sessions are suspended until further notice • Extended office hours while tutorials are suspended • Monday 11:00 – 12:00 • Tuesday 3:00 – 4:00 • Wednesday 3:00 – 5:00 October 7, 2004
Formal definition of a TM Definition: A Turing machine is a 7-tuple (Q,,,,q0,qaccept,qreject), where Q, , and are finite sets and • Q is the set of states, • is the input alphabet not containing the special blank symbol ~ • is the tape alphabet, where ~ and , • : QQ{L,R} is the transition function, October 7, 2004
Formal definition of a TM Definition: A Turing machine is a 7-tuple (Q,,,,q0,qaccept,qreject), where Q, , and are finite sets and • q0Q is the start state, • qacceptQ is the accept state, and • qrejectQ is the reject state, where qrejectqaccept October 7, 2004
Computing with a TM • M receives input w = w1w2…wn* on leftmost n squares of tape • Rest of tape is blank (all ~ symbols) • Head position begins at leftmost square of tape • Computation follows rules of • Head never moves left of leftmost square of the tape • If says to move L, head stays put! October 7, 2004
Completing computation • Continue following transition rules until M reaches qaccept or qreject • Halt at these states • May never halt if the machine never transitions to one of these states! October 7, 2004
TM configurations • The configuration of a Turing machine is the current setting • Current state • Current tape contents • Current tape location • Notation uqv • Current state = q • Current tape contents = uv • Only ~ symbols after last symbol of v • Current tape location = first symbol of v October 7, 2004
Configuration C1 yields C2 • C1 yields C2 if the TM can legally go from C1 to C2 in one step • Assume a, b and u, v * • uaqibv yields uqkacv if (qi,b)=(qk,c,L) • uaqibv yields uacqkv if (qi,b)=(qk,c,R) October 7, 2004
Configuration C1 yields C2 • Special cases if head is at beginning or end of tape • qibv yields qkcv if (qi,b)=(qk,c,L) • qibv yields cqkv if (qi,b)=(qk,c,R) • uaqi is the same as uaqi~ • “handle this case as before” • uaqi~ yields uqkac~ if (qi,b)=(qk,c,L) • uaqi~ yields uacqk~ if (qi,b)=(qk,c,R) October 7, 2004
Special configurations • Start configuration • q0w • Halting configurations • Accepting configuration: uqacceptv • Rejecting configuration: uqrejectv • u, v * October 7, 2004
Strings accepted by a TM • A Turing machine M accepts input sequence w if a sequence of configurations C1, C2, …, Ck exist, where • C1 is the start configuration of M on input w • each Ci yields Ci+1 for i = 1, 2, …, k-1 • Ck is an accepting configuration October 7, 2004
Language of a TM • The language of M, denoted L(M), is • L(M) = {w | M accepts w} • A language is called Turing-recognizable if some Turing machine recognizes it October 7, 2004
Deciders • A Turing machine is called a decider if every string in * is either accepted or rejected • A language is called Turing-decidable if some Turing machine decides it • These languages are often just called decidable October 7, 2004
b c, D qi qk Turing machine notation • (qi,b)=(qk,c,D), where D = L or R, is represented by the following transition • In the special case where (qi,b)=(qk,b,D), i.e., the tape is unchanged, the right-hand side will just display the direction October 7, 2004
Example • Write a TM that accepts all strings of the form 101001000100001 … • Start with a 1 • End with a 1 • Progressively more 0’s between consecutive 1’s October 7, 2004
Design • Check first symbol is a 1 • If not reject • Move right and check if second symbol is a 0 • If not reject • If so, replace with X and begin recursion October 7, 2004
Recursion (high level) • Go back and forth on either side of each 1 • Replace 0’s on right side of 1 with an X • Replace X’s on left side of 1 with a Y • After all X’s on left side of 1 are replaced with Y’s, there should be exactly one on the right side that has not been X’ed • If not, reject • If so, repeat process (recursion step) October 7, 2004
Exit condition • If you begin to look for the next group of 0’s and reach a ~ then accept October 7, 2004
Have a wonderful weekend! October 7, 2004
Group project 1 • Design a Turing machine to accept any string in {a,b}* after making a copy of it on the tape • The tape will start with w • After TM processes the string, the tape should read ww October 7, 2004
Group project 2 • Write a Turing machine that accepts the language {w {a,b}* | |w| is even} October 7, 2004
Group project 3 • Write a Turing machine that accepts the language {anbm | nm and nm} October 7, 2004
Group project 4 • Write a Turing machine that accepts the language {anbman+m | n0 and m1} October 7, 2004
Group project 5 • Write a Turing machine that accepts the language {wwR | w{a,b}*} October 7, 2004
Group project 6 • Design a Turing machine that accepts the language {w{a,b}* | w has more a’s than b’s} October 7, 2004