Comparing Sets Size without Counting 2 sets A

  • Slides: 19
Download presentation
Comparing Sets Size without Counting 2 sets A and B have the same size

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 • Every y B has one x A such that f(x) = y In such situations f is said to be a bijective

Example: A B 1 2 3 4 5 6 a b c d e

Example: A B 1 2 3 4 5 6 a b c d e f

Example (2) E = {n : n is an even natural number} N =

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) R 1 = {r : r is a real positive number greater

Example (3) R 1 = {r : r is a real positive number greater than 1} (0, 1] = {r : r is a real number between 0 and 1} Does R 1 and (0, 1] have the same size? Yes: f(x) = 1/x is a bijective from R 1 to (0, 1] 1 same size! 1

Example (4) How about: R+ = {r : r is a real non-negative number}

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:

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 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 the ones that are non enumerable!)

Enumerability (2) • The set of all rational numbers: {p/q : p, q are

Enumerability (2) • 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/q … 1 2 3 4 5 … p p/1 … … p/q … Note: you could easily write a program in C++ that outputs 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

[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

[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

[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!

Consequences • This means that even though the natural and the real numbers are

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 Astonishingly, this result is relevant for Turing Machines!

Enumerability and Turing Machines Definition: A language L is Turing-enumerable is there is a

Enumerability and Turing Machines Definition: A language L is Turing-enumerable is there is a Turing machine that enumerates all words in L in its tape (may run forever): w 1� w 2� w 3�… Theorem 1. If a language is decidable then the language is Turing-enumerable Theorem 2. A language is semi-decidable if and only if the language is Turing-enumerable

Optional Homework (Wednesday) • Explain why C++ programs can be simulated with Turing machines

Optional Homework (Wednesday) • Explain why C++ programs can be simulated with Turing machines • Enumerate the ways to proof that a language is: Ø decidable Ø semi-decidable Ø Enumerable • 4. 20 c) • 4. 24 a)

 * is Turing-Enumerable • As an example consider = {a, b} • We

* is Turing-Enumerable • As an example consider = {a, b} • We can define a < b and then induce a lexicographical order: abbb > abbabbb • We can list all elements: e, a, b, aa, ab, bb, aaa, … • We can construct a 3 -Tape Turing machine with a counter i = 0, 1, 2, … on the second tape, and in each loop construct all combinations of words of length i in tape 3. Once done, copy those words to the end (i. e. , ��) of the first tape (cumbersome but doable!) • A similar construction can be made for any (finite)

Decidable Implies Enumerable • Let L be a language over the alphabet • If

Decidable Implies Enumerable • Let L be a language over the alphabet • If L is decidable there is a Turing Machine that decides M • Let M* be the Turing machine that enumerates * • Construct a 3 -tape Turing machine that enumerates L as follows: Ø M* will output words on the 2 nd tape ØEvery time M* outputs a word w, it is copied in the 3 rd tape, where M checks if w is in L ØIf w is in L it is appended to the end of the 1 st tape

Enumerable Implies Semi-decidable • Let L be a Turing-enumerable language • Thus, there is

Enumerable Implies Semi-decidable • Let L be a Turing-enumerable language • Thus, there is a Turing machine M that enumerates words in L • We can construct a Turing machine ML that semi-decides if a word w is in L as follows: Run M and wait to see if w is put on the tape. If w is printed on the tape, ML halts. If not, it continues waiting to see if w is printed on the tape.

Backup Slides Please Ignore

Backup Slides Please Ignore

 * is Enumerable Theorem. If is finite then * is enumerable If =

* is Enumerable Theorem. If is finite then * is enumerable If = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9}, * = {0, 1, …, 12, 13, …, 654, …} If = {a, b, c, d, e, f, g, h, i, j} * = {a, b, …, bc, cd, …, gfe, …} If consist of 500 symbols, we map them to the first 500 numbers * The Turing machine that enumerates all strings in

Decidable Implies Enumerable Suppose that L is decidable. By definition, it means that there

Decidable Implies Enumerable Suppose that L is decidable. By definition, it means that there is a Turing machine ML that decides L * ML If word is in L it copies into the second tape and adds an space For example if L = {anbn: n = 0, 1, 2, …} and = {a, b, c } then * = {a, b, c, aa, ab, ac, ba, bb, …} Tape 2: ab aabb … An enumeration of L!