• Keine Ergebnisse gefunden

Lösungsvorschlag zu Aufgabe 1

N/A
N/A
Protected

Academic year: 2022

Aktie "Lösungsvorschlag zu Aufgabe 1"

Copied!
3
0
0

Wird geladen.... (Jetzt Volltext ansehen)

Volltext

(1)

ETH Zürich

Institut für Theoretische Informatik

Prof. Dr. Angelika Steger, Dr. Johannes Lengler Übungsleitung: Florian Meier

HS 2019

Algorithmen und Komplexität Lösungsvorschlag zu Übungsblatt 10

Lösungsvorschlag zu Aufgabe 1

(a) Die Elemente in{0, 1}sind Wörter endlicher Länge, bestehend aus den Zeichen 0 und 1. Es genügt, die Wörter nach ihrer Länge zu ordnen und Wörter gleicher Länge lexikographisch (bezüglich der Binärdarstellung) zu ordnen: 0 sei das erste Wort, 1 das zweite, 00 das dritte, 01 das vierte, usw. Da jedes Wort x endliche Länge hat, wird es irgendwo in dieser Liste auftauchen. Damit gilt insbesondere

{0, 1}={x1,x2, . . .}.

(b) Programme lassen sich als endliche Sequenz von Zeichen aus einem endlichen Alphabet schreiben. Auch hier können wir die Programme nach ihrer Länge ordnen und Programme gleicher Länge lexikographisch anordnen. Daraus ergibt sich eine Liste

P ={P1,P2, . . .}.

in der jedes Program enthalten ist, da jedes Programm endliche Länge hat, und somit nur endlich viele Programme vor ihm in der Liste auftauchen.

(c) Wir definieren die Funktion fdiag : {0, 1} → {0, 1}folgendermassen. Falls Pi(xi) 6= 0 so definiere fdiag(xi) = 0, und falls Pi(xi) = 0 so definiere fdiag(xi) = 1. Dann gilt für jedes Pi, dassPi(xi)6= fdiag(xi). Daraus folgt, dass fdiagvon keinem ProgrammPiberechnet wird.

Deshalb ist fdiagnicht berechenbar.

Lösungsvorschlag zu Aufgabe 2

a) Der AlgorithmusBbekommt(c,k)als Input. Er setzta←c, sortiertcund setzt anschliessend b←c. Anschliessend ruft erA(a,b,k)auf.

b) Die Korrektheit von B folgt direkt aus der Aussage, dass c genau dann eine aufsteigende Teilsequenz der Länge k besitzt, wenn a und b eine gemeinsame Teilsequenz der Länge k besitzt. Wir zeigen beide Richtungen.

Angenommenchat eine aufsteigende Teilsequenzxder Längek. Sicherlich istxTeilsequenz von adaa= c. Daballe Zahlen vonxenthält und sowohl xals auchbaufsteigend sortiert sind, istxauch Teilseqeuenz vonb. Es folgtaundbhaben eine gemeinsame Teilsequenze der Längek.

Angenommenaundbhaben eine gemeinsame Teilsequenzxder Längek. Dabaufsteigend sortiert ist, ist auchxaufsteigend sortiert. Dac=aist, hatcein aufsteigende Teilsequenz der Längek.

c) AlgorithmusBbenötigt Zeitnlognum den Input(a,b,k)zu erzeugen (Sortieren mit MERGE- SORT) und zusätzlich LaufzeitT(n) um Aaufzurufen. Es folgt Gesamtlaufzeit O(nlogn+ T(n)).

1

(2)

Lösungsvorschlag zu Aufgabe 3

a) Wir nehmen per Widerspruch an, dass die FunktionH0berechenbar ist. Unser Ziel ist es zu zeigen, dass dann auch die Haltefunktion H berechenbar wäre, was aber gemäss Satz 5.3 ausgeschlossen ist. Sei alsoH0berechenbar. Per Definition existiert dann ein Programm P0, welchesH0berechnet. Daraus konstruieren wir ein ProgrammP, welches die Halte-Funktion

Hberechnen kann.

Sei(A,x)die Eingabe, die unser ProgrammPals Bitstring erhält. Wir definieren nun ein Hilfs- ProgrammBx wie folgt:Bx ignoriert die Eingabezund führt das ProgrammAauf Eingabe xaus.Bxsimuliert dann also Aauf x. Wir stellen fest, dass Bx(0) = A(x), fallsAaufx hält.

FallsAaufx nichthält, so hält auchBxauf Eingabe 0 nicht.

