BuK/IIm12/Studenten/sifedeut/uebung2
Aus ProgrammingWiki
Wiki-Quelltext dieser Seite.
= Übungsaufgaben - Berechenbarkeitsbegriff =
{| class="wikitable"
| '''Definition der Berechenbarkeit'''
|-
| Eine Funktion <math>f</math> ist berechenbar, wenn es einen Algorithmus gibt, der für jedes <math>x \in D(f)</math> den zugehörigen Funktionswert <math>f(x)</math> effektiv<sup>*</sup> ermittelt.
|}
<sup>*</sup>''Effektiv bedeutet, dass nicht zwingend ein entsprechendes Programm vorliegen muss.''
== Aufgabe 1 ==
=== Unzulängliches (wenigstens) für Computer ===
* es fehlt eine Beschreibungssprache <math>\Rightarrow</math> nicht maschinell verarbeitbar
* Probleme/Aufgaben sind oft komplex und besitzen viele (abhängige) Parameter
* Beispiele: "Gefallen ihr die Blumen?", "Werden alle Ostereier dieses Jahr verkauft?"
* mögliche Verkleinerung dieser Probleme (Problemklasse): Einsatz von KI, Simulationen, Wahrscheinlichkeitsrechnung
=== Praktisch Unmöglich ===
* das sind Probleme die maschinell beschreibbar, jedoch aufgrund begrenzter Ressourcen nicht effizient lösbar sind.
* Beipsiele: n-Damen-Problem, Traveling-Salesman-Problem in großen Dimensionen und mit mehreren Parametern (z.B. Zeitpunkte), Stundenplan-Problem
----
Wdh. abzählbar unendliche Menge
Ist eine bijektive Abbildung der natürlichen Zahlen auf eine Menge <math>M</math> (es reicht auch schon surjektiv)
== Cantor 1. Art ==
Ist ein mathematisches Beweisverfahren, mit dem man zeigen kann, dass die Menge der rationalen Zahlen abzählbar unendlich ist.
Am Beispiel von <math>A^*</math>:
Alphabet: <math>A=\{a,b,c\}</math>
<math>A^*</math> wird längen-lexikografisch geordnet:
<math>A^*=\{\epsilon,a,b,c,aa,ab,ac,ba,bb,ba,ca,cb,cc,...\}</math>
Die Menge <math>A^*</math> lässt sich in Gruppen unterteilen:
Gruppe 1: <math>\epsilon</math>
Gruppe 2: <math>a,b,c</math>
Gruppe 3: <math>aa,ab,ac,ba,bb,ba,ca,cb,cc</math>
Die Länge der Gruppen entspricht der Kardinalität von <math>A\text{: }|A|^{\text{Ordnungsnummer der Gruppe}}</math>
So geordnet lässt sich jedem Element von <math>A^*</math> Element der natürlichen Zahlen zuordnen.
Diese Zuordnung ist bijektiv <math>\Rightarrow A^*</math> ist abzählbar unendlich
== Aufgabe 2 ==
Zeigen Sie, dass die folgenden Mengen abzählbar unendlich sind: <math>\mathbb{Z}, \mathbb{Q}</math>, die Menge der Primzahlen, die geraden Zahlen
== Aufgabe 3 ==
Beweisen Sie den folgenden Satz:
Wenn <math>M_1, M_2, M_3, ...</math> abzählbare Mengen sind, dann ist auch die Menge <math>\bigcup_{n=1}^\infty M_n</math> abzählbar.
== Aufgabe 4 ==
Verizieren Sie, dass die folgende Funktion <math>f : \mathbb{N}^+ \to \mathbb{Q}^+</math> eine bijektive Funktion ist und implementieren Sie eine Prozedur, die die zugehörige Umkehrfunktion <math>f^{-1}</math> berechnet.
<math>f(n)=\begin{cases}1 & \text{, wenn n=1}\\f(\frac{n}{2})+1 & \text{, wenn }n\text{ gerade}}\\\frac{1}{f(n-1)} & \text{, wenn }n\text{ ungerade.}\end{cases}</math>
# Schreiben Sie als erstes eine Scheme-Prozedur für <math>f</math> und führen Sie einige rekursive Berechnungen aus.
# Berechnen Sie <math>f(n)</math> für <math>n=1,2,...,7</math> mit der Hand
# Verbessern Sie die Effizienz der Prozedur für <math>f</math> mittels memoizing