Spezialvorlesung Online-Algorithmen. Matthias Westermann Berthold Vöcking Christian Sohler

Größe: px
Ab Seite anzeigen:

Download "Spezialvorlesung Online-Algorithmen. Matthias Westermann Berthold Vöcking Christian Sohler"

Transkript

1 Spezialvorlesung Online-Algorithmen Matthias Westermann Berthold Vöcking Christian Sohler Sommersemester 2005

2 Inhaltsverzeichnis 1 Einleitung Grundbegriffe Amortisierte Analyse Grundlagen der Wahrscheinlichkeitsrechnung List-Accessing Der Algorithmus Move-To-Front Deterministische untere Schranke Selbstanpassende Suchbäume Operationen auf Splay-Bäume Analyse der SPLAY-Operation Statische Optimalität von Splay-Bäumen Paging Ein optimaler Offline-Algorithmus Deterministische Algorithmen Nicht-kompetitive Algorithmen Marking-Algorithmen Deterministische untere Schranke Unterschiedliche Speichergrößen Randomisierte Algorithmen Randomisierter Marking-Algorithmus Randomisierte untere Schranke Datenmanagement in Netzwerken Definition des File-Allocation-Problems (FAP) FAP auf Bäumen Deterministische untere Schranke für FAP FAP auf allgemeinen Graphen Deterministische Approximation von Metriken Probabilistische Approximation von Metriken Randomisierter Online-Algorithmus

3 6 Lastbalancierung Identische Maschinen Eingeschränkte Maschinen Verwandte Maschinen

4 Kapitel 1 Einleitung Die klassische Entwicklung und Analyse von Algorithmen geht davon aus, dass die zur Lösung eines Problems benötigten Daten zu Beginn der Berechnungen vollständig vorliegen. In vielen Anwendungen ist diese Annahme jedoch unrealistisch. Algorithmische Probleme, die in der Praxis auftreten, sind oftmals online, d.h. relevante Daten treffen erst nach und nach im Laufe der Zeit ein. Ein Online-Algorithmus muss Ausgaben berechnen, ohne zukünftige Eingaben zu kennen. Das folgende Ski-Rental Problem wirkt etwas künstlich, jedoch zeigt es, dass wir häufig Entscheidungen treffen müssen, deren Qualität durch das Auftreten oder Ausbleiben zukünftiger Ereignisse beeinflusst wird. Angenommen Du willst zum ersten Mal in Deinem Leben Ski fahren gehen. Lohnt es sich für Dich, eine komplette Ski Ausrüstung zu kaufen, oder solltest Du sie Dir zunächst einmal ausleihen? Eine komplette Ski Ausrüstung kostet eine Menge Geld, aber wenn Du häufig fährst, dann ist sie die günstigste Lösung. Wenn sich aber nun herausstellt, dass Dir Ski fahren keinen Spass macht, Du Dich verletzt oder Du aus anderen Gründen nicht mehr Ski fahren möchtest oder kannst? Dann wäre es sicherlich besser, die Ski nicht gekauft zu haben. Leider weiß man beim Ski fahren nicht vorher, ob es einem gefällt oder nicht. Deshalb muss man die Entscheidung, Ski zu kaufen, unabhängig vom Wissen über die Zukunft treffen. Wir wollen nun das Ski-Rental Problem formalisieren: Nehmen wir einmal an, dass eine Ski Ausrüstung 800 Euro kostet und das Leihen der Ski kostet 50 Euro/Tag. Außerdem nehmen wir zur Vereinfachung an, dass Ski ewig halten. Wir wollen nun versuchen eine gute Strategie zu finden. Dazu müssen wir uns erst einmal überlegen, was eine gute Strategie auszeichnet. Eine Strategie ist dann gut, wenn sie sicherstellt, dass wir auch ohne die Zukunft zu kennen nie viel mehr ausgeben, als nötig ist. Das bedeutet, dass wir sicher nicht sofort Ski kaufen, denn wenn wir nur einmal Ski fahren gehen, hätten wir 800 Euro ausgegeben, aber im schlechtesten Fall hätten wir nur 50 Euro benötigt. Das heißt, in diesem Fall hätten wir das 16-fache des benötigten ausgegeben. Andererseits macht es auch keinen Sinn immer wieder Ski auszuleihen, denn dann werden wir beliebig viel zahlen, wenn uns das Ski fahren gefällt. 3

5 Daher werden wir folgende Strategie verfolgen: Wir werden Ski ausleihen bis wir insgesamt 750 Euro Leihgebühr bezahlt haben oder wir aus irgendeinem Grunde nicht mehr Ski fahren wollen. Danach werden wir uns eine Ausrüstung zulegen. Wir werden nun zeigen, dass man mit dieser Strategie nie mehr als das (2 1/r)-fache des Bestmöglichen bezahlt, wobei r = 800/50 = 16 das Verhältnis zwischen den Kosten für den Kauf und das Leihen von Ski ist. Angenommen wir würden die Zukunft kennen und wüssten genau, dass wir k mal Ski fahren. Wenn k < r ist, dann ist die optimale Strategie, Ski zu leihen. Ansonsten ist die optimale Strategie, Ski sofort zu kaufen. Für k < r ist unsere Strategie optimal. Für k r werden wir mit unserer Strategie (2r 1) x = 1550 Euro ausgeben, wobei x = 50 die Kosten für das Leihen der Ski pro Tag bezeichnet. Im besten Fall hätten wir nur r x = 800 Euro ausgegeben. Also hätten wir das (2 1/r)-fache des Bestmöglichen bezahlt. Auch in der Informatik gibt es Probleme, bei denen wir Dinge entscheiden müssen, bevor die eigentlich relevanten Ereignisse passieren. Zum Beispiel will man in einem Cache möglichst gerade die Daten behalten, die in (naher) Zukunft angefragt werden. Aber man weiß natürlich nicht, welche Daten das sind. Ein anderes Beispiel ist die Frage, wie (d.h. über welche Wege) man in einem Netzwerk die Datenpakete verschickt, um eine gleichmäßige Auslastung des Netzwerkes zu gewährleisten. Auch hier weiß man nicht, wo in naher Zukunft Datenverkehr entsteht. 1.1 Grundbegriffe Bei Online-Problemen handelt es sich um eine spezielle Art von Optimierungsproblemen. Im Allgemeinen sagen wir, dass ein Optimierungsproblem (wir betrachten hier o.b.d.a. nur Minimierungsprobleme) aus einer Menge von Eingaben I und einer Kostenfunktion C besteht. Für jede Eingabe i I gibt es eine Menge von zulässigen Ausgaben (Lösungen) F(i). Mit jeder zulässigen Lösung o F(i) sind Kosten C(i, o) assoziiert, die die Kosten für Ausgabe o bei Eingabe i darstellen. Ein Algorithmus ALG berechnet nun bei Eingabe i I eine Lösung o F(i). Die Kosten von ALG sind dann ALG(i) = C(i, o). Ein optimaler Algorithmus OPT berechnet für jede Eingabe i I eine Lösung mit den geringsten Kosten OPT(i) = min o F(i) C(i,o). Bei Online-Algorithmen kommt nun noch ein weiterer Aspekt hinzu: Die Eingabe ist nicht vorab bekannt, sondern sie trifft erst nach und nach als Sequenz ein. Dem Online- Algorithmus wird also immer nur das nächste Element der Eingabesequenz präsentiert ohne dass er die zukünftigen Elemente kennt. Wir werden nun definieren, wie man die Güte eines Online-Algorithmus bewertet. Wir sagen, dass ein Online-Algorithmus ALG c-kompetitiv ist, wenn für jede Einga- 4

6 besequenz σ gilt ALG(σ) c OPT(σ) + α, wobei α eine Konstante ist, die unabhängig von σ ist. Wenn α = 0 ist, dann ist ALG streng c-kompetitiv. Die Kompetitiv-Ratio eines Online-Algorithmus ALG bezeichnet das Infimum über alle Werte c mit der Eigenschaft, dass ALG c-kompetitiv ist. Eine beliebte Art, Online-Algorithmen zu analysieren, ist, das Problem als Spiel zwischen dem Online-Algorithmus und einem Gegenspieler zu modellieren. Dabei kennt der Gegenspieler den Online-Algorithmus und darf die Eingabesequenz bestimmen. Sein Ziel ist es, das Verhältnis zwischen den Kosten des Online-Algorithmus und seinen Kosten zu maximieren. Das heißt, er wird eine Sequenz wählen, welche die Kompetitiv-Ratio erreicht. 1.2 Amortisierte Analyse Wir werden nun eine Analysetechnik anhand einiger Beispiele kennenlernen, die im Bereich Online-Algorithmen eine große Rolle spielt. Die so genannte amortisierte Analyse wurde ursprünglich zur Analyse von dynamischen Datenstrukturen eingeführt. Dabei geht man davon aus, dass jede Operation mit einer gewissen Menge Geld startet. Mit diesem Geld bezahlt man für das Ausführen von Operation und es ist möglich Geld, das man für eine Operation nicht verbraucht hat, für zukünftige, unter Umständen teurere, Operationen zu sparen. Man könnte auch sagen, dass man mit amortisierter Analyse die durchschnittlichen Kosten einer Worst-Case-Eingabe analysiert. Im Bereich Datenstrukturen wird die amortisierte Analyse benutzt, um die durchschnittlichen Kosten einer Sequenz σ 1,...,σ n von Anfragen mit Kosten c 1,...,c n zu analysieren. Dabei gilt: Worst-Case-Kosten von σ = max c i i Gesamtkosten von σ = i Amortisierte Kosten von σ = i Als amortisierte Kosten (von Operationen auf) der Datenstruktur bezeichnet man dann das Maximum der amortisierten Kosten von σ über alle Folgen σ. Amortisierte Analyse eines Binärzählers Wir werden nun amortisierte Analyse anhand des Beispiels eines k-bit Binärzählers kennenlernen. Zu Beginn ist ein solcher Zähler mit 0 initialisiert und es gibt nur eine Operation, nämlich das Erhöhen des Zählers um 1. Dies geschieht, indem man die Bits c i c i /n 5

7 von rechts nach links durchläuft und flippt, bis man ein Bit von 0 auf 1 geflippt hat. Die Anzahl der Bitwechsel gibt dabei die Kosten des Erhöhens an. Offensichtlich gilt, dass die Kosten für das Erhöhen des Zählers im Worst-Case k sind. Doch was sind die amortisierten Kosten für das Erhöhen des Zählers? Theorem 1.1 Die amortisierten Kosten für das Erhöhen eines Zählers sind O(1). Wir werden den obigen Satz nun aus drei verschiedenen Blickwinkeln beweisen. Aus der Sicht eines Ingenieurs, eines Bankers und eines Physikers. Sichtweise des Ingenieurs Die Idee hier ist, dass ganze Problem einfach durchzurechnen. Wir stellen fest, dass das rechteste Bit b 0 jedesmal geflippt wird. Das zweitrechteste Bit b 1 wird jedes zweite mal geflippt. Das Bit b i wird jedes 2 i -te mal geflippt. Für m Operationen ergeben sich amortisierten Kosten ĉ = logm i=0 m 2 i < 2. m Sichtweise des Bankers (Konto Methode) Bei jeder Operation werden zunächst ĉ Euro gezahlt. Von diesen ĉ Euro müssen zunächst die Kosten der Operation bezahlt werden. Eventuell übrig gebliebenes Geld kann auf ein Konto eingezahlt werden. Sind die Kosten für eine Operation größer als ĉ, so müssen diese mit Geld vom Konto bezahlt werden. Dann gilt folgende Beobachtung. Beobachtung 1.2 Hat ein System immer einen nicht negativen Kontostand, dann ist ĉ eine obere Schranke für die amortisierten Kosten des Systems. Um nun unser Beispiel des Binärzählers zu analysieren, setzen wir ĉ = 2. Wir werden für jedes Bit einen eigenen Kontostand einführen. Der Kontostand eines Bits ist 1, wenn der Wert des Bits 1 ist und 0 sonst. Nach der ersten Operation zeigt das kleinste Bit den Wert 1 und wir haben einen Euro für das flippen gezahlt und den übrigen Euro auf das Konto des kleinsten Bits gezahlt. Also stimmt unsere Behauptung. Nehmen wir an, unsere Behauptung stimmt für die ersten m Operationen. In Operation m + 1 werden nun die kleinsten j Bits des Zählers geflippt. Per Definition geschieht dies, wenn die kleinsten j 1 Bits den Wert 1 gezeigt haben. Wir zahlen das Flippen der j 1 Bits von den Konten dieser Bits und das Flippen des j-ten Bit von unseren 2 Euro für die Operation. Den übrigen Euro zahlen wir auf das Konto von Bit j ein. Da die letzten j 1 Bits auf 0 gestellt wurden, durften wir jeweils den Euro abheben. Einen Euro müssen wir einzahlen, weil das j-te Bit auf 1 gesetzt wird. Da wir diesen Euro eingezahlt haben, stimmt unsere Behauptung auch nach Operation m + 1 und ist damit per Induktion immer korrekt. 6

