Introduction to the Theory of Computation

Slides:



Advertisements
Similar presentations
CS 345: Chapter 9 Algorithmic Universality and Its Robustness
Advertisements

8/25/2009 Sofya Raskhodnikova Intro to Theory of Computation L ECTURE 1 Theory of Computation Course information Overview of the area Finite Automata Sofya.
Recap CS605: The Mathematics and Theory of Computer Science.
January 5, 2015CS21 Lecture 11 CS21 Decidability and Tractability Lecture 1 January 5, 2015.
Computability and Complexity 5-1 Classifying Problems Computability and Complexity Andrei Bulatov.
CPSC 411, Fall 2008: Set 12 1 CPSC 411 Design and Analysis of Algorithms Set 12: Undecidability Prof. Jennifer Welch Fall 2008.
1 dKS, Spring Some practical information Lecturers: Kristoffer Arnsfelt Hansen and Peter Bro Miltersen. Homepage:
Fall 2005Costas Busch - RPI1 CSCI-2400 Models of Computation.
UMass Lowell Computer Science Foundations of Computer Science Prof. Karen Daniels Fall, 2009 Lecture 1 Introduction/Overview Th. 9/3/2009.
CS311 Automata and Complexity Theory. Admistrative Stuff Instructor: Shahab Baqai Room # 428, Ext 4428 Lectures:Mon & Wed 1530 – 1710.
Theory of Computation. General Concepts  Scope of course – Formal languages – Automata theory – Computability – Computational complexity.
Final Exam Review Cummulative Chapters 0, 1, 2, 3, 4, 5 and 7.
Introduction to Computer Science. A Quick Puzzle Well-Formed Formula  any formula that is structurally correct  may be meaningless Axiom  A statement.
Lecture 14: Church-Turing Thesis Alonzo Church ( ) Alan Turing ( )
Introduction to CS Theory Lecture 1 – Introduction Piotr Faliszewski
By: Er. Sukhwinder kaur.  Computation Computation  Algorithm Algorithm  Objectives Objectives  What do we study in Theory of Computation ? What do.
CS 454 Theory of Computation Sonoma State University, Fall 2012 Instructor: B. (Ravi) Ravikumar Office: 116 I Darwin Hall.
Introduction Chapter 0. Three Central Areas 1.Automata 2.Computability 3.Complexity.
1 Theory of Computation 計算理論 2 Instructor: 顏嗣鈞 Web: Time: 9:10-12:10 PM, Monday Place: BL 103.
Theory of Computing Lecture 15 MAS 714 Hartmut Klauck.
CS 390 Introduction to Theoretical Computer Science.
INTRODUCTION TO THE THEORY OF COMPUTATION INTRODUCTION MICHAEL SIPSER, SECOND EDITION 1.
© M. Winter COSC/MATH 4P61 - Theory of Computation COSC/MATH 4P61 Theory of Computation Michael Winter –office: J323 –office hours: Mon & Fri, 10:00am-noon.
AUTOMATA THEORY Reference Introduction to Automata Theory Languages and Computation Hopcraft, Ullman and Motwani.
Complexity theory and combinatorial optimization Class #2 – 17 th of March …. where we deal with decision problems, finite automata, Turing machines pink.
1 CO Games Development 2 Week 21 Turing Machines & Computability Gareth Bellaby.
Introduction to the Theory of Computation Fall Semester, School of Information, Renmin University of China.
Introduction to CS Theory Lecture 15 –Turing Machines Piotr Faliszewski
CS 345: Chapter 8 Noncomputability and Undecidability Or Sometimes You Can’t Get It Done At All.
1 Theory of Computation 計算理論 2 Instructor: 顏嗣鈞 Web: Time: 9:10-12:10 PM, Monday Place: BL.
1Computer Sciences Department. Book: INTRODUCTION TO THE THEORY OF COMPUTATION, SECOND EDITION, by: MICHAEL SIPSER Reference 3Computer Sciences Department.
THEORY OF COMPUTATION Komate AMPHAWAN 1. 2.
1 Turing’s Thesis. 2 Turing’s thesis: Any computation carried out by mechanical means can be performed by a Turing Machine (1930)
1Computer Sciences Department. Book: INTRODUCTION TO THE THEORY OF COMPUTATION, SECOND EDITION, by: MICHAEL SIPSER Reference 3Computer Sciences Department.
Complexity & Computability. Limitations of computer science  Major reasons useful calculations cannot be done:  execution time of program is too long.
Computation Motivating questions: What does “computation” mean? What are the similarities and differences between computation in computers and in natural.
Strings Basic data type in computational biology A string is an ordered succession of characters or symbols from a finite set called an alphabet Sequence.
CMPT 308 — Computability and Complexity Fall 2004 Instructor: Andrei Bulatov, TA: Ramsay Dyer, Learning.
NP-Completeness  For convenience, the theory of NP - Completeness is designed for decision problems (i.e. whose solution is either yes or no).  Abstractly,
Why Study Automata? What the Course is About Administrivia 1 Welcome to CSE309.
Donghyun (David) Kim Department of Mathematics and Physics North Carolina Central University 1 Chapter 0 Introduction Some slides are in courtesy of Prof.
Introduction Why do we study Theory of Computation ?
Finite-State Machines Fundamental Data Structures and Algorithms Peter Lee March 11, 2003.
Chapter 12 Theory of Computation Introduction to CS 1 st Semester, 2014 Sanghyun Park.
The Church-Turing Thesis Chapter Are We Done? FSM  PDA  Turing machine Is this the end of the line? There are still problems we cannot solve:
Theory of Computational Complexity TA : Junichi Teruyama Iwama lab. D3
Theory of Computation. Introduction to The Course Lectures: Room ( Sun. & Tue.: 8 am – 9:30 am) Instructor: Dr. Ayman Srour (Ph.D. in Computer Science).
Introduction to Automata Theory
Modeling Arithmetic, Computation, and Languages Mathematical Structures for Computer Science Chapter 8 Copyright © 2006 W.H. Freeman & Co.MSCS SlidesTuring.
Theory of Computation. Introduction We study this course in order to answer the following questions: What are the fundamental capabilities and limitations.
Formal Languages and Automata Theory
Formal Foundations-II [Theory of Automata]
Computable Functions.
Why Study Automata? What the Course is About Administrivia
BCS2143 – Theory of Computer Science
Introduction to the Theory of Computation
Why do we study Theory of Computation ?
CIS Automata and Formal Languages – Pei Wang
Principles of Computing – UFCFA Lecture-1
CSE 105 theory of computation
Introduction to Automata Theory
Intro to Theory of Computation
Automata and Formal Languages
Teori Bahasa dan Automata Lecture 1: Course Overview and Introduction
Principles of Computing – UFCFA Week 1
The Church-Turing Thesis and Turing-completeness
CO Games Development 2 Week 21 Turing Machines & Computability
Week 11 - Wednesday CS221.
Sofya Raskhodnikova; Intro Theory of Computation
Presentation transcript:

