Komplexitätsklassen THEORETISCHE INFORMATIK VORGETRAGEN VON: ELIAS DROTLEFF
Einflussgrößen bei der Bildung von Komplexitätsklassen Das zugrunde liegende Berechnungsmodell (Turingmaschine, Registermaschine usw.). Der verwendete Berechnungsmodus (deterministisch, nichtdeterministisch, probabilistisch usw.). Die betrachtete Berechnungsressource (Zeit, Platz, Prozessoren usw.). Das angenommene Kostenmaß (uniform, logarithmisch). Die eingesetzte Schrankenfunktion.
Anforderungen an Schrankenfunktionen (Schrittzahl, Speicher usw. werden als natürliche Zahlen berechnet). (monotones Wachstum). Die Funktion f muss selbst in Zeit O(f) und mit Raum O(f) berechenbar sein.
Schrankenfunktionen (Landau-Notation) f wächst höchstens so schnell wie g f wächst langsamer als g f wächst mindestens so schnell wie g f wächst schneller als g f wächst genauso schnell wie g
Übersicht der wichtigsten Schrankenfunktionen (in O-Notation) konstant O(1) logarithmisch O(logn) polylogarithmisch O(log k n) für linear O(n) n-log-n O(nlogn) quadratisch O(n 2 ) polynomial O(n k ) für exponentiell O(d n ) für d > 1
Beispiele Rasenmähen hat mindestens lineare Komplexität (in der Fläche), denn man muss die gesamte Fläche mindestens einmal überfahren. Suchen im Telefonbuch hat hingegen nur logarithmische Komplexität, denn bei doppelt so dickem Telefonbuch schlägt man dieses nur einmal öfter auf
Hierarchiesätze Zeithierarchiesatz Der Zeithierarchiesatz besagt: Dies bedeutet also, dass man die Zeitressource um einen Faktor log 2 (f(n)) erhöhen muss, um auf einer deterministischen Turingmaschine mehr Probleme lösen zu können. Raumhierarchiesatz Der Raumhierarchiesatz besagt:
Definition *-schwer und *-vollständig Ein Problem A ist k-schwer, wenn sich alle anderen Probleme der Klasse k auf A zurückführen lassen ( mittels Polynomialzeitreduktion ). Liegt ein k-schweres Problem A selbst in der Klasse k, wird es k-vollständig genannt. Satz von Cook beweist, dass SAT, NP-vollständig ist Als Beispiel: NP, NP-schwer (=NP-hard), NPvollständig (=NP-complete, =NPC)
Platzkomplexität Definition: Bedarf an Speicherplatz eines Algorithmus' zur Lösung eines Problems, in Abhängigkeit von der Länge seiner Eingabe! die Zeitkomplexität eines Algorithmus ist niemals kleiner als seine Platzkomplexität, da für das Schreiben einer Speicherzelle jeweils ein Rechenschritt benötigt wird Bekannte Platzkomplexitätsklassen: L = LOGSPACE, NL = NLOGSPACE, PSPACE, NPSPACE, EXPSPACE
PSPACE Deterministisch polynomieller Platzverbrauch Definition: Eine Maschine kann in polynomieller Zeit maximal polynomiell viele Speicherzellen verwenden ->
Satz von Savitch Sei eine bandkonstruierbare Funktion mit. Dann gilt: NSPACE(s(n)) DSPACE((s(n)) 2 ). Er besagt, dass ein von einer nichtdeterministischen Turingmaschine mit einer bestimmten Platzkomplexität lösbares Problem auf einer deterministischen Turingmaschine mit einer quadratisch höheren Platzschranke gelöst werden kann. Eine Folgerung aus dem Satz von Savitch ist: PSPACE = NPSPACE Die Komplexitätsklassen der Zeitkomplexität stehen mit denen der Platzkomplexität in folgender Beziehung:
Komplementklassen co-* Definition einer Komplementsprache: L = Σ* \ L Für deterministische Komplexitätsklassen gilt: C = Co C -> da in der Übergangsfunktion einfach nur die Übergänge zu akzeptierenden Zuständen durch Übergänge zu verwerfenden Zuständen ausgetauscht werden müssen und umgekehrt
co NP Probleme mit Komplement in NP Problem muss nicht notwendigerweise selbst in NP liegen z.b. liegt SAT (Ist eine aussagenlogische Formel unerfüllbar?) in co-np
Bekannte Probleme und ihre Klasse NP-vollständig: SAT, CP(Cliquenproblem), SUBSUM, TSP NP-schwer: Halteproblem für Turingmaschinen P: PRIMES Co-P: Zusammengesetztheit = PRIMES TSP : Bestimmung aller Rundreisen mit gegebenen Kosten -> Unrealistische Problemstellung: zu viele Lösungen, liegt in EXPSPACE
Komplexitätsklassenhierarchie
Quellen http://de.wikipedia.org/wiki/komplexitätstheorie Alexander Asteroth und Christel Baier, Theoretische Informatik, Pearson Studium
Fragen?