A Universal Turing Machine Fall 2006 Costas Busch - RPI 1 A limitation of Turing Machines: Turing Machines are “hardwired” they execute only one program Real Computers are re-programmable Fall 2006 Costas Busch - RPI 2 Solution: Universal Turing Machine Attributes: • Reprogrammable machine • Simulates any other Turing Machine Fall 2006 Costas Busch - RPI 3 Universal Turing Machine simulates any Turing Machine M Input of Universal Turing Machine: Description of transitions of Input string of Fall 2006 M M Costas Busch - RPI 4 Tape 1 Three tapes Description of Universal Turing Machine M Tape 2 Tape Contents of M Tape 3 Fall 2006 Costas Busch - RPI State of M 5 Tape 1 Description of We describe Turing machine as a string of symbols: We encode Fall 2006 M M M as a string of symbols Costas Busch - RPI 6 Alphabet Encoding Symbols: a b c d Encoding: 1 11 111 1111 Fall 2006 Costas Busch - RPI 7 State Encoding States: q1 q2 q3 q4 Encoding: 1 11 111 1111 Head Move Encoding Move: L R Encoding: 1 11 Fall 2006 Costas Busch - RPI 8 Transition Encoding Transition: (q1, a) (q2 , b, L) Encoding: 1 0 1 0 11 0 11 0 1 separator Fall 2006 Costas Busch - RPI 9 Turing Machine Encoding Transitions: (q1, a) (q2 , b, L) (q2 , b) (q3 , c, R) Encoding: 1 0 1 0 11 0 11 0 1 00 11 0 110 111 0 111 0 11 separator Fall 2006 Costas Busch - RPI 10 Tape 1 contents of Universal Turing Machine: binary encoding of the simulated machine M Tape 1 1 0 1 0 11 0 11 0 10011 0 1 10 111 0 111 0 1100 Fall 2006 Costas Busch - RPI 11 A Turing Machine is described with a binary string of 0’s and 1’s Therefore: The set of Turing machines forms a language: each string of this language is the binary encoding of a Turing Machine Fall 2006 Costas Busch - RPI 12 Language of Turing Machines (Turing Machine 1) L = { 010100101, 00100100101111, 111010011110010101, (Turing Machine 2) …… …… } Fall 2006 Costas Busch - RPI 13 Countable Sets Fall 2006 Costas Busch - RPI 14 Infinite sets are either: Countable or Uncountable Fall 2006 Costas Busch - RPI 15 Countable set: There is a one to one correspondence of elements of the set to Natural numbers (Positive Integers) (every element of the set is mapped to a number such that no two elements are mapped to same number) Fall 2006 Costas Busch - RPI 16 Example: The set of even integers is countable Even integers: (positive) 0, 2, 4, 6, Correspondence: Positive integers: 1, 2, 3, 4, 2n corresponds to n 1 Fall 2006 Costas Busch - RPI 17 Example: The set of rational numbers is countable Rational numbers: Fall 2006 1 3 7 , , , 2 4 8 Costas Busch - RPI 18 Naïve Approach Nominator 1 Rational numbers: 1 1 1 , , , 1 2 3 Correspondence: Positive integers: 1, 2, 3, Doesn’t work: we will never count numbers with nominator 2: Fall 2006 Costas Busch - RPI 2 2 2 , , , 1 2 3 19 Better Approach Fall 2006 1 1 1 2 1 3 2 1 2 2 2 3 3 1 3 2 4 1 1 4 Costas Busch - RPI 20 Fall 2006 1 1 1 2 1 3 2 1 2 2 2 3 3 1 3 2 4 1 1 4 Costas Busch - RPI 21 Fall 2006 1 1 1 2 1 3 2 1 2 2 2 3 3 1 3 2 4 1 1 4 Costas Busch - RPI 22 Fall 2006 1 1 1 2 1 3 2 1 2 2 2 3 3 1 3 2 4 1 1 4 Costas Busch - RPI 23 Fall 2006 1 1 1 2 1 3 2 1 2 2 2 3 3 1 3 2 4 1 1 4 Costas Busch - RPI 24 Fall 2006 1 1 1 2 1 3 2 1 2 2 2 3 3 1 3 2 4 1 1 4 Costas Busch - RPI 25 Rational Numbers: 1 1 2 1 2 , , , , , 1 2 1 3 2 Correspondence: Positive Integers: Fall 2006 1, 2, 3, 4, 5, Costas Busch - RPI 26 We proved: the set of rational numbers is countable by describing an enumeration procedure (enumerator) for the correspondence to natural numbers Fall 2006 Costas Busch - RPI 27 Definition Let S be a set of strings (Language) An enumerator for S is a Turing Machine that generates (prints on tape) all the strings of S one by one and each string is generated in finite time Fall 2006 Costas Busch - RPI 28 strings s1, s2 , s3 , S Enumerator Machine for S output (on tape) Finite time: Fall 2006 Costas Busch - RPI s1, s2 , s3 , t1, t2 , t3 , 29 Enumerator Machine Time 0 Configuration q0 prints s1 Time t1 x1 # s1 qs Fall 2006 Costas Busch - RPI 30 Time t 2 prints s2 x2 # s2 qs Time t3 prints s3 x3 # s3 qs Fall 2006 Costas Busch - RPI 31 Observation: If for a set S there is an enumerator, then the set is countable The enumerator describes the correspondence of S to natural numbers Fall 2006 Costas Busch - RPI 32 Example: The set of strings is countable S {a , b,c } Approach: We will describe an enumerator for Fall 2006 Costas Busch - RPI S 33 Naive enumerator: Produce the strings in lexicographic order: s1 s2 a aa aaa aaaa ...... Doesn’t work: strings starting with b will never be produced Fall 2006 Costas Busch - RPI 34 Better procedure: Proper Order (Canonical Order) 1. Produce all strings of length 1 2. Produce all strings of length 2 3. Produce all strings of length 3 4. Produce all strings of length 4 .......... Fall 2006 Costas Busch - RPI 35 s1 s2 Produce strings in Proper Order: Fall 2006 a b c aa ab ac ba bb bc ca cb cc aaa aab aac ...... Costas Busch - RPI length 1 length 2 length 3 36 Theorem: The set of all Turing Machines is countable Proof: Any Turing Machine can be encoded with a binary string of 0’s and 1’s Find an enumeration procedure for the set of Turing Machine strings Fall 2006 Costas Busch - RPI 37 Enumerator: Repeat 1. Generate the next binary string of 0’s and 1’s in proper order 2. Check if the string describes a Turing Machine if YES: print string on output tape if NO: ignore string Fall 2006 Costas Busch - RPI 38 Binary strings Turing Machines 0 1 00 01 1 0 1 0 11 0 11 0 0 1 0 1 0 11 0 11 0 1 s1 s2 1 0 11 0 1010010101101 Fall 2006 1 0 1 0 11 0 11 0 1 1 0 11 0 1010010101101 End of Proof Costas Busch - RPI 39 Uncountable Sets Fall 2006 Costas Busch - RPI 40 We will prove that there is a language L which is not accepted by any Turing machine Technique: Turing machines are countable Languages are uncountable (there are more languages than Turing Machines) Fall 2006 Costas Busch - RPI 41 Definition: A set is uncountable if it is not countable We will prove that there is a language which is not accepted by any Turing machine Fall 2006 Costas Busch - RPI 42 Theorem: If S is an infinite countable set, then the powerset S 2 of S is uncountable. (the powerset 2 S is the set whose elements are all possible sets made from the elements of S ) Fall 2006 Costas Busch - RPI 43 Proof: Since S is countable, we can write S {s1, s2 , s3 ,} Elements of Fall 2006 Costas Busch - RPI S 44 Elements of the powerset 2 S have the form: {s1, s3} {s5 , s7 , s9 , s10} …… Fall 2006 Costas Busch - RPI 45 We encode each element of the powerset with a binary string of 0’s and 1’s Powerset element Binary encoding s1 s2 s3 s4 {s1} 1 0 0 0 {s2 ,s3} 0 1 1 0 {s1,s3, s4} 1 0 1 1 (in arbitrary order) Fall 2006 Costas Busch - RPI 46 Observation: Every infinite binary string corresponds to an element of the powerset: Example: Corresponds to: Fall 2006 10 0 111 0 {s1, s4 , s5 , s6 ,} 2 Costas Busch - RPI S 47 Let’s assume (for contradiction) S that the powerset 2 is countable Then: we can enumerate the elements of the powerset S 2 {t1, t2 , t3 ,} Fall 2006 Costas Busch - RPI 48 suppose that this is the respective Powerset element Fall 2006 Binary encoding t1 1 0 0 0 0 t2 1 1 0 0 0 t3 1 1 0 1 0 t4 1 1 0 0 1 Costas Busch - RPI 49 Take the binary string whose bits are the complement of the diagonal t1 1 0 0 0 0 t2 1 1 0 0 0 t3 1 1 0 1 0 t4 1 1 0 0 1 Binary string: t 0011 (birary complement of diagonal) Fall 2006 Costas Busch - RPI 50 The binary string corresponds to an element of S the powerset 2 : Fall 2006 t 0011 t {s3, s4,} 2 S Costas Busch - RPI 51 Thus, t must be equal to some ti t ti However, the i-th bit in the encoding of t is the complement of the i-th bit of ti , thus: t ti Contradiction!!! Fall 2006 Costas Busch - RPI 52 Since we have a contradiction: The powerset S of 2 S is uncountable End of proof Fall 2006 Costas Busch - RPI 53 An Application: Languages Consider Alphabet : A {a, b} The set of all Strings: S {a, b} { , a, b, aa, ab, ba, bb, aaa, aab,} * infinite and countable (we can enumerate the strings in proper order) Fall 2006 Costas Busch - RPI 54 Consider Alphabet : A {a, b} The set of all Strings: S {a, b} { , a, b, aa, ab, ba, bb, aaa, aab,} * infinite and countable Any language is a subset of S: L {aa, ab, aab} Fall 2006 Costas Busch - RPI 55 Consider Alphabet : A {a, b} The set of all Strings: S A {a, b} { , a, b, aa, ab, ba , bb , aaa, aab,} infinite and countable * * The powerset of S contains all languages: 2 {,{}, {a}, {a, b}, {aa, b},..., {aa, ab, aab}, } uncountable S Fall 2006 Costas Busch - RPI 56 Consider Alphabet : A {a, b} countable M3 M1 M 2 Turing machines: accepts Languages accepted By Turing Machines: L1 Denote: X {L1, L2 , L3 ,} countable Fall 2006 Costas Busch - RPI L3 L2 countable Note: X 2 S S {a, b } * 57 Languages accepted by Turing machines: X countable S All possible languages: 2 uncountable Therefore: since X 2S , we have Fall 2006 Costas Busch - RPI X 2 X 2S S 58 Conclusion: There is a language L not accepted by any Turing Machine: X 2 S L 2 S and L X (Language L cannot be described by any algorithm) Fall 2006 Costas Busch - RPI 59 Non Turing-Acceptable Languages L Turing-Acceptable Languages Fall 2006 Costas Busch - RPI 60 Note that: X {L1, L2 , L3 ,} is a multi-set (elements may repeat) since a language may be accepted by more than one Turing machine However, if we remove the repeated elements, the resulting set is again countable since every element still corresponds to a positive integer Fall 2006 Costas Busch - RPI 61