Zum Inhalt springen

Master-Theorem

aus Wikipedia, der freien Enzyklopädie
Dies ist eine alte Version dieser Seite, zuletzt bearbeitet am 23. Mai 2005 um 22:10 Uhr durch Regnaron (Diskussion | Beiträge) (Versucht verständnisprobleme anzugehen). Sie kann sich erheblich von der aktuellen Version unterscheiden.

Das Master-Theorem bietet eine schnelle Lösung für die Frage, in welcher Laufzeitklasse eine gegebene rekursiv definierte Funktion liegt. Jedoch kann mit dem Master Theorem nicht jede rekursiv definierte Funktion gelöst werden. Lässt sich keiner der drei möglichen Fälle des Master-Theorems auf die Funktion T anwenden, so muss man die Komplexitätsklasse der Funktion anderweitig berechnen.

Allgemeine Form

Die allgemeine Form für die Anwendung des Master-Theorems sieht wie folgt aus:

Hierbei steht T(n) für die zu gesamte zu untersuchende Laufzeitfunktion, während a und b Konstanten sind, die sich aus der konkret zu untersuchenden Laufzeitfunktion ergeben. Ferner bezeichnet f(n) eine Laufzeitfunktion welche jedoch nicht von der zu untersuchenden Funktion T(n) abhängt. Damit das Master-Theorem angewendet werden kann, muss für die beiden Konstanten die Bedingung erfüllt sein, dass a ≥ 1 und b > 1.

Weiterhin braucht man für die Benutzung des Master-Theorems noch den Logarithmus von a zur Basis b , welchen man aus den beiden Größen a und b errechnen kann.

Erster Fall

Allgemein

Falls gilt:

für ein

dann folgt:

Beispiel

Wie man aus der Formel oben ablesen kann, gilt:

, , ,

Nun muss man überprüfen, ob gilt, dass

Setzt man nun die Werte von oben ein, so ergibt sich:

Wählt man nun = 1, so folgt:

Da diese Aussage wahr ist, trifft somit der erste Fall des Master-Theorems auf die gegebene Rekurrenzgleichung zu. Damit folgt nun:

Setzt man hier nun die Werte von oben ein, so ergibt sich:

Somit lag die gegebene Laufzeitfunktion T(n) in Θ(n³)

Zweiter Fall

Allgemein

Falls gilt:

dann folgt:

Beispiel

Wie man aus der Formel oben ablesen kann, gilt:

, , ,

Nun muss man überprüfen ob gilt, dass

Setzt man nun die Werte von oben ein, so ergibt sich:

Da diese Aussage wahr ist trifft somit der zweite Fall des Master-Theorems auf die gegebene Rekurrenzgleichung zu. Damit folgt nun:

Setzt man auch hier wieder die Werte ein, so erhält man:

Somit lag die gegebene Laufzeitfunktion T(n) in Θ(nlog(n))

Dritter Fall

Allgemein

Falls gilt:

für ein

und falls ebenfalls gilt:

für ein und genügend große n

dann folgt:

Beispiel

Wie man aus der Formel oben ablesen kann, gilt:

, , ,

Nun muss man überprüfen ob gilt, dass

Setzt man nun die Werte von oben ein, und wählt = 1, so folgt:

Da diese Aussage wahr ist muss nun noch die zweite Bedingung überprüft werden, nämlich ob gilt, dass

Setzt man auch hier wieder die Werte von oben ein, so ergibt sich:

Wählt man nun , so gilt:

Somit gilt

Setzt man auch hier wieder die Werte ein, so erhält man:

Somit lag die gegebene Laufzeitfunktion T(n) in Θ(n²) was dem f(n) der Ausgangsformel entspricht.