Download Turing Machines

Survey
yes no Was this document useful for you?
   Thank you for your participation!

* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project

Document related concepts

Foundations of mathematics wikipedia , lookup

Positional notation wikipedia , lookup

Mathematics of radio engineering wikipedia , lookup

Infinitesimal wikipedia , lookup

Large numbers wikipedia , lookup

Infinity wikipedia , lookup

Georg Cantor's first set theory article wikipedia , lookup

Hyperreal number wikipedia , lookup

Fundamental theorem of algebra wikipedia , lookup

Proofs of Fermat's little theorem wikipedia , lookup

Halting problem wikipedia , lookup

Real number wikipedia , lookup

Addition wikipedia , lookup

Turing's proof wikipedia , lookup

Elementary mathematics wikipedia , lookup

Algorithm characterizations wikipedia , lookup

Transcript
Remaining Discussions from Previous
Class
• Please be precise in your writing
– Specially because some of the proofs are written in plain
English
• Queue automata are equivalent to Turing Machines
• Transitions for the 2-tape Turing machine
• The notion of algorithm
– Hilbert’s 10th problem (1900): “process”, “finite number
of operations”
– Algorithm = Turing machines
• Church-Turing Thesis, 1936
– Matijaseviĉ solution to Hilbert’s 10th problem (1970)
• Not decidable
Turing-Enumerable
Héctor Muñoz-Avila
Riddle: How can we tell if two sets have
the same number of elements without
counting their elements?
A
B
1
2
3
4
5
6
a
b
c
d
e
f
Comparing Sets Size without
Counting
2 sets A and B have the same size if there is a function f: A B
such that:
• For every x  A there is one and only y  B such that
f(x) = y (i.e., has to be a function)
• Every y  B has one x  A such that f(x) = y
In such situations f is said to be a bijective function
Example (2)
E = {n : n is an even natural number}
N = {n : n is a natural number}
Does E and N have the same size?
Yes:
f(x) = x/2 is a bijective from E to N
N = {f(2), f(4), f(6) ,…}
Example (3)
R1 = {r : r is a real positive number greater than 1}
(0,1] = {r : r is a real number between 0 and 1}
Does R1 and (0,1] have the same size?
Yes:
f(x) = 1/x is a bijective from R1 to (0,1]
1
same
size!
1
Example (4)
How about:
R+ = {r : r is a real non-negative number}
N = {n : n is a natural number}
Every attempt fails:
f(x) = x
(leaves numbers like 0.5 out)
f(x) = floor(x)
(assigns the same value for
numbers like 1.2 and 1.3)
How can we know for sure that there is no bijective function
from R+ to N?
Enumerability
•We know that there is an enumeration for all the natural
numbers: 1, 2, 3, 4, …, 101000, …
The point is that for any natural, say 101000, it will
eventually be listed!
•There is no such enumeration for [0,1), the set of all the real
numbers between 0 and 1 (i.e., 0, 0.01, 0.1003, 3/)
•Thus there can’t be any bijective function f: N [0,1),
otherwise: {f(0), f(1), f(2), …} would be an enumeration for
[0,1)
•Surprisingly there is a enumeration for the rational numbers
(the irrational numbers are the ones that are non enumerable!)
The Rational Numbers are Enumerable
• The set of all rational numbers:
{p/q : p, q are natural numbers} is
enumerable:
1 2 3 4 5 … q …
1/1 1/2 1/3 1/4 1/5 … 1/q …
2/1 2/2 2/3 2/4 2/5 … 2/q …
3/1 …
4/1 …
5/1 …
5/q …
1
2
3
4
5
…
p p/1 …
…
p/q …
Note: you
could easily
write a
program in
C++ that
prints this
enumeration
(and runs
forever)
Enumeration: 1/1, 1/2, 2/1, 1/3, 2/2, 3/1, 1/4, …, p/q, …
[0,1) Is Not Enumerable
By contradiction: suppose that there is an enumeration for all
the real numbers between 0 and 1:
# 1:
# 2:
# 3:
…
#23:
…
0.012304565 ...
0.10002344345 ...
0.865732546789 …
0.434555…6…
[0,1) Is Not Enumerable (II)
We construct a number  as follows: for each number n in the
enumeration, we look at the n-th digit in n:
#1: 0.012304565 ...
#2: 0.10002344345 ...
#3: 0.865732546789 …
…
#23: 0.434555…6…
…
The 23-rd digit
 = 0.005…6…
Obviously  is a real number between 0 and 1
[0,1) Is Not Enumerable(III)
We construct a number  as follows: we change each digit in 
for a different digit:
 = 0.005…6…
 = 0.120…7…
Obviously  is a real number between 0 and 1
Question: is  = #1? or  = #2? or … or  = #23? or …
#1: 0.012304565 ...
#2: 0.10002344345 ...
#3: 0.865732546789 …
…
#23: 0.434555…6…
…



…

…
Thus, it is not possible
to enumerate all the
real numbers between
0 and 1!
Summary of Enumerability
• Two sets have the same cardinality (read: size) if there is a
bijective function from one into the other one
• The set of the natural numbers is enumerable
• The set of all rational numbers are enumerable
• Therefore, the set of natural numbers has the same
“cardinality” = as the set of rational numbers
• The set of real numbers is not enumerable
• Therefore, the cardinality of the real numbers is larger than
the cardinality of the natural numbers
Consequences
•This means that even though the natural and the real
numbers are both infinite, the size of the set of the real
numbers is “bigger” than the size of the set of the natural
numbers.
•This has been known for mathematicians for quite a long
time
•This is all nice and beautiful, but what the %$%%^# does
this has to do with Turing machines?
•Astonishingly, this result is relevant for Turing
machines!
Enumerability and Turing Machines
Definition: A language L is Turing-enumerable if there is a
Turing machine that enumerates all words in L in its tape
(may run forever):
w1 w2 w3…
• Our book does not define Turing-enumerability
• Rather it says that there is an Enumerator Turing machine
that enumerates all words in L
• These two notions are equivalent
* is Turing-Enumerable
Lemma. If  is finite then * is enumerable
(for  = {a,b})
M(*):
2
1
a1
a2
1
2
2
compute successor
word in second
tape
(the first tape acts as
the printer)
copy word from
second tape into
first tape
Decidability implies Turingenumerability
Theorem 1. If a language L is decidable then the language is
Turing-enumerable
•Given: T is the Turing machine that decides L
•Construct: T’ a Turing machine that enumerates L
T’:
1
If w is in L
T
0
If w is not in L
•Uses 3 tapes
 Machine deciding L runs in Tape 2
 Run M(*) stepwise in Tape 3
T
Tape 3: w1w2…
• Copy latest word w output in Tape 3 into Tape 2, if w is in L, append it
to the end of Tape 1 and add a blank afterwards
Turing-Enumerability Implies
Semidecidability
Theorem 2. If a language L is Turing-enumerable then the
language is Turing-recognizable
•Given: T is the Turing machine that enumerates L
•Construct: T’ a Turing machine that recognizes L
T’:
T
Tape: w1w2…
We are
recognizing if
w is in the
language
•Uses 2 tapes
 Put word w in Tape 1
 Run T stepwise in Tape 2
T
Tape 2: w1w2…
• If the latest word output in Tape 2 is equal to word in Tape 1 then halt
Other Enumerability Results
Theorem 4. If a language L is Turing-recognizable then L is
Turing-enumerable
Theorem 5. The set of all Turing Machines is enumerable
Theorem 6. The set of all functions f: N  N is not
enumerable
Theorem 7. There exists f: N N that is not Turingrecognizable