Blattsprachen sind eine schöne Möglichkeit, viele Komplexitätsklassen einheitlich zu definieren. Die meisten Komplexitätsklassen werden normalerweise durch ein Rechenmodell (z. B. deterministisches / randomisiertes TM) und eine Ressourcengrenze (logarithmische Zeit, Polyraum usw.) spezifiziert. In der Blattsprachenformulierung gibt es jedoch nur ein Berechnungsmodell, und die Klasse wird durch Angabe ihrer Blattsprache spezifiziert.
Die Details sind zu lang, um sie zu erklären. Daher möchte ich interessierte Leser auf eine dieser beiden Umfragen verweisen:
- Einheitliche Charakterisierung von Komplexitätsklassen nach H Vollmer
- Blattsprachkurse von KW Wagner
Beide Umfragen erklären die Formulierung auf den ersten Seiten hervorragend.
In Wagners Umfrage sagt er: "Es stellt sich heraus, dass praktisch jede Komplexitätsklasse, die bisher betrachtet wurde, durch Blattsprachen beschrieben werden kann."
Meine Frage bezieht sich auf diese Aussage. Ich weiß, dass es einige Klassen gibt, für die wir keine Blattsprachcharakterisierung kennen. Das bedeutet, dass die Klassen entweder nicht unbedingt eine solche Charakterisierung haben oder dass wir sie nicht gefunden haben.
Erwarten wir für jede Komplexitätsklasse (etwa zwischen P und PSPACE) eine Blattsprachcharakterisierung? (Beschränken wir uns auf "natürliche" Komplexitätsklassen.) Gibt es ein Ergebnis dieser Art in der Literatur?
(Eine verwandte Frage, die ich gerne beantworten würde: Gibt es eine (heuristische) Methode, um eine Blattsprache für eine bestimmte Klasse zu finden?)
EDIT: Suresh weist darauf hin, dass es in dem Wikipedia-Artikel eine kurze Definition von Blattsprachen gibt. Ich kopiere es unten.
Verschiedene Komplexitätsklassen werden typischerweise in Bezug auf eine nicht-deterministische Turing-Maschine mit Polynomzeit definiert, wobei jede Verzweigung entweder akzeptieren oder ablehnen kann und die gesamte Maschine als eine Funktion der Bedingungen der Verzweigungen akzeptiert oder ablehnt. Beispielsweise akzeptiert eine nicht deterministische Turing-Maschine, wenn mindestens eine Verzweigung akzeptiert, und lehnt sie nur ab, wenn alle Verzweigungen abgelehnt werden. Eine nicht-deterministische Turing-Maschine akzeptiert dagegen nur, wenn alle Zweige akzeptieren, und lehnt ab, wenn ein Zweig lehnt. Auf diese Weise können viele Klassen definiert werden.