1 / 21

CSCI 2670 Introduction to Theory of Computing

Explore algorithmic descriptions of Turing machines, understand enumerators, machine equivalence theorems, decidable languages, and depth-first tree algorithms. Learn how Turing machines can simulate various algorithms.

hutchinsonl
Download Presentation

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 11, 2005

  2. Agenda • Last week • Prove equivalence of deterministic and nondeterministic Turing machines • Today • Enumerators • Definition of algorithm • Another class of languages • Decidable October 11, 2005

  3. Announcements • Quiz tomorrow • High-level description of TM • Trace through a TM’s operation • Tape notation & configuration notation • High-level description of equivalences • Homework due next Tuesday (10/18) • 4.4, 4.6, 4.7, 4.12, 4.19 • Old text 4.4, 4.7, 4.8, 4.11, 4.19 October 11, 2005

  4. aaba bbcc aaaaabb Printer M 1 1 2 1 3 ~ ~ ~ Enumerators • Instead of reading an input and processing it, enumerators start with an empty tape and print out strings in Σ* October 11, 2005

  5. Machine equivalence Theorem: A language is Turing-recognizable if and only of some enumerator enumerates it. Proof technique: Construction in each direction October 11, 2005

  6. TM accept enumerator language • TM = “On input w: • Run enumerator E. Every time E prints a string, compare it to w. • If w appears in the output, accept.” October 11, 2005

  7. Enumerator accepts TM language • Let s1, s2, s3, … be all the strings in Σ* • E = “Ignore the input. • For i = 1, 2, 3, … • Run M for i steps on each input s1, s2, …, si • Whenever M accepts a string, print it October 11, 2005

  8. What is an algorithm? • Intuitively, an algorithm is anything that can be simulated by a Turing machine (Church-Turing Thesis) • Many algorithms can be simulated by Turing machines • Inputs can be represented as strings • Graphs • Polynomials • Atomata • Etc. October 11, 2005

  9. Example algorithm • Depth-first walk-through of binary tree • Which nodes do you visit, and in what order, when doing a depth-first search? • Visit each leaf node from left to right • Recursive algorithm October 11, 2005

  10. Binary tree depth-first walk-through • Start at root • Process left subtree (if one exists) • Process right subtree (if one exists) • Process how? • Print the node name • If there is a left subtree then • Process the left subtree • Print the node name again • If there is a right subtree then • Process the right subtree • Print the node name again October 11, 2005

  11. 1 2 3 4 6 5 7 9 8 10 Example 1 2 4 8 4 2 5 9 5 2 1 3 6 10 6 3 7 October 11, 2005

  12. Can a Turing machine do this? • Input must be a string (not a tree) • Can we represent a tree with a string? • Yes. October 11, 2005

  13. 1 2 3 4 6 5 7 9 8 10 1 2 3 4 5 6 7 8 # # 9 10 # # # ~ String representation of a binary tree October 11, 2005

  14. Can a Turing machine do this? • Input must be a string (not a tree) • Can we represent a tree with a string? • Yes • How do we know which node(s) are children of current node • If node is kth node at depth d, it’s position in the string is 2d+k-1 and its children are at position 2d+1+2(k-1) and 2d+1+2k-1 October 11, 2005

  15. What about the output? • Need to write out nodes in a particular order • Can we do this with a TM? • Yes. Add output tape • A TM can move left and right on the input tape writing to the output tape whenever appropriate October 11, 2005

  16. Describing Turing machines • From now on, we can describe Turing machines algorithmically M = “On input w 1. … 2. … …” October 11, 2005

  17. Decidability • A language is decidable if some Turing machine decides it • Not all languages are decidable • We will see examples of both decidable and undecidable languages October 11, 2005

  18. Showing a language is decidable • Write a decider that decides it • Must show the decider • Halts on all inputs • Accepts w iff w is in the language • Can use algorithmic description October 11, 2005

  19. DFA acceptance problem • Consider the language ADFA = {<B,w> | B is a DFA that accepts the string w} Theorem: ADFA is a decidable language Proof: Consider the following TM, M M = “On input string <B,w>, where B is a DFA and w is an input to B • Simulate B on input w • If simulation ends in accept state, accept. Otherwise, reject.” October 11, 2005

  20. NFA acceptance problem • Consider the language ANFA = {<B,w> | B is a NFA that accepts the string w} Theorem: ANFA is a decidable language Proof: Consider the following TM, N N = “On input string <B,w> • Convert B to a DFA C • Run TM M from previous slide on <C,w> • If M accepts, accept. Otherwise, reject.” October 11, 2005

  21. RE acceptance problem • Consider the language AREX = {<R,w> | R is an RE that generates the string w} Theorem: AREX is a decidable language Proof: Consider the following TM, P P = “On input string <R,w> • Convert R to a DFA C using algorithm discussed in class and in text • Run TM M from earlier slide on <C,w> • If M accepts, accept. Otherwise, reject.” October 11, 2005

More Related