Handouts. CS701 Theory of Computation

Similar documents
CS 301. Lecture 17 Church Turing thesis. Stephen Checkoway. March 19, 2018

Limits of Computation. Antonina Kolokolova

CS 275 Automata and Formal Language Theory

ENEE 459E/CMSC 498R In-class exercise February 10, 2015

Finite Automata Theory and Formal Languages TMV027/DIT321 LP4 2018

CS 275 Automata and Formal Language Theory

Automata Theory. Definition. Computational Complexity Theory. Computability Theory

17.1 The Halting Problem

Theory of Computation

CS187 - Science Gateway Seminar for CS and Math

Church s undecidability result

Hilbert s problems, Gödel, and the limits of computation

The roots of computability theory. September 5, 2016

U.C. Berkeley CS278: Computational Complexity Professor Luca Trevisan August 30, Notes for Lecture 1

Theory of Computation

Obsevations, Truth and Logic

Hilbert s problems, Gödel, and the limits of computation

Introduction to Turing Machines

Complexity Theory. Ahto Buldas. Introduction September 10, Slides based on S.Aurora, B.Barak. Complexity Theory: A Modern Approach.

258 Handbook of Discrete and Combinatorial Mathematics

Computation. Some history...

Lecture 1 - Introduction to Complexity.

CSCE 551: Chin-Tser Huang. University of South Carolina

Lecture Notes. Advanced Discrete Structures COT S

Computability Theory. CS215, Lecture 6,

COMP-330 Theory of Computation. Fall Prof. Claude Crépeau. Lec. 16 : Turing Machines

Lecture 5: Computational Complexity

Fundamentals of Computer Science

CST Part IB. Computation Theory. Andrew Pitts

Automata & languages. A primer on the Theory of Computation. Laurent Vanbever. ETH Zürich (D-ITET) October,

An Intuitive Introduction to Motivic Homotopy Theory Vladimir Voevodsky

Hilbert s Tenth Problem

COMP-330 Theory of Computation. Fall Prof. Claude Crépeau. Lec. 14 : Turing Machines

from Euclid to Einstein

Great Theoretical Ideas

Understanding Computation

CSE 2001: Introduction to Theory of Computation Fall Suprakash Datta

Great Ideas in Theoretical Computer Science

Mapping Reducibility. Human-aware Robotics. 2017/11/16 Chapter 5.3 in Sipser Ø Announcement:

Theory of Computation (IX) Yijia Chen Fudan University

7.1 The Origin of Computer Science

The P versus NP Problem. Dean Casalena University of Cape Town CSLDEA001

Class Note #20. In today s class, the following four concepts were introduced: decision

COMP/MATH 300 Topics for Spring 2017 June 5, Review and Regular Languages

UNRESTRICTED GRAMMARS

COMP-330 Theory of Computation. Fall Prof. Claude Crépeau. Lecture 1 : Introduction

WHY WORD PROBLEMS ARE HARD

Computer Science and Logic A Match Made in Heaven

The Turing machine model of computation

Large Numbers, Busy Beavers, Noncomputability and Incompleteness

Undecidable Problems. Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science May 12, / 65

Undecibability. Hilbert's 10th Problem: Give an algorithm that given a polynomial decides if the polynomial has integer roots or not.

an efficient procedure for the decision problem. We illustrate this phenomenon for the Satisfiability problem.

Computational Models - Lecture 6

Consistency, Optimality, and Incompleteness

UNIT-VIII COMPUTABILITY THEORY

CSE 105 THEORY OF COMPUTATION

CSE 2001: Introduction to Theory of Computation Fall Suprakash Datta

The P-vs-NP problem. Andrés E. Caicedo. September 10, 2011

Foundations of

CS151 Complexity Theory. Lecture 1 April 3, 2017

Computational Models Lecture 7, Spring 2009

Let π and e be trancendental numbers and consider the case:

Gödel s Incompleteness Theorems

Logic, Elliptic curves, and Diophantine stability