8 Sichtweise des Physikers (Potentialfunktion Methode) Hier wird überschüssige Energie als Potential des gesamten Systems gespeichert. Dieses Potential wird benutzt, um für Operationen zu bezahlen, die mehr Energie kosten als sie bringen. Das Potential zum Zeitpunkt i wird mit Φ i bezeichnet. Sei Damit gilt m ĉ = m i=1 ĉ m i=1 c i + Φ i Φ i 1 ĉ. (c i + Φ i Φ i 1 ) = m i=1 c i + Φ n Φ 0. Beobachtung 1.3 Wenn Φ m Φ 0 ist, dann ist ĉ eine obere Schranke für die amortisierten Kosten. Wir wenden nun die Potential Methode auf unser Binärzähler Problem an. Sei Φ i die Anzahl Bits, die zum Zeitpunkt i auf 1 gesetzt sind. Es gilt Φ m 0 = Φ 0. Wir betrachten die m-te Operation. Sei j 1 die Position des Bits, das auf 1 geflippt wird (und alle Bits an Positionen kleiner j werden auf 0 geflippt). Dann gilt Φ m Φ m 1 = 1 ( j 1) = 2 j. Also sind die amortisierten Kosten höchstens c m + Φ m Φ m 1 = j + (2 j) = Grundlagen der Wahrscheinlichkeitsrechnung Wahrscheinlichkeitsraum Ein diskreter Wahrscheinlichkeitsraum ist eine endliche Menge Ω = {ω 1,...,ω n } von Elementarereignissen ω i. Eine Wahrscheinlichkeitsverteilung gibt die Wahrscheinlichkeit Pr[ω i ] = p i an. Dabei muss gelten, dass die Summe der Wahrscheinlichkeiten über alle Elementarereignisse 1 ist, d.h. Pr[ω i ] = 1, ω i Ω und die Wahrscheinlichkeiten dürfen nicht negativ sein, also Pr[ω i ] 0. Beispiel 1.4 Sei Ω ˆ= Würfelergebnis zweier unterscheidbarer Würfel. Dann ist Ω = {(1,1),(1,2),(1,3,),(1,4),(1,5),(1,6),(2,1),(2,2),...,(2,6),...,(6,6)}. Da jeder Wurf gleichwahrscheinlich ist, gilt für jedes Elementarereignis a Ω, Pr[a] = 1/36. 7

9 Ereignis Eine Menge W Ω heißt Ereignis. Die Wahrscheinlichkeit eines Ereignisses W ist Pr[W] = Pr[ω]. ω W Beispiel 1.5 Im Beispiel zweier Würfel kann man das Ereignis W = Pasch definieren, also W = {(1,1),...,(6,6)}. Für diese Ereignis ergibt sich Zufallsvariable Eine Zufallsvariable ist eine Funktion Pr[W] = 6 1/36 = 1/6. X : Ω R. Offensichtlich bezeichnet der Begriff Zufallsvariable nicht einfach eine Variable im klassischen Sinne. Viel mehr ist der Wert X vom Ausgang eines Zufallsexperimentes abhängig und in diesem Sinne eine Variable. Beispiel 1.6 Im Beispiel Wurf zweier Würfel bezeichnet X((a,b)) = a + b die Zufallsvariable für die Summe der beiden Würfel. für Man schreibt auch abkürzend Pr[X < k] Pr[ω Ω X(ω) < k]. Analog benutzt man auch Pr[X = k] und Pr[X > k]. Erwartungwert Der Erwartungswert einer Zufallsvariable gibt den durchschnittlichen Wert an, den eine Zufallsvariable annimmt. Der Erwartungswert E[X] einer Zufallsvariable X ist definiert als E[X] = k X(Ω) k Pr[X = k]. Beispiel 1.7 Wir betrachten noch einmal das Werfen von zwei Würfeln und die Zufallsvariable X für die Summe der beiden Würfel. Wir bekommen: E[X] = 2 1/ / / /36 = 7. 8

10 Linearität des Erwartungswertes Die Linearität des Erwartungswertes ist eine der wichtigsten Eigenschaften, die wir bei der Analyse randomisierter Algorithmen ausnutzen. Seien X 1,...,X n Zufallsvariablen auf Ω. Dann gilt wobei E ( n [ n i=1x i ] = n i=1 X i )(ω) = i=1 E[X i ], n i=1 X i (ω) bezeichnet. Linearität des Erwartungswertes bedeutet also, dass der Erwartungswert einer zusammengesetzten Zufallsvariable bestimmt werden kann, indem man sie als Summe einfacherer Zufallsvariablen schreibt und für diese einfachen Zufallsvariablen ihren Erwartungswert bestimmt. Die Summe des Erwartungswertes der einfachen Zufallsvariablen ist dann der Erwartungswert der zusammengesetzten Zufallsvariable. 9

11 Kapitel 2 List-Accessing Als erstes werden wir uns mit dem List-Accessing-Problem beschäftigen. Dabei nehmen wir an, dass l Datensätze in einer verketteten Liste abgespeichert sind. Zu jedem Datensatz gibt es einen Schlüssel. Datensätze könnten z.b. Kundendaten sein und der Schlüssel ist der Kundenname. Zugegriffen wird auf die Datensätze wie folgt: Die Liste wird von vorne nach hinten durchgesehen, bis man auf den Datensatz trifft bzw. weiß, dass der Datensatz nicht in der Liste vorhanden ist. Wir nehmen an, dass wir für eine solche Operation x Schritte benötigen, wobei x die Position des Datensatzes in der Liste ist. Neue Datensätze können in die Liste eingefügt werden und Datensätze können auch gelöscht werden. Das Einfügen eines Datensatzes kostet l + 1 Zeitschritte, wobei l die Länge der Liste vor Einfügen des Datensatzes ist. Das Löschen des x-ten Datensatzes in der Liste kostet x Zeitschritte. Bisher haben wir eine Implementierung (durch verkettete Listen) des abstrakten Datentyps Wörterbuch beschrieben. Die Implementierung durch verkettete Listen ist sehr einfach und wird daher häufig für Wörterbücher moderater Größe genutzt. Aber wo ist nun ein Online-Problem versteckt? Nach einem Zugriff oder dem Einfügen bzw. Löschen eines Datensatzes in der Liste ist es erlaubt, die Liste neu zu organisieren. Wir messen die Kosten zur Reorganisation der Liste in Transpositionen (Vertauschungen benachbarter Elemente). Es gibt jedoch eine Sonderregel: Einen Datensatz, auf den gerade zugegriffen wurde, dürfen wir kostenlos näher zum Listenanfang verschieben. Die Idee ist hier, dass wir bei der Suche nach diesem Datensatz Zeiger zu den bisher besuchten Positionen aufrecht erhalten können. Alle anderen Transpositionen sind kostenpflichtig: Sie kosten einen Zeitschritt. Damit haben wir folgendes Online-Problem: Beim List-Accessing-Problem ist ein Online-Algorithmus gesucht, der die Liste nach jedem Zugriff geschickt reorganisiert, so dass die Gesamtzugriffszeit minimiert wird. In unserer Beschreibung haben wir ein dynamisches Problem beschrieben wir haben das Einfügen und Löschen von Datensätzen erlaubt. Eine andere Variante des 10

12 Problems ist das statische List-Accessing-Problem. Dabei sind nur Zugriffsoperationen erlaubt. 2.1 Der Algorithmus Move-To-Front Der deterministische Algorithmus Move-To-Front (MTF) ist sehr einfach: Nach jedem Zugriff auf einen Datensatz oder dem Einfügen eines Datensatzes bewegen wir diesen an die erste Position der Liste, ohne die relative Ordnung der anderen Elemente zu verändern. Wir werden nun zeigen, dass MTF eine Kompetitiv-Ratio von 2 erreicht. Theorem 2.1 MTF ist 2-kompetitiv. Beweis. Wir müssen zeigen, dass für jede beliebige Sequenz von Operationen σ = σ 1 σ n (Zugriff, Einfügen, Löschen) MTF höchstens doppelt so viele Zeitschritte benötigt wie ein optimaler Offline-Algorithmus OPT. Wir stehen nun vor einem Problem: Im Gegensatz zum Ski-Rental Problem kennen wir keine einfache Beschreibung einer optimalen Offline-Strategie. Wie können wir dann jedoch eine Aussage über die Kompetitiv-Ratio machen? Wir werden eine Potentialfunktion Φ i benutzen, die die Konfiguration von MTF und OPT beschreibt, nachdem Operation σ i bearbeitet worden ist. Der Wert von Φ i ist die Anzahl der Inversionen in der Liste von MTF bezüglich der Liste von OPT, dabei ist eine Inversion ein geordnetes Paar von Datensätzen x,y, wobei x vor y in der Liste von MTF steht, aber x nach y in der Liste von OPT steht. Wir bezeichnen mit c on i die Kosten von MTF für die i-te Operation und mit c off i die entsprechenden Kosten von OPT. Wir wollen zeigen, dass für die amortisierten Kosten von MTF für die i-te Operation gilt: a i = c on i + Φ i Φ i 1 2 c off i. Im Unterschied zu unseren bisherigen Beispielen können die amortisierten Kosten für die einzelnen Operationen verschieden sein. Wir wollen nun zeigen, dass die amortisierten Kosten für die i-te Operation höchstens (2s 1)+P F betragen. Dabei bezeichnet s die Suchkosten, P die Anzahl kostenpflichtiger Transpositionen und F die Anzahl kostenloser Transpositionen von OPT bei der Bearbeitung der i-ten Anfrage. Wir betrachten zunächst nur Zugriffsoperationen. Zuerst werden wir die Kosten analysieren, die MTF verursacht, und danach werden wir die Kosten analysieren, die OPT verursacht. Sei x der Datensatz, auf den zugegriffen werden soll. Sei j die Position von x in der Liste von OPT und k die Position in der Liste von MTF. Weiterhin sei v die Anzahl der Datensätze, die in der Liste von MTF vor x stehen, aber in der Liste von OPT hinter x stehen. Dann gibt es k 1 v Datensätze, die in beiden Listen vor x liegen. Außerdem gilt k 1 v j 1, da x an Position j in der Liste von OPT steht. Also gilt k v j. 11

13 Bewegt MTF nun x an die erste Position der Liste, so erzeugt er k 1 v neue Inversionen bezüglich der Liste von OPT. Desweiteren eliminiert diese Aktion auch v Inversionen bezüglich der Liste von OPT. Also ist der Beitrag zu den amortisierten Kosten k + (k 1 v) v = 2(k v) 1 2 j 1 = 2s 1. Die Suche von OPT beeinflusst die Potentialfunktion und damit die amortisierten Kosten nicht. Jede bezahlte Transposition von OPT erhöht das Potenzial höchstens um 1, jede Transposition, die umsonst ist, verringert es um 1. Daraus folgt sofort, dass gilt a i (2s 1) + P F 2(s + P) = 2 c off i. Insgesamt ergibt sich für die Kosten von MTF MTF(σ) = n i=1 c on i = n i=1 a i + Φ 0 Φ n 2 n i=1 c off i = 2 OPT(σ), da Φ n 0 und Φ 0 = 0 ist (die Listen von MTF und OPT sind zu Beginn identisch). Um dasselbe Ergebnis für das Einfügen eines Datensatzes oder den Zugriff auf nicht vorhandene Datensätze zu zeigen, können wir die gleichen Argumente verwenden und müssen lediglich j = l + 1 setzen, wobei l die Länge der Listen bezeichnet. Der Fall, dass ein Datensatz gelöscht wird ist noch einfacher, da hier keine neuen Inversionen erzeugt werden und somit der Beitrag von MTF zu den amortisierten Kosten k v j = s 2s 1 ist. 2.2 Deterministische untere Schranke Wir werden nun eine untere Schranke für deterministische Online-Algorithmen bzgl. des List-Accessing-Problems zeigen. Dabei beschränken wir uns auf das statische Modell. Da das statische Modell ein Spezialfall des dynamischen Modells ist, gilt diese Schranke natürlich auch für den dynamischen Fall. Wir werden folgenden Satz beweisen. Theorem 2.2 Ein jeder deterministische Online-Algorithmus für das statische List- Accessing-Problem hat eine Kompetitiv-Ratio von mindestens 2 l+1 2, wobei l die Anzahl der Datensätze in der Liste bezeichnet. Beweis. Sei eine Liste der Länge l gegeben. Wir werden nun einen so genannten grausamen Gegenspieler einsetzen. Dieser Gegenspieler fragt immer den Datensatz an, der am Ende der Liste steht. Er maximiert also die Kosten des Online-Algorithmus. Nehmen wir einmal an, dass die Länge der Anfragesequenz n ist. Dann sind die Gesamtkosten des Online-Algorithmus l n. Wie können wir nun zeigen, dass es einen Offline-Algorithmus gibt, der diese Anfragesequenz besser bearbeiten kann. Dazu werden wir uns eine Menge von Offline- Algorithmen definieren und berechnen, wieviel Zeit diese im Durchschnitt brauchen, 12

