29.08.2013 Aufrufe

Terminierender Algorithmus - Informatik

Terminierender Algorithmus - Informatik

Terminierender Algorithmus - Informatik

MEHR ANZEIGEN
WENIGER ANZEIGEN

Erfolgreiche ePaper selbst erstellen

Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.

Einführung<br />

(Textersetzungs)Algorithmen unterscheiden sich in<br />

• der Anwendbarkeit von Regeln<br />

– <strong>Terminierender</strong> <strong>Algorithmus</strong><br />

– Nichtterminierender <strong>Algorithmus</strong><br />

– Deterministischer <strong>Algorithmus</strong><br />

– Nichtdeterministischer <strong>Algorithmus</strong><br />

• der Beziehung zwischen Ein- und Ausgabe<br />

– Determinierter <strong>Algorithmus</strong><br />

– Nichtdeterminierter <strong>Algorithmus</strong><br />

<strong>Algorithmus</strong><br />

<strong>Informatik</strong> I − 1 − WiSe 2005/2006<br />

Einführung<br />

Algorithmenarten: Anwendbarkeit von Regeln<br />

• <strong>Terminierender</strong> <strong>Algorithmus</strong>:<br />

– Es gibt einen Schritt in dem keine Regel mehr anwendbar ist.<br />

• Nichtterminierender <strong>Algorithmus</strong>:<br />

– Es ist immer mindestens eine Regel anwendbar.<br />

• Deterministischer <strong>Algorithmus</strong>:<br />

– Zu jeder Zeit ist immer nur eine Regel anwendbar, d.h. es gibt genau eine<br />

Berechnung.<br />

– Falls er terminiert, liefert ein deterministischer <strong>Algorithmus</strong> genau eine<br />

Ausgabe.<br />

• Nichtdeterministischer <strong>Algorithmus</strong>:<br />

– Zu einer gegebenen Eingabe x sind mehrere Regeln auf Teilwörter von x<br />

anwendbar.<br />

<strong>Informatik</strong> I − 2 − WiSe 2005/2006


Einführung<br />

Algorithmenarten: Anwendbarkeit von Regeln<br />

• Bem.: Textersetzungsalgorithmen sind im allgemeinen<br />

nichtdeterministisch und nichtdeterminiert.<br />

– Für ein Wort t existieren in der Regel mehrere Berechnungen<br />

mit verschiedenen Resultaten.<br />

– Es können für eine Eingabe sowohl terminierende als auch<br />

nichtterminierende Berechnungen existieren.<br />

• Bsp.: Gegeben sei ein Textersetzungssystem mit den<br />

Regeln aa → b, a → aa über dem Standardalphabet.<br />

– Für dieses System ist jedes Wort t, welches das Zeichen a enthält, nicht<br />

terminal (immer die zweite Regel anwenden). Wird die zweite Regel<br />

jedoch nur angewendet, wenn die erste nicht anwendbar ist, so terminiert<br />

die Berechnung stets.<br />

<strong>Informatik</strong> I − 3 − WiSe 2005/2006<br />

Einführung<br />

Markov-Algorithmen<br />

• Definition: Ein Markov-<strong>Algorithmus</strong> ist ein deterministisches<br />

Textersetzungssystem mit endlich vielen Regeln, sowie einigen<br />

speziellen Regeln, Zeichen und 2 Metaregeln:<br />

– Markov-Algorithmen enthalten spezielle Regeln, auch haltende Regeln<br />

x →. y genannt, die durch einen Punkt nach dem Pfeil gekennzeichnet<br />

sind.<br />

– Markov-Algorithmen enthalten zusätzliche Zeichen α, β, γ, …,<br />

sogenannte Schiffchen. Diese kommen weder in der Eingabe, noch in der<br />

Ausgabe vor.<br />

– Metaregeln: Markov-Algorithmen haben immer 2 spezielle Anweisungen<br />

für die Ausführung von Regeln:<br />

