Foundations of (Theoretical) Computer Science

Slides:



Advertisements
Similar presentations
Algorithms Sipser 3.3 (pages ). CS 311 Fall Computability Hilbert's Tenth Problem: Find a process according to which it can be determined.
Advertisements

Turing Machines Memory = an infinitely long tape Persistent storage A read/write tape head that can move around the tape Initially, the tape contains only.
CS 345: Chapter 9 Algorithmic Universality and Its Robustness
Foundations of (Theoretical) Computer Science Chapter 3 Lecture Notes (Section 3.2: Variants of Turing Machines) David Martin With.
Applied Computer Science II Chapter 3 : Turing Machines Prof. Dr. Luc De Raedt Institut für Informatik Albert-Ludwigs Universität Freiburg Germany.
1 Introduction to Computability Theory Lecture12: Decidable Languages Prof. Amos Israeli.
1 Introduction to Computability Theory Lecture12: Reductions Prof. Amos Israeli.
Algorithms Sipser 3.3 (pages ). CS 311 Mount Holyoke College 2 Computability Hilbert's Tenth Problem: Find “a process according to which it can.
1 Introduction to Computability Theory Lecture11: Variants of Turing Machines Prof. Amos Israeli.
CS5371 Theory of Computation Lecture 11: Computability Theory II (TM Variants, Church-Turing Thesis)
Lecture 2: Fundamental Concepts
Foundations of (Theoretical) Computer Science Chapter 2 Lecture Notes (Section 2.1: Context-Free Grammars) David Martin With some.
CS 310 – Fall 2006 Pacific University CS310 Turing Machines Section 3.1 November 6, 2006.
Lecture 5 Turing Machines
Computation Theory Introduction to Turing Machine.
CHAPTER 3 The Church-Turing Thesis
Foundations of (Theoretical) Computer Science Chapter 4 Lecture Notes (Section 4.1: Decidable Languages) David Martin With modifications.
Foundations of (Theoretical) Computer Science Chapter 1 Lecture Notes (Section 1.1: DFA’s) David Martin With some modifications.
Automata & Formal Languages, Feodor F. Dragan, Kent State University 1 CHAPTER 5 Reducibility Contents Undecidable Problems from Language Theory.
CS5371 Theory of Computation Lecture 10: Computability Theory I (Turing Machine)
Prof. Busch - LSU1 Turing Machines. Prof. Busch - LSU2 The Language Hierarchy Regular Languages Context-Free Languages ? ?
Foundations of (Theoretical) Computer Science Chapter 1 Lecture Notes (Section 1.4: Nonregular Languages) David Martin With some.
1 Introduction to Computability Theory Lecture11: The Halting Problem Prof. Amos Israeli.
Foundations of (Theoretical) Computer Science Chapter 1 Lecture Notes (Section 1.2: NFA’s) David Martin With some modifications.
More Theory of Computing
Theory of Computing Lecture 15 MAS 714 Hartmut Klauck.
The class P Section 7.2 CSC 4170 Theory of Computation.
Decidable languages Section 4.1 CSC 4170 Theory of Computation.
The Church-Turing Thesis Chapter 3 Giorgi Japaridze Theory of Computability.
Foundations of (Theoretical) Computer Science Chapter 3 Lecture Notes (Section 3.1: Turing Machines) David Martin With some modifications.
1Computer Sciences Department. Book: INTRODUCTION TO THE THEORY OF COMPUTATION, SECOND EDITION, by: MICHAEL SIPSER Reference 3Computer Sciences Department.
Automata & Formal Languages, Feodor F. Dragan, Kent State University 1 CHAPTER 3 The Church-Turing Thesis Contents Turing Machines definitions, examples,
CSCI 2670 Introduction to Theory of Computing October 12, 2005.
CSC 3130: Automata theory and formal languages Andrej Bogdanov The Chinese University of Hong Kong Turing Machines.
TM Design Macro Language D and SD MA/CSSE 474 Theory of Computation.
Donghyun (David) Kim Department of Mathematics and Computer Science North Carolina Central University 1 Chapter 3 Church-Turing Thesis Some slides are.
CS 208: Computing Theory Assoc. Prof. Dr. Brahim Hnich
Computability Review homework. Video. Variations. Definitions. Enumerators. Hilbert's Problem. Algorithms. Summary Homework: Give formal definition of.
CSCI 2670 Introduction to Theory of Computing October 13, 2005.
Overview of the theory of computation Episode 3 0 Turing machines The traditional concepts of computability, decidability and recursive enumerability.
1 Turing Machines. 2 The Language Hierarchy Regular Languages Context-Free Languages ? ?
Automata & Formal Languages, Feodor F. Dragan, Kent State University 1 CHAPTER 3 The Church-Turing Thesis Contents Turing Machines definitions, examples,
 2004 SDU 1 Algorithm Informally speaking, an algorithm is a collection of simple instructions for carrying out a task. Example:  Elementary arithmetic.