14 um die Anfragesequenz zu bearbeiten. Danach benutzen wir, dass es mindestens einen Offline-Algorithmus geben muss, der genauso gut ist wie der Durchschnitt. Wir betrachten l! verschiedene Offline-Algorithmen. Jeder dieser Algorithmen entspricht einer der l! Permutationen der Liste. Genauer gesagt, ordnet ein solcher Offline-Algorithmus zu Beginn die Liste entsprechend dieser Permutation an und verändert die Ordnung der Liste danach nicht mehr. Das heißt, die Kosten für einen solchen Offline Algorithmus bestehen aus den Kosten für diese Umordnung plus den Kosten für das beantworten der Anfragen. Die Kosten für die Umordnung sind O(l 2 ) (Bubblesort), also eine Konstante, da l nicht von n abhängt. Nun berechnen wir die durchschnittlichen Zugriffskosten eines dieser l! Offline- Algorithmen. Dazu müssen wir die Gesamtkosten aller Algorithmen berechnen und durch l! teilen. Um die Gesamtkosten zu berechnen, machen wir folgende Beobachtung. Wenn wir einen Zugriff auf einen Datensatz x haben, dann kann x an jeder beliebigen Position der Liste stehen. Wenn wir nun festhalten, dass x an Position i steht, dann gibt es für die übrigen Position noch (l 1)! Möglichkeiten und die Kosten für die Anfrage von x sind i. Daher gilt, dass die Gesamtkosten für eine Anfrage von x genau l i=1 i (l 1)! = (l 1)! sind. Damit sind die Gesamtkosten für alle n Anfragen l (l + 1) 2 + 1)! n (l + l! O(l 2 ). 2 Es ergeben sich also Durchschnittkosten von 1 2 n(l + 1) + O(l2 ). Daher gibt es auch einen Offline-Algorithmus, der höchstens diese Kosten hat. Für n strebt das Verhältnis zwischen Online-Kosten und Offline-Kosten gegen 2l/(l + 1). 13

15 Kapitel 3 Selbstanpassende Suchbäume Im vorherigen Kapitel haben wir die einfache Datenstruktur verkettete Liste für ein Wörterbuch kennengelernt. Solch eine verkettete Liste ist jedoch keine effiziente Implementierung eines Wörterbuchs. Daher betrachten wir nun Suchbäume. Für Suchbäumen ist leider eine (nichttriviale) Kompetitive-Analyse noch nicht bekannt. Allerdings werden wir in einem etwas vereinfachten Modell ein erstaunliches Ergebnis zeigen: Es gibt Suchbäume, die bei einer beliebigen Anfragesequenz σ asymptotisch genausogut sind wie ein optimalen statischer Suchbaum für σ. Eine Klasse von Suchbäumen mit dieser Eigenschaft sind die so genannten Splay- Bäume. Diese benutzen die SPLAY-Operation mit deren Hilfe ein Element des Suchbaumes an die Wurzel rotiert wird. Dabei sorgen die Rotationen dafür, dass der Suchbaum auf lange Sicht balanciert wird. y x x C A y A B B C Abbildung 3.1: Beispiel für eine Rotation Die Kosten einer Operation entspricht der Anzahl der Vergleiche, die notwendig sind, um das entsprechende Element im Suchbaum zu finden, oder um festzustellen, dass das entsprechende Element nicht im Suchbaum vorhanden ist. Die Kosten für die Reorganisation des Suchbaumes werden in der Anzahl der dafür notwendigen Rotationen gemessen. Es gibt jedoch eine Sonderregel: Ein Element, auf das gerade zugegriffen wurde, darf umsonst aufwärts rotiert werden. Die Idee dabei ist, dass bei der Suche nach dem entsprechenden Element Zeiger zu den bisher besuchten Positionen aufrecht erhalten werden können. 14

16 3.1 Operationen auf Splay-Bäume Folgende Operationen werden von Splay-Bäumen zur Verfügung gestellt. SPLAY(x): Dies ist die wichtigste Operation. Mit ihrer Hilfe werden alle anderen Operationen implementiert. Eine SPLAY-Operation holt das Element x mit Hilfe von Rotationen an die Wurzel des Suchbaumes. Ist das Element x nicht im Suchbaum vorhanden, so wird der Vorgänger oder Nachfolger von x an die Wurzel rotiert. ACCESS(x): Auf das Element x wird zugegriffen. Diese Operation wird durch SPLAY(x) und Ausgabe der Wurzel realisiert. INSERT(x): Beim Einfügen eines Elements wird zunächst eine SPLAY(x)- Operation durchgeführt. Diese rotiert den Vorgänger oder Nachfolger von x an die Wurzel. Ist nun die Wurzel r der Nachfolger von x, so wird x Wurzel des neuen Suchbaumes. Der linke Teilbaum von r wird zum linken Nachfolger von x und r wird rechter Nachfolger von x. Ist die Wurzel r der Vorgänger von x, so erfolgt das Einfügen analog. DELETE(x): Um ein Element x aus dem Splay-Baum zu löschen wird dieses zunächst mit der SPLAY(x)-Operation an die Wurzel geholt. Dann wird es gelöscht und die beiden dabei entstehenden Bäume werden mit Hilfe von der JOIN-Operation wieder zusammengefügt. JOIN(T 1,T 2 ): Die JOIN Operation vereinigt zwei Bäume T 1 und T 2 unter der Voraussetzung, dass die Elemente in T 1 alle kleiner sind als die Elemente in T 2. Bei einem JOIN wird zunächst ein SPLAY( ) in Baum T 1 durchgeführt. Damit wird das größte Element aus Baum T 1 an die Wurzel rotiert und der rechte Teilbaum unter der Wurzel ist leer. Dort wird nun Baum T 2 angehängt. SPLIT(x): Auch bei der SPLIT Operation wird zunächst ein SPLAY(x) durchgeführt. Danach sind alle Elemente im linken Unterbaum der Wurzel kleiner als x und alle Elemente im rechten Unterbaum größer. Je nachdem, ob die Wurzel kleiner (oder gleich) oder größer als x ist, bleibt sie Wurzel des linken bzw. rechten Teilbaums. Wir können also jede Operation mit Hilfe zweier SPLAY-Operationen und eines konstanten Zusatzaufwandes durchführen. Daher interessiert uns im folgenden in erster Linie die SPLAY-Operation. Bei einer SPLAY(x)-Operation wird zunächst das Element x im Baum gesucht. Ist das Element x nicht im Baum vorhanden, so wird der Vorgänger oder Nachfolger von x mit x identifiziert. Dann wird x mit Hilfe von Rotationen an die Wurzel des Baumes bewegt. Dabei unterscheiden wir je nach Baumstruktur zwischen drei Fällen, die jeweils auch gespiegelt auftreten können. 15

17 1. Ist x ein Kind der Wurzel des Suchbaumes, so wird es mit Hilfe einer Rotation höher bewegt. y x x C A y A B B C Abbildung 3.2: Fall 1 2. Ist x auf dem linken Grat des Suchbaumes, so wird es mit Hilfe zweier Rotationen (erst um z, dann um y) höher bewegt. z x x y C D A B y z A B C D Abbildung 3.3: Fall 2 3. Ansonsten kann noch folgender Fall auftreten. x wird mit Hilfe zweier Rotationen (erst um y, dann um z) höher bewegt. A B z x C y D z A B C D x y Abbildung 3.4: Fall Analyse der SPLAY-Operation Wir wollen nun die amortisierten Kosten von SPLAY(x) analysieren. Dazu führen wir eine Potentialfunktion Φ ein, die uns das Potential eines Splay-Baumes T angibt. Wir nehmen an, dass jeder Knoten x ein positives Gewicht w(x) besitzt (zunächst setzen wir w(x) = 1; später werden wir jedoch auch andere Gewichte betrachten). Dann können 16

18 wir das Gewicht eines Teilbaumes definieren, wobei wir einen Teilbaum mit seiner Wurzel identifizieren: W(x) = Der Rang r(x) von x ist dann w(y). Knoten y im Teilbaum von x r(x) = log 2 W(x). Letztendlich könne wir dann das Potential eines Splay-Baumes T definieren: Φ(T ) = r(x). Knoten x in T Betrachten wir nun eine Sequenz σ = σ 1 σ m von Operationen. Die amortisierten Kosten a i von Operation σ i sind die tatsächlichen Kosten c i von σ i plus die Potentilaveränderung, die durch σ i verursacht worden ist. Im vorherigen Kapitel haben wir schon gesehen, dass dann die tatsächlichen Kosten der Sequenz σ höchstens die amortisierten Kosten von σ plus das Anfangspotential der Datenstruktur sind, d.h.: m i=1 c i m i=1 a i + Φ(T ), wobei T der initiale Suchbaum ist. Als erstes wollen wir nun die amortisierten Kosten einer SPLAY-Operation analysieren. Lemma 3.1 Die amortisierten Kosten von SPLAY(x) betragen höchstens 1 + 3(r(t) r(x)), wobei t die Wurzel des Baumes vor der Operation ist. Beweis. Wir teilen die SPLAY-Operation in eine Sequenz von Schritten auf. Dabei ist jeder Schritt gerade einer der drei oben beschriebenen Fälle, die bei einer SPLAY- Operation auftreten können. Wir betrachten nun per Fallunterscheidung die amortisierten Kosten eines Schrittes. Dabei bezeichnet r(y) den Rang von einem Knoten y vor dem Schritt und r (y) den Rang von y nach dem Schritt. y x x C A y A B B C Abbildung 3.5: Fall 1 Behauptung 3.2 Im Fall 1 betragen die amortisierten Kosten höchstens 1 + 3(r (x) r(x)). 17

19 Beweis. Weil eine Rotation benötigt wird, betragen die amortisierten Kosten 1 + r (x) + r (y) r(x) r(y) = 1 + r (y) r(x), da r (x) = r(y) ist. Weil r (y) r (x) ist, folgt 1 + r (y) r(x) 1 + r (x) r(x). Da r (x) r(x) ist, folgt dann 1 + r (x) r(x) 1 + 3(r (x) r(x)). z x x y C D A B y z A B C D Abbildung 3.6: Fall 2 Behauptung 3.3 Im Fall 2 betragen die amortisierten Kosten höchstens 3(r (x) r(x)). Beweis. Weil zwei Rotationen benötigt werden, betragen die amortisierten Kosten 2 + r (x) + r (y) + r (z) r(x) r(y) r(z) = 2 + r (y) + r (z) r(x) r(y), da r (x) = r(z) ist. Weil r (x) r (y) und r(x) r(y) ist, folgt 2 + r (y) + r (z) r(x) r(y) 2 + r (x) + r (z) 2r(x). Wir zeigen nun, dass ist. Damit folgt dann, dass gilt r (z) + r(x) 2r (x) r (x) + r (z) 2r(x) 3(r (x) r(x)). Wir setzen nun r (z) = log 2 W (z) und r (x) = log 2 W (x) ein und erhalten r (z) + r(x) 2r (x) = log 2 W (z) + log 2 W(x) 2log 2 W (x) ( W ) ( ) (z) W(x) = log 2 W + log (x) 2 W. (x) Es gilt ( W ) ( ) (z) W(x) log 2 W + log (x) 2 W 2, (x) da links ein Term der Form loga + logb steht, mit 0 a,b 1 und a + b 1, da W (z) + W(x) W (x) ist, und dieser Term loga + logb nimmt sein Maximum für a = b = 1/2 an. 18

20 A B z x C y D z A B C D x y Abbildung 3.7: Fall 3 Behauptung 3.4 Im Fall 3 betragen die amortisierten Kosten höchstens 3(r (x) r(x)). Beweis. Weil zwei Rotationen benötigt werden, betragen die amortisierten Kosten 2 + r (x) + r (y) + r (z) r(x) r(y) r(z) 2 + r (y) + r (z) 2r(x), da r (x) = r(z) und r(x) r(y) ist. Wir zeigen nun, dass r (z) + r (y) 2r (x) 2 ist. Damit folgt dann, dass gilt 2 + r (y) + r (z) 2r(x) 2(r (x) r(x)) 3(r (x) r(x)), da r (x) r(x) ist. Wir setzen nun r (z) = log 2 W (z), r (y) = log 2 W (y) und r (x) = log 2 W (x) ein und erhalten Es gilt r (z) + r (y) 2r (x) = log 2 W (z) + log 2 W (y) 2log 2 W (x) ( W ) ( (z) W ) (y) = log 2 W + log (x) 2 W. (x) ( W ) ( (z) W ) (y) log 2 W + log (x) 2 W 2, (x) da links ein Term der Form loga + logb steht, mit 0 a,b 1 und a + b 1, da W (z) + W (y) W (x) ist, und dieser Term loga + logb nimmt sein Maximum für a = b = 1/2 an. Nun beobachten wir noch, dass Fall 1 bei einer SPLAY-Operation nur ein einziges mal auftritt. Dann folgt mit Hilfe der Teleskopsummenregel, dass die amortisierten einer SPLAY(x)-Operation höchstens 1 + 3(r(t) r(x)) betragen, wobei t die Wurzel des Baumes vor der Operation ist. Wir können nun folgenden Satz zeigen. 19

21 Theorem 3.5 Eine Sequenz σ = σ 1 σ m von Operationen wird auf einem Splay- Baum, der dabei maximal Größe n erreicht, in Zeit O((m + n)logn) abgearbeitet. Beweis. Sei T der Suchbaum vor der ersten Operation. Wir wissen, dass T höchstens n Knoten hat. Wir setzen für jeden Knoten x sein Gewicht w(x) = 1. Damit folgt, dass Φ(T ) = O(nlogn) ist. Nach Lemma 3.1 gilt, dass die amortisierten Kosten einer SPLAY-Operation höchstens O(1 + r(t)) = O(log n) betragen, wobei t die Wurzel des Baumes vor der Operation ist. Da die amortisierten Kosten plus Anfangspotential eine obere Schranke für die tatsächlichen Kosten sind, folgt der Satz. 3.3 Statische Optimalität von Splay-Bäumen Wir werden nun zeigen, dass Splay-Bäume asymptotisch so gut sind, wie ein beliebiger statischer Suchbaum (der Suchbaum wird während der Anfragen nicht verändert). Wir können also auch den statischen Suchbaum nehmen, der optimal für eine feste Folge von Anfragen ist, und dieser optimale statische Suchbaum wäre asymptotisch nicht besser als ein Splay-Baum. Theorem 3.6 Sei S eine Menge von n Elementen und σ eine Sequenz von Zugriffsoperationen auf Elemente aus S. Desweiteren sei T S ein beliebiger statischer Suchbaum für die Elemente aus S und l die Anzahl Vergleiche, die benötigt werden, um σ auf T S abzuarbeiten. Dann wird σ auf einem Splay-Baum in Zeit O(l + n 2 ) abgearbeitet. Beweis. Sei T ein beliebiger Splay-Baum für S und t die Wurzel von T. Sei d die Tiefe von T S und d(x) die Länge des Pfades von der Wurzel von T S zu x. Wir verwenden nun für jeden Knoten x aus T die Gewichtsfunktion w(x) = 3 d d(x). Wir zeigen zunächst folgende Behauptung. Behauptung 3.7 W(t) 3 d+1. Beweis. Man kann beobachten, dass das Gewicht der Wurzel t maximal für einen vollständigen Binärbaum B ist. Damit ergibt sich W(t) = x S w(x) = 3 d d(x) x S d i=0 2 i 3 d i = 3 d d i=0 ( ) 2 i 3 d /3 = 3d+1. 20

22 Aus Lemma 3.1 folgt dann, dass für die amortisierten Kosten von SPLAY(x) gilt ( ) W(t) 3 O(1 + r(t) r(x)) = O 1 + log 2 = O (1 d+1 ) + log W(x) 2 3 d d(x) = O(1 + d(x)). Für das Potential Φ(T ) gilt Φ(T ) = x S r(x) = x S log 2 W(x) x S log 2 3 d+1 = O(d) = O(n d) = O(n 2 ). x S Da die amortisierten Kosten plus Anfangspotential eine obere Schranke für die tatsächlichen Kosten sind, folgt der Satz. 21

23 Kapitel 4 Paging Beim Paging-Problem geht es darum, dass wir einen Rechner haben, der eine gewisse Menge an schnellem Speicher (z.b. Cache) zur Verfügung hat. Außerdem gibt es einen langsamen Sekundärspeicher (z.b. Hauptspeicher), der eine größere Speicherkapazität hat. Wir messen die Speicherkapazität in Seiten, und wir nehmen an, dass unser schneller Speicher Platz für k Seiten hat. Wenn nun eine Seite angefragt wird, so muss das System diese Seite im schnellen Speicher bereit stellen. Ist diese Seite nicht im schnellen Speicher vorhanden, dann tritt ein Seitenfehler auf, d.h. die Seite muss aus dem langsamen Speicher nachgeladen werden und gegebenenfalls muss eine andere Seite aus dem schnellen Speicher verdrängt werden. Ein Online-Algorithmus muss entscheiden, welche Seite verdrängt wird, ohne die zukünftigen Anfragen zu kennen. Das Ziel ist es, die Anzahl der Seitenfehler zu minimieren. 4.1 Ein optimaler Offline-Algorithmus Zunächst werden wir die Offline-Variante des Paging-Problems betrachten. Im Gegensatz zum List-Accessing-Problem werden wir hier einen einfachen optimalen Offline- Algorithmus kennenlernen. Longest-Forward-Distance (LFD): LFD verdrängt diejenige Seite, deren nächster Zugriff am weitesten in der Zukunft liegt. Theorem 4.1 LFD ist ein optimaler Offline-Algorithmus für das Paging-Problem. Beweis. Wir zeigen, dass jeder optimale Offline-Algorithmus OPT in LFD umgeformt werden kann, ohne dass zusätzliche Kosten auftreten. Die Umformung wird iterativ durchgeführt. Lemma 4.2 Sei ALG ein beliebiger Paging-Algorithmus und sei σ eine Anfragesequenz. Dann gibt es einen Offline-Algorithmus ALG i mit den folgenden Eigenschaften: 22

24 ALG i verhält sich bei den ersten i 1 Anfragen genauso wie ALG. ALG i verhält sich bei der i-ten Anfrage wie LFD. ALG i (σ) ALG(σ). Beweis. Für einen gegebenen Algorithmus ALG werden wir nun einen Algorithmus ALG i konstruieren. Für die ersten i Anfragen ist ALG i schon definiert. Wir nehmen an, dass ALG und ALG i nach der i-ten Anfrage die Seiten X {v} bzw. X {u} im schnellen Speicher haben, wobei X eine Menge von k 1 Seiten ist. Gilt nun u = v, so folgt das Lemma sofort. Wir nehmen daher an, dass u v ist. Solange bei den restliche Anfragen nicht die Seite v verlangt wird, verhält sich ALG i wie ALG, bis auf den Fall, dass ALG i die Seite u verdrängt, wenn ALG die Seite v verdrängt. Dies ist möglich, da die Anzahl der gemeinsamen Seiten immer mindestens k 1 ist. Wenn die Anzahl der gemeinsamen Seiten sogar k ist, d.h. ALG verdrängt die Seite v, dann ist von diesem Zeitpunkt an ALG i mit ALG identisch, und das Lemma folgt. Wird v angefragt, bevor ALG i mit ALG identisch ist, so hat ALG i einen Seitenfehler und ALG nicht. Da v aber entsprechend LFD verdrängt wurde, muss nach der i-ten Anfrage Seite u mindestens einmal angefragt worden sein. Die erste solche Anfrage verursacht einen Seitenfehler bei ALG aber keinen bei ALG i. Daher ist die Gesamtanzahl der Seitenfehler von ALG i höchstens so groß wie die von ALG. Um die Anfrage bzgl. v zu bedienen, verdrängt ALG i die Seite u, und damit ist von diesem Zeitpunkt an ALG i mit ALG identisch, und das Lemma folgt. Der Satz wird dann wie folgt bewiesen: Das obige Lemma wird auf einen optimalen Offline-Algorithmus OPT mit i = 1 angewandt, und man erhält OPT 1. Dann wir das obige Lemma auf OPT 1 mit i = 2 angewandt, und man erhält OPT 2. Dieses wird wiederholt, bis man einen optimalen Offline-Algorithmus erhält, der sich wie LFD verhält. 4.2 Deterministische Algorithmen Im folgenden werden deterministische Online-Algorithmen für das Paging-Problem vorgestellt und einige davon werden analysiert. Alle Strategien verdrängen natürlich nur dann eine Seite im schnellen Speicher, wenn eine Seite angefragt wird, die nicht im schnellen Speicher vorhanden ist. Least-Recently-Used (LRU): LRU verdrängt diejenige Seite, deren letzter Zugriff am längsten zurückliegt. Least-Frequently-Used (LFU): LFU verdrängt diejenige Seite, die am seltensten angefragt wurde, seit sie im schnellen Speicher ist. First-In-First-Out (FIFO): FIFO verdrängt diejenige Seite, die sich am längsten im schnellen Speicher befindet. 23

25 Last-In-First-Out (LIFO): LIFO verdrängt diejenige Seite, die als letztes in den schnellen Speicher geladen wurde Nicht-kompetitive Algorithmen Ein Online-Algorithmus wird als kompetitiv bezeichnet, falls er eine Kompetitive- Ratio hat, die nicht von der Länge der Eingabesequenz abhängt. Wir werden nun zeigen, dass LIFO und LFU nicht kompetitive sind. Theorem 4.3 LIFO ist nicht kompetitive. Beweis. Sei l eine positive ganze Zahl. Wir betrachten die Sequenz σ = p 1,..., p k,(p k+1, p k ) l. LIFO macht bei jeder Anfrage nach den ersten k Anfragen einen Seitenfehler. OPT hingegen behält einfach die Seiten p k und p k+1 im schnellen Speicher und macht gar keinen Seitenfehler mehr. Da man l beliebig groß machen kann, ist LIFO nicht kompetitive. Theorem 4.4 LFU ist nicht kompetitive. Beweis. Sei l eine positive ganze Zahl. Wir betrachten die Sequenz σ = p l 1,..., p l k 1,(p k, p k+1 ) l 1. LFU macht bei jeder Anfrage nach den ersten (k 1) l Anfragen einen Seitenfehler. OPT hingegen macht nur einen einzigen Seitenfehler. Da man l beliebig groß machen kann, ist LFU nicht kompetitive Marking-Algorithmen Sei σ eine Anfragesequenz. Wir teilen σ wie folgt in k-phasen auf: Phase 0 ist die leere Sequenz zu Beginn von σ. Phase i > 0 ist die maximale Sequenz, die direkt auf Phase i 1 folgt, und in der auf höchstens k verschiedenen Seiten zugegriffen wird. Wir erinnern uns, dass k die Größe des schnellen Speichers bezeichnet. Ein Marking-Algorithmus assoziieren mit jeder Seite im schnellen Speicher ein Bit, das angibt, ob die jeweilige Seite markiert oder unmarkiert ist. Zu Beginn einer k-phase werden alle Markierungen gelöscht. Während einer k-phase wird eine Seite markiert, wenn auf sie zugegriffen wird. Ein Marking-Algorithmus ist nun dadurch gekennzeichnet, dass er niemals markierte Seiten aus dem schnellen Speicher verdrängt. Theorem 4.5 Jeder Marking-Algorithmus ALG ist k-kompetitiv. 24

26 Beweis. Wir zeigen zunächst, dass ALG höchstens k Seitenfehler pro Phase macht. Dieses folgt sofort, da jede Seite nach ihrem ersten Zugriff markiert ist und somit nicht mehr aus dem schnellen Speicher entfernt wird. Also kann ALG höchstens einen Fehler pro unterschiedlicher Seite in einer Phase machen. Nun zeigen wir, dass OPT pro Phase (bis auf die letzte Phase) mindestens einen Seitenfehler macht. Sei q die erste Anfrage in Phase i. Wir betrachten die Sequenz, die mit der zweiten Anfrage von Phase i beginnt und bis einschließlich zur ersten Anfrage der Phase i+1 reicht. Zu Anfang dieser Sequenz hat OPT die Seite q und k 1 andere Seiten im schnellen Speicher. In dieser Sequenz gibt es Zugriffe auf k verschiedenen Seiten, die alle ungleich q sind. Also hat OPT mindestens einen Seitenfehler pro Phase (bis auf die letzte Phase). Also folgt ALG(σ) k (OPT(σ) + 1) = k OPT(σ) + k. Um nun zu zeigen, dass LRU k-kompetitive ist, beweisen wir, dass LRU ein Marking-Algorithmus ist. Theorem 4.6 LRU ist ein Marking-Algorithmus. Beweis. Annahme: LRU ist kein Marking-Algorithmus. Dann verdrängt LRU während einer Phase eine markierte Seite x. Wir betrachten den ersten Zugriff auf x in dieser Phase. Hier wird x markiert und x ist zu diesem Zeitpunkt natürlich die Seite, auf die als letztes zugegriffen wurde. Zum Zeitpunkt, wenn LRU x verdrängt, ist x die Seite, deren Zugriff am längsten zurück liegt. Damit wurden alle k Seiten im schnellen Speicher und die Seite, die den Seitenfehler verursacht, in einer Phase angefragt. Dieses sind aber k + 1 verschiedene Seiten, was ein Widerspruch ist. Also ist LRU ein Marking- Algorithmus. Korollar 4.7 LRU ist k-kompetitive Deterministische untere Schranke Die folgende untere Schranke zeigt, dass Marking-Algorithmen optimal sind. Theorem 4.8 Jeder deterministische Paging-Algorithmus ALG hat eine Kompetitive- Ratio von mindestens k. Beweis. Wir nehmen an, dass es k + 1 verschiedene Seiten gibt. Wir konstruieren eine Sequenz von Anfragen σ der Länge n für die gilt, ALG(σ) k OPT(σ). Wir benutzen nun wieder den grausamen Gegenspieler, wie bei der unteren Schranke für das List- Accessing-Problem. Die ersten k Anfragen gehen auf verschiedene Seiten. Danach fordert der grausame Gegenspieler immer genau die Seite an, die nicht im schnellen 25

27 Speicher von ALG ist. Bei einer Sequenz σ der Länge n hat ALG somit genau n Seitenfehler. Für den optimalen Offline-Algorithmus LFD hingegen gilt LFD(σ) n/k. Dieses sieht man wie folgt: Wir nehmen an, dass LFD bei einer Anfrage die Seite p verdrängt. Entsprechend der Definition von LFD und weil es nur k + 1 verschiedene Seiten gibt, müssen alle k Seiten im schnellen Speicher angefragt werden, bevor p wieder angefragt wird. Also macht LFD höchstens einen Seitenfehler alle k Anfragen. Damit gilt ALG(σ) = n = k n k k OPT(σ) Unterschiedliche Speichergrößen Um den Nachteil des Online-Algorithmus auszugleichen, erlaube wir, dass der Online- Algorithmus mehr Ressourcen benutzen darf als der Offline-Algorithmus. Beim Paging bedeutet das, dass der Online-Algorithmus einen schnellen Speicher der Größe k besitzt, während der Offline-Algorithmus mit einem schnellem Speicher der Größe h k auskommen muss. Wir haben das Modell also erweitert, denn das bisherige Modell ergibt sich aus dem Fall h = k. Wir werden nun unsere Ergebnisse bezüglich Marking-Algorithmen auf dieses Modell erweitern. Mit dem folgenden Theorem kann man folgern, dass ein Marking- Algorithmus mit doppelt so viel Speicher wie ein optimaler Offline-Algorithmus 2- kompetitive ist. Theorem 4.9 Sei ALG ein Marking-Algorithmus mit Cachegröße k und OPT ein optimaler Offline-Algorithmus mit Cachegröße h k. Dann ist ALG k h+1 k -kompetitive. Beweis. Der Beweis ist eine einfache Erweiterung des Beweises von Theorem 4.5. Sei σ eine Anfragesequenz. Wir betrachten wieder die Partitionierung von σ in k- Phasen. Aus dem Beweis von Theorem 4.5 wissen wir bereits, dass ALG höchstens k Seitenfehler pro Phase macht. Nun zeigen wir, dass OPT pro Phase (bis auf die letzte Phase) mindestens k h+1 Seitenfehler macht. Sei q die erste Anfrage in Phase i. Wir betrachten die Sequenz, die mit der zweiten Anfrage von Phase i beginnt und bis einschließlich zur ersten Anfrage der Phase i+1 reicht. Zu Anfang dieser Sequenz hat OPT die Seite q und h 1 andere Seiten im schnellen Speicher. In dieser Sequenz gibt es Zugriffe auf k verschiedenen Seiten, die alle ungleich q sind. Also hat OPT mindestens k (h 1) = k h + 1 Seitenfehler pro Phase (bis auf die letzte Phase). Also folgt ALG(σ) k ( ) OPT(σ) k h = k k h + 1 OPT(σ) + k. 26

28 4.3 Randomisierte Algorithmen Wie sieht die Kompetitiv-Ratio eines randomisierten Algorithmus aus? Wir werden hier den so genannten blinden Gegenspieler kennenlernen. Sei ALG ein randomisierter Online-Algorithmus. Der blinde Gegenspieler wählt in Kenntnis des Algorithmus (und seiner Wahrscheinlichkeitsverteilung) eine Eingabesequenz σ aus. Er sieht jedoch nicht den Ausgang der Zufallsexperimente (daher blinder Gegenspieler). Wir sagen, dass ALG c-kompetitive ist, wenn für jede Eingabesequenz σ gilt E[ALG(σ)] c OPT(σ) + α, wobei α eine Konstante ist, die nicht von σ abhängt. Genau wie im deterministischen Fall bezeichnet die Kompetitiv-Ratio eines randomisierten Online-Algorithmus ALG das Infimum über alle Werte c mit der Eigenschaft, dass ALG c-kompetitiv ist Randomisierter Marking-Algorithmus Der randomisierte Marking-Algorithmus Mark assoziieren mit jeder Seite im schnellen Speicher ein Bit, das angibt, ob die jeweilige Seite markiert oder unmarkiert ist. Zu Beginn einer k-phase werden alle Markierungen gelöscht. Während einer k-phase wird eine Seite markiert, wenn auf sie zugegriffen wird. Bei einem Seitenfehler verdrängt Mark eine uniform zufällig ausgewählte unmarkierte Seite aus dem schnellen Speicher. Mark ist nun dadurch gekennzeichnet, dass er niemals markierte Seiten aus dem schnellen Speicher verdrängt. Wir wollen nun zeigen, dass Mark 2H k -kompetitive ist, dabei bezeichnet H k die k-te harmonische Zahl, d.h. es ist H k = k 1 i=1 i. Für die k-te harmonische Zahl gilt Theorem 4.10 Mark ist 2H k -kompetitive. lnk H k lnk + 1. Beweis. Sei σ eine Anfragesequenz. Wir betrachten die Partitionierung von σ in k- Phasen. Eine Seite, die direkt zu Beginn einer Phase im schnellen Speicher vorhanden ist, wird als alt bezeichnet. Jede nicht alte Seite, die in einer Phase angefragt wird, wird als neu bezeichnet. Beachte, dass wiederholte Anfragen auf alte oder neue Seiten die Kosten von Mark nicht erhöhen, da jede Seite, die während einer Phase angefragt wird, bis zum Ende der Phase im schnellen Speicher gehalten wird. Sei m i die Anzahl neuer Seiten, die in Phase i angefragt werden. Innerhalb einer Phase ist es offensichtlich am schlechtesten für Mark, wenn zunächst alle neuen 27

29 Seiten angefragt werden. Die ersten m i Anfragen nach neuen Seiten verursachen m i Seitenfehler. Wir untersuchen nun die erwartete Anzahl von Seitenfehlern bezüglich der k m i Anfragen nach alten Seiten. Wir betrachten die erste Anfrage nach der j-ten alten Seite p in Phase i. Zu diesem Zeitpunkt sind noch k m i ( j 1) unmarkierte alte Seiten im schnellen Speicher und es gibt insgesamt noch k ( j 1) unmarkierte alte Seiten (von denen einige im langsamen Speicher sind). Bei einem Seitenfehler verdrängt Mark eine uniform zufällig ausgewählte unmarkierte Seite aus dem schnellen Speicher. Daher gilt, dass zum Zeitpunkt dieser Anfrage jede unmarkierte alte Seite mit derselben Wahrscheinlichkeit im schnellen Speicher vorhanden ist. Also gilt Pr[p ist im schnellen Speicher] = k m i ( j 1) k ( j 1). Dann folgt Pr[p ist nicht im schnellen Speicher] = 1 k m i ( j 1) k ( j 1) Damit gilt für die erwartete Anzahl von Seitenfehlern in Phase i k m i m i m i + j=1 k j + 1 = m i + m i (H k H mi ) = m i (H k H mi + 1) m i H k. = m i k j + 1. Wir müssen nun noch eine untere Schranke für die Kosten eines optimalen Offline- Algorithmus OPT finden. In den Phase i 1 und i zusammen werden mindestens k + m i verschiedene Seiten angefragt, d.h. OPT macht mindestens m i Seitenfehler. In der ersten Phase macht OPT mindestens m 1 Seitenfehler. Dann können wir i gerade m i und i ungerade m i als untere Schranke für die Kosten von OPT benutzen. Eine der beiden Summen ist mindestens 1 2 i m i. Also sind die Kosten von OPT mindestens 1 2 i m i. Da die erwarteten Kosten von Mark höchstens H k i m i sind, folgt der Satz sofort Randomisierte untere Schranke Die folgende untere Schranke zeigt, dass Mark asymptotisch optimal ist. Theorem 4.11 Jeder randomisierte Paging-Algorithmus ALG hat eine Kompetitive- Ratio von mindestens H k. Beweis. Wir nehmen an, dass es k + 1 verschiedene Seiten gibt. Wir konstruieren eine Anfragesequenz σ. Für jede Anfrage kann der blinde Gegenspieler die Wahrscheinlichkeit p j ausrechnen, dass die Seite j gerade nicht im schnellen Speicher von ALG vorhanden ist. 28

30 Die Anfragesequenz σ besteht aus einer beliebig hohen Anzahl von k-phasen. Der Gegenspieler benutzt zur Konstruktion einer solchen Phase einen Marking- Algorithmus. Im folgenden zeigen wir, wie eine Phase konstruiert wird, und wir zeigen, dass die erwarteten Kosten von ALG für so eine Phase mindestens H k betragen. Da ein optimaler Offline-Algorithmus so eine Phase mit Kosten eins abarbeiten kann, folgt damit dann das Theorem. Eine Phase besteht aus k Subphasen. Zu Beginn der i-ten Subphase sind genau k i + 1 unmarkierte Seiten im schnellen Speicher. Am Ende der k-ten Subphase sind dann alle Seiten markiert und eine neue Phase beginnt. Wir konstruieren die Subphasen 1 so, dass die erwarteten Kosten von ALG für die i-te Subphase k i+1 betragen. Damit betragen die erwarteten Kosten von ALG für eine Phase k i=1 1 k i + 1 = H k. Jede Subphase besteht aus null oder mehreren Anfragen nach markierten Seiten gefolgt von einer Anfrage nach einer unmarkierten Seite. Wir zeigen nun, wie eine Subphase konstruiert wird. Sei M die Menge der markierten Seiten zu Beginn der i- ten Subphase. Offensichtlich gilt M = i und die Anzahl der unmarkierten Seiten ist k + 1 i. Sei γ = j M p j. Falls γ = 0, dann gibt es mindestens eine unmarkierte Seite a mit p a 1/(k + 1 i). In diesem Fall fragt der Gegenspieler Seite a an und die Subphase endet. Falls γ > 0, dann gibt es eine Seite m M mit p m > 0. Sei ε = p m. Als erstes wird nun in dieser Unterphase die Seite m angefragt. Solange die erwarteten Kosten von ALG noch nicht 1/(k + 1 i) betragen und solange γ > ε ist, frage die Seite aus M an, die mit der größten Wahrscheinlichkeit nicht im schnellen Speicher von ALG ist. Wir stellen zunächst fest, dass die obige Schleife terminiert, da γ > ε ist, und somit jede Iteration mit γ/m > ε/m zu den erwarteten Kosten von ALG beiträgt. Wenn die Schleife terminiert, betragen entweder die erwartete Kosten von ALG mindestens 1/(k +1 j) oder es gilt γ ε. Im letzteren Fall fragt der Gegenspieler die unmarkierte Seite b an, die mit der größten Wahrscheinlichkeit nicht im schnellen Speicher von ALG ist. Offensichtlich gilt p b (1 γ)/(k + 1 i) und es folgt somit für die erwarteten Kosten von ALG ε + p b ε + 1 γ k + 1 i ε + 1 ε k + 1 i 1 k + 1 i. 29

Kompetitive Analysen von Online-Algorithmen

Kompetitive Analysen von Online-Algorithmen Kompetitive Analysen von Online-Algorithmen jonas echterhoff 16. Juli 004 1 Einführung 1.1 Terminologie Online-Algorithmen sind Algorithmen, die Probleme lösen sollen, bei denen Entscheidungen getroffen

Mehr

20. Algorithmus der Woche Online-Algorithmen: Was ist es wert, die Zukunft zu kennen? Das Ski-Problem

20. Algorithmus der Woche Online-Algorithmen: Was ist es wert, die Zukunft zu kennen? Das Ski-Problem 20. Algorithmus der Woche Online-Algorithmen: Was ist es wert, die Zukunft zu kennen? Das Ski-Problem Autor Susanne Albers, Universität Freiburg Swen Schmelzer, Universität Freiburg In diesem Jahr möchte

Mehr

4. Jeder Knoten hat höchstens zwei Kinder, ein linkes und ein rechtes.

4. Jeder Knoten hat höchstens zwei Kinder, ein linkes und ein rechtes. Binäre Bäume Definition: Ein binärer Baum T besteht aus einer Menge von Knoten, die durch eine Vater-Kind-Beziehung wie folgt strukturiert ist: 1. Es gibt genau einen hervorgehobenen Knoten r T, die Wurzel

Mehr

Methoden des Algorithmenentwurfs Kapitel 2.2: Randomisierte Online Algorithmen

Methoden des Algorithmenentwurfs Kapitel 2.2: Randomisierte Online Algorithmen Methoden des Algorithmenentwurfs Kapitel 2.2: Randomisierte Online Algorithmen Christian Scheideler SS 2009 16.07.2009 Kapitel 2 1 Übersicht Notation Paging Selbstorganisierende Suchstrukturen Finanzielle

Mehr

Beispiel 48. 4.3.2 Zusammengesetzte Zufallsvariablen

Beispiel 48. 4.3.2 Zusammengesetzte Zufallsvariablen 4.3.2 Zusammengesetzte Zufallsvariablen Beispiel 48 Ein Würfel werde zweimal geworfen. X bzw. Y bezeichne die Augenzahl im ersten bzw. zweiten Wurf. Sei Z := X + Y die Summe der gewürfelten Augenzahlen.

Mehr

1. Man schreibe die folgenden Aussagen jeweils in einen normalen Satz um. Zum Beispiel kann man die Aussage:

1. Man schreibe die folgenden Aussagen jeweils in einen normalen Satz um. Zum Beispiel kann man die Aussage: Zählen und Zahlbereiche Übungsblatt 1 1. Man schreibe die folgenden Aussagen jeweils in einen normalen Satz um. Zum Beispiel kann man die Aussage: Für alle m, n N gilt m + n = n + m. in den Satz umschreiben:

Mehr

Primzahlen und RSA-Verschlüsselung

Primzahlen und RSA-Verschlüsselung Primzahlen und RSA-Verschlüsselung Michael Fütterer und Jonathan Zachhuber 1 Einiges zu Primzahlen Ein paar Definitionen: Wir bezeichnen mit Z die Menge der positiven und negativen ganzen Zahlen, also

Mehr

1 topologisches Sortieren

1 topologisches Sortieren Wolfgang Hönig / Andreas Ecke WS 09/0 topologisches Sortieren. Überblick. Solange noch Knoten vorhanden: a) Suche Knoten v, zu dem keine Kante führt (Falls nicht vorhanden keine topologische Sortierung

Mehr

AVL-Bäume Analyse. Theorem Ein AVL-Baum der Höhe h besitzt zwischen F h und 2 h 1 viele Knoten. Definition Wir definieren die nte Fibonaccizahl:

AVL-Bäume Analyse. Theorem Ein AVL-Baum der Höhe h besitzt zwischen F h und 2 h 1 viele Knoten. Definition Wir definieren die nte Fibonaccizahl: AVL-Bäume Analyse (Folie 85, Seite 39 im Skript) Theorem Ein AVL-Baum der Höhe h besitzt zwischen F h und 2 h 1 viele Knoten. Definition Wir definieren die nte Fibonaccizahl: 0 falls n = 0 F n = 1 falls

Mehr

geben. Die Wahrscheinlichkeit von 100% ist hier demnach nur der Gehen wir einmal davon aus, dass die von uns angenommenen

geben. Die Wahrscheinlichkeit von 100% ist hier demnach nur der Gehen wir einmal davon aus, dass die von uns angenommenen geben. Die Wahrscheinlichkeit von 100% ist hier demnach nur der Vollständigkeit halber aufgeführt. Gehen wir einmal davon aus, dass die von uns angenommenen 70% im Beispiel exakt berechnet sind. Was würde

Mehr

Informationsblatt Induktionsbeweis

Informationsblatt Induktionsbeweis Sommer 015 Informationsblatt Induktionsbeweis 31. März 015 Motivation Die vollständige Induktion ist ein wichtiges Beweisverfahren in der Informatik. Sie wird häufig dazu gebraucht, um mathematische Formeln

Mehr

Skript zur Vorlesung. Online-Algorithmen. Prof. Dr. Heiko Röglin. Institut für Informatik

Skript zur Vorlesung. Online-Algorithmen. Prof. Dr. Heiko Röglin. Institut für Informatik Skript zur Vorlesung Online-Algorithmen Prof. Dr. Heiko Röglin Institut für Informatik 9. Juli 2015 Vorwort Dieses Skript ist als Begleitmaterial für die Vorlesung Online-Algorithmen an der Universität

Mehr

Kapitalerhöhung - Verbuchung

Kapitalerhöhung - Verbuchung Kapitalerhöhung - Verbuchung Beschreibung Eine Kapitalerhöhung ist eine Erhöhung des Aktienkapitals einer Aktiengesellschaft durch Emission von en Aktien. Es gibt unterschiedliche Formen von Kapitalerhöhung.

Mehr

Folge 19 - Bäume. 19.1 Binärbäume - Allgemeines. Grundlagen: Ulrich Helmich: Informatik 2 mit BlueJ - Ein Kurs für die Stufe 12

Folge 19 - Bäume. 19.1 Binärbäume - Allgemeines. Grundlagen: Ulrich Helmich: Informatik 2 mit BlueJ - Ein Kurs für die Stufe 12 Grundlagen: Folge 19 - Bäume 19.1 Binärbäume - Allgemeines Unter Bäumen versteht man in der Informatik Datenstrukturen, bei denen jedes Element mindestens zwei Nachfolger hat. Bereits in der Folge 17 haben

Mehr

Kapiteltests zum Leitprogramm Binäre Suchbäume

Kapiteltests zum Leitprogramm Binäre Suchbäume Kapiteltests zum Leitprogramm Binäre Suchbäume Björn Steffen Timur Erdag überarbeitet von Christina Class Binäre Suchbäume Kapiteltests für das ETH-Leitprogramm Adressaten und Institutionen Das Leitprogramm

Mehr

Anmerkungen zur Übergangsprüfung

Anmerkungen zur Übergangsprüfung DM11 Slide 1 Anmerkungen zur Übergangsprüfung Aufgabeneingrenzung Aufgaben des folgenden Typs werden wegen ihres Schwierigkeitsgrads oder wegen eines ungeeigneten fachlichen Schwerpunkts in der Übergangsprüfung

Mehr

Lineargleichungssysteme: Additions-/ Subtraktionsverfahren

Lineargleichungssysteme: Additions-/ Subtraktionsverfahren Lineargleichungssysteme: Additions-/ Subtraktionsverfahren W. Kippels 22. Februar 2014 Inhaltsverzeichnis 1 Einleitung 2 2 Lineargleichungssysteme zweiten Grades 2 3 Lineargleichungssysteme höheren als

Mehr

Zeichen bei Zahlen entschlüsseln

Zeichen bei Zahlen entschlüsseln Zeichen bei Zahlen entschlüsseln In diesem Kapitel... Verwendung des Zahlenstrahls Absolut richtige Bestimmung von absoluten Werten Operationen bei Zahlen mit Vorzeichen: Addieren, Subtrahieren, Multiplizieren

Mehr

Konzepte der Informatik

Konzepte der Informatik Konzepte der Informatik Vorkurs Informatik zum WS 2011/2012 26.09. - 30.09.2011 17.10. - 21.10.2011 Dr. Werner Struckmann / Christoph Peltz Stark angelehnt an Kapitel 1 aus "Abenteuer Informatik" von Jens

Mehr

Algorithmen und Datenstrukturen

Algorithmen und Datenstrukturen Algorithmen und Datenstrukturen 28. April 2014 Inhaltsverzeichnis 1 Online-Algorithmen 3 1.1 Grundbegriffe.............................. 4 1.1.1 Einführungs-Beispiel: Ski-Rental Problem.......... 5 1.2

Mehr

15 Optimales Kodieren

15 Optimales Kodieren 15 Optimales Kodieren Es soll ein optimaler Kodierer C(T ) entworfen werden, welcher eine Information (z.b. Text T ) mit möglichst geringer Bitanzahl eindeutig überträgt. Die Anforderungen an den optimalen

Mehr

WS 2009/10. Diskrete Strukturen

WS 2009/10. Diskrete Strukturen WS 2009/10 Diskrete Strukturen Prof. Dr. J. Esparza Lehrstuhl für Grundlagen der Softwarezuverlässigkeit und theoretische Informatik Fakultät für Informatik Technische Universität München http://www7.in.tum.de/um/courses/ds/ws0910

Mehr

Einführung. Vorlesungen zur Komplexitätstheorie: Reduktion und Vollständigkeit (3) Vorlesungen zur Komplexitätstheorie. K-Vollständigkeit (1/5)

Einführung. Vorlesungen zur Komplexitätstheorie: Reduktion und Vollständigkeit (3) Vorlesungen zur Komplexitätstheorie. K-Vollständigkeit (1/5) Einführung 3 Vorlesungen zur Komplexitätstheorie: Reduktion und Vollständigkeit (3) Univ.-Prof. Dr. Christoph Meinel Hasso-Plattner-Institut Universität Potsdam, Deutschland Hatten den Reduktionsbegriff

Mehr

Entscheidungsbäume. Definition Entscheidungsbaum. Frage: Gibt es einen Sortieralgorithmus mit o(n log n) Vergleichen?

Entscheidungsbäume. Definition Entscheidungsbaum. Frage: Gibt es einen Sortieralgorithmus mit o(n log n) Vergleichen? Entscheidungsbäume Frage: Gibt es einen Sortieralgorithmus mit o(n log n) Vergleichen? Definition Entscheidungsbaum Sei T ein Binärbaum und A = {a 1,..., a n } eine zu sortierenden Menge. T ist ein Entscheidungsbaum

Mehr

Professionelle Seminare im Bereich MS-Office

Professionelle Seminare im Bereich MS-Office Der Name BEREICH.VERSCHIEBEN() ist etwas unglücklich gewählt. Man kann mit der Funktion Bereiche zwar verschieben, man kann Bereiche aber auch verkleinern oder vergrößern. Besser wäre es, die Funktion

Mehr

Einführung in Online-Algorithmen

Einführung in Online-Algorithmen Einführung in Online-Algorithmen Skript zur Vorlesung Effiziente Algorithmen von Berthold Vöcking, RWTH Aachen 1. Juni 2007 Hilfreiche Literatur Borodin, El-Yaniv: Online Computation and Competitive Analysis,

Mehr

9.2. DER SATZ ÜBER IMPLIZITE FUNKTIONEN 83

9.2. DER SATZ ÜBER IMPLIZITE FUNKTIONEN 83 9.. DER SATZ ÜBER IMPLIZITE FUNKTIONEN 83 Die Grundfrage bei der Anwendung des Satzes über implizite Funktionen betrifft immer die folgende Situation: Wir haben eine Funktion f : V W und eine Stelle x

Mehr

Datenstrukturen & Algorithmen

Datenstrukturen & Algorithmen Datenstrukturen & Algorithmen Matthias Zwicker Universität Bern Frühling 2010 Übersicht Binäre Suchbäume Einführung und Begriffe Binäre Suchbäume 2 Binäre Suchbäume Datenstruktur für dynamische Mengen

Mehr

Austausch- bzw. Übergangsprozesse und Gleichgewichtsverteilungen

Austausch- bzw. Übergangsprozesse und Gleichgewichtsverteilungen Austausch- bzw. Übergangsrozesse und Gleichgewichtsverteilungen Wir betrachten ein System mit verschiedenen Zuständen, zwischen denen ein Austausch stattfinden kann. Etwa soziale Schichten in einer Gesellschaft:

Mehr

Binäre Bäume. 1. Allgemeines. 2. Funktionsweise. 2.1 Eintragen

Binäre Bäume. 1. Allgemeines. 2. Funktionsweise. 2.1 Eintragen Binäre Bäume 1. Allgemeines Binäre Bäume werden grundsätzlich verwendet, um Zahlen der Größe nach, oder Wörter dem Alphabet nach zu sortieren. Dem einfacheren Verständnis zu Liebe werde ich mich hier besonders

Mehr

Algorithmen & Datenstrukturen 1. Klausur

Algorithmen & Datenstrukturen 1. Klausur Algorithmen & Datenstrukturen 1. Klausur 7. Juli 2010 Name Matrikelnummer Aufgabe mögliche Punkte erreichte Punkte 1 35 2 30 3 30 4 15 5 40 6 30 Gesamt 180 1 Seite 2 von 14 Aufgabe 1) Programm Analyse

