1 / 26

CSCI 2670 Introduction to Theory of Computing

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.

elisabethd
Télécharger la présentation

CSCI 2670 Introduction to Theory of Computing

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. CSCI 2670Introduction to Theory of Computing October 7, 2004

  2. Agenda • Yesterday • Test • Today • Continue Turing Machines October 7, 2004

  3. 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

  4. 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 , • : QQ{L,R} is the transition function, October 7, 2004

  5. Formal definition of a TM Definition: A Turing machine is a 7-tuple (Q,,,,q0,qaccept,qreject), where Q, , and  are finite sets and • q0Q is the start state, • qacceptQ is the accept state, and • qrejectQ is the reject state, where qrejectqaccept October 7, 2004

  6. 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

  7. 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

  8. 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

  9. 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

  10. 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

  11. Special configurations • Start configuration • q0w • Halting configurations • Accepting configuration: uqacceptv • Rejecting configuration: uqrejectv • u, v  * October 7, 2004

  12. 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

  13. 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

  14. 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

  15. 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

  16. 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

  17. 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

  18. 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

  19. Exit condition • If you begin to look for the next group of 0’s and reach a ~ then accept October 7, 2004

  20. Have a wonderful weekend! October 7, 2004

  21. 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

  22. Group project 2 • Write a Turing machine that accepts the language {w  {a,b}* | |w| is even} October 7, 2004

  23. Group project 3 • Write a Turing machine that accepts the language {anbm | nm and nm} October 7, 2004

  24. Group project 4 • Write a Turing machine that accepts the language {anbman+m | n0 and m1} October 7, 2004

  25. Group project 5 • Write a Turing machine that accepts the language {wwR | w{a,b}*} October 7, 2004

  26. 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

More Related