1 Introduction to Turing Machines
1 CD5560 FABER Formal Languages, Automata and Models of Computation Lecture 12 Mälardalen University 2007.
1 Turing Machines. 2 The Language Hierarchy Regular Languages Context-Free Languages ? ?
Donghyun (David) Kim Department of Mathematics and Computer Science North Carolina Central University 1 Chapter 5 Reducibility Some slides are in courtesy.
Turing Machines Sections 17.6 – The Universal Turing Machine Problem: All our machines so far are hardwired. ENIAC
Foundations of (Theoretical) Computer Science Chapter 4 Lecture Notes (Section 4.2: The “Halting” Problem) David Martin With modifications.
FORMAL LANGUAGES, AUTOMATA, AND COMPUTABILITY * Read chapter 4 of the book for next time * Lecture9x.ppt.
Modeling Arithmetic, Computation, and Languages Mathematical Structures for Computer Science Chapter 8 Copyright © 2006 W.H. Freeman & Co.MSCS SlidesTuring.
The Church-Turing Thesis
CSC 4170 Theory of Computation The class P Section 7.2.
Busch Complexity Lectures: Turing Machines
CSC 4170 Theory of Computation The class P Section 7.2.
CSE 105 theory of computation
Turing Machines 2nd 2017 Lecture 9.
CSE 105 theory of computation
CSE 2001: Introduction to Theory of Computation Fall 2013
CSE 105 theory of computation
فصل سوم The Church-Turing Thesis
CSCI 2670 Introduction to Theory of Computing
Theory of Computability
CS21 Decidability and Tractability
The Church-Turing Thesis
CSE 105 theory of computation
Theory of Computability
CSE 105 theory of computation
CSE 105 theory of computation
Presentation transcript:

91.304 Foundations of (Theoretical) Computer Science Chapter 3 Lecture Notes (Section 3.3: Definition of Algorithm) David Martin dm@cs.uml.edu With significant modifications by Prof. Karen Daniels, Fall 2009 This work is licensed under the Creative Commons Attribution-ShareAlike License. To view a copy of this license, visit http://creativecommons.org/licenses/by-sa/2.0/ or send a letter to Creative Commons, 559 Nathan Abbott Way, Stanford, California 94305, USA.

Overview Algorithm Hilbert’s Problems Intuitive definition Hilbert’s Problems Show how definition of algorithm was crucial to one mathematical problem Introduce Church-Turing Thesis Terminology for Describing Turing Machines Levels of description

What’s It All About? Algorithm: steps for the computer to follow to solve a problem well-defined computational procedure that transforms input into output (analysis of algorithms is studied in 91.404)

Hilbert’s Problems Show how definition of algorithm was crucial to one mathematical problem. Mathematician David Hilbert (in 1900) posed his famous grand-challenge list of 23 problems to the mathematical community. 10th problem: devise a “process” that tests whether a given polynomial has an integral root. Root is assignment of values to variables such that result = 0. Example: What are the root(s)? Are they integers?

Hilbert’s Problems 10th problem asks if D is decidable. It is not decidable! It is Turing recognizable. Motivate key idea using simpler problem: TM M1 recognizing D1: M1=“The input is a polynomial p over variable x. 1. Evaluate p with x set successively to the values 0, 1, -1, 2, -2, … If at any point p evaluates to 0, accept.” If an integral root exists, M1 will find one and accept. If no integral root exists, M1 runs forever…

Hilbert’s Problems 10th problem asks if D is decidable. It is not decidable! It is Turing recognizable. TM M recognizing D: Similar to M1 but tries all possible settings of variables to integral values. M and M1 are recognizers, not deciders! M1 (not M) can be converted to a decider via clever bounds on roots: k = number of terms cmax = coefficient with largest absolute value c1 = coefficient of highest order term Matijasevic’s Theorem: such bounds don’t exist for M.

The Church-Turing Thesis Any algorithmic-functional procedure that can be done at all can be done by a Turing machine This isn't provable, because “algorithmic-functional procedure” is vague. But this thesis (law) has not been in serious doubt for many decades now. TMs are probably the most commonly used low-level formalism for functional algorithms and computation Commonly used high-level formalisms include pseudocode and all actual programming languages. By Church-Turing thesis, these are all equivalent in terms of what they can (eventually) do. Of course they have different ease-of-programming and time/memory efficiency characteristics. Intuitive notion of algorithms “equals” Turing machine algorithms.

Terminology for Describing Turing Machines Some ways to describe Turing machine computation: Formal description (7-tuple) M=(Q,,,,q0,qacc,qrej) Detailed state diagram. Implementation-level description English prose describing way TM moves its head and modifies its tape. Instantaneous descriptions (IDs) specifying snapshots of tape and read-write head position as computation progresses on a specific input. High-level English prose describing algorithm. As in M1 (finding integral roots for polynomial over x) Comfort with one level allows “transition” to less detailed level of description… See next slide for format and notation for high-level description.

Terminology for Describing Turing Machines (continued) Input to TM is a string. Encoding an object O as a string: < O > Encoding multiple objects as strings: O1, O2 ,…, Ok is encoded as: < O1, O2 ,…, Ok > Turing machine can translate one encoding into another, so just pick a reasonable encoding.

Terminology for Describing Turing Machines (continued) Example: M3=“On input <G>: Select first node of G and mark it. Repeat step 3 until no new nodes are marked: For each node in G, mark it if it is attached by an edge to a node that is already marked. Scan all nodes of G to check if they are all marked. If so, accept; otherwise, reject.”

Terminology for Describing Turing Machines (continued) Practice implementation-level details for M3: Check if input encoding <G> represents a legal instance of a graph. No repetitions in node list. How to check? Each node in edge list also appears in node list. See next slide for detail on steps 1-4.

Terminology for Describing Turing Machines (continued) Example: M3=“On input <G>: Select first node of G and mark it. Dot leftmost “digit” Repeat step 3 until no new nodes are marked: For each node in G, mark it if it is attached by an edge to a node that is already marked. Find undotted node n1 (in node list); underline it. Find dotted node n2 (in node list); underline it. Check if underlined pair (n1, n2) appears in edge list. If so, dot n1, remove underlines, restart step 2. Otherwise, check more edge(s). If (n1, n2) does not appear in edge list, try another n2 . Scan all nodes of G to check if they are all marked. If so, accept; otherwise, reject.” Check if all nodes are dotted.