= ?

Thomas Havelka

Abstract:

Die Frage ob die beiden Komplexitätsklassen tex2html_wrap_inline582 und tex2html_wrap_inline586 zusammenfallen, oder ob tex2html_wrap_inline582 eine echte Teilmenge von tex2html_wrap_inline586 ist stellt eines der großen ungelösten Probleme der theoretischen Informatik dar. Der folgende Text bildet eine kurze Einführung in diese Problematik. Im Anhang gibt es eine kurze Liste von einführender Literatur, die sich mit dem tex2html_wrap_inline582 = tex2html_wrap_inline586 Problem, aber auch anderen Themen der theoretischen Informatik befaßt.

Einführung und Motivation

Informatik befaßt sich unter anderem damit, zu gegebenen Problemen Lösungswege oder Algorithmen zu finden. Komplexitätstheorie ist jenes Teilgebiet, das Probleme dahingehend zu klassifizieren versucht, welcher Aufwand an Zeit und (Speicher)platz zu deren Lösung mindestens benötigt wird. Zwei wichtige dieser Komplexitätsklassen sind tex2html_wrap_inline582 und tex2html_wrap_inline586 . So gehören Unifikation und Lineare Programmierung zur Klasse tex2html_wrap_inline582 wohingegen das Travelling-Salesman-Problem und die Erfüllbarkeit der Aussagenlogik in tex2html_wrap_inline586 - genauer gesagt in tex2html_wrap_inline610 - liegen.

Als einfache Charakterisierung der beiden Klassen läßt sich sagen, daß die Klasse tex2html_wrap_inline582 jene Probleme umfaßt, für die es Algorithmen mit vertretbarem Aufwand gibt, wohingegen für Probleme, die tex2html_wrap_inline610 sind, solche Algorithmen nicht bekannt sind. Diese können nur mittels Approximationsverfahren gelöst werden. Andererseits konnte aber nicht bewiesen werden, daß es keine exakten Algorithmen mit vertretbarem Aufwand gibt.

Genau diese Problematik ist es, die durch die einfache Formel tex2html_wrap_inline582 = tex2html_wrap_inline586 beschrieben wird: gibt es für eine große Anzahl von Problemen exakte Algorithmen mit vertretbarem Aufwand (und ist es deshalb auch sinnvoll weiterhin danach zu suchen), oder gibt es diese nicht und die Probleme können nur möglichst gut approximiert werden.

Im folgenden sollen die beiden Klassen tex2html_wrap_inline582 und tex2html_wrap_inline586 sowie darin enthaltene Probleme beschrieben werden. Dazu werden zunächst werden Turingmaschinen definiert, welche die Möglichkeit bieten Probleme und ihre Lösungen zu beschreiben. Den Abschluß der Arbeit bilden einige Aussagen zum Aufbau von tex2html_wrap_inline586 .

Turingmaschinen

Turingmascinen stellen sehr einfaches Computermodel dar. Sie bestehen aus einem Lese- und Schreibkopf der sich stets in einem von mehreren Zuständen befindet. Dieser arbeitet auf einem in Zellen unterteilten, auf einer Seite endlosen Band. In jeder dieser Zellen steht ein Symbol - wobei es auch ein Leerzeichen gibt. Der Kopf befindet sich stets über einer Zelle.

Abhängig vom Zustand der Maschine und dem gelesenem Zeichen schreibt der Kopf ein Zeichen in die Zelle, bewegt sich eine Zelle nach links oder rechts (er kann auch stehenbleiben) und geht in einen neuen Zustand über.

Einige der Zustände zeigen an, daß die Berechnung beendet ist.

Formal ist eine Turingmaschine ein Quadrupel tex2html_wrap_inline628 , wobei

K
die endliche Menge von Zuständen
tex2html_wrap_inline632
die endliche Menge von Symbolen
tex2html_wrap_inline634
die Übergangsfunktion
s
tex2html_wrap_inline638 der Startzustand ist.

tex2html_wrap_inline632 enthält die speziellen Symbole tex2html_wrap_inline642 - um eine leere Zelle anzuzeigen - und tex2html_wrap_inline644 - zur Markierung des Ende des Bandes.

Die Übergangsfunktion ist folgendermaß definiert:

tex2html_wrap_inline646 ''halt'', ''yes'', ''no'' tex2html_wrap_inline652