Mehr

50. Mathematik-Olympiade 2. Stufe (Regionalrunde) Klasse 11 13. 501322 Lösung 10 Punkte

50. Mathematik-Olympiade 2. Stufe (Regionalrunde) Klasse 11 13. 501322 Lösung 10 Punkte 50. Mathematik-Olympiade. Stufe (Regionalrunde) Klasse 3 Lösungen c 00 Aufgabenausschuss des Mathematik-Olympiaden e.v. www.mathematik-olympiaden.de. Alle Rechte vorbehalten. 503 Lösung 0 Punkte Es seien

Mehr

Codierungstheorie Rudolf Scharlau, SoSe 2006 9

Codierungstheorie Rudolf Scharlau, SoSe 2006 9 Codierungstheorie Rudolf Scharlau, SoSe 2006 9 2 Optimale Codes Optimalität bezieht sich auf eine gegebene Quelle, d.h. eine Wahrscheinlichkeitsverteilung auf den Symbolen s 1,..., s q des Quellalphabets

Mehr

7 Rechnen mit Polynomen

7 Rechnen mit Polynomen 7 Rechnen mit Polynomen Zu Polynomfunktionen Satz. Zwei Polynomfunktionen und f : R R, x a n x n + a n 1 x n 1 + a 1 x + a 0 g : R R, x b n x n + b n 1 x n 1 + b 1 x + b 0 sind genau dann gleich, wenn