1. Wähle in jedem Schritt die erste anwendbare Regel. Falls sie auf mehrere<br />

Teilwörter anwendbar ist, wende sie auf das am weitesten links<br />

stehendeTeilwort an.<br />

2. Wende die Regeln solange an, bis eine haltende Regel angewandt wurde, oder<br />

bis keine Regel mehr anwendbar ist.<br />

<strong>Informatik</strong> I − 4 − WiSe 2005/2006


Einführung<br />

• Alphabet V = {0, L}<br />

• Schiffchen: α, β<br />

• Regelsystem:<br />

1. αL → Lα<br />

2. α0 → 0α<br />

3. α → β<br />

4. Lβ → β0<br />

5. 0β →. L<br />

6. β →. L<br />

7. ε → α<br />

Haltende Regeln!<br />

• Frage: Welches Problem<br />

löst der <strong>Algorithmus</strong>?<br />

Markov-Algorithmen<br />

• Anwendung der Regeln auf<br />

das Eingabewort L0LL<br />

L0LL ⇒ αL0LL (7)<br />

⇒ Lα0LL (1)<br />

⇒ L0αLL (2)<br />

⇒ L0LαL (1)<br />

⇒ L0LLα (1)<br />

⇒ L0LLβ (3)<br />

⇒ L0Lβ0 (4)<br />

⇒ L0β00 (4)<br />

⇒ LL00 (5)<br />

Bem.: Nur die haltenden Regeln (5 und 6) sichern das Terminieren des <strong>Algorithmus</strong>.<br />

<strong>Informatik</strong> I − 5 − WiSe 2005/2006<br />

Einführung<br />

• Alphabet V = {0, L}<br />

• Schiffchen: α, β<br />

• Regelsystem:<br />

1. ε → α<br />

2. α0 → 0α<br />

3. α → β<br />

4. Lβ → β0<br />

5. 0β →. L<br />

6. β →. L<br />

7. αL → Lα<br />

Markov-Algorithmen<br />

• Anwendung der Regeln<br />

auf das Eingabewort<br />

L0LL<br />

• L0LL ⇒ αL0LL<br />

(1)<br />

⇒ ααL0LL<br />

(1)<br />

⇒ …<br />

<strong>Informatik</strong> I − 6 − WiSe 2005/2006


Einführung<br />

<strong>Algorithmus</strong> 1 terminiert<br />

(1) αL → Lα<br />

(2) α0 → 0α<br />

(3) α → β<br />

(4) Lβ → β0<br />

(5) 0β →. L<br />

(6) β →. L<br />

(7) ε → α<br />

Markov-Algorithmen<br />

<strong>Algorithmus</strong> 2 terminiert nicht<br />

(1) ε → a<br />

(2) α0 → 0α<br />

(3) α → β<br />

(4) Lβ → β0<br />

(5) 0β →. L<br />

(6) β →. L<br />

(7) αL → Lα<br />

<strong>Informatik</strong> I − 7 − WiSe 2005/2006<br />

Einführung<br />

Markov-Algorithmen<br />

• Markov-Algorithmen besitzen für jedes Eingabewort genau eine<br />

Berechnung. Für den Fall der Terminierung erzeugen sie genau<br />

eine Ausgabe.<br />

• Durch Zuordnung einer Ausgabe zu jeder Eingabe mit<br />

terminierender Berechnung berechnen deterministische<br />

Algorithmen partielle Funktionen.<br />

– Die Funktionen heißen partiell, da der <strong>Algorithmus</strong> für gewisse Eingaben<br />

eventuell nicht terminiert und somit kein Resultat für die Berechnung<br />

definiert ist.<br />

<strong>Informatik</strong> I − 8 − WiSe 2005/2006


Einführung<br />

Markov-Algorithmen<br />

• Lassen sich alle mathematischen Funktionen durch Algorithmen<br />

berechnen?<br />