Eine Konfiguration (q,v,w) mit tex2html_wrap_inline656 ''halt'', ''yes'', ''no'' tex2html_wrap_inline662 und tex2html_wrap_inline664 beschreibt den momentanen Zustand einer Berechnung, wobei der Schreib- Lesekopf auf dem ersten Symbol von w steht.

Was kann man nun mit einer Turingmaschine tun?

Zunächst wird ein Wort tex2html_wrap_inline668 auf das Band geschrieben. Die Turingmaschine M kann nun nach einer endlichen Anzahl von Schritten in einen der Zustände ''yes'' oder ''no'' kommen oder unendlich lange weiterlaufen. Dadurch wird eine formale Sprachen L definiert:

L ist nun die Menge jener Worte tex2html_wrap_inline668 , für die M im Zustand ''yes'' anhält.

Natürlich läßt sich dieser Vorgang im allgemeinen auch umkehren, und zu einer Sprache L eine geeignete Turingmaschine entwerfen. Da man Probleme in Form einer formalen Sprache darstellen kann, sind Turingmaschinen geeignete Werkzeuge um diese Probleme (theoretisch) zu lösen.

Die Klasse

Die Turingmaschine M wird auf Wort w mit der Länge n = |w| angewandt. Die Arbeit von M verbraucht Resourcen:

Es gibt einen funktionellen Zusammenhang zwischen n und dem maximalen m:

m = O(f(n))

Es sei z. B. tex2html_wrap_inline734 . Alle Probleme, die sich mit diesem Zeitaufwand lösen lassen, werden zur Klasse TIME tex2html_wrap_inline738 zusammengefaßt.

Alle Probleme, die sich mit polinomiellem Aufwand in Bezug auf die Länge des Inputs lösen lassen, werden nun zur Komplexitätsklasse tex2html_wrap_inline582 der polinomiellen Zeit zusammengafaßt:

P tex2html_wrap_inline744 TIME tex2html_wrap_inline746

Auf die Gründe, warum Klassen mit verschiedenem polinomiellen Aufwand zusammengefaßt werden, soll an dieser Stelle nicht eingegangen werden. Der Leser sei an die am Ende angeführte Literatur verwiesen.

Beispiele für Probleme aus

Indeterminismus

Verwendet man statt einer Übergangsfunktion tex2html_wrap_inline634 eine Übergangsrelation so sind mehrere Folgekonfigurationen möglich. Stellt man die möglichen Verhalten dieser Turingmaschine graphisch dar, so erhält man einen Baum.

picture156

Jeder Zweig dieses Baumes kann:

Nun ist es nicht mehr so einfach zu sagen, was denn nun das Ergebnis einer Berechnung ist. Daher wird folgendes festgelegt:

Eine indeterministische Turingmaschine akzeptiert einen Input w, wenn mindestens einer der Zweige mit ''yes'' endet.

Die Klasse

Genau wie bei deterministischen Turingmaschinen besteht auch bei indeterministischen ein Zusammenhang zwischen Größe der Eingabe und Dauer der Berechnung.

Hier betrachten wird die maximale Länge der Pfade, also die maximale Dauer der Berechnung. Diese sei durch O(f(n)) begrenzt. Daraus lassen sich nichtdeterministische Komplexitätsklassen ableiten:

NTIME(f(n)) sind alle jene Sprachen, die auf einer nichtdeterministischen Turingmaschine in einer durch O(f(n)) begrenzten Zeit entschieden werden können.

Analog zur Klasse tex2html_wrap_inline582 bei deterministischen Maschinen, läßt sich auf nichtdeterministischen Maschinen die Klasse tex2html_wrap_inline586 der nichtdeterministischen polynomiellen Zeit definieren:

NP tex2html_wrap_inline744 NTIME tex2html_wrap_inline746

Beispiele für Probleme aus

Reduktionen

Neben den Turingmaschienen die Probleme entscheiden, die Berechnung also mit ''yes'' oder ''no'' beenden (falls sie dieses tun), gibt es auch noch Turingmaschinen, die einen Wert (ein Wort w) berechnen. Diese werden auch als Transducer bezeichnet. Bei der Problemlösung bietet das die Möglichkeit, ein Problem, zu dem man noch keinen Algorithmus kennt in ein anderes umzuformen, zu dem bereits ein solcher bekannt ist. Dabei ist natürlich auch möglich, daß die Umformung nur deshalb durchgeführt wird, weil man so einen effizienteren Algorithmus verwenden kann. Sinnvoll ist dieses Vorgehen natürlich nur dann, wenn der Aufwand zur Umformung vernachlässigbar klein ist.

