0% found this document useful (0 votes)
84 views72 pages

Other Models of Computation

The document discusses several models of computation including Turing machines, recursive functions, Post systems, and rewriting systems. It states Church's thesis that all models of computation are equivalent and Turing's thesis that a computation is mechanical if and only if it can be performed by a Turing machine. It then focuses on recursive functions and defines primitive recursive functions. It proves some theorems about primitive recursive and non-primitive recursive functions. It also discusses Post systems, rewriting systems like matrix grammars and Lindenmayer systems, and computational complexity classes like P and exponential time.

Uploaded by

tariqravian
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
84 views72 pages

Other Models of Computation

The document discusses several models of computation including Turing machines, recursive functions, Post systems, and rewriting systems. It states Church's thesis that all models of computation are equivalent and Turing's thesis that a computation is mechanical if and only if it can be performed by a Turing machine. It then focuses on recursive functions and defines primitive recursive functions. It proves some theorems about primitive recursive and non-primitive recursive functions. It also discusses Post systems, rewriting systems like matrix grammars and Lindenmayer systems, and computational complexity classes like P and exponential time.

Uploaded by

tariqravian
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
You are on page 1/ 72

Other Models of

Computation

1
Models of computation:

•Turing Machines
•Recursive Functions
•Post Systems
•Rewriting Systems

2
Church’s Thesis:

All models of computation are equivalent

Turing’s Thesis:

A computation is mechanical if and only if


it can be performed by a Turing Machine

3
Church’s and Turing’s Thesis are similar:

Church-Turing Thesis

4
Recursive Functions

An example function:

2
f ( n)  n  1
Domain Range
3 f (3)  10 10

5
We need a way to define functions

We need a set of basic functions

6
Basic Primitive Recursive Functions

Zero function: z ( x)  0

Successor function: s ( x)  x  1

Projection functions: p1( x1, x2 )  x1

p2 ( x1, x2 )  x2

7
Building complicated functions:

Composition: f ( x, y )  h( g1( x, y ), g 2 ( x, y ))

Primitive Recursion:

f ( x,0)  g1( x)

f ( x, y  1)  h( g 2 ( x, y ), f ( x, y ))
8
Any function built from
the basic primitive recursive functions
is called:

Primitive Recursive Function

9
A Primitive Recursive Function: add ( x, y )

add ( x,0)  x (projection)

add ( x, y  1)  s (add ( x, y ))

(successor function)

10
add (3,2)  s (add (3,1))
 s ( s (add (3,0)))
 s ( s (3))
 s ( 4)
5

11
Another Primitive Recursive Function:
mult ( x, y )

mult ( x,0)  0

mult ( x, y  1)  add ( x, mult ( x, y ))

12
Theorem:
The set of primitive recursive functions
is countable

Proof:
Each primitive recursive function
can be encoded as a string

Enumerate all strings in proper order

Check if a string is a function


13
Theorem
there is a function that
is not primitive recursive

Proof:
Enumerate the primitive recursive functions

f1, f 2 , f3 , 

14
Define function g (i )  fi (i )  1

g differs from every fi

g is not primitive recursive

END OF PROOF 15
A specific function that is not
Primitive Recursive:

Ackermann’s function:

A(0, y )  y  1
A( x,0)  A( x  1,1)
A( x, y  1)  A( x  1, A( x, y ))

Grows very fast,


faster than any primitive recursive function
16
  Recursive Functions

y ( g ( x, y ))  smallest y such that g ( x, y )  0

Accerman’s function is a
  Recursive Function

17
  Recursive Functions

Primitive recursive functions

18
Post Systems

• Have Axioms

• Have Productions

Very similar with unrestricted grammars

19
Example: Unary Addition

Axiom: 1  1  11

Productions:

V1  V2  V3  V11  V2  V31
V1  V2  V3  V1  V21  V31
20
A production:

V1  V2  V3  V11  V2  V31

1  1  11  11  1  111  11  11  1111

V1  V2  V3  V1  V21  V31
21
Post systems are good for
proving mathematical statements
from a set of Axioms

22
Theorem:
A language is recursively enumerable
if and only if
a Post system generates it

23
Rewriting Systems
They convert one string to another

• Matrix Grammars

• Markov Algorithms

• Lindenmayer-Systems

Very similar to unrestricted grammars


24
Matrix Grammars

Example: P1 : S  S1S2
P2 : S1  aS1, S2  bS2c
P3 : S1   , S2  

Derivation:

S  S1S2  aS1bS2c  aaS1bbS2cc  aabbcc

A set of productions is applied simultaneously


25
P1 : S  S1S2
P2 : S1  aS1, S2  bS2c
P3 : S1   , S 2  

n n n
L  {a b c : n  0}

Theorem:
A language is recursively enumerable
if and only if
a Matrix grammar generates it 26
Markov Algorithms

Grammars that produce 

Example: ab  S
aSb  S
S  .
Derivation:

aaabbb  aaSbb  aSb  S  


27
ab  S
aSb  S
S  .

n n
L  {a b : n  0}

28
*
In general: L  {w : w  }

Theorem:

A language is recursively enumerable


if and only if
a Markov algorithm generates it

29
Lindenmayer-Systems

They are parallel rewriting systems

Example: a  aa

Derivation: a  aa  aaaa  aaaaaaaa

n
2
L  {a : n  0}
30
Lindenmayer-Systems are not general
As recursively enumerable languages

Extended Lindenmayer-Systems: ( x, a, y )  u

context