– Kurt Gödel: Nicht jede Funktion läßt sich durch einen <strong>Algorithmus</strong><br />

berechnen.<br />

– Diejenigen Funktionen, für die sich ein <strong>Algorithmus</strong> zu ihrer Berechnung<br />

angeben läßt, nennen wir berechenbar (siehe Berechenbarkeitstheorie in<br />

<strong>Informatik</strong> IV)<br />

• Theoretisch betrachtet ist der auf Textersetzung abgestützte<br />

<strong>Algorithmus</strong>begriff völlig ausreichend<br />

– Jede berechenbare Funktion ist durch einen Textersetzungsalgorithmus<br />

berechenbar<br />

<strong>Informatik</strong> I − 9 − WiSe 2005/2006<br />

Einführung<br />

Markov-Algorithmen<br />

• Probleme bei der Beschreibung durch Textersetzung<br />

– Umfangreicheren Textersetzungsysteme sind schwer zu<br />

verstehen.<br />

– Bei komplexen Aufgabenstellungen werden viele Regeln<br />

benötigt.<br />

– Es ist schwierig sicherzustellen, dass auch das gewünschte<br />

Ergebnis berechnet wird.<br />

– Die dargestellte Abbildung ist schwierig zu bestimmen.<br />

– Komposition und Strukturierung ist nicht einfach.<br />

• Bessere Darstellungsmöglichkeiten?<br />

– Termersetzungssysteme.<br />

<strong>Informatik</strong> I − 10 − WiSe 2005/2006


Einführung<br />

• Begriffsdefinition<br />

Begriff des <strong>Algorithmus</strong><br />

– Ein <strong>Algorithmus</strong> (algorithm) ist die Beschreibung eines<br />

Verfahrens, um aus gewissen Eingabegrößen bestimmte<br />

Ausgabegrößen zu berechnen. Dabei müssen folgende<br />

Bedingungen erfüllt sein<br />

• Spezifikation<br />

• Durchführbarkeit<br />

• Korrektheit<br />

<strong>Informatik</strong> I − 11 − WiSe 2005/2006<br />

Einführung<br />

Spezifikation<br />

Begriff des <strong>Algorithmus</strong><br />

– Eingabespezifikation: Es muss genau spezifiziert<br />

sein, welche Eingabegrößen erforderlich sind und<br />

welchen Anforderungen diese Größen genügen<br />

müssen, damit das Verfahren funktioniert<br />

– Ausgabespezifikation: Es muss genau spezifiziert<br />

sein, welche Ausgabegrößen (Resultate) mit<br />

welchen Eigenschaften berechnet werden<br />

<strong>Informatik</strong> I − 12 − WiSe 2005/2006


Einführung<br />

• Bem. zur Spezifikation<br />

Begriff des <strong>Algorithmus</strong><br />

– Wir sprechen manchmal auch von Zusicherung, die<br />

der <strong>Algorithmus</strong> an die erarbeiteten Ergebnisse<br />

macht<br />

– Möglichkeiten zur Beschreibung<br />

• Präziseste Sprache zur Spezifikation ist die<br />

mathematische Logik (später)<br />

• In der Praxis werden häufig weniger formale<br />

Beschreibungen in natürlicher Sprache verwendet<br />

(Pflichtenhefte)<br />

– Häufig umfangreich, mehrdeutig, inkonsistent<br />

– Macht der <strong>Algorithmus</strong> was der Kunde wollte?<br />

<strong>Informatik</strong> I − 13 − WiSe 2005/2006<br />

Einführung<br />

Durchführbarkeit<br />

Begriff des <strong>Algorithmus</strong><br />

– Endliche Beschreibung: das Verfahren muss in einem<br />

endlichen Text vollständig beschrieben sein<br />

– Effektivität: Jeder Schritt des Verfahrens muss effektiv (d.h.<br />

tatsächlich) „mechanisch“ ausführbar sein<br />