Gegeben seien also zwei Probleme A, B mit den sie entscheidenden Turingmaschinen tex2html_wrap_inline856 , tex2html_wrap_inline858 . Des weiteren sei eine Transformation R für alle tex2html_wrap_inline862 definiert, sodaß tex2html_wrap_inline864 . R wird als Reduktion bezeichnet, wenn gilt daß tex2html_wrap_inline868 ''yes'' gdw. auch tex2html_wrap_inline872 ''yes''.

Gibt es eine solche effiziente Reduktion so sagt man:

Dies ist sinnvoll, weil der Aufwand zur Reduktion gegenüber dem Aufwand zur Problemlösung selbst vernachlässigbar ist. Das bedeutet, daß es keine bessere Lösung für A als für B geben kann. Gäbe es eine solche, so könnte sie ja auch für B verwendet werden, welches ja in ein äquivalentes Problem A umgeformt werden kann.

Formal schreibt man tex2html_wrap_inline892 , wobei tex2html_wrap_inline894 den Aufwand der Reduktion bezeichnet. Für Probleme in tex2html_wrap_inline582 wird mittels tex2html_wrap_inline898 (Logspace) reduziert. Die Klasse tex2html_wrap_inline898 umfaßt alle jene Probleme, die nur logarithmischen Zwischenspeicher (im Bezug auf die Imputgröße) benötigen.

Wenn es um die Unterscheidung zu tex2html_wrap_inline586 geht sind jedoch auch Reduktionen aus tex2html_wrap_inline582 denkbar, da die Nacheinanderausführung zweier polynomieller Algorithmen ebenfalls polynomiell ist.

Beispiel einer Reduktion

Das Problem B sei in einem Graphen die Existenz eines Hamiltonkreises zu überprüfen. Dies ist eine geschlossene Kantenfolge, die jeden Knoten des Graphen genau einmal enthält.

Das Problem A ist das Travelling Salesperson Problem mit Schranke D (TSP(D)). Dies bedeutet, daß nicht eine optimale Lösung berechnet werden soll, sondern überprüft wird, ob eine Rundreise mit bestimmetn Maximalkosten möglich ist.

Die Reduktion geschieht dadurch, daß die Kanten des ursprünglichen Graphen jeweils mit den Kosten 1 verbunden werden. Als Kostenschranke wird n, die Anzahl der Knoten vorgegeben.

Es ist leicht zu sehen, daß eine Lösung der transformierten Problems natürlich auch das ursprünglche Problem löst:

Der Nachweis, daß die Reduktion effizient ist, bleibt dem geneigten Leser überlassen.

Vollständigkeit

Es stellt sich nun die Frage, ob durch die Verwendung von Reduktionen neue Erkenntnisse über Komplexitätsklassen gewonnen werden können. Wie wir sehen werden, ist dies der Fall. Doch zunächst soll der Begriff der Vollständigkeit eingeführt werden.

Gegeben sei ein Problem (eine Sprache) A und die Komplexitätsklasse C. Man sagt A sei vollständig für C wenn

Vor allem der zweite Punkt ist schwierig zu überprüfen. Hat man jedoch ein vollständiges Problem tex2html_wrap_inline928 so genügt es zu zeigen, daß dieses auf A reduziert werden kann. Da jedes Problem aus C auf B reduziert werden kann, kann es nun in einem weiteren Schritt auch auf A reduziert werden.

Durch die Definition einer Komplexitätsklasse ergibt sich meist auch ein für sie charakteristisches Problem, für welches gezeigt werden kann, daß es vollständig ist.

Beispiel zur Vollständigkeit

Das Problem tex2html_wrap_inline942 , also die Erfüllbarkeit einer boolschen Formel ist das charakteristische Problem für tex2html_wrap_inline586 . Der Beweis der Vollständigkeit ist im folgenden kurz umrissen.

tex2html_wrap_inline942 liegt in tex2html_wrap_inline586 , da man eine Variablenbelegung erraten kann, welche die Formel erfüllt. Dies entsprcht der Auswahl eines ''yes''-Zweiges im Ableitungsbaum. Die Überprüfung der Richtigkeit erfolgt in polynomieller Zeit, da auch der Zweig nur polinomielle Länge hat.

Des weiteren kann jede nichtderterministische Turingmaschine, welche ihre Berechnung für die Eingabe w in q(|w|) Schritten beendet, durch boolsche Formeln dargestellt werden. Im folgenden sei das Muster für die Formeln angegeben:

