Documente Academic
Documente Profesional
Documente Cultură
Lecture #1
Sarmad Abbasi
Virtual University
Theory of Computation
1/1
Lecture 1: Overview
Theory of Computation
2/1
Overview
What is a computation?
Theory of Computation
3/1
Theory of Computation
4/1
I think there were two earliest computers. Let me show you the
pictures of these models that I have made.
Theory of Computation
5/1
Theory of Computation
6/1
Theory of Computation
7/1
Theory of Computation
8/1
Theory of Computation
9/1
Theory of Computation
10 / 1
Theory of Computation
11 / 1
Theory of Computation
12 / 1
Tally sticks like the Lebombo bone are the earliest computing
devices. Earliest known is 35,000 BC.
Clay tablets were then used to store the count of livestock etc.
Theory of Computation
13 / 1
Theory of Computation
14 / 1
Earliest Algorithms
Theory of Computation
15 / 1
Earliest Algorithms
Theory of Computation
16 / 1
Earliest Algorithms
Theory of Computation
17 / 1
Theory of Computation
18 / 1
Theory of Computation
19 / 1
Theory of Computation
20 / 1
Process
Theory of Computation
21 / 1
x 2 + y 2 = 0.
2
x 2 + y 2 = z 2.
3
ax + by + z 3 + 17d 3 = 14567
These are called diophantine equations. What we want to do is to ask
if there is a solution in positive integers.
Theory of Computation
22 / 1
For example
x 2 + y 2 = z2
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?
Theory of Computation
23 / 1
Theory of Computation
24 / 1
Theory of Computation
25 / 1
Theory of Computation
26 / 1
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
Theory of Computation
27 / 1
Impossibility Proofs
In order to prove that algorithm cannot exist we must have a 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.
Theory of Computation
28 / 1
Theory of Computation
29 / 1
Theory of Computation
30 / 1
Theory of Computation
31 / 1
We will work with Turings 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 the 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.
Theory of Computation
32 / 1
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!!!!!!
Theory of Computation
33 / 1
Computability Theory
Computability Theory will deal with the following questions:
1
Theory of Computation
34 / 1
Theory of Computation
35 / 1
Complexity Theory
Theory of Computation
36 / 1
Complexity Theory
Complexity Theory will deal with the following questions:
1
Theory of Computation
37 / 1
Complexity Theory
One of the most important concept 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). "Universalnye 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.
Theory of Computation
38 / 1
Complexity Theory
Theory of Computation
39 / 1
Complexity Theory
Theory of Computation
40 / 1