Vorlesung 3 Lemke
Aus ProgrammingWiki
Inhaltsverzeichnis
|
Übungsaufgaben Seite 9
Zeigen, dass M, die Menge aller Wörter aus {a,b}* mit Länge 3, entscheidbar ist
Wir können folgende berechenbare charakterische Funktion schreiben:
Zeigen, dass M, die Menge aller Wörter aus {a,b}*, die mit a beginnen, entscheidbar ist
Wir können folgende, berechenbare charakterische Funktion schreiben:
Übungsaufgabe Seite 10
Übungsaufgaben Seite 15
Zeigen, dass die Menge der geraden Zahlen eine aufzählbare Menge ist
Wir können für die Menge der geraden Zahlen einen Generator schreiben, mit dem sich die geraden Zahlen aufzählen lassen:
Zeigen, dass die Menge der Primzahlen aufzählbar ist
Auch hier können wir folgenden Generator definieren, der immer die nächstgrößere Primzahl generiert:
Übungsaufgaben Seite 16
Zeigen, dass jede endliche Menge aufzählbar ist
Wir können einen Generator schreiben, der eine endliche Menge generiert. Er nimmt als Eingabeargument eine beliebige endliche Menge.
Menge der Gitterpunkte
Abbildung der natürlichen Zahlen auf die Gitterpunkte
Ordnungsrelation
Funktion zur Berechnung der Platznummer
Übungsaufgaben Seite 20
Beweis Semientscheidbarkeit Halteproblem
→ Beweis durch Negation des Gegenteils mit Gegenbeispiel
Gegenteilige Aussage 1: Das Halteproblem ist vollständig entscheidbar
Dann müsste es für eine unendlich weiterlaufende Funktion False ausgeben. Das passiert aber nicht, weil die Haltefunktion so lange wartet, bis sie merkt, dass diese Funktion aufhört. Wenn sie nicht aufhört, hört auch die Haltefunktion nicht auf und wird auch nie einen Rückgabewert geben. Daher ist sie nicht vollständig entscheidbar.
Gegenteilige Aussage 2: Das Halteproblem ist gar nicht entscheidbar
Wir können das Halteproblem für endlich laufende Funktionen entscheiden, indem wir einfach auf ihr Ende warten und dann True zurück geben, wenn die Funktion gehalten hat. Also ist das Halteproblem in dem Fall, dass eine Funktion nicht unendlich lange läuft, sondern hält, entscheidbar. Damit ist das Halteproblem auch nicht gar nicht entscheidbar.
→ Da das Halteproblem also weder vollkommen entscheidbar noch vollkommen unentscheidbar ist, muss es semi-entscheidbar sein.
Menge der Quadratzahlen
Aufzählfunktion
Berechenbarkeit begründen
Die Funktion generate_square_numbers, die die Menge der Quadratzahlen generiert, ist berechenbar, weil sie für jedes n eine Quadratzahl generiert. Es gibt kein n, für das die Multiplikation mit sich selbst scheitern würde.
Nachweis der Semi-Entscheidbarkeit
Die Menge der Quadratzahlen ist semi-entscheidbar, weil man jetzt mit der Generierungsfunktion einfach die Menge der Quadratzahlen generieren könnte, bis man das Wort, für das man entscheiden soll, ob es eine Quadratzahl ist, darin gefunden hat.
Nachweis der Entscheidbarkeit
Die Menge der Quadratzahlen ist sogar entscheidbar. Zum einen, weil die Elemente der Quadratzahlen geordnet aufgelistet werden, sodass man vergleichen kann, ob das gesuchte Wort größer als das aktuell betrachtete Mengenelement ist und damit eine Abbruchbedingung hat. Zum anderen, weil man einfach die Wurzel des Wortes nehmen könnte und wenn das Ergebnis eine ganze Zahl ist, ist das vorliegende Wort eine Quadratzahl.
Weisen Sie nach, dass die Menge M aller Wörter aus {a, b}∗ , die mit a beginnen, semi-entscheidbar ist.
Wir haben zuvor schon gezeigt, dass die Wortfunktion von M berechenbar ist. Damit ist M nicht nur semi-entscheidbar, sondern sogar auch entscheidbar. Da sie entscheidbar ist, ist sie auch semi-entscheidbar.