tex2html_wrap_inline956

Der Ausdruck beschreibt folgende Elemente der Relation tex2html_wrap_inline634 :

tex2html_wrap_inline960 und tex2html_wrap_inline962

tex2html_wrap_inline964 bezeichnet den Zeitpunkt, zu dem eine bestimmte Konfiguration aufgetreten ist und tex2html_wrap_inline966 bezieht sich auf die Position der Symbole am Band.

Für jedes Element Relation tex2html_wrap_inline634 werden nun ausgehend von obigem Muster und die Werte tex2html_wrap_inline970 Variable und dann eine boolsche Formel erzeugt, die das gesamte mögliche Verhalten der Turingmaschine beschreibt. Eine gültige Wahrheitsbelegung der Formel beschreibt nun einen Zweig der nichtdeterministischen Berechnung der Maschine.

Ergänzt man die Formel nun um eine Beschreibung des Eingabewortes und die Tatsache, daß die Maschine zu irgendeinem Zeitpunkt in den Zustand ''yes'' gelangen muß, so ist die Formel genau dann erfüllbar, wenn es eine Berechnung gibt, die mit ''yes'' endet.

Somit kann jedes Problem in tex2html_wrap_inline586 auf tex2html_wrap_inline942 reduziert werden und SAT ist somit tex2html_wrap_inline610 .

Bedeutung von Vollständigkeit

Möglicher Aufbau von

Im folgenden sind die drei Möglichkeiten dargestellt, wie die innere Struktur von tex2html_wrap_inline586 aussehen kann.

  1. Es gibt Probleme, die weder in tex2html_wrap_inline582 liegen, noch tex2html_wrap_inline610 sind.
  2. Probleme in tex2html_wrap_inline586 sind entweder in tex2html_wrap_inline582 oder tex2html_wrap_inline610 .
  3. Es gilt tex2html_wrap_inline582 = tex2html_wrap_inline586 = tex2html_wrap_inline610 .

picture364

Es kann bewiesen werden, daß es Sprachen gibt, die weder tex2html_wrap_inline610 sind, noch in tex2html_wrap_inline582 liegen, falls tex2html_wrap_inline582 und tex2html_wrap_inline586 nicht zusammenfallen. Der mittlere dieser drei Pläne kann also nicht den Aufbau von tex2html_wrap_inline586 beschreiben.

Welcher der beiden anderen richtig ist wird sicher noch jeden theoretischen Informatiker, der sich mit der Frage befaßt einiges Kopfzerbrechen bereiten.

Zusammenfassung

Der Leser, der sich bis an diese Stelle durchgekämpft hat, sollte (hoffentlich) einiges gelernt haben. Er hat eine kurze Einführung in die Funktionsweise von Turingmaschinen erhalten. Mit Hilfe der Turingmaschinen wurden die beiden Komplexitätskalssen tex2html_wrap_inline582 und tex2html_wrap_inline586 beschrieben. Für beide Klassen wurden einige der in ihr enthaltenen Probleme beschrieben. Des weitern wurde die Methode der Reduktion als Methode der Problemlösung und der Begriff der Vollständigkeit zur genaueren Klassifizierung von Problemen eingeführt.

Es wurde auf den nicht akzeptablen Aufwand verwiesen, der (derzeit) mit der Lösung von Problemen der Klasse tex2html_wrap_inline610 verbunden ist. Aus der Anzahl und Wichtigkeit dieser Probleme sollte sich erkennen lassen, warum die Frage ob tex2html_wrap_inline582 = tex2html_wrap_inline586 nicht nur für theoretische Informatiker eine große Rolle spielen, sondern warum auch Praktiker an diesem Problem interessiert sein sollten. Die Antwort auf diese Frage gibt schließlich Aufschluß darüber, ob gewisse Probleme (effizient) gelöst, oder nur approxomiert werden können.

No References!

About this document ...

= ?

This document was generated using the LaTeX2HTML translator Version 96.1-e (April 9, 1996) Copyright © 1993, 1994, 1995, 1996, Nikos Drakos, Computer Based Learning Unit, University of Leeds.

The command line arguments were:
latex2html -split 0 n-havelka.

The translation was initiated by Wolfgang Slany on Fri Jan 9 15:28:50 MET 1998


Wolfgang Slany
Fri Jan 9 15:28:50 MET 1998