www.wikidata.de-de.nina.az
In der Komplexitatstheorie werden Probleme oder Algorithmen darauf untersucht wie aufwendig sie zu berechnen sind bezuglich einer bestimmten Ressource meist bezuglich des Zeitaufwands oder des Speicher Platzaufwands Bei Problemen wird dabei stets das kostengunstigste Losungsverfahren angenommen Der Aufwand ist im Allgemeinen abhangig von der Grosse der Eingabe wie viele Elemente sie umfasst Abgeschatzt wird der asymptotische Aufwand also fur sehr viele Eingabeelemente Dabei zeigt sich dass die Probleme bzgl ihres Aufwands Gruppen bilden deren Aufwand fur grosse Eingabemengen auf ahnliche Weise anwachst diese Gruppen werden Komplexitatsklassen genannt Eine Komplexitatsklasse ist eine Menge von Problemen welche sich in einem bestimmten ressourcenbeschrankten Berechnungsmodell berechnen lassen Zusammenhang verschiedener KomplexitatsklassenDefiniert wird eine Komplexitatsklasse durch eine obere Schranke fur den Bedarf einer bestimmten Ressource unter Voraussetzung eines Berechnungsmodells Die am haufigsten betrachteten Ressourcen sind die Anzahl der notwendigen Berechnungsschritte zur Losung eines Problems Zeitkomplexitat oder der Bedarf an Speicherplatz Raum oder Platzkomplexitat Gemessen wird der Ressourcenbedarf in der Regel durch sein asymptotisches Verhalten an der Obergrenze dem worst case in Abhangigkeit von der Lange der Eingabe Problemgrosse Auch andere Masse des Ressourcenbedarfs sind moglich etwa der statistische Mittelwert uber alle moglichen Eingaben Dieses Mass ist jedoch formal nur schwer zu analysieren Da durch eine Komplexitatsklasse nur eine obere Grenze fur den Ressourcenbedarf festgelegt ist wird somit fur ein gegebenes Berechnungsmodell eine Hierarchie von Komplexitatsklassen gebildet wobei weniger machtige Klassen jeweils vollstandig in den jeweils hoheren Komplexitatsklassen enthalten sind Zudem konnen durch formale Methoden auch uber unterschiedliche Berechnungsmodelle oder Ressourcen definierte Klassen zueinander in Bezug gesetzt werden Inhaltsverzeichnis 1 Einteilung der Komplexitatsklassen 2 Beispiel 3 Siehe auch 4 EinzelnachweiseEinteilung der Komplexitatsklassen BearbeitenDie Komplexitat wird haufig mit Hilfe der Landau Symbole beschrieben um von Eigenheiten bestimmter Implementierungen und Berechnungsmodelle zu abstrahieren Die Schwierigkeit bei der Bestimmung der genauen Komplexitat eines Problems liegt darin dass man hierfur samtliche mogliche Algorithmen betrachten musste Man muss also beweisen dass ein bestimmter Algorithmus optimal fur dieses Problem ist Die Komplexitatsklasse eines Algorithmus ist nur in einer konkreten Implementierung auf einer Maschine z B auf einer Turingmaschine oder im Lambda Kalkul feststellbar Die Komplexitatsklassen der Implementationen eines Algorithmus auf unterschiedlichen Maschinenmodellen sind jedoch meistens ahnlich oder sogar je nach Abstraktionslevel gleich Es wird festgestellt dass nur bestimmte Klassen dieser Grosse sinnvoll unterscheidbar sind die alle mit einer charakteristischen Gleichung beschrieben werden So interessieren z B konstante Faktoren in der Komplexitat eines Algorithmus nicht schliesslich gibt es in der Realitat Computer auch Maschinen deren Ausfuhrungsgeschwindigkeit sich um einen konstanten Faktor unterscheidet Hier wird auch klar warum keine Einheiten gebraucht werden und wie die Landau Notation zu verstehen ist Eine wichtige Rolle bei der Einteilung der Komplexitatsklassen spielt die Unterscheidung von Zeitkomplexitat und Platzkomplexitat bei deren Betrachtung Zeit bzw Platz beschrankt werden Weiterhin unterscheidet man deterministische Maschinen von nichtdeterministischen Informell lasst sich sagen dass Platz machtiger ist als Zeit und Nichtdeterminismus meistens machtiger als Determinismus allerdings jeweils nur exponentiell machtiger Genauere Abschatzungen hierzu geben der Satz von Savitch und der Satz von Immerman und Szelepcsenyi Ein Problem A das mit geringem Aufwand auf ein Problem B zuruckgefuhrt reduziert werden kann gehort mindestens zur Komplexitatsklasse von B B wird dann schwerer als A genannt Ein Problem A ist K schwer wenn sich alle anderen Probleme der Klasse K auf A zuruckfuhren lassen Liegt ein K schweres Problem A selbst in der Klasse K wird es K vollstandig genannt 1 Beispiel BearbeitenRasenmahen hat mindestens lineare Komplexitat in der Flache denn man muss die gesamte Flache mindestens einmal uberfahren Das heisst der Zeitaufwand um n displaystyle n nbsp m Rasen zu mahen ist n displaystyle n nbsp Konstante Sekunden Fur einen 3 Mal so grossen Rasen braucht man 3 Mal so lange zum Mahen der Zeitaufwand wachst linear Einfache dumme Sortierverfahren haben haufig eine quadratische Zeitkomplexitat braucht man fur n 20 displaystyle n 20 nbsp Bucher z B 15 Sekunden um sie zu sortieren so brauchte man mit diesem einfachen Verfahren fur 10 Mal so viele Bucher 100 Mal so lange und fur 50 Mal so viele Bucher dann 2500 Mal so viel Zeit der Zeitaufwand steigt quadratisch Suchen im Telefonbuch hat hingegen nur logarithmische Komplexitat bei einer binaren Suche wenn man den jeweils verbliebenen Suchbereich immer in der Mitte aufschlagt ob man zu weit vor oder hinter dem gesuchten Namen liegt Bei einem doppelt so dicken Telefonbuch schlagt man dieses nur ein Mal ofter auf denn das halbiert den Suchbereich wieder auf das vorige Problem Der Zeitaufwand in n displaystyle n nbsp Eintragen zu suchen wachst dann mit log 2 n displaystyle log 2 n nbsp In doppelt so vielen Telefonnummern zu suchen braucht nicht doppelt so viele Suchschritte sondern nur genau einen zusatzlichen Siehe auch BearbeitenListe von Komplexitatsklassen KomplexitatstheorieEinzelnachweise Bearbeiten Natalia Kliewer Komplexitatstheorie In Lexikon der Wirtschaftsinformatik Online Lexikon Oldenbourg Wissenschaftsverlag Abgerufen von https de wikipedia org w index php title Komplexitatsklasse amp oldid 220221079