Hilfsmittel Mathematik 2 WS13-14
Aus ProgrammingWiki

Andre Krause s3ankrau@stud.hszg.de Roman Stange s3rostan@stud.hszg.de
Inhaltsverzeichnis |
O-Notation
Beispiel:
Wenn zwei Funktionen gegeben sind vom Bereich natürliche Zahlen in positiv reelle Zahlen: , dann ist
in der Komplexitätsklasse von
, per Definition genau dann, wenn es ein
und eine Konstante
mit der Eigenschaft
für alle
.
Mit der obigen Definition wird also verlangt, dass langfristig unter
liegt. Ab der Stelle
dominiert
, da alle
, die noch folgen unterhalb von
sind. Dabei spielt es auch keine Rolle, ob
mit anderen Anstiegen bestückt wird, ebenso wenig würde ein Koeffizient vor
der quadratischen Funktion die Sachlage verändern. Man kann also sagen, dass
höchstens von der Komplexität
ist - linear wird dominiert vom quadratischen.
Einordnung der Laufzeitfunktionen | |||
---|---|---|---|
Notation | Bedeutung | Anschauliche Erklärung | Beispiele für Laufzeiten |
Nachschlagen des | |||
Binäre Suche im sortierten Feld mit | |||
naiver Primzahltest mittels Teilen durch jede ganze Zahl | |||
Suche im unsortierten Feld mit | |||
Fortgeschrittenere Algorithmen zum Sortieren von Mergesort, Heapsort | |||
Einfache Algorithmen zum Sortieren von Selectionsort | |||
Erfüllbarkeitsproblem der Aussagenlogik (SAT) mittels exhaustivem Verfahren | |||
TSP (mit Enumerationsansatz), alle Permutationen |
weitere nützliche asymptotische Ordnungen
Mit der -Notation kann man auf einfache Art ausdrücken, dass eine Funktion
höchstens so schnell wächst, wie eine andere Funktion
. Es gibt noch weitere Notationen, um das Wachstum von Funktionen zu vergleichen:
weitere | |||
---|---|---|---|
Groß-Omega: Da die -Notation eine untere Schranke (reeles Vielfaches von
) für das Wachstum einer Funktion beschreibt, wird sie oft benutzt, um eine untere Schranke aller Algorithmen zur Lösung eines Problems anzugeben und damit die Komplexität des Problems zu charakterisieren.
Exakte Ordnung(Groß-Theta): Im Idealfall kann man eine asymptotische Beschränkung nach oben und unten durch ein und dieselbe Funktion mit verschiedenen Faktoren angeben. Grafisch entsteht eine Art Band, in dem die Graphen sämtlicher Funktionern aus verlaufen.
Rekursionsgleichungen
Grafische Rekursionen wie der "Droste Effekt" sind bekannt. Dabei erkennt der Betrachter Bilder oder Inhalte, die sich selbst in einer kleineren Version wieder beinhalten. Auch anderen rekursiven Funktionen, die sich also selbst aufrufen und zu denen immer eine Abbruchbedingung gehört, begegnet man oft.
Im folgenden wird die Fakultätsfunktion, als ein Beispiel für Rekursivität genommen. Die Fakultätsfunktion berechnet das Produkt aller ganzer Zahlen kleiner gleich der Zahl selbst. Die Fakultät von liefert das Ergebnis
. Den Zeitaufwand
dafür beschreiben Rekusions-, bzw. rekurrente Gleichungen.
Rekursions- oder rekurrente Gleichungen
Die allgemeine Definition der Fakulttätsfunktion lautet wie folgt:
So könnte diese Funktion in Scheme abgebildet werden:
Die Rekursionsgleichung zur Fakultät:
, mit
Auch für rekursive Gleichungen möchte man natürlich den Aufwand (Schritte, Resourcen, etc.) abschätzen können. Für kleine Schrittfolgen mag die Analyse noch überschaubar sein, doch bei Größeren ist es nicht mehr so schnell ablesbar. Es stellt sich beim Lösen also die Herausforderung dar, den Ausdruck in
zu finden, der nicht von irgendeinem einsetzbaren Wert
abhängt. Dafür gibt es mehrere Lösungsansätze, die nachfolgend beschrieben werden sollen.
allgemeine Form der Rekursionsgleichung:
Computeralgebrasysteme (CAS)
Im Laufe der Zeit entwickelten sich die Möglichkeiten der Eingabe, Verarbeitung und Ausgabe numerischer Werte von Taschenrechnern immer weiter. Mit der Einführung der Computeralgebrasysteme (CAS) wurde es möglich, auch mit Symbolen zu rechnen. Das Lösen beispielsweise von Gleichungssystemen oder Extremwertaufgaben, stellt die Besitzer dieser "Rechensklaven" nicht mehr vor große Herausforderungen. Zumeist bringen die CA-Systeme grafische Komponenten mit, die mathematische Objekte visualisieren können.
Merkmale eines modernen CAS | |||||
---|---|---|---|---|---|
Symbolisches Rechnen | Grafik | Programmierung | Bibliothek | Benutzeroberfläche | |
Termumformungen, Lösung von Gleichungen, Funktionen, Geometrie, Stochastik | 2D, 3D, Animationen, grafische Objekte | Datentypen (Variablen, Felder, Listen, Mengen), Prozeduren/Funktionen, Verzweigungen, Schleifen, Logik | Konstanten, vordefinierte Variablen, Befehle, Algorhitmen, erweiterbar mit fremden oder eigenen Anwendungen | Input-, Output-, Text- und Grafikumgebungen, Menü, Paletten (Buchstaben, Sonderzeichen, Befehle, Schablonen), Kontextmenüs und Hilfen |
Um kompetente Lösungen mit einem CAS zu erhalten, ist anzueignendes Wissen des jeweiligen Systems notwendig, wie die betreffende Mathematik darauf widergespiegelt ist. Prinzipiell sind das auf CAS-Seite Implementationen, die eine möglichst enge Verbindung zu entsprechenden mathematischen Begriffen und Methoden haben, jedoch nicht identisch sind. Aus diesem Grund muss man sich mit der Evaluaierung der mathematischen Ausdrücke erst einmal vertraut machen.
Lösungsverfahren für Rekursionsgleichungen basieren auf von Spezialisten getätigten Überlegungen (sog. z-Transformationen). Auf die dafür erforderlichen mathematischen Grundlagen, wird hier nicht eingegangen. Die Hinnahme der naiven Benutzung der im CAS eingebauten Symbolmanipulation, wird durch Ergebnisverifikation (mittels vollständiger Induktion) weitestgehend behoben.
Im folgenden Beispiel wird das Protokoll einer Maxima-Sitzung zur Lösung obiger Gleichung wiedergegeben. Das entscheidende Sprachelement ist solve_rec.
Das jeweilige CAS liefert nun das Ergebnis, was abgelesen wird und in die jeweilige Komplexitätsklasse eingeordnet werden kann:
Raten und Einsetzen
Intelligent guesswork heißt geschicktes Raten. Die explizite Bildungsvorschrift für eine Zahlenfolge herauszufinden, bedarf zunächst der Bildung einer Wertetabelle für . Dazu das nächste Beispiel:
![]()
![]()
wobeieine Zweierpotenz, also
,
![]()
Wertepaare | |
---|---|
Ein Blick auf die Ergebnisse in der Tabellenspalte für deuten auf exponentielles Wachstum hin. Die Summenausführung hilft nun beim Erraten der Lösung:
Um eine Funktion abzubilden, ist es notwendig mit
zu substituieren. Da man sich für die asymptotische Ordnung interessiert, ist dies für alle natürlichen
auch berechtigt. Das Ergebnis ist ables- und damit klassifizierbar:
Iterationsmethode
Iteration wird in der Mathematik angewendet, um sich einer exakten Lösung eines Rechenproblems schrittweise anzunähern. Dies geschieht durch die konsequente Wiederholung des Rechenverfahrens, bis die Lösung gefunden wurde bzw. sich bestmöglichst angenähert hat. Ein Beispiel ist die Approximation an eine Nullstelle einer stetigen Funktion. Auch auf Rekursionsgleichungen kann diese Methode angewendet werden, in dem die rekursive Vorschrift solange iteriert wird, bis ein rekursionsfreier Ausdruck in gegeben ist, auch Telescoping genannt. Der Vorgang ist beendet, sobald das Argument der Anfangsbedingung erreicht ist. Dies ist in der Regel 1 oder 0.
Auf folgende Rekursionsgleichung wird diese Methode nun angewendet.
![]()
, für
![]()
Die schrittweise Iteration sieht wie folgt aus:
Der Rekursionsgleichung kann entnommen werden, dass die Rekursionsfreiheit nur für gilt. Dies bedeutet, dass die Rekursion auch auf
enden muss.
Diese Gleichung kann nun nach umgestellt werden.
Die weiter oben aufgeführte Iterationsformel kann auch als Summe dargestellt werden.
Nun wird für der Term
eingesetzt.
Aufgrund der Rechenregel , ergibt sich folgende Gleichung.
Durch die Annahme, dass ist, kann man folgende Aufwandsfunktion ablesen:
Es handelt sich also bei dieser Rekursionsgleichung um einen linear wachsenden Aufwand.
Die Meistermethode
Mit der master method erhält man ein weiteres Werkzeug, die Laufzeitklasse einer rekurrenten Gleichung zu bestimmen. Die allgemeine Form für die Anwendung des Master-Theorems sieht wie folgt aus:
Hierbei steht , wie immer für die zu untersuchende Laufzeitfunktion, während
und
reelle Konstanten, mit der Bedingung das
und
sind. Weiterhin benötigt man für die Benutzung noch den Logarithmus von
zur Basis
,
. Warum? Weil man noch drei Muster als Zutaten dazu bekommt, welche die Funktion
mit
vergleichen. Die Wertbindungen für
erfolgen dabei durch einen Musterabgleich (Matching).
Mit anderen Worten heißt es nach Auslegung der so genannten Kochbuchmethode: „Eine schmackhafte Suppe ist es dann, wenn mindestens eine der Zutaten geschmacklich dazu passt. Ist dem nicht der Fall gießen Sie das ganze, unter kräftigen Rühren in den Ausguss.“
Muster der Meistermethode | ||
---|---|---|
Muster 1 | Muster 2 | Muster 3 |
Wenn | Wenn | Wenn |
Zeit für ein Beispiel:
Die Informationen, die aus der Formel gewonnen werden, lauten:
und
Muster 1 passt:
für ein
Eingesetzt ergibt das:
Wähle mit
Das Ergebnis ist die Laufzeitfunktion:
Übungen
1. CAS
Bestimmen Sie für folgende Rekursionsgleichung die asymptotische Ordnung mit Hilfe von Maxima:
![]()
![]()
, mit
![]()
Orientieren Sie sich dazu am Beispiel 3.2 (s.S. 47) aus dem Buch Algorithmen und Kompläxitäten beziehungsweise am Beispiel aus dem Abschnitt CAS.
Hinweis:
Befehlsübersicht | |||||
---|---|---|---|---|---|
Maple | Maxima | ||||
rsolve(%) | solve_rec(%) | ||||
simplify(%) | trigsimp(%) | ||||
evalf(%) | ev(%, numer) |
2. Meister Methode
Berechnen Sie für folgende Aufwandsfunktion, mithilfe des dritten Musters der Meistermethode, ob gilt:
3. Raten und Einsetzen
Rechnen Sie nach und formen Sie um. Werfen Sie untertützend dazu einen Blick auf obiges Thema Raten und Einsetzen.
Lösungen
1. CAS
2. Meistermethode
3. Raten und Einsetzen
Quellen:
- Christian Wagenknecht: Algorithmen und Komplexität, Fachbuchverlag Leipzig im Carl Hanser Verlag, München Wien 2003, S. 34-54 ISBN 3446223142
- Ralf Hartmut Gütting: Datenstrukturen und Algorithmen, B.G. Teuber, Stuttgart 1992, S. 11-17 ISBN 3446223142
Weblinks
- https://www120.uni-hohenheim.de/Downloads/Log_Papier/Logarithmische_Skalen.pdf
- http://rechneronline.de/funktionsgraphen/
- http://de.wikipedia.org/wiki/Master-Theorem