Mehr

Leichte-Sprache-Bilder

Leichte-Sprache-Bilder Leichte-Sprache-Bilder Reinhild Kassing Information - So geht es 1. Bilder gucken 2. anmelden für Probe-Bilder 3. Bilder bestellen 4. Rechnung bezahlen 5. Bilder runterladen 6. neue Bilder vorschlagen

Mehr

Partitionieren in Vista und Windows 7/8

Partitionieren in Vista und Windows 7/8 Partitionieren in Vista und Windows 7/8 Windows Vista und Windows 7 können von Haus aus Festplatten partitionieren. Doch die Funktion ist etwas schwer zu entdecken, denn sie heißt "Volume verkleinern".

Mehr

Grundlagen der Theoretischen Informatik, SoSe 2008

Grundlagen der Theoretischen Informatik, SoSe 2008 1. Aufgabenblatt zur Vorlesung Grundlagen der Theoretischen Informatik, SoSe 2008 (Dr. Frank Hoffmann) Lösung von Manuel Jain und Benjamin Bortfeldt Aufgabe 2 Zustandsdiagramme (6 Punkte, wird korrigiert)

Mehr

Basis und Dimension. Als nächstes wollen wir die wichtigen Begriffe Erzeugendensystem und Basis eines Vektorraums definieren.

