www.wikidata.de-de.nina.az
Terminiertheit ist ein Begriff aus der Berechenbarkeitstheorie einem Teilgebiet der theoretischen Informatik Man sagt ein Algorithmus terminiert fur die Eingabe a wenn er fur die Eingabe a nach endlich vielen Arbeitsschritten zu einem Ende kommt so dass die Berechnung in endlicher Zeit abgeschlossen wird Man sagt der Algorithmus terminiert uberall oder ist terminierend wenn er fur jede Eingabe terminiert Dabei wird keine fur alle Eingaben gemeinsam gultige Obergrenze fur die Anzahl der ausgefuhrten Arbeitsschritte gefordert Eine wichtige Aufgabe der Verifikation eines Computerprogramms dem Beweis der Korrektheit ist es zu zeigen dass das vorliegende Programm fur gewisse Eingaben terminiert Aus der Nicht Entscheidbarkeit des Halteproblems folgt dass es keinen fur jedes Paar gultigen Algorithmus gibt der zu einem Paar Programm Eingabe immer entscheiden kann ob das Programm terminiert Auch die Frage ob ein Programm uberall terminiert ist unentscheidbar Dies folgt aus einer Abwandlung des Halteproblems dem uniformen Halteproblem Fur viele praktische Algorithmen ist deren Terminierung aber einfach zu beweisen Ein bekanntes Beispiel fur eine Funktion zu der bewiesen wurde dass es fur sie kein terminierendes Berechnungsverfahren gibt ist die Rado Funktion Das Collatz Problem ist ein Beispiel fur eine Funktion fur die weder ein terminierendes Berechnungsverfahren gefunden wurde noch bewiesen wurde dass es ein solches Verfahren nicht gibt Mechanische Terminierungsbeweise BearbeitenFur viele gangige Programme und Algorithmen kann der Terminierungsbeweis leicht automatisiert werden Der Grund dafur ist dass die Verlaufe eines terminierenden Programms ein Absteigen auf einer fundierten Ordnung darstellen Typischerweise wird eine Datenstruktur rekursiv zerlegt Das Programm terminiert weil es die Blattknoten irgendwann erreichen muss wenn die Datenstruktur selbst endlich ist Beispiel Verkettung zweier Listen append x y if empty x then y else cons first x append rest x y Die Funktion append steigt hier rekursiv uber die Liste x ab d h beim rekursiven Aufruf wird die Liste verkurzt Die Funktion terminiert weil die Liste x nicht unendlich lang ist Die fundierte Ordnung im rekursiven Aufruf ist x gt rest x definiert etwa uber die Lange oder das Gewicht der Liste Nur in seltenen Fallen terminieren Programme aus nennenswert komplizierteren Grunden etwa bei Berechnung von Hullen oder Fixpunkten deren Existenz weniger offensichtlich ist Trotzdem lasst sich auch in solchen Fallen eine fundierte Ordnung angeben wenn das Programm terminiert da der Begriff der Terminierung mit dem der fundierten Ordnung eng verwandt ist Fundierte Ordnungen werden auch als terminierend oder noethersch im Englischen irritierenderweise als well founded bezeichnet Das skizzierte Verfahren ist nicht auf primitiv rekursive Funktionen beschrankt Auch die nicht primitiv rekursive Ackermannfunktion steigt einfach uber die lexikalische Ordnung ihrer Parameter ab Die fundierte Ordnung stellt zugleich auch eine Induktion zur Verfugung die fur den Nachweis von Eigenschaften terminierender Programme eine geeignete Schlussregel ist Ein Beispiel fur einen automatischen Beweiser auf dieser Grundlage ist der Boyer Moore Beweiser der stark genug ist um etwa den Beweis des Halteproblems und andere nicht offensichtliche Beweise zu finden oder nachzuvollziehen Fur die erfolgreichen Arbeiten im Bereich des Beweiserbaus wurden verschiedene Turing Awards vergeben Aus dem Halteproblem folgt jedoch dass sich ein automatischer Programmbeweiser nicht so vervollstandigen lasst dass er seine eigene Korrektheit beweisen konnte Weblinks BearbeitenBoyer Moore Beweiser Abgerufen von https de wikipedia org w index php title Terminiertheit amp oldid 208706423