Theoretische Informatik SS 03 Übung 2 Aufgabe 1 a) Gegeben seien die Mengen A = {0, 1} und B = {0, 1, 2}. Geben Sie bitte die Mengen AB, A2 , B 2 und A3 an. Lösung: AB = {(0, 0), (0, 1), (0, 2), (1, 0), (1, 1), (1, 2)} A2 = {(0, 0), (0, 1), (1, 0), (1, 1)} B 2 = {(0, 0), (0, 1), (0, 2), (1, 0), (1, 1), (1, 2), (2, 0), (2, 1), (2, 2)} A3 = {(0, 0, 0), (0, 0, 1), (0, 1, 0), (0, 1, 1), (1, 0, 0), (1, 0, 1), (1, 1, 0), (1, 1, 1)} b) Was ist die Menge k für eine natürliche Zahl k? Lösung: Alle Tupel der Länge k von natürlichen Zahlen. = {(a , a , . . . , a ) | a ∈ } 1 2 i k Aufgabe 2 a) Zeigen Sie, dass die Menge der ganzen Zahlen abzählbar ist. Lösung: Wir geben eine Bijektion f : −→ an: Beweis: f (n) = ( f (n)−1 = − n2 | n mod 2 ≡ 0 n−1 2 | n mod 2 ≡ 1 ( −2n |n≤0 2n + 1 | n > 0 b) Die Menge N k ist abzählbar für eine vorgegebene Zahl k. Zeigen Sie dies für k = 2. Lösung: Wir betrachten die Funktion: c(x, y) = (x + y + 1)(x + y) ·x 2 Dabei handelt es sich um eine Bijektion zwischen den natürlichen Zahlen und × . Beweis: Dass es sich tatsächlich um eine Bijektion handelt, kann man sich wie folgt klar machen: 1 × , da c(x, y) für alle Paare (x, y) ∈ • Db(c) = × existiert. • W b(c) = und Eineindeutigkeit überlegt man sich bspw.so: In c(x, y = x+y+1 + x kann der Term x + y jeden beliebigen Wert z entsprechen, 2 angenommen durch x = 0 und y = z. =⇒ Für z = 0 ist dann c(x, y) = c(0, 0) = 0. Bei x + y = 0 ist für x und y nur die Belegung (0, 0) möglich. Betrachten wir also den Fall z = 1. =⇒ x + y = 1, was neben (0, 1) auch noch für das Paar (1, 0) möglich ist. In diesem Falle nimmt jedoch c(x, y) = c(1, 0) den Wert 2 an. Allgemein kann man so vorgehen, dass man für x + y fest, y suzessive dekrementiert, während x inkrementiert wird. Dies hat keine Auswirkung auf x+y+1 , der Wert von c(x, y) wird jedoch systematisch 2 inkrementiert. Wir lassen unser z von 0 bis ∞ laufen, und für jedes z führen wir eben genannte Prozedure (Dekrementierung/ Inkrementierung) durch. Dann liegen für die Teilfolge eines bestimmten z-Wertes alle Elemente in der Form (a, a + 1, a + 2, . . . , a + z) vor. Es bleibt zu zeigen, dass diese Teilfolgen direkt aneinander anschließen. Wir betrachten dazu die Folge mit x + y = z und die mit x + y = z + 1. Das größte Element der ersten Folge müsste gleich dem kleinsten Element der zweiten Folge minus 1 sein; dies gilt offenbar: z · (z + 1) +z = 2 z · (z + 1) + 2z = 2 z 2 + 3z = 2 c) Zeigen Sie mit b), dass die Menge (z + 1) · (z + 2) −1 2 z 2 + 2z + z + 2 − 2 2 z 2 + 3z 2 der rationalen Zahl abzählbar ist. Beweis: In Teilaufgabe b) wurde gezeigt, dass und × gleichmächtig sind. Kann man weiterhin zeigen, dass dies auch für × und gilt, so gilt auch ist gleichmächtig wie . x . Es gilt also: Dazu interpretiert man alle Paare (x, y) ∈ × als Brüche y+1 × ={ 0 1, 0 2, 1 1, 0 3, 1 2, 2 1, 0 4, 1 3, 2 2, 3 1, . . .} | | | | | | | | | | = { (0,0), (0,1), (1,0), (0,2), (1,1), (2,0), (0,3), (1,2), (2,1), (3,0), . . .} Aufgabe 3 a) Zeigen Sie, dass die Menge {0, 1}∗ abzählbar ist. (Allgemeiner gilt sogar, dass für jedes Alphabet (endliche Menge) Σ die Menge Σ ∗ abzählbar ist). Beweis: Es werden zwei injektive Abbildungen angegeben - f : −→ {0, 1} ∗ und g : ∗ {0, 1} −→ . f (n) ermittelt die Binärdarstellung von n. g(h) fügt einer eingegebenen Zeichenkette eine führende Eins hinzu und interpretiert die entstehende Kette als Binärzahl. 2 Diese wird in die dekadische Darstellung umgewandelt. Es ist offensichtlich, dass f jeder Zahl aus eine andere Zeichenkette aus {0, 1} zuordnet und dass g jeder Zeichenkette (auch der leeren) eine andere Zahl n ∈ zuordnet. 2 Allgemein kann man sich vorstellen: Man definiert eine lexikographische Ordnung auf Σ. Bsp.: Σ = {a, b, $, 1} =⇒ a ≺ b ≺ $ ≺ 1 Alle Zeichenketten aus Σ∗ lassen sich nun in eine kanonische Ordnung bringen (erst nach Länge sortieren, bei gleicher Länge lexikographisch). Daher lassen sich alle Zeichenketten aus Σ∗ aufzählen, es existiert also eine Bijektion mit . b) Zeigen Sie, dass es abzählbar viele Turing-Maschinen gibt. (Hinweis: geeignete Eincodierung der Übergangsfunktion). Lösung: Idee: Jede beliebige TM ist über dem Alphabet {0, 1} codierbar. Damit lassen sich alle TM mittels der kanonischen Ordnung in eine feste Reihenfolge bringen, sind also aufzählbar. Folglich existiert eine Bijektion mit . Beweis: Codierung: • Eine beliebige TM M liegt zunächst in der Form M = (Z, Σ, Γ, δ, z 1 , 2, E) vor. Diese Information ist also zu codieren. • O.B.d.A. gelte Σ = {0, 1}, Γ = {0, 1, B}, Z = {z 1 , z2 , . . . , zt }, E = {z2 } • Sei X1 := 0, X2 = 1, X3 = B, D1 = L, D2 = N, D3 = R. • Ist δ(zi , Xj ) = (zk , Xl , Dm ) in δ enthalten, wird dies mit 0i 10j 10k 10l 10m codiert. Die gesamte Funktionstabelle von δ wird so codiert. • Eine Tabelle mit s Zeilen, wobei code(q) die Codierung der eben vorgestellten Form von der q-ten Zeile ist, wird so dargestellt: 111code(1)11code(2)11. . .11code(s)111. Diese Nummer wird als Gödelnummer <M> der TM M bezeichnet. • Auf den Gödelnummern existiert eine kanonische Reichenfolge. Aufgabe 4 a) Zeigen Sie, dass es überabzählbar (mehr als abzählbar) viele reelle Zahlen gibt (Hinweis: Cantor’sches Diagonalverfahren). Lösung: 3 Mit dem Cantorschen Diagonalverfahren kann man zeigen, dass es keine Bijektion f : −→ gibt. Der Beweis erfolgt indirekt. Beweis: Ann. ∃ bijektive Abbildung f : =⇒ f (1) f (2) f (3) f (4) f (5) = = = = = −→ v1 , a11 a12 a13 a14 a15 . . . v2 , a21 a22 a23 a24 a25 . . . v3 , a31 a32 a33 a34 a35 . . . v4 , a41 a42 a43 a44 a45 . . . v5 , a51 a52 a53 a54 a55 . . . ... Wir konstruieren jetzt eine Zahl z = 0, z 1 z2 z3 z4 z5 . . . mit zi 6= aii . Dieses z kommt jedoch als Bild von f nicht vor, denn würde es als f (i) vorkommen, dann würde zi = aii gelten, Widerspruch. =⇒ f ist nicht bijektiv. 2 b) Für die Zahl π gibt es Näherungsverfahren, welche für jedes n die ersten n Nachkommastellen von π = 3, 14159 . . . angeben. Man kann also eine Turing-Maschine konstruieren, die bei Eingabe von n mit der n-ten Nachkommastelle von π als Ausgabe anhält. Zeigen Sie, dass solche Turing-Maschinen nicht für jede reelle Zahl konstruiert werden können. Lösung: Idee: Es gibt nur abzählbar viele TM, jedoch überabzählbar viele reelle Zahlen. Beweis: Ann. eine solche TM ist für jede Zahl r i ∈ konstruierbar (T Mi ). =⇒ Für verschiedene Zahlen r1 , r2 ∈ gilt T M1 6= T M2 , da es wegen r1 6= r2 ein n ∈ geben muss, an dem r1 und r2 verschieden sind und T M1 folglich nach Definition bei gleicher Eingabe eine andere Ausgabe als T M 2 liefern muss. =⇒ Es gibt überabzählbar viele T M , Widerspruch zu Aufgabe 3.b). 2 4