Berechenbare Funktionen sind die grundlegenden Untersuchungsgegenstände der Berechenbarkeitstheorie. Berechnungsfähige Funktionen sind das formalisierte Analogon des intuitiven Begriffs des Algorithmus in dem Sinne, dass eine Funktion berechenbar ist, wenn ein Algorithmus vorhanden ist, der die Funktion der Funktion ausführen kann, d. H., Wenn eine Eingabe der Funktionsdomäne gegeben ist, kann sie die entsprechende Ausgabe zurückgeben. Mit berechenbaren Funktionen wird die Berechenbarkeit diskutiert, ohne auf ein konkretes Berechnungsmodell wie Turingmaschinen oder Registermaschinen Bezug zu nehmen. Jede Definition muss sich jedoch auf ein bestimmtes Berechnungsmodell beziehen, aber alle gültigen Definitionen ergeben dieselbe Klasse von Funktionen. Bestimmte Modelle der Berechenbarkeit, die zu einer Menge berechenbarer Funktionen führen, sind die Turing-berechenbaren Funktionen und die μ-rekursiven Funktionen.
Vor der genauen Definition der berechenbaren Funktion verwendeten Mathematiker häufig den informellen Begriff effektiv berechenbar . Dieser Begriff wird seither mit den berechenbaren Funktionen identifiziert. Man beachte, dass die effektive Berechenbarkeit dieser Funktionen nicht impliziert, dass sie effizient berechnet werden können (d. H. Innerhalb einer angemessenen Zeitspanne berechnet werden). Tatsächlich kann für einige effektiv berechenbare Funktionen gezeigt werden, dass jeder Algorithmus, der sie berechnet, sehr ineffizient ist in dem Sinne, dass die Laufzeit des Algorithmus exponentiell (oder sogar überexponential) mit der Länge der Eingabe zunimmt. Die Bereiche realisierbarer Berechenbarkeit und rechnerischer Komplexität untersuchen Funktionen, die effizient berechnet werden können.
Nach der Church-Turing-These sind berechenbare Funktionen genau die Funktionen, die mit einem mechanischen Rechengerät bei unbegrenztem Zeit- und Speicherplatz berechnet werden können. Äquivalent dazu heißt es in dieser Arbeit, dass eine Funktion genau dann berechenbar ist, wenn sie einen Algorithmus hat. Es ist zu beachten, dass ein Algorithmus in diesem Sinne eine Abfolge von Schritten ist, die eine Person mit unbegrenzter Zeit und unbegrenztem Vorrat an Stift und Papier ausführen kann.
Die Blum-Axiome können verwendet werden, um eine abstrakte rechnerische Komplexitätstheorie über die Menge der berechenbaren Funktionen zu definieren. In der Theorie der rechnerischen Komplexität ist das Problem der Bestimmung der Komplexität einer berechenbaren Funktion als Funktionsproblem bekannt.
Definition [ edit ]
Die Berechenbarkeit einer Funktion ist eine informelle Vorstellung. Eine Möglichkeit, es zu beschreiben, besteht darin, zu sagen, dass eine Funktion berechenbar ist, wenn ihr Wert durch ein effektives Verfahren erhalten werden kann. Mit mehr Strenge eine Funktion ist genau dann und nur dann berechenbar, wenn es ein wirksames Verfahren gibt, das k angibt ] -tuple aus natürlichen Zahlen, ergibt den Wert . [1] In Übereinstimmung mit dieser Definition geht der Rest dieses Artikels davon aus berechenbare Funktionen nehmen endlich viele natürliche Zahlen als Argumente an und erzeugen einen Wert, der eine einzelne natürliche Zahl ist.
Als Gegenstücke zu dieser informellen Beschreibung existieren mehrere formale mathematische Definitionen. Die Klasse der berechenbaren Funktionen kann in vielen gleichwertigen Berechnungsmodellen definiert werden, einschließlich
Obwohl diese Modelle unterschiedliche Repräsentationen für die Funktionen, ihre Eingaben und ihre Ausgaben verwenden, gibt es zwischen zwei beliebigen Modellen Übersetzungen. Daher beschreibt jedes Modell im Wesentlichen die gleiche Klasse von Funktionen, woraus sich die Meinung ergibt, dass formale Berechenbarkeit sowohl natürlich als auch natürlich ist nicht zu eng. [2]
Zum Beispiel kann man berechenbare Funktionen als μ-rekursive Funktionen formalisieren, bei denen es sich um Teilfunktionen handelt, die endliche Tupel natürlicher Zahlen annehmen und eine einzige natürliche Zahl zurückgeben (ebenso wie über). Sie sind die kleinste Klasse von Teilfunktionen, die die Konstanten-, Nachfolger- und Projektionsfunktionen enthalten und unter Komposition, primitiver Rekursion und dem μ-Operator geschlossen sind.
Gleichermaßen können berechenbare Funktionen als Funktionen formalisiert werden, die von einem idealisierten Berechnungsagenten berechnet werden können, beispielsweise einer Turing-Maschine oder einer Registermaschine. Formal gesehen eine Teilfunktion kann genau dann berechnet werden, wenn ein Computerprogramm mit den folgenden Eigenschaften vorhanden ist:
- Wenn ist definiert ist, wird das Programm mit der Eingabe mit dem Wert im Computerspeicher abgelegt.
Eigenschaften von berechenbaren Funktionen edit ] [19659757] ] Das grundlegende Merkmal einer berechenbaren Funktion ist, dass es eine endliche Prozedur (einen Algorithmus) geben muss, die angibt, wie die Funktion berechnet werden soll. Die oben aufgeführten Berechnungsmodelle geben verschiedene Interpretationen von Verfahren und deren Verwendung an, aber diese Interpretationen haben viele Eigenschaften. Die Tatsache, dass diese Modelle äquivalente Klassen berechenbarer Funktionen enthalten, rührt von der Tatsache her, dass jedes Modell in der Lage ist, eine Prozedur für jedes der anderen Modelle zu lesen und nachzuahmen, so wie ein Compiler Anweisungen in einer Computersprache lesen und Anweisungen ausgeben kann eine andere Sprache. Enderton [1977] gibt die folgenden Eigenschaften einer Prozedur zum Berechnen einer berechenbaren Funktion an; Ähnliche Charakterisierungen wurden von Turing [1936]Rogers [1967] und anderen gegeben.
- "Es müssen exakte Anweisungen (d. H. Ein Programm) mit endlicher Länge für die Prozedur vorhanden sein."
Daher muss jede berechenbare Funktion ein endliches Programm haben, das vollständig beschreibt, wie die Funktion zu berechnen ist. Es ist möglich, die Funktion durch Befolgen der Anweisungen zu berechnen. es ist kein raten oder besondere einsicht erforderlich.
- "Wenn das Verfahren im Bereich f x x x x k gegeben wird, muss das Verfahren nach einer endlichen Anzahl diskreter Schritte beendet werden und produzieren f ( x ) . "
Intuitiv geht das Verfahren Schritt für Schritt vor, wobei eine bestimmte Regel gilt, die abdeckt, was in jedem Schritt der Berechnung zu tun ist. Es können nur endlich viele Schritte ausgeführt werden, bevor der Wert der Funktion zurückgegeben wird.
- "Wenn dem Verfahren ein k -tuple x gegeben wird, das nicht in seiner Domäne von f liegt, dann könnte das Verfahren für immer dauern, niemals oder er könnte irgendwann stecken bleiben (dh eine seiner Anweisungen kann nicht ausgeführt werden), darf aber nicht so tun, als würde er für um x einen Wert erzeugen. "[19659079] Wenn also jemals ein Wert für f ( x ) gefunden wird, muss es der korrekte Wert sein. Es ist nicht notwendig, dass der Computeragent korrekte Ergebnisse von falschen unterscheidet, da die Prozedur immer korrekt ist, wenn sie zu einem Ergebnis führt.
Enderton führt einige Erläuterungen zu diesen 3 Anforderungen des Verfahrens für eine berechenbare Funktion auf:
- Das Verfahren muss theoretisch für beliebig große Argumente funktionieren. Es wird nicht angenommen, dass die Argumente beispielsweise kleiner sind als die Anzahl der Atome auf der Erde.
- Die Prozedur muss nach endlich vielen Schritten angehalten werden, um eine Ausgabe zu erzeugen, es kann jedoch beliebig viele Schritte dauern, bevor sie angehalten wird . Es wird keine zeitliche Begrenzung angenommen.
- Obwohl die Prozedur während einer erfolgreichen Berechnung möglicherweise nur eine begrenzte Menge Speicherplatz belegt, ist die Menge des verwendeten Speicherplatzes nicht begrenzt. Es wird davon ausgegangen, dass der Prozedur immer dann zusätzlicher Speicherplatz zur Verfügung gestellt werden kann, wenn die Prozedur danach fragt.
Zusammenfassend ist eine Funktion basierend auf dieser Ansicht berechenbar, wenn: (a) eine Eingabe aus ihrer Domäne gegeben wird, möglicherweise auf unbegrenzt Speicherplatz, kann er die entsprechende Ausgabe geben, indem er einer Prozedur (Programm, Algorithmus) folgt, die durch eine endliche Anzahl von genauen eindeutigen Anweisungen gebildet wird; (b) er gibt diese Ausgabe in einer endlichen Anzahl von Schritten zurück (hält an); und (c) wenn eine Eingabe gegeben wird, die nicht in ihrer Domäne liegt, wird sie entweder nie angehalten oder bleibt hängen.
Das Gebiet der rechnerischen Komplexitätsuntersuchung funktioniert mit vorgegebenen Grenzen von Zeit und / oder Raum, die für eine erfolgreiche Berechnung zulässig sind.
Berechenbare Mengen und Beziehungen [ edit ]
Eine Menge A aus natürlichen Zahlen wird als berechenbar bezeichnet (Synonyme: recursive entscheidbar ) wenn es eine berechenbare Gesamtfunktion gibt f so dass für jede natürliche Zahl n f ( n ) = 1 wenn n in A und f ( n ) = 0 [1945954] ] wenn n nicht in A ist.
Eine Menge natürlicher Zahlen wird als bezeichnet, die berechenbar (Synonyme: rekursiv [halbherzbar] ), wenn eine berechenbare Funktion vorhanden ist ] so, dass für jede Zahl n f ( n ) definiert wird, wenn und nur wenn n im Satz ist . Daher ist eine Menge nur dann rechnungsfähig, wenn sie die Domäne einer berechenbaren Funktion ist. Das Wort Enumerable wird verwendet, weil Folgendes für eine nichtleere Teilmenge B der natürlichen Zahlen gleichwertig ist:
- B ist der Bereich einer berechenbaren Funktion.
- B ist der Bereich einer insgesamt berechenbaren Funktion. Wenn B unendlich ist, kann die Funktion als injektiv angenommen werden.
Wenn eine Menge B der Bereich einer Funktion ist, dann kann die Funktion als angesehen werden Aufzählung von B weil die Liste f (0), f (1), ... wird jedes Element von B enthalten.
Da jede finite Relation auf den natürlichen Zahlen mit einer entsprechenden Menge endlicher Sequenzen von natürlichen Zahlen identifiziert werden kann, können die Begriffe der berechenbaren Beziehung und der rechnerisch zahlbaren Beziehung definiert werden ihre Analoga für Sets.
Formale Sprachen [ edit ]
In der Theorie der Berechenbarkeit in der Informatik werden häufig formale Sprachen betrachtet. Ein Alphabet ist eine willkürliche Menge. Ein Wort auf einem Alphabet ist eine endliche Folge von Symbolen aus dem Alphabet; dasselbe Symbol kann mehrfach verwendet werden. Binäre Zeichenfolgen sind beispielsweise genau die Wörter des Alphabets {0, 1} . Eine Sprache ist eine Teilmenge der Sammlung aller Wörter eines festen Alphabets. Beispielsweise ist die Sammlung aller binären Zeichenfolgen, die genau drei enthalten, eine Sprache über dem binären Alphabet.
Eine Schlüsseleigenschaft einer formalen Sprache ist der Schwierigkeitsgrad, der erforderlich ist, um zu entscheiden, ob ein bestimmtes Wort in der Sprache ist. Ein Codiersystem muss entwickelt werden, damit eine berechenbare Funktion ein beliebiges Wort in der Sprache als Eingabe übernehmen kann. Dies wird normalerweise als Routine betrachtet. Eine Sprache heißt berechenbar (Synonyme: rekursiv entscheidbar ), wenn es eine berechenbare Funktion für gibt w über dem Alphabet, f ( w ) = 1 wenn das Wort in der Sprache ist und f (
Enderton führt einige Erläuterungen zu diesen 3 Anforderungen des Verfahrens für eine berechenbare Funktion auf:
- Das Verfahren muss theoretisch für beliebig große Argumente funktionieren. Es wird nicht angenommen, dass die Argumente beispielsweise kleiner sind als die Anzahl der Atome auf der Erde.
- Die Prozedur muss nach endlich vielen Schritten angehalten werden, um eine Ausgabe zu erzeugen, es kann jedoch beliebig viele Schritte dauern, bevor sie angehalten wird . Es wird keine zeitliche Begrenzung angenommen.
- Obwohl die Prozedur während einer erfolgreichen Berechnung möglicherweise nur eine begrenzte Menge Speicherplatz belegt, ist die Menge des verwendeten Speicherplatzes nicht begrenzt. Es wird davon ausgegangen, dass der Prozedur immer dann zusätzlicher Speicherplatz zur Verfügung gestellt werden kann, wenn die Prozedur danach fragt.
Zusammenfassend ist eine Funktion basierend auf dieser Ansicht berechenbar, wenn: (a) eine Eingabe aus ihrer Domäne gegeben wird, möglicherweise auf unbegrenzt Speicherplatz, kann er die entsprechende Ausgabe geben, indem er einer Prozedur (Programm, Algorithmus) folgt, die durch eine endliche Anzahl von genauen eindeutigen Anweisungen gebildet wird; (b) er gibt diese Ausgabe in einer endlichen Anzahl von Schritten zurück (hält an); und (c) wenn eine Eingabe gegeben wird, die nicht in ihrer Domäne liegt, wird sie entweder nie angehalten oder bleibt hängen.
Das Gebiet der rechnerischen Komplexitätsuntersuchung funktioniert mit vorgegebenen Grenzen von Zeit und / oder Raum, die für eine erfolgreiche Berechnung zulässig sind.
Berechenbare Mengen und Beziehungen [ edit ]
Eine Menge A aus natürlichen Zahlen wird als berechenbar bezeichnet (Synonyme: recursive entscheidbar ) wenn es eine berechenbare Gesamtfunktion gibt f so dass für jede natürliche Zahl n f ( n ) = 1 wenn n in A und f ( n ) = 0 [1945954] ] wenn n nicht in A ist.
Eine Menge natürlicher Zahlen wird als bezeichnet, die berechenbar (Synonyme: rekursiv [halbherzbar] ), wenn eine berechenbare Funktion vorhanden ist ] so, dass für jede Zahl n f ( n ) definiert wird, wenn und nur wenn n im Satz ist . Daher ist eine Menge nur dann rechnungsfähig, wenn sie die Domäne einer berechenbaren Funktion ist. Das Wort Enumerable wird verwendet, weil Folgendes für eine nichtleere Teilmenge B der natürlichen Zahlen gleichwertig ist:
- B ist der Bereich einer berechenbaren Funktion.
- B ist der Bereich einer insgesamt berechenbaren Funktion. Wenn B unendlich ist, kann die Funktion als injektiv angenommen werden.
Wenn eine Menge B der Bereich einer Funktion ist, dann kann die Funktion als angesehen werden Aufzählung von B weil die Liste f (0), f (1), ... wird jedes Element von B enthalten.
Da jede finite Relation auf den natürlichen Zahlen mit einer entsprechenden Menge endlicher Sequenzen von natürlichen Zahlen identifiziert werden kann, können die Begriffe der berechenbaren Beziehung und der rechnerisch zahlbaren Beziehung definiert werden ihre Analoga für Sets.
Formale Sprachen [ edit ]
In der Theorie der Berechenbarkeit in der Informatik werden häufig formale Sprachen betrachtet. Ein Alphabet ist eine willkürliche Menge. Ein Wort auf einem Alphabet ist eine endliche Folge von Symbolen aus dem Alphabet; dasselbe Symbol kann mehrfach verwendet werden. Binäre Zeichenfolgen sind beispielsweise genau die Wörter des Alphabets {0, 1} . Eine Sprache ist eine Teilmenge der Sammlung aller Wörter eines festen Alphabets. Beispielsweise ist die Sammlung aller binären Zeichenfolgen, die genau drei enthalten, eine Sprache über dem binären Alphabet.
Eine Schlüsseleigenschaft einer formalen Sprache ist der Schwierigkeitsgrad, der erforderlich ist, um zu entscheiden, ob ein bestimmtes Wort in der Sprache ist. Ein Codiersystem muss entwickelt werden, damit eine berechenbare Funktion ein beliebiges Wort in der Sprache als Eingabe übernehmen kann. Dies wird normalerweise als Routine betrachtet. Eine Sprache heißt berechenbar (Synonyme: rekursiv entscheidbar ), wenn es eine berechenbare Funktion für gibt w über dem Alphabet, f ( w ) = 1 wenn das Wort in der Sprache ist und f (
No comments:
Post a Comment