Basis und Dimension. Als nächstes wollen wir die wichtigen Begriffe Erzeugendensystem und Basis eines Vektorraums definieren. Basis und Dimension Als nächstes wollen wir die wichtigen Begriffe Erzeugendensystem und Basis eines Vektorraums definieren. Definition. Sei V ein K-Vektorraum und (v i ) i I eine Familie von Vektoren

Mehr

FAQ Spielvorbereitung Startspieler: Wer ist Startspieler?

FAQ Spielvorbereitung Startspieler: Wer ist Startspieler? FAQ Spielvorbereitung Startspieler: Wer ist Startspieler? In der gedruckten Version der Spielregeln steht: der Startspieler ist der Spieler, dessen Arena unmittelbar links neben dem Kaiser steht [im Uhrzeigersinn].

Mehr

1 Mathematische Grundlagen

1 Mathematische Grundlagen Mathematische Grundlagen - 1-1 Mathematische Grundlagen Der Begriff der Menge ist einer der grundlegenden Begriffe in der Mathematik. Mengen dienen dazu, Dinge oder Objekte zu einer Einheit zusammenzufassen.

Mehr

Einführung in die Algebra

Einführung in die Algebra Prof. Dr. H. Brenner Osnabrück SS 2009 Einführung in die Algebra Vorlesung 13 Einheiten Definition 13.1. Ein Element u in einem Ring R heißt Einheit, wenn es ein Element v R gibt mit uv = vu = 1. DasElementv