Computational Models Lecture 9, Spring 2009

A Note on Turing Machine Design

Essential facts about NP-completeness:

Theory of Computation

Most General computer?

Propositions as Types

Show that the following problems are NP-complete

Turing s 1935: my guess about his intellectual journey to On Co

1 Computational problems

About the relationship between formal logic and complexity classes

Computational Models

Lecture 14 Rosser s Theorem, the length of proofs, Robinson s Arithmetic, and Church s theorem. Michael Beeson

Turing Machines A Turing Machine is a 7-tuple, (Q, Σ, Γ, δ, q0, qaccept, qreject), where Q, Σ, Γ are all finite

Logic: The Big Picture

Algebra I The Number System & Mathematical Operations

6.080 / Great Ideas in Theoretical Computer Science Spring 2008

Is P Versus NP Formally Independent?

What is proof? Lesson 1

Axiomatic set theory. Chapter Why axiomatic set theory?

Panu Raatikainen THE PROBLEM OF THE SIMPLEST DIOPHANTINE REPRESENTATION. 1. Introduction

What s a computer? Language Theory and Computation. A small suan pan (Chinese abacus) Photo courtesy of the Computer History Museum

15-251: Great Theoretical Ideas in Computer Science Fall 2016 Lecture 6 September 15, Turing & the Uncomputable

ON COMPUTAMBLE NUMBERS, WITH AN APPLICATION TO THE ENTSCHENIDUGSPROBLEM. Turing 1936

Theory of computation: initial remarks (Chapter 11)

CSE355 SUMMER 2018 LECTURES TURING MACHINES AND (UN)DECIDABILITY

Consistency, Optimality, and Incompleteness

Decidable Languages - relationship with other classes.

(Refer Slide Time: 0:21)

NP, polynomial-time mapping reductions, and NP-completeness

Design and Analysis of Algorithms

Turing Machines Decidability

11. Tractability and Decidability

Advanced topic: Space complexity

Hence, the sequence of triangular numbers is given by., the. n th square number, is the sum of the first. S n

Quantum Computing 101. ( Everything you wanted to know about quantum computers but were afraid to ask. )

Transcription:

Handouts CS701 Theory of Computation by Kashif Nadeem VU Student MS Computer Science

LECTURE 01 Overview In this lecturer the topics will be discussed including The Story of Computation, Theory of Computation, Computability and Logic, Complexity Theory. This is the first pure course in theoretical computer science. We will be concerned with the following basic questions in computer science: 1 What is a computation? 2 Is there a universal model of computation? 3 Can everything be computed? 4 Is there a relation between computations and mathematics? 5 Can we identify problems that are not computable? 6 What resources are needed to perform a certain computation? 7 Can we identify computationally hard problems? In 30 seconds draw the earliest model of computation that comes to you mind. I think there were two earliest computers. Let me show you the pictures of these models that I have made. Yes, I think computing as as old as human beings. In fact, the earliest known mathematical artifact is the Lebombo bone which dates back to 35,000 BC! After that humans also used clay tablets which are found in many civilizations. Some Earliest Model of Computations given below: -

Abacus was the next device. Here is a picture of a typical abacus. Slide rule was another device that was invented in 1600 s. -

1. Tally sticks like the Lebombo bone are the earliest computing devices. Earliest known is 35,000 BC. 2. Clay tablets were then used to store the count of livestock etc. 3. Abacus is known to exist 1000 BC and 500 BC in Mesopotamia and China. 4. Around 1620 John Napier introduced the concept of logarithms. 5. The slide rule was invented shortly afterwards. More than physical devices we are interested in the history of concepts in computing. We are interested in very basic questions. Let us ask the following more important questions. When was the first algorithm devised? This is a very difficult question. Since, algorithms were not studied the way we do them today. Perhaps, the first algorithm devised was unary addition thousands of years ago in some cave. The limbobo bone type devices were used to execute that algorithm. The concept of an algorithm is very well developed in Euclid s school. Two striking examples are: 1. The Euclidean Algorithm to compute the GCD. It is a non-trivial algorithm, in the sense that it is not clear at all why it computes the GCD. 2. The constructions by ruler can compass are examples of precise algorithms. The elementary steps are well defined and the tasks are well defined. The most important question in theory of computation is: What is a computation? What is an algorithm? When was this question asked? In 1900 David Hilbert and eminent mathematician was invited to give a lecture at the international congress of mathematicians. In his talk he posed 21 questions as a challenge to 20th century mathematicians. His problems spanned several areas from mathematical analysis, logic, foundation of set theory and geometry. However, one of question the 10th problem was very interesting. -

