www.wikidata.de-de.nina.az
Dieser Artikel oder nachfolgende Abschnitt ist nicht hinreichend mit Belegen beispielsweise Einzelnachweisen ausgestattet Angaben ohne ausreichenden Beleg konnten demnachst entfernt werden Bitte hilf Wikipedia indem du die Angaben recherchierst und gute Belege einfugst Siehe Diskussionsseite Maformatiker Diskussion 18 06 4 Mai 2017 CEST Unter der Zeitkomplexitat eines Problems wird in der Informatik die Anzahl der Rechenschritte verstanden die ein optimaler Algorithmus zur Losung dieses Problems benotigt in Abhangigkeit von der Lange der Eingabe Man spricht hier auch von der asymptotischen Laufzeit und will damit in Anlehnung an eine Asymptote das Zeitverhalten des Algorithmus fur eine sehr grosse Eingabemenge charakterisieren Es interessiert also nicht der Zeitaufwand eines konkreten Programms auf einem bestimmten Computer sondern viel mehr wie der Zeitbedarf wachst wenn mehr Daten zu verarbeiten sind also z B ob sich der Aufwand fur die doppelte Datenmenge verdoppelt oder quadriert Skalierbarkeit Die Laufzeit wird daher in Abhangigkeit von der Lange n der Eingabe angegeben und fur immer grosser werdende n asymptotisch unter Verwendung der Landau Notation Gross O Notation abgeschatzt Eine genauere Laufzeitabschatzung von Rekursionsgleichungen bietet auch das Mastertheorem oder die Substitutionsmethode Wird der Begriff der Zeitkomplexitat auf einen konkreten Algorithmus bezogen so ist damit die Anzahl der Schritte gemeint die der Algorithmus fur die Bearbeitung einer Eingabe mit bestimmter Lange n benotigt im besten schlechtesten oder durchschnittlichen Fall In der Komplexitatstheorie ist der eigentliche Gegenstand der Betrachtung aber die Komplexitat von Problemen Die Komplexitat von Algorithmen ist nur insofern interessant als daraus Aussagen uber das behandelte Problem geschlossen werden konnen In der Praxis ist diese aber haufig interessant vor allem um fur einen konkreten Kontext einen geeigneten Algorithmus auszuwahlen So ist Bubblesort zwar fur grosse Datenmengen ein recht langsames Verfahren eignet sich aber aufgrund des geringen Overheads gut fur kleine Datenmengen insbesondere fur n 8 Die Zeitkomplexitat wird immer in Bezug auf ein Maschinenmodell angegeben In der Regel ist das Bezugsmodell die Turingmaschine alternativ kann die Zeitkomplexitat aber auch in Bezug auf eine Registermaschine angegeben werden die in ihrem Verhalten mehr den tatsachlich existierenden Computern ahnelt Fur parallele Algorithmen kann ein paralleles Maschinenmodell wie die PRAM verwendet werden Ein in Beziehung zum PRAM Modell stehendes Modell ist das Externspeichermodell Jedes Problem welches effizient im PRAM gelost werden kann kann auch effizient im Externspeicher berechnet werden 1 Zudem wird zwischen der Komplexitat fur deterministische und nichtdeterministische Maschinen unterschieden In der Komplexitatstheorie ist die Zeitkomplexitat neben der Platzkomplexitat der am haufigsten untersuchte Aspekt von Algorithmen und Problemen Die Zeitkomplexitat aller Algorithmen die ein Problem losen liegt beispielsweise einer Reihe bedeutsamer Komplexitatsklassen zu Grunde Inhaltsverzeichnis 1 Varianten 2 Abhangige Zeitkomplexitat 3 Beispiel 4 Siehe auch 5 Literatur 6 EinzelnachweiseVarianten BearbeitenGibt es neben der Lange der Eingabe noch andere Faktoren die die Laufzeit stark beeinflussen unterscheidet man die folgenden Varianten Die worst case Laufzeit engl schlechtester Fall gibt an wie lange der Algorithmus maximal braucht Fur viele Algorithmen gibt es nur wenige Eingaben die diese worst case Laufzeit erreichen weshalb sie nicht unbedingt eine realistische Abschatzung ist Handelt es sich aber um Echtzeitsysteme so muss die worst case Laufzeit naturlich berucksichtigt werden Die average case Laufzeit engl durchschnittlicher Fall gibt die erwartete Laufzeit bei einer gegebenen Verteilung der Eingaben an Da allerdings die Verteilung der Eingaben bei Programmen nicht immer bekannt ist ist die Berechnung der average case Laufzeit in diesen Fallen nur unter einschrankenden Annahmen moglich Siehe auch Amortisierte Laufzeitanalyse Die best case Laufzeit engl bester Fall gibt an wie lange der Algorithmus mindestens braucht also selbst fur die Eingaben auf denen er ideal arbeitet Diese untere Schranke zur Losung des Problems wird nur selten angegeben da sie nur fur wenige Falle zutrifft und die best case Laufzeit in der fur die schlechteren Falle enthalten ist Abhangige Zeitkomplexitat BearbeitenMeistens kann die Zeitkomplexitat nur in Abhangigkeit von anderen Zeitkomplexitaten angegeben werden So wird bei Sortieralgorithmen die Zeit eigentlich nicht direkt gemessen sondern in Vergleichsoperationen unter der Annahme dass jeder solcher Vergleich eine konstante Zeit benotigt Wahrend das bei elementaren Datentypen normalerweise gilt ist dies beispielsweise fur Zeichenketten bereits nicht der Fall Mussen zwei Algorithmen in diesem Beispiel zwei Sortieralgorithmen jedoch ahnliche Vergleiche durchfuhren so ist das Ergebnis weiterhin aussagekraftig In manchen Fallen kann auch nur so eine definitive Aussage getroffen werden Beispielsweise fuhrt der Algorithmus DBSCAN fur jeden Punkt genau eine Nachbarschaftsanfrage durch Da eine Nachbarschaftsanfrage als die langsamste Operation im Algorithmus gilt sagt man auch er ist linear in der Anzahl der Nachbarschaftsanfragen Mochte man ihn jedoch mit einem Algorithmus vergleichen der keine Nachbarschaftsanfragen durchfuhrt braucht man ein anderes Mass Je nach einer vorhandenen Indexstruktur kann eine Nachbarschaftsanfrage jedoch unterschiedlich schnell beantwortet werden ohne dass dies den Algorithmus DBSCAN verandern wurde Ohne Index Unterstutzung hat DBSCAN dann eine quadratische Zeitkomplexitat in der Anzahl der Distanzberechnungen Beispiel BearbeitenIn einer Liste werden zwanzig Namen gespeichert Es soll nun ein vorhandener Name eingegeben und verglichen werden Die Liste wird beginnend mit dem ersten Eintrag durchsucht bis der Name gefunden ist best case Der gesuchte Name ist der erste in der Liste die Suchzeit ist 1 worst case Der gesuchte Name ist der letzte in der Liste Die Suchzeit ist 20 Diese Suchzeit wurde sich auch einstellen wenn der Name nicht in der Liste ware average case Ist der Name definitiv in der Liste betragt der average case 10 5 Spricht man einfach von Zeitkomplexitat so ist meistens die Abschatzung fur den worst case gemeint Fur eine realistische Abschatzung der Laufzeit eignet sich bei komplexen Algorithmen die amortisierte Analyse die die durchschnittlichen Kosten des Algorithmus fur alle moglichen Eingaben betrachtet statt nur fur den besten schlechtesten gleichverteilten Fall Dabei ist entscheidend wie wahrscheinlich es ist dass ein bestimmter Fall eintritt Diese Art der Untersuchung eignet sich besonders wenn man den Aufwand einer Teiloperation eines grosseren Algorithmus betrachtet Beim Sortieren mittels eines Fibonacci Heaps beispielsweise ist die Operation des Einsortierens eines neuen Eintrags zwar im schlechtesten Fall recht aufwandig aber diese kommen nur einmal beim Durchlauf des Gesamtalgorithmus vor in allen folgenden Schritten ist der Heap bereits fast sortiert und der einzelne Schritt ist billig Das Problem an der amortisierten Analyse ist dass sie nicht einfach durchzufuhren ist da man zunachst eine Funktion entwickeln muss die das Verhalten der Datenstruktur moglichst genau modelliert und damit angibt wie wahrscheinlich die einzelnen Falle sind In der Informationstheorie wird die Zeitkomplexitat verwendet um die Algorithmische Tiefe einer Datenmenge zu bestimmen Siehe auch BearbeitenPlatzkomplexitat P NP Problem NP Komplexitatsklasse Polynomialzeit EffizienzLiteratur BearbeitenKnuth Donald E Big Omicron and big Omega and big Theta In SIGACT News Band 8 Nr 2 ACM April 1976 ISSN 0163 5700 S 18 24 doi 10 1145 1008328 1008329 Einzelnachweise Bearbeiten Aus Meyer Sanders und Sibeyn Algorithms for Memory Hierarchies Advanced Lectures Chapter 15 3 S 335 Springer 2003 Abgerufen von https de wikipedia org w index php title Zeitkomplexitat amp oldid 231742402