Introduction to the Theory of Computation Fall Semester, 2014-2015 School of Information, Renmin University of China

Contact Information Instructor: Puwei Wang (王璞巍) Email: wangpuwei@ruc.edu.cn Office: Room 443, Information Building

Textbook Michael Sipser: Introduction to the Theory of Computation, second edition, 2006 Supplementary Readings: J. Hopcroft, R. Motwani and J. Ullman, Introduction to Automata, Languages, and Computation, Third edition, China Machine Press, 2007 C. Baier and J. Katoen, Principles of Model Checking, 2008, MIT Press.

Grading Homework (20%) Project (20%) Final Exam (60%) Suggestions: Preparation: Spend 30 minutes quickly looking at what will be taught before class Review: Spend 2 hours reading carefully the materials in Textbook after class

Prerequisites: Discrete Mathematics and basic knowledge of algorithms

Why study Theory of Computing? What are the fundamental capabilities and limitations of computers? What makes some problems computationally hard and others easy?

Question 1 What are the fundamental capabilities and limitations of computers? What is a computer? What can and can not be computed?

Computational Models What is a computer? Computational models Formal definition of computation Computational models Turing machines (= real computers) Simpler computing devices: finite state automata, push-down automata

Computability What can and can not be computed? Some problems have no algorithms Halting problem