Hilbert s Tenth Problem Given a Diophantine equation with any number of unknown quantities and with rational integral numerical coefficients: To devise a process according to which it can be determined in a finite number of operations whether the equation is solvable in rational integers. Note two important words: Process in a finite number of operations Hilbert was asking for an algorithm!! Let us look examine Hilbert s 10th question in modern language. Consider a polynomial in many variables for example: 1 1. x 2 + y 2 = 0 2. x 2 + y 2 = z 2 3. ax + by + z 3 + 17 d 3 = 14567 These are called Diophantine equations. What we want to do is to ask if there is a solution in positive integers. For example x 2 + y 2 = z 2 has a solution x = 3, y = 4 and z = 5. So this equation has a solution. On the other hand x 2 + x + 2y = 39 does not have a solution. So the question is: Given a Diophantine equation does it have a solution? Hilbert s Tenth Problem was the following problem in computer science: Can we write a program that will take a Diophantine equation as an input and tell us if the equation has solution in positive integers? He was asking for an algorithm. A solution to Hilbert s tenth problem would mean that mathematicians could solve Diophantine equations mechanically. It took almost 70 years to solve this question. Eventually Yuri Matiyasevich was able to solve Hilbert s Tenth Problem. What was Matiyasevich s solution? Did he invent an algorithm? No. Matiyasevich s proved that Hilbert s 10th problem was unsolvable. There is no algorithm that can tell if a Diophantine equation has solutions in positive integers. -

Note that to understand what he did is not easy. Matiyasevich did not say he is not smart enough to find a solution. He proved that no such algorithm existed. He was showing impossibility of the existence of an algorithm. Impossibility Proofs Impossibility proofs are not very uncommon in mathematics. Let us look at some of them: 1. It is impossible to write 2 as a ratio of two integers. 2. It is impossible to trisect an angle with a straight edge and compass. 3. It is impossible to cut a regular tetrahedron and put the pieces together into a cube of equal volume. (Here cuts are one that can be given with a hyperplane). Matiyasevich s theorem belongs to this general class of theorems. But, it is of utmost importance for us since it talks about impossibility of the existence of algorithms. In order to prove that algorithm cannot exist we must have exact and mathematically precise definition of an algorithm. This is what is needed in order to show that an algorithm does not exist. Once a precise definition of an algorithm is given we can argue mathematically about them. Turing Machines and Algorithms Luckily the mathematical notion of what an algorithm and computation is was already developed for Matiyasevich. Let us ask the most fundamental question in theory of computation. Algorithms and Computation The seeds of answer to this question were also sown by Hilbert. In 1928, Hilbert who wanted to systematize all of mathematics had posed The Entscheidung s problem He wanted an algorithm that would take a mathematical assertion and would decide if the assertion was true or not!!!! That would be an amazing algorithm (if it existed). In 1936, Alan Turing, Alonzo Church showed that the Entscheidung s problem was unsolvable. The two most famous papers in this regard are: Alonzo Church, "An unsolvable problem of elementary number theory", American Journal of Mathematics, 58 (1936), pp 345-363 Alan Turing, "On computable numbers, with an application to the Entscheidung s problem", Proceedings of the London Mathematical Society, Series 2, 42 (1936), pp 230-265. We will work with Turing s model. Turing came up with the idea of computing machines that we now call Turing machines. He proposed that every computation that we can perform mechanically could be performed by a Turing machine. The good thing about Turing machines was: -