Mehr

Skript und Aufgabensammlung Terme und Gleichungen Mathefritz Verlag Jörg Christmann Nur zum Privaten Gebrauch! Alle Rechte vorbehalten!

Skript und Aufgabensammlung Terme und Gleichungen Mathefritz Verlag Jörg Christmann Nur zum Privaten Gebrauch! Alle Rechte vorbehalten! Mathefritz 5 Terme und Gleichungen Meine Mathe-Seite im Internet kostenlose Matheaufgaben, Skripte, Mathebücher Lernspiele, Lerntipps, Quiz und noch viel mehr http:// www.mathefritz.de Seite 1 Copyright

Mehr

3.1 Konstruktion von minimalen Spannbäumen Es gibt zwei Prinzipien für die Konstruktion von minimalen Spannbäumen (Tarjan): blaue Regel rote Regel

3.1 Konstruktion von minimalen Spannbäumen Es gibt zwei Prinzipien für die Konstruktion von minimalen Spannbäumen (Tarjan): blaue Regel rote Regel 3.1 Konstruktion von minimalen Spannbäumen Es gibt zwei Prinzipien für die Konstruktion von minimalen Spannbäumen (Tarjan): blaue Regel rote Regel EADS 3.1 Konstruktion von minimalen Spannbäumen 16/36

Mehr

Berechnung der Erhöhung der Durchschnittsprämien

Berechnung der Erhöhung der Durchschnittsprämien Wolfram Fischer Berechnung der Erhöhung der Durchschnittsprämien Oktober 2004 1 Zusammenfassung Zur Berechnung der Durchschnittsprämien wird das gesamte gemeldete Prämienvolumen Zusammenfassung durch die

Mehr

WS 2013/14. Diskrete Strukturen

WS 2013/14. Diskrete Strukturen WS 2013/14 Diskrete Strukturen Prof. Dr. J. Esparza Lehrstuhl für Grundlagen der Softwarezuverlässigkeit und theoretische Informatik Fakultät für Informatik Technische Universität München http://www7.in.tum.de/um/courses/ds/ws1314

Mehr

Das Persönliche Budget in verständlicher Sprache

Das Persönliche Budget in verständlicher Sprache Das Persönliche Budget in verständlicher Sprache Das Persönliche Budget mehr Selbstbestimmung, mehr Selbstständigkeit, mehr Selbstbewusstsein! Dieser Text soll den behinderten Menschen in Westfalen-Lippe,

Mehr

V 2 B, C, D Drinks. Möglicher Lösungsweg a) Gleichungssystem: 300x + 400 y = 520 300x + 500y = 597,5 2x3 Matrix: Energydrink 0,7 Mineralwasser 0,775,

V 2 B, C, D Drinks. Möglicher Lösungsweg a) Gleichungssystem: 300x + 400 y = 520 300x + 500y = 597,5 2x3 Matrix: Energydrink 0,7 Mineralwasser 0,775, Aufgabenpool für angewandte Mathematik / 1. Jahrgang V B, C, D Drinks Ein gastronomischer Betrieb kauft 300 Dosen Energydrinks (0,3 l) und 400 Liter Flaschen Mineralwasser und zahlt dafür 50, Euro. Einen

Mehr

Wie halte ich Ordnung auf meiner Festplatte?

Wie halte ich Ordnung auf meiner Festplatte? Wie halte ich Ordnung auf meiner Festplatte? Was hältst du von folgender Ordnung? Du hast zu Hause einen Schrank. Alles was dir im Wege ist, Zeitungen, Briefe, schmutzige Wäsche, Essensreste, Küchenabfälle,

Mehr

Würfelt man dabei je genau 10 - mal eine 1, 2, 3, 4, 5 und 6, so beträgt die Anzahl. der verschiedenen Reihenfolgen, in denen man dies tun kann, 60!.

Würfelt man dabei je genau 10 - mal eine 1, 2, 3, 4, 5 und 6, so beträgt die Anzahl. der verschiedenen Reihenfolgen, in denen man dies tun kann, 60!. 040304 Übung 9a Analysis, Abschnitt 4, Folie 8 Die Wahrscheinlichkeit, dass bei n - maliger Durchführung eines Zufallexperiments ein Ereignis A ( mit Wahrscheinlichkeit p p ( A ) ) für eine beliebige Anzahl

Mehr

Repetitionsaufgaben Wurzelgleichungen

Repetitionsaufgaben Wurzelgleichungen Repetitionsaufgaben Wurzelgleichungen Inhaltsverzeichnis A) Vorbemerkungen B) Lernziele C) Theorie mit Aufgaben D) Aufgaben mit Musterlösungen 4 A) Vorbemerkungen Bitte beachten Sie: Bei Wurzelgleichungen

Mehr

Unterrichtsmaterialien in digitaler und in gedruckter Form. Auszug aus: Übungsbuch für den Grundkurs mit Tipps und Lösungen: Analysis

Unterrichtsmaterialien in digitaler und in gedruckter Form. Auszug aus: Übungsbuch für den Grundkurs mit Tipps und Lösungen: Analysis Unterrichtsmaterialien in digitaler und in gedruckter Form Auszug aus: Übungsbuch für den Grundkurs mit Tipps und Lösungen: Analysis Das komplette Material finden Sie hier: Download bei School-Scout.de

Mehr

Wahrscheinlichkeitstheorie. Zapper und

Wahrscheinlichkeitstheorie. Zapper und Diskrete Wahrscheinlichkeitsräume Slide 1 Wahrscheinlichkeitstheorie die Wissenschaft der Zapper und Zocker Diskrete Wahrscheinlichkeitsräume Slide 2 Münzwürfe, Zufallsbits Elementarereignisse mit Wahrscheinlichkeiten

Mehr

Data Mining: Einige Grundlagen aus der Stochastik

Data Mining: Einige Grundlagen aus der Stochastik Data Mining: Einige Grundlagen aus der Stochastik Hagen Knaf Studiengang Angewandte Mathematik Hochschule RheinMain 21. Oktober 2015 Vorwort Das vorliegende Skript enthält eine Zusammenfassung verschiedener

Mehr

Beweisbar sichere Verschlüsselung

Beweisbar sichere Verschlüsselung Beweisbar sichere Verschlüsselung ITS-Wahlpflichtvorlesung Dr. Bodo Möller Ruhr-Universität Bochum Horst-Görtz-Institut für IT-Sicherheit Lehrstuhl für Kommunikationssicherheit bmoeller@crypto.rub.de 6

Mehr

Zahlenwinkel: Forscherkarte 1. alleine. Zahlenwinkel: Forschertipp 1

Zahlenwinkel: Forscherkarte 1. alleine. Zahlenwinkel: Forschertipp 1 Zahlenwinkel: Forscherkarte 1 alleine Tipp 1 Lege die Ziffern von 1 bis 9 so in den Zahlenwinkel, dass jeder Arm des Zahlenwinkels zusammengezählt das gleiche Ergebnis ergibt! Finde möglichst viele verschiedene

Mehr

Datensicherung. Beschreibung der Datensicherung

Datensicherung. Beschreibung der Datensicherung Datensicherung Mit dem Datensicherungsprogramm können Sie Ihre persönlichen Daten problemlos Sichern. Es ist möglich eine komplette Datensicherung durchzuführen, aber auch nur die neuen und geänderten

Mehr

Lernziele: Ausgleichstechniken für binäre Bäume verstehen und einsetzen können.

Lernziele: Ausgleichstechniken für binäre Bäume verstehen und einsetzen können. 6. Bäume Lernziele 6. Bäume Lernziele: Definition und Eigenschaften binärer Bäume kennen, Traversierungsalgorithmen für binäre Bäume implementieren können, die Bedeutung von Suchbäumen für die effiziente

Mehr

Anleitung über den Umgang mit Schildern

Anleitung über den Umgang mit Schildern Anleitung über den Umgang mit Schildern -Vorwort -Wo bekommt man Schilder? -Wo und wie speichert man die Schilder? -Wie füge ich die Schilder in meinen Track ein? -Welche Bauteile kann man noch für Schilder

Mehr

3. Zusammenhang. 22 Andreas Gathmann

3. Zusammenhang. 22 Andreas Gathmann 22 Andreas Gathmann 3. Zusammenhang Eine der anschaulichsten Eigenschaften eines topologischen Raumes ist wahrscheinlich, ob er zusammenhängend ist oder aus mehreren Teilen besteht. Wir wollen dieses Konzept

Mehr

Lineare Gleichungssysteme

Lineare Gleichungssysteme Lineare Gleichungssysteme 1 Zwei Gleichungen mit zwei Unbekannten Es kommt häufig vor, dass man nicht mit einer Variablen alleine auskommt, um ein Problem zu lösen. Das folgende Beispiel soll dies verdeutlichen

Mehr

Das RSA-Verschlüsselungsverfahren 1 Christian Vollmer

Das RSA-Verschlüsselungsverfahren 1 Christian Vollmer Das RSA-Verschlüsselungsverfahren 1 Christian Vollmer Allgemein: Das RSA-Verschlüsselungsverfahren ist ein häufig benutztes Verschlüsselungsverfahren, weil es sehr sicher ist. Es gehört zu der Klasse der

Mehr

4. Woche Decodierung; Maximale, Perfekte und Optimale Codes. 4. Woche: Decodierung; Maximale, Perfekte und Optimale Codes 69/ 140

4. Woche Decodierung; Maximale, Perfekte und Optimale Codes. 4. Woche: Decodierung; Maximale, Perfekte und Optimale Codes 69/ 140 4 Woche Decodierung; Maximale, Perfekte und Optimale Codes 4 Woche: Decodierung; Maximale, Perfekte und Optimale Codes 69/ 140 Szenario für fehlerkorrigierende Codes Definition (n, M)-Code Sei C {0, 1}

Mehr

Eine Logikschaltung zur Addition zweier Zahlen

Eine Logikschaltung zur Addition zweier Zahlen Eine Logikschaltung zur Addition zweier Zahlen Grundlegender Ansatz für die Umsetzung arithmetischer Operationen als elektronische Schaltung ist die Darstellung von Zahlen im Binärsystem. Eine Logikschaltung

Mehr

Erstellen von x-y-diagrammen in OpenOffice.calc

Erstellen von x-y-diagrammen in OpenOffice.calc Erstellen von x-y-diagrammen in OpenOffice.calc In dieser kleinen Anleitung geht es nur darum, aus einer bestehenden Tabelle ein x-y-diagramm zu erzeugen. D.h. es müssen in der Tabelle mindestens zwei

Mehr

Das große ElterngeldPlus 1x1. Alles über das ElterngeldPlus. Wer kann ElterngeldPlus beantragen? ElterngeldPlus verstehen ein paar einleitende Fakten

Das große ElterngeldPlus 1x1. Alles über das ElterngeldPlus. Wer kann ElterngeldPlus beantragen? ElterngeldPlus verstehen ein paar einleitende Fakten Das große x -4 Alles über das Wer kann beantragen? Generell kann jeder beantragen! Eltern (Mütter UND Väter), die schon während ihrer Elternzeit wieder in Teilzeit arbeiten möchten. Eltern, die während

Mehr

Eva Douma: Die Vorteile und Nachteile der Ökonomisierung in der Sozialen Arbeit

Eva Douma: Die Vorteile und Nachteile der Ökonomisierung in der Sozialen Arbeit Eva Douma: Die Vorteile und Nachteile der Ökonomisierung in der Sozialen Arbeit Frau Dr. Eva Douma ist Organisations-Beraterin in Frankfurt am Main Das ist eine Zusammen-Fassung des Vortrages: Busines

Mehr

ONLINE-AKADEMIE. "Diplomierter NLP Anwender für Schule und Unterricht" Ziele

ONLINE-AKADEMIE. Diplomierter NLP Anwender für Schule und Unterricht Ziele ONLINE-AKADEMIE Ziele Wenn man von Menschen hört, die etwas Großartiges in ihrem Leben geleistet haben, erfahren wir oft, dass diese ihr Ziel über Jahre verfolgt haben oder diesen Wunsch schon bereits

Mehr

Fachbericht zum Thema: Anforderungen an ein Datenbanksystem

Fachbericht zum Thema: Anforderungen an ein Datenbanksystem Fachbericht zum Thema: Anforderungen an ein Datenbanksystem von André Franken 1 Inhaltsverzeichnis 1 Inhaltsverzeichnis 1 2 Einführung 2 2.1 Gründe für den Einsatz von DB-Systemen 2 2.2 Definition: Datenbank

Mehr

Analysis I für Studierende der Ingenieurwissenschaften

Analysis I für Studierende der Ingenieurwissenschaften Fachbereich Mathematik der Universität Hamburg WiSe 2015/16 Prof. Dr. M. Hinze Dr. P. Kiani Analysis I für Studierende der Ingenieurwissenschaften Lösungshinweise zu Blatt 2 Aufgabe 1: (12 Punkte) a) Beweisen

Mehr

