Hallo, es geht hier um folgende Aufgaben:
a) Wir betrachten folgenden Algorithmus:
1. Der Algorithmus bekommt eine endliche Kette bestehend aus Nullen und Einsen.
2. Es werden nun in dieser Kette alle Vorkommen von Zeichenketten, welche “0110”, “100”
oder “0001” lauten, gesucht. Wurde mindestens ein solches Vorkommen gefunden, geht es
mit Schritt 3 weiter, sonst mit Schritt 5.
3. Es wird ein zufälliges Vorkommen ausgewählt und mit diesem wie folgt verfahren:
• Lautet es “0110” wird es in der Kette durch “0111” ersetzt
• Lautet es “100” wird es in der Kette durch “110” ersetzt
• Lautet es “0001” wird es in der Kette durch “1110” ersetzt
4. Weiter mit Schritt 2
5. Der Algorithmus gibt die Kette zurück.
b) Wir betrachten folgenden Algorithmus:
1. Der Algorithmus bekommt eine endliche Kette bestehend aus Nullen und Einsen.
2. Es wird nun das erste in dieser Kette gefundene Vorkommen, welches “0110”, “10” oder
“0001” lautet, gesucht.Wurde ein solches Vorkommen gefunden, geht es mit Schritt 3 weiter,
sonst mit Schritt 5.
3. Es wird mit diesem Vorkommen wie folgt verfahren:
• Lautet es “0110” wird es durch “0011” ersetzt
• Lautet es “10” wird es durch “01” ersetzt
• Lautet es “0001” wird es durch “1001” ersetzt
4. Weiter mit Schritt 2
5. Der Algorithmus gibt die Kette zurück.
In beiden Fällen soll man dies beantworten:
Ist dieser Algorithmus
1. deterministisch (im Ablauf)?
2. determiniert (im Ergebnis)?
3. stets terminierend?
Begründen Sie jeweils Ihre Antworten.
Meine eigentliche Frage wäre hierbei, ob meine Antwort so passt?
Lösung:
Aufgabe a)
1. Nicht deterministisch, da zufällig nach der Zeichenkette gesucht wird und eine unterschiedliche Reihenfolge entsteht.
2. Determinierend, da es bei der Auswahl welche Zeichenkette ersetzen werden soll, auch bei Mehrfachausführung immer dieselbe sein wird.
3. Terminierend, da das Algorithmus irgendwann enden wird, wenn es keine Zeichenkette mehr zu ersetzen gibt.
Aufgabe b)
1. Deterministisch, da der Algorithmus immer stets dieselbe Reihenfolge befolgt, weil es nicht alle auf einmal versucht zu ersetzen, sondern die erste Zeichenkette die der Algorithmus findet.
2. Determinierend, da es bei der Auswahl welche Zeichenkette ersetzen werden soll, auch bei Mehrfachausführung immer dieselbe sein wird.
3. Terminierend, da das Algorithmus irgendwann enden wird, wenn es keine Zeichenkette mehr zu ersetzen gibt.
a) Wir betrachten folgenden Algorithmus:
1. Der Algorithmus bekommt eine endliche Kette bestehend aus Nullen und Einsen.
2. Es werden nun in dieser Kette alle Vorkommen von Zeichenketten, welche “0110”, “100”
oder “0001” lauten, gesucht. Wurde mindestens ein solches Vorkommen gefunden, geht es
mit Schritt 3 weiter, sonst mit Schritt 5.
3. Es wird ein zufälliges Vorkommen ausgewählt und mit diesem wie folgt verfahren:
• Lautet es “0110” wird es in der Kette durch “0111” ersetzt
• Lautet es “100” wird es in der Kette durch “110” ersetzt
• Lautet es “0001” wird es in der Kette durch “1110” ersetzt
4. Weiter mit Schritt 2
5. Der Algorithmus gibt die Kette zurück.
b) Wir betrachten folgenden Algorithmus:
1. Der Algorithmus bekommt eine endliche Kette bestehend aus Nullen und Einsen.
2. Es wird nun das erste in dieser Kette gefundene Vorkommen, welches “0110”, “10” oder
“0001” lautet, gesucht.Wurde ein solches Vorkommen gefunden, geht es mit Schritt 3 weiter,
sonst mit Schritt 5.
3. Es wird mit diesem Vorkommen wie folgt verfahren:
• Lautet es “0110” wird es durch “0011” ersetzt
• Lautet es “10” wird es durch “01” ersetzt
• Lautet es “0001” wird es durch “1001” ersetzt
4. Weiter mit Schritt 2
5. Der Algorithmus gibt die Kette zurück.
In beiden Fällen soll man dies beantworten:
Ist dieser Algorithmus
1. deterministisch (im Ablauf)?
2. determiniert (im Ergebnis)?
3. stets terminierend?
Begründen Sie jeweils Ihre Antworten.
Meine eigentliche Frage wäre hierbei, ob meine Antwort so passt?
Lösung:
Aufgabe a)
1. Nicht deterministisch, da zufällig nach der Zeichenkette gesucht wird und eine unterschiedliche Reihenfolge entsteht.
2. Determinierend, da es bei der Auswahl welche Zeichenkette ersetzen werden soll, auch bei Mehrfachausführung immer dieselbe sein wird.
3. Terminierend, da das Algorithmus irgendwann enden wird, wenn es keine Zeichenkette mehr zu ersetzen gibt.
Aufgabe b)
1. Deterministisch, da der Algorithmus immer stets dieselbe Reihenfolge befolgt, weil es nicht alle auf einmal versucht zu ersetzen, sondern die erste Zeichenkette die der Algorithmus findet.
2. Determinierend, da es bei der Auswahl welche Zeichenkette ersetzen werden soll, auch bei Mehrfachausführung immer dieselbe sein wird.
3. Terminierend, da das Algorithmus irgendwann enden wird, wenn es keine Zeichenkette mehr zu ersetzen gibt.