Turing machines are not an intuitive notion like that of an algorithm. But they are mathematically defined objects. Thus one can prove things about them. One can prove their existence and non-existence also. One can study them with the tools of mathematics and make precise claims about them. Halting Problem Turing in the same paper showed that a very important problem called the Halting Problem cannot be solved by an algorithm. This was a breakthrough. It showed that there are mathematically defined precise problems that have no algorithmic solutions. Thus showing us that some problems cannot be computed. Computability Theory Computability Theory will deal with the following questions: What is a computation? Can we come up with a precise definition of an algorithm or a computation? (The answer is yes). Can everything be computed? (The answer is no.) Can we characterize problems that cannot be computed? (The answer is it is hard to do that but in certain cases we can identify them and prove that they are not computable). We will study computable and incomputable problems in various different areas. We will study computability and logic. We will prove Godel s incompleteness theorem. Godel s incompleteness theorem Godel s theorem is a corner stone in mathematical logic and foundations of mathematics. It roughly states that: In any (axiomatic) system that includes numbers. There are always statements that are true but not provable. This has had profound impact of mathematics. We will prove this theorem in our course using tools from computability theory. We will discuss this in detail when the time comes. Complexity Theory Complexity theory is much more practical than computability theory. The basic idea is now we not only want an algorithm but an efficient algorithm to solve problems. Complexity Theory will deal with the following questions: 1 1. Given a problem can we devise an efficient algorithm to solve that problem? 2. Can we characterize problems that have efficient algorithms? 3. Can we characterize problems that are on the boundary of being efficiently solvable and intractable? -

4. Can we prove that problems though computable are intractable? 5. Can we prove that certain problems which are practically significant are intractable? 6. Is there a unified theory of problems that are hard to solve? One of the most important concepts in Complexity Theory is that of NP-completeness. In 1971 Cook and Levin proved a very important theorem in the following papers: Stephen Cook (1971). "The Complexity of Theorem Proving Procedures", Proceedings of the third annual ACM symposium on Theory of computing, 151 158. Leonid Levin (1973). "Universal nye perebornye zadachi". Problemy Peredachi Informatsii 9 (3): 265 English translation, "Universal Search Problems", in B. A. Trakhtenbrot (1984). "A Survey of Russian Approaches to Perebor (Brute-Force Searches) Algorithms". Annals of the History of Computing 6 (4): 384400. This theorem showed that if one given problem (called Satisfiability) could be solved efficiently then many others could also be solved efficiently. In fact, a whole infinite class of problems can be solved efficiently. This is very strong evidence that Satisfiability is a hard to solve problem. We are still looking for a proof!!!!!!! In complexity theory we will talk about the celebrated P vs NP question. Which has a $1000,000.00 award on it. We will see why the amount stated here is not enough and why this question has far reaching consequences in computer science. ----------- -

LECTURE 02 Overview Recall some basic definitions from Automata Theory. Define a Turing machine. Look at simple examples of Turing machines. Alphabet, Strings and Languages An alphabet is any finite set. 1 2 3 0,1 a, b, c,..., 0,1, x, y, z z Each element in is called a symbol. A string over an alphabet is a finite sequence of symbols from the alphabet. Remember that whenever you talk about a string you must have an alphabet in mind. 0,1. a,..., z. 2 The number of symbols contained in a string w is called the length of w and denoted by w. 01000100 is a string over abracadabra is a string over The string that contains no symbols is denoted by. In some books it is also denoted by. Notice that the length of this string is 0. It is called the empty string. Let us look at some strings. 01011 is a string of length 5 over 0,1 is a string of length 0 over 0,1 10xx is a string of length 4 over 0,1, x, y 2 abpqrsxy is a string of length 8 over a b z,..., 3 is a string of length 0 over _3 = {a, b,, z} Remember that all strings have finite length. -