260 likes | 350 Views
CSCI 2670 Introduction to Theory of Computing. September 29, 2005. Agenda. Yesterday Turing machines Today Continue Turing Machines. Announcements. Homework due Wednesday 3.2 c & e, 3.6, 3.8 b, 3.12, 3.13 I will accept homeworks until 11:00 Thursday Quiz Tuesday
E N D
CSCI 2670Introduction to Theory of Computing September 29, 2005
Agenda • Yesterday • Turing machines • Today • Continue Turing Machines September 29, 2005
Announcements • Homework due Wednesday • 3.2 c & e, 3.6, 3.8 b, 3.12, 3.13 • I will accept homeworks until 11:00 Thursday • Quiz Tuesday • Turing machine definition, calculation, and design • Tests will be returned next Tuesday • Ignore comment about tutorials being cancelled September 29, 2005
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, September 29, 2005
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 September 29, 2005
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! September 29, 2005
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! September 29, 2005
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 September 29, 2005
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) September 29, 2005
Configuration C1 yields C2 • Special cases if head is at beginning or end of tape • uaqibv yields uqjacv if (qi,b)=(qk,c,L) • uaqibv yields uacqkv if (qi,b)=(qk,c,R) • Special cases • qibv~ yields qjac~ if (qi,b)=(qk,c,L) and tape head is at beginning of tape • uaqi~ yields uacqk~ if (qi,b)=(qk,c,R) September 29, 2005
Special configurations • Start configuration • q0w • Halting configurations • Accepting configuration: uqacceptv • Rejecting configuration: uqrejectv • u, v * September 29, 2005
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 September 29, 2005
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 September 29, 2005
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 September 29, 2005
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 September 29, 2005
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 September 29, 2005
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 September 29, 2005
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) September 29, 2005
Exit condition • If you begin to look for the next group of 0’s and reach a ~ then accept September 29, 2005
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 September 29, 2005
Group project 2 • Write a Turing machine that accepts the language {w {a,b}* | |w| is even} September 29, 2005
Group project 3 • Write a Turing machine that accepts the language {anbm | nm and nm} September 29, 2005
Group project 4 • Write a Turing machine that accepts the language {anbman+m | n0 and m1} September 29, 2005
Group project 5 • Write a Turing machine that accepts the language {wwR | w{a,b}*} September 29, 2005
Group project 6 • Design a Turing machine that accepts the language {w{a,b}* | w has more a’s than b’s} September 29, 2005