BuK-KA-Zeitbeschränkte-Prozesse

Aus ProgrammingWiki
Archivierte Version vom 2012-04-24T12:30:09+00:00. Aktuelle Version

Inhaltsverzeichnis

Aufgabenstellung

Implementieren Sie die im Beweis definierte Aufzählfunktion für M \subseteq \text{ A*} unter Verwendung der Cantorschen Paarungsfunktion. Wählen Sie im Fallbeispiel A = \{a,b,c\}, g: \N \mapsto A^* und M = \{w |w \in A^* \text{ und } w \text{ enthält Fibonacci-zahlig viele} "b's"\}.

Machen Sie bei der Konstruktion von \chi^'_M nur von der Semi-Entscheidbarkeit der Menge der Fibonacci-Zahlen Gebrauch, obwohl doch deren Entscheidbarkeit durch Beschränkung des Suchraumes gegeben ist.

Hinweis: Sie benötigen keine engines. Das einfache Timer-System reicht aus. Um Prozesse, die in eine bestimmten Vorgabezeit nicht terminieren, auch wirklich abbrechen zu können, benötigen Sie Continuations (Sprachelement call/cc).


Umsetzung

Schritt 1:

Implementieren Sie die im Beweis definierte Aufzählfunktion für M \subseteq \text{ A*} unter Verwendung der Cantorschen Paarungsfunktion.


Aufzählfunktion f für M \subseteq \text{ A*}

f(z) = \begin{cases} g(x); & \text{wenn } \chi^{'}_{M}(g(x))=\text{ wahr innerhalb von Zeit y};\\ a; & \text{wenn Proz. für } \chi^{'}_{M}(g(x)) \text{ innerhalb von y ohne Ergebnis} \end{cases}


Definition der Cantorschen Paarungsfunktion

$\begin{array}{c|cccccc}

  x\backslash y & 0 & 1 & 2 & 3 & 4 & \dots\\\hline
 0  & 0 & 2 & 5 & 9 & 14 & \dots \\
 1  & 1 & 4 & 8 & 13 & \dots &   \\
 2  & 3 & 7 & 12 & \dots &   &   \\
 3  & 6 & 11 & \dots &   &  &  \\
 4  & 10 & \vdots & \vdots & \vdots & \vdots &

\end{array}$

z = \pi(x,y) = \frac{(x+y)(x+y+1)}{2} + y

Um die beiden natürlichen Zahlen x und y aus z zu gewinnen, ist als erstes w = \left\lfloor \frac{\sqrt{8z+1}-1}{2} \right\rfloor zu berechnen. Dann ergeben sich

Schritt 2

Wählen Sie im Fallbeispiel A = \{a,b,c\}, g: \N \mapsto A^* und M = \{w |w \in A^* \text{ und } w \text{ enthält Fibonacci-zahlig viele} "b's"\}.

Alphabet A:


Schritt 3

Machen Sie bei der Konstruktion von \chi^'_M nur von der Semi-Entscheidbarkeit der Menge der Fibonacci-Zahlen Gebrauch, obwohl doch deren Entscheidbarkeit durch Beschränkung des Suchraumes gegeben ist.

Schritt 4

Einsetzen eines Timer-Systems.


Schritt 5

Um Prozesse, die in eine bestimmten Vorgabezeit nicht terminieren, auch wirklich abbrechen zu können, benötigen Sie Continuations (Sprachelement call/cc).