• Bem.: „Effektivität“ ist nicht zu verwechseln mit „Effizienz“<br />

(„Wirtschaftlichkeit“)<br />

– Determiniertheit: Der Verfahrensablauf ist zu jedem<br />

Zeitpunkt fest vorgeschrieben<br />

• Gleiche Eingaben sollen zum gleichen Ablauf und Ergebnis führen<br />

• Ausnahme: Textersetzungsalgorithmen, randomisierte Algorithmen,<br />

deren Ablauf von (mathematisch bestimmten) Zufallsgrößen abhängt<br />

<strong>Informatik</strong> I − 14 − WiSe 2005/2006


Einführung<br />

Begriff des <strong>Algorithmus</strong><br />

• Korrektheit<br />

– Terminierung: Der <strong>Algorithmus</strong> hält nach endlich vielen<br />

Schritten mit einem Ergebnis an, sofern die Eingaben der<br />

Eingabespezifikation genügt haben<br />

• Viele Programme erbringen ihre Leistung durch sog. Seiteneffekte,<br />

z.B. Ausgaben während der Laufzeit, und nicht durch ein einziges<br />

Endergebnis<br />

– Betriebssystem, Datenbanksystem, ...<br />

– Bei numerischen Algorithmen (z.B. Nullstellenberechnung), möchte<br />

man häufig offen lassen, wann genau die Berechnung in der Praxis<br />

abbrechen soll<br />

• Ist ein Verfahren bis auf die fehlende Terminierung ein <strong>Algorithmus</strong>,<br />

so spricht man auch von einem (Rechen-)Verfahren. Häufig auch von<br />

einem „nicht-terminierenden“ <strong>Algorithmus</strong><br />

<strong>Informatik</strong> I − 15 − WiSe 2005/2006<br />

Einführung<br />

Begriff des <strong>Algorithmus</strong><br />

• Korrektheit<br />

– Partielle Korrektheit: Jedes berechnete Ergebnis genügt der<br />

Ausgabespezifikation, sofern die Eingaben der<br />

Eingabespezifikation genügt haben<br />

• d.h. Ein- und Ausgabeparameter genügen im Falle der Terminierung<br />

immer den Spezifikationen<br />

– Totale Korrektheit: Ein Rechenverfahren ist ein total<br />

korrekter <strong>Algorithmus</strong>, wenn es partiell korrekt ist und für<br />

jede Eingabe, die der Eingabespezifikation genügt,<br />

terminiert.<br />

• Unterschiedliche Beweisverfahren für beide Fälle notwendig<br />

• Manchmal ist es sinnvoll, auf die Anforderung der Terminierung zu<br />

verzichten<br />

<strong>Informatik</strong> I − 16 − WiSe 2005/2006


Einführung<br />

Begriff des <strong>Algorithmus</strong><br />

• Bemerkung: Nach unserer Begriffsbestimmung gäbe es also<br />

keine<br />

– nicht-deterministische,<br />

– nicht-terminierende<br />

– ...<br />

• Algorithmen<br />

• Diese Begriffe werden aber durchaus verwendet!<br />

– Methode erfüllt alle Anforderungen an einen <strong>Algorithmus</strong>, bis auf die mit<br />

„nicht“ gekennzeichnete<br />

<strong>Informatik</strong> I − 17 − WiSe 2005/2006<br />

Einführung<br />

Zusammenfassung<br />

• Der Begriff des <strong>Algorithmus</strong> ist eine der wichtigsten<br />

Säulen der <strong>Informatik</strong><br />

• Klassifikation von Algorithmen nach Anwendbarkeit<br />

der Regeln und nach der Beziehung zwischen Ein- und<br />

Ausgabe<br />

• Textersetzungsysteme<br />

• Formale Sprache<br />

• Markov-Algorithmen als Beispiel für deterministische<br />

Algorithmen<br />

<strong>Informatik</strong> I − 18 − WiSe 2005/2006

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!