Theorem:
A language is recursively enumerable
if and only if an
Extended Lindenmayer-System generates it
31
Computational Complexity

32
Time Complexity: The number of steps
during a computation

Space Complexity: Space used


during a computation

33
Time Complexity

•We use a multitape Turing machine

•We count the number of steps until


a string is accepted

•We use the O(k) notation


34
Example: n n
L  {a b : n  0}

Algorithm to accept a string w :

•Use a two-tape Turing machine

•Copy the a on the second tape

a
•Compare the and b
35
n n
L  {a b : n  0}

Time needed:

•Copy the a on the second tape O (| w |)

•Compare the a and b O (| w |)

Total time: O (| w |)
36
n n
L  {a b : n  0}

For string of length n

time needed for acceptance: O (n)

37
Language class: DTIME (n)

DTIME (n)
L1 L3
L2

A Deterministic Turing Machine


accepts each string of length n
in time O (n)
38
DTIME (n)

n n
{a b : n  0}
{ww}

39
In a similar way we define the class

DTIME (T (n))

for any time function: T (n)

2 3
Examples: DTIME (n ), DTIME (n ),...

40
Example: The membership problem
for context free languages

L  {w : w is generated by grammar G}

3
L  DTIME (n ) (CYK - algorithm)

Polynomial time

41
k 1 k
Theorem: DTIME (n )  DTIME (n )

k 1
DTIME (n )

k
DTIME (n )

42
k
Polynomial time algorithms: DTIME (n )

Represent tractable algorithms:


For small k we can compute the
result fast

43
The class P

k
P   DTIME (n ) for all k

•Polynomial time

•All tractable problems


44
P
CYK-algorithm n n
{a b }

 {ww}

45
n
Exponential time algorithms: DTIME (2 )

Represent intractable algorithms:


Some problem instances
may take centuries to solve

46
Example: the Traveling Salesperson Problem

5
3

4 1 2
2
6
10
8
3

Question: what is the shortest route that


connects all cities? 47
5
3

4 1 2
2
6
10
8
3

Question: what is the shortest route that


connects all cities? 48
A solution: search exhuastively all
hamiltonian paths

L = {shortest hamiltonian paths}

n
L  DTIME (n!)  DTIME (2 )

Exponential time

Intractable problem
49
Example: The Satisfiability Problem

Boolean expressions in
Conjunctive Normal Form:
t1  t2  t3    tk

ti  x1  x2  x3    x p
Variables

Question: is expression satisfiable?


50
Example: ( x1  x2 )  ( x1  x3 )

Satisfiable: x1  0, x2  1, x3  1

( x1  x2 )  ( x1  x3 )  1

51
Example: ( x1  x2 )  x1  x2

Not satisfiable

52
L  {w : expression w is satisfiable}

n
For n variables: L  DTIME (2 )
exponential

Algorithm:
search exhaustively all the possible
binary values of the variables
53
Non-Determinism
Language class: NTIME (n)

NTIME (n)
L1 L3
L2

A Non-Deterministic Turing Machine


accepts each string of length n
in time O (n)
54
Example: L  {ww}

Non-Deterministic Algorithm
to accept a string ww :

•Use a two-tape Turing machine

•Guess the middle of the string


and copy w on the second tape

•Compare the two tapes 55


L  {ww}
Time needed:

•Use a two-tape Turing machine

•Guess the middle of the string O (| w |)


and copy w on the second tape

O (| w |)
•Compare the two tapes
Total time: O (| w |)
56
NTIME (n)

L  {ww}

57
In a similar way we define the class

NTIME (T (n))

for any time function: T (n)

2 3
Examples: NTIME (n ), NTIME (n ),...

58
Non-Deterministic Polynomial time algorithms:

k
L  NTIME ( n )

59
The class NP

k
P   NTIME (n ) for all k

Non-Deterministic Polynomial time

60
Example: The satisfiability problem

L  {w : expression w is satisfiable}

Non-Deterministic algorithm:
•Guess an assignment of the variables

•Check if this is a satisfying assignment

61
L  {w : expression w is satisfiable}

Time for n variables:

•Guess an assignment of the variables O (n)

•Check if this is a satisfying assignment O (n)

Total time: O (n)


62
L  {w : expression w is satisfiable}

L  NP

The satisfiability problem is an NP - Problem

63
Observation:

P  NP

Deterministic Non-Deterministic
Polynomial Polynomial

64
Open Problem: P  NP ?

WE DO NOT KNOW THE ANSWER

65
Open Problem: P  NP ?

Example: Does the Satisfiability problem


have a polynomial time
deterministic algorithm?

WE DO NOT KNOW THE ANSWER


66
NP-Completeness

A problem is NP-complete if:

•It is in NP

•Every NP problem is reduced to it


(in polynomial time)

67
Observation:

If we can solve any NP-complete problem


in Deterministic Polynomial Time (P time)
then we know:

P  NP

68
Observation:

If we prove that
we cannot solve an NP-complete problem
in Deterministic Polynomial Time (P time)
then we know:

P  NP

69
Cook’s Theorem:

The satisfiability problem is NP-complete

Proof:
Convert a Non-Deterministic Turing Machine
to a Boolean expression
in conjunctive normal form
70
Other NP-Complete Problems:

•The Traveling Salesperson Problem

•Vertex cover

•Hamiltonian Path

All the above are reduced


to the satisfiability problem
71
Observations:

It is unlikely that NP-complete


problems are in P

The NP-complete problems have


exponential time algorithms

Approximations of these problems


are in P
72

You might also like