LU-Zerlegung. Zusätze zum Gelben Rechenbuch. Peter Furlan. Verlag Martina Furlan. Inhaltsverzeichnis. 1 Definitionen.

LU-Zerlegung. Zusätze zum Gelben Rechenbuch. Peter Furlan. Verlag Martina Furlan. Inhaltsverzeichnis. 1 Definitionen. Zusätze zum Gelben Rechenbuch LU-Zerlegung Peter Furlan Verlag Martina Furlan Inhaltsverzeichnis Definitionen 2 (Allgemeine) LU-Zerlegung 2 3 Vereinfachte LU-Zerlegung 3 4 Lösung eines linearen Gleichungssystems

Mehr

Nachhilfe-Kurs Mathematik Klasse 13 Freie Waldorfschule Mitte

Nachhilfe-Kurs Mathematik Klasse 13 Freie Waldorfschule Mitte Nachhilfe-Kurs Mathematik Klasse 3 Freie Waldorfschule Mitte März 8 Aufgaben zur analytischen Geometrie Musterlösung Gegeben sind die Ebenen E und E sowie die Punkte A und B: E : 4x + y + 3z = 3 E : x

Mehr

6.2 Scan-Konvertierung (Scan Conversion)

6.2 Scan-Konvertierung (Scan Conversion) 6.2 Scan-Konvertierung (Scan Conversion) Scan-Konvertierung ist die Rasterung von einfachen Objekten (Geraden, Kreisen, Kurven). Als Ausgabemedium dient meist der Bildschirm, der aus einem Pixelraster

Mehr

Algorithmische Methoden für schwere Optimierungsprobleme

Algorithmische Methoden für schwere Optimierungsprobleme Algorithmische Methoden für schwere Optimierungsprobleme Juniorprof. Dr. Henning Meyerhenke Institut für Theoretische Informatik 1 KIT Henning Universität desmeyerhenke, Landes Baden-Württemberg Institutund

Mehr

WS 2008/09. Diskrete Strukturen

WS 2008/09. Diskrete Strukturen WS 2008/09 Diskrete Strukturen Prof. Dr. J. Esparza Lehrstuhl für Grundlagen der Softwarezuverlässigkeit und theoretische Informatik Fakultät für Informatik Technische Universität München http://www7.in.tum.de/um/courses/ds/ws0809

Mehr

9 Auto. Rund um das Auto. Welche Wörter zum Thema Auto kennst du? Welches Wort passt? Lies die Definitionen und ordne zu.

9 Auto. Rund um das Auto. Welche Wörter zum Thema Auto kennst du? Welches Wort passt? Lies die Definitionen und ordne zu. 1 Rund um das Auto Welche Wörter zum Thema Auto kennst du? Welches Wort passt? Lies die Definitionen und ordne zu. 1. Zu diesem Fahrzeug sagt man auch Pkw oder Wagen. 2. kein neues Auto, aber viel billiger

Mehr

Wichtig ist die Originalsatzung. Nur was in der Originalsatzung steht, gilt. Denn nur die Originalsatzung wurde vom Gericht geprüft.

Wichtig ist die Originalsatzung. Nur was in der Originalsatzung steht, gilt. Denn nur die Originalsatzung wurde vom Gericht geprüft. Das ist ein Text in leichter Sprache. Hier finden Sie die wichtigsten Regeln für den Verein zur Förderung der Autonomie Behinderter e. V.. Das hier ist die Übersetzung der Originalsatzung. Es wurden nur

Mehr

Was meinen die Leute eigentlich mit: Grexit?

Was meinen die Leute eigentlich mit: Grexit? Was meinen die Leute eigentlich mit: Grexit? Grexit sind eigentlich 2 Wörter. 1. Griechenland 2. Exit Exit ist ein englisches Wort. Es bedeutet: Ausgang. Aber was haben diese 2 Sachen mit-einander zu tun?

Mehr

Grundbegriffe der Informatik

Grundbegriffe der Informatik Grundbegriffe der Informatik Einheit 15: Reguläre Ausdrücke und rechtslineare Grammatiken Thomas Worsch Universität Karlsruhe, Fakultät für Informatik Wintersemester 2008/2009 1/25 Was kann man mit endlichen

Mehr

Vorlesung Diskrete Strukturen Graphen: Wieviele Bäume?

Vorlesung Diskrete Strukturen Graphen: Wieviele Bäume? Vorlesung Diskrete Strukturen Graphen: Wieviele Bäume? Bernhard Ganter Institut für Algebra TU Dresden D-01062 Dresden bernhard.ganter@tu-dresden.de WS 2013/14 Isomorphie Zwei Graphen (V 1, E 1 ) und (V

Mehr

Lenstras Algorithmus für Faktorisierung

Lenstras Algorithmus für Faktorisierung Lenstras Algorithmus für Faktorisierung Bertil Nestorius 9 März 2010 1 Motivation Die schnelle Faktorisierung von Zahlen ist heutzutage ein sehr wichtigen Thema, zb gibt es in der Kryptographie viele weit

Mehr

Algorithmen und Datenstrukturen Balancierte Suchbäume

Algorithmen und Datenstrukturen Balancierte Suchbäume Algorithmen und Datenstrukturen Balancierte Suchbäume Matthias Teschner Graphische Datenverarbeitung Institut für Informatik Universität Freiburg SS 12 Überblick Einführung Einfügen und Löschen Einfügen

Mehr

Also kann nur A ist roter Südler und B ist grüner Nordler gelten.

Also kann nur A ist roter Südler und B ist grüner Nordler gelten. Aufgabe 1.1: (4 Punkte) Der Planet Og wird von zwei verschiedenen Rassen bewohnt - dem grünen und dem roten Volk. Desweiteren sind die Leute, die auf der nördlichen Halbkugel geboren wurden von denen auf

Mehr

Binärdarstellung von Fliesskommazahlen

Binärdarstellung von Fliesskommazahlen Binärdarstellung von Fliesskommazahlen 1. IEEE 754 Gleitkommazahl im Single-Format So sind in Gleitkommazahlen im IEEE 754-Standard aufgebaut: 31 30 24 23 0 S E E E E E E E E M M M M M M M M M M M M M

Mehr

Name:... Matrikel-Nr.:... 3 Aufgabe Handyklingeln in der Vorlesung (9 Punkte) Angenommen, ein Student führt ein Handy mit sich, das mit einer Wahrscheinlichkeit von p während einer Vorlesung zumindest

Mehr

Programmiertechnik II

Programmiertechnik II Bäume Symboltabellen Suche nach Werten (items), die unter einem Schlüssel (key) gefunden werden können Bankkonten: Schlüssel ist Kontonummer Flugreservierung: Schlüssel ist Flugnummer, Reservierungsnummer,...

Mehr

t r Lineare Codierung von Binärbbäumen (Wörter über dem Alphabet {, }) Beispiel code( ) = code(, t l, t r ) = code(t l ) code(t r )

t r Lineare Codierung von Binärbbäumen (Wörter über dem Alphabet {, }) Beispiel code( ) = code(, t l, t r ) = code(t l ) code(t r ) Definition B : Menge der binären Bäume, rekursiv definiert durch die Regeln: ist ein binärer Baum sind t l, t r binäre Bäume, so ist auch t =, t l, t r ein binärer Baum nur das, was durch die beiden vorigen

Mehr

Algorithmen und Datenstrukturen. Große Übung vom 29.10.09 Nils Schweer

Algorithmen und Datenstrukturen. Große Übung vom 29.10.09 Nils Schweer Algorithmen und Datenstrukturen Große Übung vom 29.10.09 Nils Schweer Diese Folien Braucht man nicht abzuschreiben Stehen im Netz unter www.ibr.cs.tu-bs.de/courses/ws0910/aud/index.html Kleine Übungen

Mehr

Wichtige Forderungen für ein Bundes-Teilhabe-Gesetz

Wichtige Forderungen für ein Bundes-Teilhabe-Gesetz Wichtige Forderungen für ein Bundes-Teilhabe-Gesetz Die Parteien CDU, die SPD und die CSU haben versprochen: Es wird ein Bundes-Teilhabe-Gesetz geben. Bis jetzt gibt es das Gesetz noch nicht. Das dauert

Mehr

ZfP-Sonderpreis der DGZfP beim Regionalwettbewerb Jugend forscht BREMERHAVEN. Der Zauberwürfel-Roboter. Paul Giese. Schule: Wilhelm-Raabe-Schule

ZfP-Sonderpreis der DGZfP beim Regionalwettbewerb Jugend forscht BREMERHAVEN. Der Zauberwürfel-Roboter. Paul Giese. Schule: Wilhelm-Raabe-Schule ZfP-Sonderpreis der DGZfP beim Regionalwettbewerb Jugend forscht BREMERHAVEN Der Zauberwürfel-Roboter Paul Giese Schule: Wilhelm-Raabe-Schule Jugend forscht 2013 Kurzfassung Regionalwettbewerb Bremerhaven

Mehr

3.2 Spiegelungen an zwei Spiegeln

3.2 Spiegelungen an zwei Spiegeln 3 Die Theorie des Spiegelbuches 45 sehen, wenn die Person uns direkt gegenüber steht. Denn dann hat sie eine Drehung um die senkrechte Achse gemacht und dabei links und rechts vertauscht. 3.2 Spiegelungen

Mehr

Korrelation (II) Korrelation und Kausalität

Korrelation (II) Korrelation und Kausalität Korrelation (II) Korrelation und Kausalität Situation: Seien X, Y zwei metrisch skalierte Merkmale mit Ausprägungen (x 1, x 2,..., x n ) bzw. (y 1, y 2,..., y n ). D.h. für jede i = 1, 2,..., n bezeichnen

Mehr

Schritte 4. Lesetexte 13. Kosten für ein Girokonto vergleichen. 1. Was passt? Ordnen Sie zu.

Schritte 4. Lesetexte 13. Kosten für ein Girokonto vergleichen. 1. Was passt? Ordnen Sie zu. Kosten für ein Girokonto vergleichen 1. Was passt? Ordnen Sie zu. a. die Buchung, -en b. die Auszahlung, -en c. der Dauerauftrag, - e d. die Überweisung, -en e. die Filiale, -n f. der Kontoauszug, - e

Mehr

SANDBOXIE konfigurieren

SANDBOXIE konfigurieren SANDBOXIE konfigurieren für Webbrowser und E-Mail-Programme Dies ist eine kurze Anleitung für die grundlegenden folgender Programme: Webbrowser: Internet Explorer, Mozilla Firefox und Opera E-Mail-Programme:

Mehr

Physik & Musik. Stimmgabeln. 1 Auftrag

Physik & Musik. Stimmgabeln. 1 Auftrag Physik & Musik 5 Stimmgabeln 1 Auftrag Physik & Musik Stimmgabeln Seite 1 Stimmgabeln Bearbeitungszeit: 30 Minuten Sozialform: Einzel- oder Partnerarbeit Voraussetzung: Posten 1: "Wie funktioniert ein

Mehr

Kugel-Fächer-Modell. 1fach. 3fach. Für die Einzelkugel gibt es 3 Möglichkeiten. 6fach. 3! Möglichkeiten

Kugel-Fächer-Modell. 1fach. 3fach. Für die Einzelkugel gibt es 3 Möglichkeiten. 6fach. 3! Möglichkeiten Kugel-Fächer-Modell n Kugeln (Rosinen) sollen auf m Fächer (Brötchen) verteilt werden, zunächst 3 Kugeln auf 3 Fächer. 1fach 3fach Für die Einzelkugel gibt es 3 Möglichkeiten } 6fach 3! Möglichkeiten Es

Mehr

AGROPLUS Buchhaltung. Daten-Server und Sicherheitskopie. Version vom 21.10.2013b

AGROPLUS Buchhaltung. Daten-Server und Sicherheitskopie. Version vom 21.10.2013b AGROPLUS Buchhaltung Daten-Server und Sicherheitskopie Version vom 21.10.2013b 3a) Der Daten-Server Modus und der Tresor Der Daten-Server ist eine Betriebsart welche dem Nutzer eine grosse Flexibilität

Mehr

S/W mit PhotoLine. Inhaltsverzeichnis. PhotoLine

S/W mit PhotoLine. Inhaltsverzeichnis. PhotoLine PhotoLine S/W mit PhotoLine Erstellt mit Version 16.11 Ich liebe Schwarzweiß-Bilder und schaue mir neidisch die Meisterwerke an, die andere Fotografen zustande bringen. Schon lange versuche ich, auch so

Mehr

Guide DynDNS und Portforwarding

Guide DynDNS und Portforwarding Guide DynDNS und Portforwarding Allgemein Um Geräte im lokalen Netzwerk von überall aus über das Internet erreichen zu können, kommt man um die Themen Dynamik DNS (kurz DynDNS) und Portweiterleitung(auch

Mehr

Kapitel 4: Dynamische Datenstrukturen. Algorithmen und Datenstrukturen WS 2012/13. Prof. Dr. Sándor Fekete

Kapitel 4: Dynamische Datenstrukturen. Algorithmen und Datenstrukturen WS 2012/13. Prof. Dr. Sándor Fekete Kapitel 4: Dynamische Datenstrukturen Algorithmen und Datenstrukturen WS 2012/13 Prof. Dr. Sándor Fekete 4.4 Binäre Suche Aufgabenstellung: Rate eine Zahl zwischen 100 und 114! Algorithmus 4.1 INPUT: OUTPUT:

Mehr