Question 2 What makes some problems computationally hard and others easy? How quickly can a problem be computed?

Complexity Many problems probably have no efficient algorithms NP-hardness (= what can not be computed efficiently) factoring an integer into primes determining the shortest tour of given n cities

What is Theory Good for? Elegant way of thinking Expanding your minds Useful tools in practice finite automata, regular expressions: text processing grammars: programming language design and specification NP-hardness: approximate solutions or randomized computation

Outline of the Course Automata Theory (7 weeks) With its application on Model Checking Computability Theory (3 weeks) Mid-term is in the 9th week Complexity Theory (7 weeks)

Where our journey starts: Goettingen and HER Mathematics Ganseliesel: the landmark of Goettingen David Hilbert and Men of Mathematics

A Brief History: Hilbert’s Program Hilbert’s program (1920’s) Axiomatization of all mathematics Completeness: all true mathematical statements can be proved in the formalism Consistency: no contradiction can be obtained in the formalism of mathematics Decidability: there should be an algorithm for deciding the truth or falsity of any mathematical statement “We must know. We will know”.

History: Godel’s Incomplete Theorems Godel’s first incomplete Theorem (1931) no consistent system of axioms whose theorems can be listed by an "effective procedure" (essentially, a computer program) is capable of proving all facts about the natural numbers. However, in 1940’s Tarski showed that the first order theory of the real numbers with addition and multiplication is decidable. In this sense, number theory is more difficult than real analysis to computer scientists.

Goedel and Turing (1931-1936) Turing (1912-1954) Goedel (1906-1978)

History: Turing Machine (1936) B C D Infinite tape with squares containing tape symbols chosen from a finite alphabet State Action: based on the state and the tape symbol under the head: change state, rewrite the symbol and move the head one square. . . . . . .

Church and Kleene (1903-1995) (1909-1994)

History: Church-Turing Thesis Intuitive notion = Turing machine of algorithm of Algorithm An algorithm is an effective method expressed as a finite list of well-defined instructions for calculating a function.

History: Automata Scott & Rabin: Finite Automata and their Decision Problems, 1959 Kleene: Regular languages In a nonderministic machine, several choices may exist for the next state at any point.

A Simple Automata Automatic Door as an automaton Front Rear Both Rear Neither Front closed closed closed closed closed closed closed Open Neither Neither Front Rear Both Closed Open Closed Closed Open Closed Open Open Closed open

History: P and NP Classify into two kinds of problems: Those that can be solved efficiently by computers Those that can be solved in principles, but in practice take so much time that computers are useless for all but very small instances of the problem.

Why Study Automata Theory Software for designing and checking the behavior of digit circuits Software for verifying systems of all types that have a finite number of distinct states, such as communication protocols or protocols for secure exchange of information.

Why Study Computability Theory (1) Halting Problem (Turing): Given a description of a program, decide whether the program finishes running or will continue to run, and thereby run forever. This is equivalent to the problem of deciding, given a program and an input, whether the program will eventually halt when run with that input, or will run forever.

Why Study Computability Theory (2) Post Correspondence Problem

Why Study Complexity Theory (P) Kruskal Algorithm (Minimal spanning tree problem)

Why Study Complexity Theory (NP) Clique Problem

Why Study Complexity Theory (Application) Primality Testing and Cryptography There are a number of techniques based on RSA codes that enhance computer security, for which the most common methods in use today rely on the assumption that it is hard to factor numbers, that is, given a composite number, to find its prime factors. Shor’s algorithm and Quantum Computation

Classical Theory Algorithm decidable Decidability inefficient Efficiency (P vs. NP) decidable inefficient efficient

Welcome to Turing’s World

Automata Theory Automata theory deals with the definitions and properties of mathematical models of computation. The theories of computability and complexity require a precise definition of a computer. Automata theory allows practice with formal definitions of computation

Computability Theory And Complexity Theory What can and can not be computed? How quickly can a problem be computed?