Unser Programm P soll jetzt wie folgt aussehen: Zunächst überprüft P die Eingabe(A,x). FallsAkein Programm beschreibt, gibt Psofort 0 aus. Andernfalls modifiziert Pdie Codie- rung vonAso, dassBxentsteht. Dies ist möglich indem wir xals Eingabe hart codieren (In RAM-Maschinen befindet sich die Eingabe inM0, dann würden wir einfach am Anfang vonA den BefehlM0←xhinzufügen, was soviel bedeutet dass jede Eingabe durchxersetzt wird).

Schliesslich führtPdas ProgrammP0auf EingabeBxaus, d.h. PberechnetP0(Bx)und über- nimmtP0(Bx)alseigeneAusgabe. Wir behaupten, dass unser ProgrammPdie Haltefunktion berechnet.

• GiltP(A,x) =1, so stellt einerseitsAein Programm dar, und andererseits 1=P(A,x) = P0(Bx). Das bedeutet wiederum, dass Bx auf Eingabe 0 hält. Per Konstruktion von Bx

machtBxauf Eingabe 0 genau dasselbe wieAauf Eingabex, folglich hält dann auch A aufx. Genau das ist, was wir haben wollen:Psoll testen, obAaufxhält. Das heisst, in diesem Fall haben wirP(A,x) =H(A,x).

• Gilt hingegenP(A,x) =0, so ist entwederAnicht die Codierung eines Programms, oder wir haben 0=P(A,x) =P0(Bx). Dies impliziert, dassBxauf Eingabe 0 nicht hält. Nach Konstruktion vonBxhält dann ProgrammAnicht auf Eingabe 0. Also haben wir wieder P(A,x) =H(A,x).

Damit haben wir also ein ProgrammPgeschrieben, welches die HaltefunktionHberechnen kann. Dies steht aber in direktem Widerspruch zu Satz 5.3. Also kann es kein ProgrammP0 geben, welchesH0berechnet.

b) Wir gehen analog vor, wie beim Beweis aus der Vorlesung für den ersten Unvollständigkeits Satz.

Nehme an dass für jedes ProgrammAentwederA(0)hält und die Aussage “A(0)hält“ be- weisbar ist, oderA(0)nicht hält und die Aussage “A(0)hält nicht“ beweisbar ist. Dann kön- nen wir folgendes Programm definieren, welches die FunktionH0berechnet:

Eingabe: A

ifAkein Programmthen return 0

else

for allp∈ {0, 1}do

ifV( “A(0) hält“, p)= 1then return 1

end if

ifV(“A(0) hält nicht“, p)= 1then return 0

end if end for end if

2

(3)

FallsH0(A) =1 so hältA(0). Per Annahme findet dieses Programm irgendwann einen Beweis pund es wird 1 ausgegeben. FallsH0(A) = 0 so hältA(0)nicht. Auch in diesem Fall findet per Annahme das Programm einen Beweispund es wird 0 ausgegeben. Somit berechnet das Program die FunktionH0. Widerspruch, und die Aussage folgt.

3

Referenzen

ÄHNLICHE DOKUMENTE

Bestimmen Sie die Eigenwerte samt algebraischer und geometrischer Viel-.. fachheiten der

In  diesem  kurzen  Kapitel  wollen  wir  die  bisherigen  Betrachtungen  in  einen  Begriff   kondensieren,  der  Wahrscheinlichkeitsverteilung,  und  dazu

Berechnen Sie für die Ziehung beim Lotto 6 aus 49 (Ziehen ohne Zurücklegen) die W’, dass Ihre Glückszahl (welche das ist, spielt für die Rechnung keine Rolle) als eine der

Es werden dann immer 5 Teile gleichzeitig gewogen, bis die Gruppe gefunden ist, in der das defekte (= zu leichte Teil) ist.. Die 5 Teile dieser Gruppe werden einer einzelnen Prüfung

(c) W¨ are es f¨ ur Fabian besser, wenn derjenige das Duell gewinnt, der das erste Spiel gewinnt. (d) Wie groß ist die Wahrscheinlichkeit, dass das Duell

(c) W¨ are es f¨ ur Fabian besser, wenn derjenige das Duell gewinnt, der das erste Spiel gewinnt?. (d) Wie groß ist die Wahrscheinlichkeit, dass das Duell

(c) Wie groß ist die Wahrscheinlichkeit, dass die Wartezeit sowohl von Martin als auch von Fabian gr¨ oßer als 2 ist.. (d) Wie groß ist die Wahrscheinlichkeit, dass die l¨ angere

Lehrstuhl Theoretische Informatik Markus Lohrey. Logik I