Jenseits der reinen kompetitiven Analyse: Access Graphen

Größe: px
Ab Seite anzeigen:

Download "Jenseits der reinen kompetitiven Analyse: Access Graphen"

Transkript

1 Jenseits der reinen kompetitiven Analyse: Access Graphen Inhaltsangabe: 1. Einleitung 1.1. Online /Offline Algorithmus Kompetitive Analyse Paging Access Graphen Modell 2.1. Modellbeschreibung Zielsetzung Theoretische Berechenbarkeit Einheitlich kompetitver Algorithmen FiFo im Access Graph 3.1. k-phase Untere Schranke für Fifo Spezialfall: FiFo auf Knotenlinie LRU im Access Graph 4.1. Obere und untere Schranke für LRU Spezialfall: LRU auf Knotenlinie Vergleich: LRU gegen FiFo FAR im Access Graph 5.1 Obere und untere Schranke für Algorithmus FAR Algorithmus FAR: einheitlich kompetitver Algorithmus Zusammenfassung und Ausblick 6.1. FiFo, LRU, FAR Dynamischer Access Graph Algorithmus FARL Fazit

2 1. Einleitung 1.1. Online / Offline Algorithmen: Ein Offline Algorithmus kennt zu beginn alle relevanten Daten und kann diese nutzen. Im Gegensatz dazu erfolgt bei einem Online Algorithmus die Dateneingabe portionsweise. Das heißt der Online Algorithmus muss die portionsweisen Eingaben verarbeiten, ohne dass er die zukünftigen Eingaben (z.b.: Operationen / Anfragen kennt. Dies spiegelt die Probleme aus unserem täglichen Leben wieder. Z.B.: 1. Die Bewegungsplanung bei unvollständigen Informationen: Ein Roboter, der sich auf unbekannten Terrain vorwärts bewegt, muss auf ein Hindernis z.b. einem Ball der durch den Raum rollt reagieren, ohne dass er weiß, dass er als nächstes einem Menschen ausweichen muss. 2. Die Spekulation mit Aktien: Ein Aktionär weiß nicht wie sich der weitere Aktienkurs entwickeln wird und kann nur auf den soeben gefallenen oder gestiegen Aktienkurs mit kaufen oder verkaufen reagieren. 3. Das Routing im Internet: Die Suchmaschine kann immer nur die aktuell gestellte Anfrage berücksichtigen, ohne Kenntnisse darüber was der Benutzer als nächstes eingeben wird Kompetitive Analyse Eine Möglichkeit Online Algorithmen zu vergleichen ist die reine kompetitive Analyse. Aus der wir einige Begriffe benötigen, die wie folgt definiert sind: Definiton: (c-kompetitiv Sei ALG ein Online-Algorithmus. Wir nennen ALG c-kompetitiv, wenn es eine Konstante α gibt, s.d.: ALG ( I c OPT ( I + α endlichen Eingabesequenzen I Definition: (Kompetitive Komplexität von ALG Sei ALG ein Online-Algorithmus. Die kompetitive Komplexität von ALG ist das Infimum über alle c, s.d. ALG noch c-kompetitiv ist Paging (Caching Seitenaustausch Ein typisches fundamentales und praktisch wichtiges Online Problem in der Informatik ist das Paging-Problem. Es behandelt das Austauschen von Seiten zwischen schnellem (Kernspeicher / Cache und langsamen Speicher (Hintergrundspeicher / Festplatte. Sei z.b. k der Cache, der für k Seiten Platz hat und N der langsame Speicher, der N Seiten speichern kann, wobei klar ist dass N > k ist. Die N Seiten im langsamen Speicher repräsentieren den virtuellen Speicher. 2

3 Ein Paging-Algorithmus muss eine Anfragesequenz an den virtuellen Speicher bedienen. Unser Kostenmodell hierfür sieht wie folgt aus: Wird eine Seite x angefragt und ist die angefragt Seite im Cache, dann gibt es einen Treffer ( HIT und es entstehen keine Kosten. Ist die Seite nicht im Cache, gibt es einen Seitenfehler. Bei einem Seitenfehler (Miss lädt man die Seite x in den Cache, was Kosten verursacht. Bei diesem Vorgang muss der Algorithmus entscheiden, welche der k Seiten, die momentan im Cache sind er in den langsamen Speicher verdrängen will bzw. welche Seite er am sinnvollsten verdrängt im Bezug auf die zukünftigen Anfragen (die ein Online Algorithmus aber nicht kennt. Dabei sind verschiedene Strategien möglich: 1. Offline Strategie : (setzt Kenntnis der zukünftigen Anfragen voraus - LFD: (Longest- forward- distance Ersetze diejenige Seite, deren nächste Anfrage am weitesten in der Zukunft liegt. 2. Online Strategien : (unabhängig von zukünftigen Anfragen - LRU: (least- recently- used Ersetze diejenige Seite, deren letzte Anfrage am längsten zurückliegt. - FIFO: (First- in First- out Ersetze diejenige Seite, die sich am längsten im Cache befindet. - LIFO: (Last- in- first- out Ersetze diejenige Seite, die als letzte in den Cache geladen worden ist - LFU: (Least- frequently used Ersetze diejenige Seite, die, seitdem sie sich im Cache befindet, am wenigsten angefragt worden ist. - FWF: (Flush- when- Full Wenn ein Seitenfehler entsteht und der Cache voll ist leere Cache vollständig und lade Seite in den leeren Cache. Diese Strategien sind unterschiedlich vielversprechend. Wir brauchen also einen Faktor, um diese zu vergleichen. Man kann beweisen: FIFO, LRU, FWF sind k- kompetitiv und daher optimal in der reinen kompetitiven Analyse, was aber im Gegensatz zu dem steht, was man in der Praxis beobachten kann (Abb.1. 3

4 FWF ist in der Praxis ein relativ schlechter Algorithmus, obwohl die reine kompetitive Analyse sagt, dass FWF nicht schlechter als FIFO und LRU ist. Jedoch ist in der Praxis LRU wesentlich besser als FIFO und FWF. Das wirft die Frage auf: Wie kommt es zu dieser Differenz zwischen Praxis und Theorie? Abb. 1: entstanden aus empirische Forschungen Quelle: Young Um nun die Theorie der Praxis näher zu bringen führt die Theorie das Access Graphen Modell ein. 2.Access Graphen Modell 2.1. Modellbeschreibung : Definitionen und Zielsetzung Definition: (Access Graph Abb. 2: Access Graphen Sei G = ( V, E ein gerichteter oder ungerichteter N-Knoten- Graph (Abb.2, wobei die Knotenmenge die Seiten im langsamen Speicher und die Kanten die erlaubten Folgeanfragen darstellen.wir nennen G einen Access Graphen, wenn wir G zum spezifizieren von erlaubten Seitenanfragen benutzen können. Dies modelliert im Access Graphen Modell die Lokalität von Referenzen. Definition: (konsistente Anfragesequenz Die Anfragesequenz σ = r 1 r 2...r n ist konsistent mit dem Access Graphen G, wenn ( r i, r i+1 E i mit ( 1 i < n. Definition: (c-kompetitiv für Graphen Sei G = ( V, E ein Access Graph und ALG ein Paging-Algorithmus. O. B. d. A. nehmen wir an, dass alle Access Graphen zusammenhängend sind und k die Größe des Caches ist. Wir nennen ALG c- kompetitiv genau dann, wenn es eine Konstante α gibt, s.d.: ALG ( σ c OPT ( σ + α σ konsistent mit G. 4

5 Definition: (Kompetitiver Faktor eines Algorithmus Der kompetitiver Faktor von ALG auf G, i. Z.: R(ALG,G ist das Infimum über alle c, so dass ALG auf G c- kompetitiv ist. Definition: (Kompetitiver Faktor für einen Access Graphen G Wir definieren uns: R(G : = min ALG R(ALG,G Wenn nun für ein gegebenes G und für jedes k gilt: R(ALG,G = R(G, dann bezeichnen wir ALG als optimal Zielsetzung Wir suchen in den folgenden Abschnitten Algorithmen, die für bestimmte Access Graphen G eine deutlich bessere Kompetitivität als k erreichen. Dabei werden zusammenhängende, aber keine vollständigen Access Graphen betrachtet, da wir sonst bei der reinen kompetitiven Analyse bleiben könnten, wo man nach jeder Seitenanfrage jede Seite anfragen darf, was einem vollständigen Access Graphen entsprechen würde. Zur Vereinfachung setzen wir dafür die Cachegröße des Offline Algorithmus gleich der des Online Algorithmus Theoretische Berechenbarkeit Die theoretische Berechenbarkeit ist durch das Theorem 1 gegeben, das wie folgt lautet: Theorem 1: Sei G ein beliebiger N-Knoten Access Graph. Es existiert ein berechenbarer deterministischer Online Algorithmus ALG, s.d.: Beweis (Skizze : R(ALG,G = R(G ist. Sobald wir eine obere Schranke für den optimalen kompetitiven Faktor haben, kommen wir mit einem Algorithmus der nur endlich viel Speicher braucht aus. Bei einem Paging Problem mit maximal P möglichen Cache-Konfigurationen ist, wenn man z.b. k Cache-Seiten und N Seiten langsamen Speicher hat, P ( N k N k. Wir nehmen an, dass es einen c-kompetitiven Algorithmus gäbe, der dieses Problem löst. Dann benötigt man maximal (3c+2 P Speicherzustände. Da k eine obere Schranke für jeden beliebigen Access Graphen ist, beschränken wir uns auf Algorithmen mit max (3k+2^N k Speicherzuständen und mit maximal T= (3k+2^N k x N k Speicherzustand-Cache- Konfigurationspaaren. Daher verursacht jede Anfragesequenz der Länge T einen Kreis in den Zustandkonfigurationspaaren. Der Gegenspieler muss also den schlechtesten kompetitiven Faktor mit 5

6 Sequenzen der Länge T herausfinden. Somit soll der gesuchte Algorithmus den maximalen Faktor ALG (σ / OPT (σ minimieren, wobei das Maximum über alle Anfragesequenzen der Länge T genommen wird Definition: (Einheitlich kompetitive Algorithmen Ein Algorithmus wird einheitlich kompetitiv genannt, wenn es Konstanten b 1 und b 2 gibt, so dass für jeden Access Graphen G (und jede Cache Größe k gilt: R(ALG,G b 1 R(G + b 2. D.h.: Für jeden beliebigen Access Graphen ist der Algorithmus bis auf einen konstanten Faktor so gut wie der optimale oder best erreichbare Algorithmus. Wir suchen einen effizienten einheitlich kompetitiven Algorithmus. Effizienz in dem Sinne, dass jede Online Entscheidung effizient berechnet werden kann mit Rücksicht auf Rechenzeit und Speicherbedarf. Nun wollen wir aber zunächst zwei bekannte Algorithmen aus der kompetitiven Analyse untersuchen. 3. FiFo im Access Graphen Modell Wir wissen, dass FiFo für Paging in der reinen kompetitiven Analyse k-kompetitiv ist und daher optimal (!. Jetzt wollen wir zeigen, im Einklang mit dem was man in der Praxis beobachten kann, dass FiFo die Lokalitäten der Referenzen nicht angemessen ausnutzt. Wobei die Lokalitäten der Referenzen im Access Graphen dadurch ausgedrückt wird, dass zwei benachbarte Seiten mit einer Kanten verbunden sind. Im folgenden untersuchen wir die Qualität vom Algorithmus FiFo, der eine relativ große untere Schranke für den kompetitiven Faktor hat. Dafür brauchen wir noch eine Definition Definition:(k-Phase Wir teilen die Anfragesequenz σ in Phasen ein. Phase null ist die leere Sequenz. Für jedes i 1 ist Phase i die längste Sequenz die Phase i-1 folgt und höchsten k verschiedene Seitenanfragen enthält Theorem 2.: (Untere Schranke für FiFo Für jeden beliebigen zusammenhängenden N-Knoten-Graph mit N > k gilt: R( FiFo, G ( k + 1 / 2. Um das Theorem zu beweisen, brauchen wir noch folgendes Lemma. Lemma: 6

7 Sei H G ein Teilgraph von G, daraus folgt R( FiFo, G R( Fifo, H. Beweis:(durch Widerspruch: Wir nehmen an, R( FiFo, G < R( Fifo, H. Wir wählen eine Anfragesequenz σ H auf H, für die die Komplexität von FiFo auf H maximal ist. FiFo hat laut Annahme angewandt auf σ H eine schlechtere Komplexität als FiFo angewandt auf jedes σ G auf G. Somit wäre FiFo(σ H > FiFo (σ G ein Widerspruch, da auch σ H auch konsistent zu G ist. Beweis(Theorem 2: Es ist ausreichend das Theorem für einen (k+1-knoten-teilgraph H von G zu beweisen. Abb. 3: Graph G mit Teilgraph H und Artikulationspunkt w Also ist zu zeigen, dass R( FiFo, H ( k + 1 / 2. Jeder verbundene Graph H hat mindestens einen Knoten w (Abb.3, der kein Artikulationspunkt ist. Ein Artikulationspunkt ist ein Punkt, dessen Entfernung den Graphen in mehrere Teilgraphen aufspalten würde. Jeder Knoten von H, der aktuell nicht im Cache ist, bezeichnen wir als Cache-Loch. Wir können davon ausgehen, dass es exakt ein Loch gibt, weil wir k + 1 Knoten in H haben und FiFo ein Demand-Paging ist, d.h. der Algorithmus verdrängt nur auf Anforderung. Beim Beginn jeder Phase ist w die zuletzt eingelagerte Seite im Cache und das Loch ist ein Knoten v 1, der benachbart zu w ist. Wir nehmen an v 1, v 2, sei die Folge der Löcher, die während einer Phase entstehen und damit Anfrageziele des Gegners sind. Angenommen das Loch sei ein Knoten v i w. Der Gegenspieler wird dann v i anfragen und FiFo wird, seiner Definition nach, den Knoten v i+1 verdrängen, wodurch das Cache-Loch zum Knoten v i+1 springt. Wenn nun i < k ist, dann ist v i+1 w. Der Gegenspieler fragt dann die Knoten auf einem Pfad des Graphen H von v i nach v i+1 an, ohne Knoten w anzufragen. Dies ist möglich, da w kein Artikulationspunkt ist. Das Verhalten von FiFo verändert sich nicht, da die Reihenfolge, in welcher die aktuellen Seiten in den Cache geladen wurden, nicht durch das wiederholte Anfragen von Seiten entlang dieses Pfades verändert wird. Erreicht das Loch v k w (und FiFo hat k-1 Seitenfehler verursacht dann ist w die nächste Seite, die am längsten im Cache ist. Der Gegenspieler fordert v k an (k Seitenfehler und bewegt somit das Loch von v k nach w. Der letzte Fehler (k+1 Seitenfehler bei Knoten w, bringt das Loch zurück zu Knoten v 1 und macht w zu der zuletzt in den Cache eingelagerte Seite. Nun sind wir wieder am Anfang, die Sequenz, wo wir die Löcher v 1, v 2 v k w hatten, ist durchgearbeitet. Während so einer Sequenz verursacht FiFo also exakt k+1 Seitenfehler. OPT kann alle Anfragen der Sequenz mit nur 2 Seitenfehlern bearbeiten, nämlich durch Verdrängen von Knoten w um v 1 zu laden und durch Verdrängen von Knoten v 1 um w zu laden. Also ist R( FiFo, H ( k+1 / 2. 7

8 3.3. Spezialfall: FiFo auf Knotenlinie Nun betrachten wir einen Spezialfall, wo FiFo auf einem relativ einfachen Graphen bereits k-kompetitv ist. Corollar1: Sei G = L N eine N = ( k + 1 -Knoten -Linie. Dann ist R( FiFo, L N = k. Beweis: Seien k + 1 Knoten v 1, v 2, v 3, v 4... v k+1 = L N durchnummeriert und v k+1 die zuletzt in den Cache eingelagerte Seite und v 2 die zuerst gelagerte Seite. Betrachte σ = v 1 v 2...v k v k+1 Abb. 4: (k+1-knotenlinie =L N FiFo macht k Seitenfehler und OPT nur einen. Zusammen mit der allgemeinen oberen Schranke ergibt sich: R( FiFo, L N = k / 1= k 4. LRU im Access Graphen Modell LRU nutzt im Gegensatz zu FiFo, die Lokalitäten von den Referenzen besser aus. Für jeden Access Graph, der ein Baum ist, ist LRU ein optimaler Online Algorithmus. Bäume, die auch häufig in andere Datenstrukturen eingebettet sind, liegen vielen Datenstrukturen als Access Graphen zugrunde. Wenn G ein Baum ist, dann können wir eine einfache, präzise Charakterisierung von R( G herleiten. Dazu sei für jeden zusammenhängenden Graphen G: T i ( G = { T T ist ein Teilbaum von G mit i Knoten } Und für jeden Baum L ( T die Anzahl der Blätter von T Obere und untere Schranke für LRU Zuerst die allgemeine untere Schranke: Theorem 3: Sei G ein beliebiger Graph mit N ( k + 1 Knoten, dann ist : R( G max T Tk+1( G { L ( T 1 } 8

9 Beweis: Sei ALG ein beliebiger deterministischer Algorithmus. Nun wählt der Gegenspieler einen geeigneten Baum T aus. ( Abb. 5 Damit alle inneren Knoten im Cache sind, legt der Gegenspieler sein OPT -Loch auf ein Blatt von T. D.h. alle inneren Knoten von T sind im optimalen Offline- Cache vom Gegenspieler. Somit kann der böse Gegenspieler das ALG Loch anfragen, indem er auf T entlang geht. So macht ALG auf jedem Blatt einen Seitenfehler. Wohingegen OPT, pro L( T - 1 Blätter die beim benutzen der LFD Strategie angefragt werden, auf den Blättern von T maximal einen Seitenfehler macht. Abb.5: Baum T mit OPT-Loch auf Blatt Im Gegensatz zu der Ausführung von FiFo, lässt das soeben bewiesene Theorem die Möglichkeit offen, dass R( G = 1 ist, wenn wir eine Access Graphen Linie L N mit N k+1 Knoten haben. Für jeden Baum G zeigen wir, dass LRU die dichte (zum Theorem 3 obere Schranke erreicht, indem wir die folgende amortisierende Kostenanalyse ( amortized charging technique auf das Paging anwenden. Lemma 1: (Amortisierende Kostenanalyse ( Amortized charging technique Wir nehmen an, dass wir immer wenn OPT ein Fehler macht, höchstens c Token auf den Knoten von G verteilen. Falls es möglich ist, bei jedem ALG Fehler einen Token zu streichen, dann ist ALG c-kompetitiv auf G. Beweis Man sieht direkt, dass das Lemma stimmt. Der Gebrauch der Token demonstriert klar, dass es für jeden OPT Fehler maximal c ALG Fehler gibt. Jetzt zeigen wir, dass LRU auf jedem Baum die allgemeine untere Schranke erreicht. Theorem 4: Sei G irgendein Baum. Dann gilt: R( LRU, G = max T T k+1( G { L ( T 1 } Beweis: Wir wissen, dass LFD ein optimaler Offline Algorithmus ist. Abb. 6: Baum [LRU];Baum [LFD] und einsame Seiten Wir betrachten zu allen Zeitpunkten t die folgende Menge von Knoten aus G ( Abb.6 : Die der t- ten Anfrage r t und die k Seiten, die vor Erfüllung der Anfrage aktuell im Cache von LRU (bzw. von LFD sind. Diese Menge ist (einfache Induktion über t ein Teilbaum von G, den wir als Baum t [LRU] (bzw. Baum t [LFD] bezeichnen. 9

10 Macht LRU ( oder LFD einen Fehler, entsteht dieser auf einem Blatt des jeweiligen Baumes. Die jeweilige Strategie bedient diesen Fehler, indem eine Seite aus dem Cache entfernt wird, die einem Blatt des jeweiligen Baumes entspricht. Wir verteilen bei jedem Fehler maximal max T T k+1( G { L ( T 1 } Token auf die Seiten im Cache von LRU (wie Lemma 2 zeigen wird. Die verdrängte Seite besitzt bei jedem LRU Fehler (wie Lemma 3 zeigen wird einen Token, der dann zerstört wird, um den Fehler zu bezahlen. So erhalten wir die gewünschte Grenze von R ( LRU, G. Zum Beweis von Lemma 2 und 3 führen wir das Token Charging Schema ein: Token Charging Schema: Betrachte einen LFD Fehler an der t- ten Nachfrage r t. Folge für jedes Blatt v r t im Baum t [LRU] dem Pfad von v zu r t und platziere einen Token auf den ersten Knoten (=Seite im Cache von LRU welcher noch keinen Token hat. Abb.7: LFD Fehler an der t- ten Nachfrage r t Abb. 8: Nach dem LFD-Fehler In den Abbildungen 7 und 8 bezeichnen die Knoten, die innen weiß sind haben einen Token. Der Beweis Theorem4 ist fertig, wenn wir die folgenden beiden Lemmata beweisen. Lemma 2.: Bei einem LFD Fehler werden maximal L ( Baum t [LRU] - 1 Token durch das Charging Schema verteilt. Wir nehmen noch zur Kenntnis, dass das Charging Schema garantiert, dass höchstens L ( Baum t [LRU] Token verteilt werden. Vor dem Beweis von Lemma 2 brauchen wir noch einen Begriff: Einsame LRU (bzw. LFDSeite: Wir nennen u eine einsame LRU (bzw. LFD Seite, wenn der Knoten im Cache von LRU ist (bzw. von LFD aber nicht im Cache von LFD ( bzw. LRU. Siehe Abb. 6 Beweis: 1.Fall:Wenn die Nachfrage r t ein Blatt von Baum t [LRU] ist ( Abb.9, dann ist klar, dass das Lemma gilt. Abb. 9: Baum t [LRU] mit Knoten r t als Blatt und L( T -1 Blättern. 10

11 2.Fall: Jetzt brauchen wir nur noch die Fälle zu betrachten, bei denen r t ein innerer Knoten von Baum t [LRU] ist (Abb. 10. Also bleibt zu zeigen, dass es ein Blatt v von Baum t [LRU] gibt, so dass jeder Knoten auf dem Pfad von v nach r t schon einen Token besitzt. Abb. 10: Baum t [LRU] mit Knoten r t als innere Knoten Macht LFD einen Fehler an einem der Blätter r t von Baum t [LFD] und ist dies ein innerer Knoten vom Baum t [LRU] (Abb. 11, dann ist r t eine einsame LRU Seite. Dann gibt es auch einen Pfad von r t zu einem Blatt von Baum t [LRU] s.d. alle Knoten auf diesem Pfad einsam sind. Abb. 11: Baum [LRU/LFD] mit Knoten r t, der einsamen Knoten im Baum [LFD] ist. Nun reicht es durch Induktion über t zu zeigen, dass jede einsame LRU Seite einen Token besitzt. Induktionsanfang: ( t = 1 LFD und ALG haben laut Vorraussetzung vor dem ersten Schritt die selben k Seiten im Cache. Daraus folgt, wenn t = 1 ist gibt es keine einsamen LRU Seiten. Induktionsvoraussetzung: Zum Zeitpunkt t besitzt jede einsame LRU Seite einen Token. Induktionsschluss: (t t +1 Wir nehmen an die Annahme sei vor der t- ten Nachfrage erfüllt. Wir zeigen nun, dass sie nach der t- ten Nachfrage immer noch erfüllt ist. Eine Seite u im Baum t [LRU] kann nur eine einsame LRU Seite werden, wenn LFD einen Fehler an r t macht und u verdrängt um r t zu bedienen. Aber dann gibt es immer einen Pfad von r t zu irgendeinem Blatt v im Baum t [LRU], welcher durch u verläuft. Es ist möglich, dass u das Blatt ist. Dann ist v = u. Ansonsten muss auf dem Pfad von u nach v jeder Knoten u u auch einer einsamen LRU Seite entsprechen und deswegen (nach der Induktionsvoraussetzung einen Token besitzen. Das Charging Schema platziert dann einen Token auf u, außer wenn u schon einen hat. Nun beweisen wir folgendes Lemma, welches (vgl. Lemma 1 die Kompetitivität von LRU beweist, womit der Beweis von Theorem 4 fertig ist. Lemma 3: Immer wenn LRU eine Seite u verdrängt (im Baum t [LRU] um einen Fehler zu bedienen, besitzt u einen Token. Beweis: Wir betrachten den Zeitpunkt t 1 kurz bevor u von LRU verdrängt wird wo u die am längsten nicht mehr benutzte Seite wird. Wir sind fertig, wenn u zu diesem Zeitpunkt t 1 einen Token besitzt. Daher nehmen wir an, u würde keinen Token zur Zeit t 1 besitzen. 11

12 Wenn LFD gleichzeitig mit LRU einen Fehler macht oder wenn LFD vor LRU den nächsten Fehler macht, sind wir auch fertig. Da das Charging Schema zuerst einen Token auf u platziert, da u ein Blatt im Baum t1 [LRU] ist. Allerdings könnte der nächste LRU Fehler vor dem nächsten LFD Fehler an einer einsamen LFD Seite auftreten. Entfernt man die Knoten von dem Baum t1 [LRU] (außer u, so zerschneidet man G in Teilbäume. Sei T (u der Teilbaum, der u enthält. Es reicht zu zeigen das zum Zeitpunkt t 1 alle einsamen LFD Seiten in T(u sind. Dieses würde sicher stellen, dass u zu einem gewissen Zeitpunkt nach t 1 vor einer beliebigen einsamen LFD Seite angefragt wird. Dann wäre u nicht mehr die am längsten nicht benutzte Seite. Dies steht im Widerspruch zu der Annahme, dass t 1 der letzte Zeitpunkt ist, (bevor u verdrängt wird an dem u die am längsten nicht mehr benutzte Seite wird. Sei I das Zeitintervall ( t 0, t 1 ], wobei t 0 < t 1 ist und u wurde das letzte Mal im Zeitpunkt t 0 angefragt. Nun müssen auch alle Knoten außer u im Baum t1 [LRU] angefragt worden sein, damit u der am längsten nicht benutzte Knoten zum Zeitpunkt t 1 ist. Die folgenden Ungleichungen zeigen, dass alle einsamen LFD Seiten in T(u sind. ( Anzahl von LFD Seiten in T(u zum Zeitpunkt t 0 Jede einsame LRU Seite hat einen Token ( Anzahl von LRU Seiten ohne Token in T(u zum ( Zeitpunkt t 0 Anzahl der Token die auf T(u während I gesetzt wurden Keine Seite aus T(u wird zweimal angefragt = >Kein Knoten kann mehr als einen Token bekommen. ( Anzahl von LFD Fehlern während I Baum t [LRU]hat in T(u zu jedem Zeitpunkt t I ein Blatt. Weil u keinen Token erhält, muss es einen anderen Knoten auf dem Pfad von v nach u geben, der einen Token erhält. ( ( Anzahl von LFD Seiten, die während I aus T(u verdrängt wurden + ( Anzahl von LFD Seiten, die während I aus T(u verdrängt wurden + ( Anzahl von LFD Seiten nicht aus T(u die während I verdrängt wurden Anzahl von einsamen LRU Seiten zum Zeitpunkt t 1 Es gibt zum Zeitpunkt t 1 keine einsamen LRU Seiten in T(u, weil u (kein Token => nicht einsam die einzige Seite in T(u ist. Jede einsame LRU Seite zum Zeitpunkt t 1 ist im Baum t1 [LRU] und wurde während I angefordert Damit eine solche Seite einsam ist, muss LFD sie während I verdrängt haben. Also gilt: ( Anzahl von LFD Seiten in T(u zum Zeitpunkt t 0 ( Und auch: Anzahl von LFD Seiten, die während I aus T(u verdrängt wurden + ( Anzahl von einsamen LRU Seiten zum Zeitpunkt t 1 12

13 ( Anzahl von LFD Seiten in T(u zum Zeitpunkt t 0 ( Anzahl von einsamen LRU Seiten zum Zeitpunkt t 1 Daher gilt: ( Anzahl von LFD Seiten in T(u zum Zeitpunkt t 1 = ( = ( Anzahl von LFD Seiten in T(u zum Zeitpunkt t 0 Anzahl von einsamen LRU Seiten, zum Zeitpunkt t 1 - ( ( - = ( Anzahl von LFD Seiten, die während I aus T(u verdrängt wurden Anzahl von LFD Seiten, die während I aus T(u verdrängt wurden Anzahl von einsamen LFD Seiten zum Zeitpunkt t 1 Alle einsamen LFD Seiten müssen in T(u sein Spezialfall: LRU auf Knotenlinie Es ergibt sich sofort das folgende Corollar, das auch ein extremes Beispiel dafür darstellt, dass LRU viel besser als FiFo sein kann. Corollar 2.: Für jede Linie G ist R( LRU, G = R( G = 1 Beweis: O.B.d.A. sei N > k. Jeder Teilbaum mit k+1 Knoten hat bis zu 2 Blätter. Eins wenn die Wurzel am Ende der Linie liegt, ansonsten 2. Es ist ausgeschlossen, dass es mehr als 2 Blätter sind, da G dann keine Linie mehr ist. Aus der obigen Formel folgt sofort die Behauptung Vergleich: LRU gegen FiFo Des Weiteren ist LRU auf einem beliebigen Access Graphen immer mindestens so gut wie FiFo, was das folgende Theorem besagt: Theorem 5: Für einen beliebigen Access Graphen G ist (ohne Beweis R( LRU, G R( FIFO, G. 13

14 Es sei noch mal darauf hingewiesen, dass LRU auf Bäumen optimal ist, aber auf anderen Graphen deutlich schlechter abschneiden kann. Ein Beispiel wird in Theorem 6 angeführt. Theorem 6: Sei C N ein Kreis mit N = k + 1 Knoten. Dann ist: R( LRU, C N = R( FIFO, C N = k Beweis: Der Gegenspieler verlangt die Knoten von C N im (oder gegen den Uhrzeigersinn. So machen FIFO und LRU bei jeder Anfrage einen Fehler wobei LFD einen Fehler alle k Anfragen macht. (Abb. 12. Abb. 12: (k+1 Knoten Kreis 5. Algorithmus FAR Nun endlich zu einem einheitlich kompetitiven Algorithmus. Hier zunächst auf einem Kreis FAR (eingeschränkt auf einen (k + 1 Knoten Kreis C N : Nun betrachten wir den Markierungsalgorithmus FAR. Hierbei sind während einer k-phase die markierten und unmarkierten Knoten des Kreises Pfade auf dem Kreis C N, sprich Bögen. Tritt ein Seitenfehler auf, wird die Seite, die gerade in den Cache geladen wurde markiert. Die Seite, die auf dem Mittelpunkt des Pfades der jetzt unmarkierten Seiten liegt wird verdrängt. Im folgenden werden wir eine obere und untere Schranke für FAR beweisen. Obere und untere Schranke für Algorithmus FAR auf einem Kreis Theorem 7: Sei C N ein N = ( k + 1 Knoten Kreis. Für FAR gilt dann: R( FAR, C N = R( C N = log(k

15 Nun zum Beweis der oberen Schranke von FAR ( Abb. 13 auf einem Kreis. Beweis: ( Abb. 13: FAR auf einem Kreis Der Algorithmus FAR macht maximal 1+ log k Fehler in einer Phase. Zu Beginn einer Phase gibt es k unmarkierte Knoten (s. ersten Kreis von Abb. 13. Ist eine Phase zu ende, wird der erste Knoten der neuen Phase markiert und die Knoten die in der alten Phase markiert waren verlieren gleichzeitig ihre Markierung. ( s. zweiten Kreis von Abb. 13 Der Gegenspieler muss somit mindestens die Hälfte der unmarkierten Knoten anfragen und damit auch markieren, um den unmarkierten Knoten der im Cache nicht präsent ist anzufragen / aufzurufen.( s. dritter Kreis von Abb. 13. Bis der letzte unmarkierter Knoten aufgerufen wird, muss der Algorithmus FAR den eben beschriebenen Prozess (unmarkierte Knoten anfragen die im Cache sind bis unmarkierten Knoten der nicht im Cache ist erreicht wird maximal log k mal durchführen. ( s. vierter Kreis von Abb. 13 Dieser unmarkierte Knoten der nicht im Cache ist wird der erste Fehler gemeinsam mit den Beginn einer neuen Phase sein. Nun wissen wir ja schon von Theorem 3.2., dass jeder Algorithmus, also auch der optimale Algorithmus mindestens einen Fehler pro Phase machen muss. Daher ist R( FAR,C N log (k+1 Die obere Schranke von FAR motiviert uns zu einer allgemeinen unteren Schranke R(ALG, C N log (k+1. Bevor wir zum Beweis kommen sei noch mal in Erinnerung gerufen: Das k-phasen Modell bei Markierungsalgorithmen ist wohldefiniert, unabhängig davon welchen Algorithmus wir haben. Weiterhin gilt ein Knoten als markiert, wenn er während einer Phase angefragt wurde und unmarkiert, wenn er nicht angefragt wurde Beweis: Sei ALG ein beliebiger Online Algorithmus und die Situation die folgende: Zu Beginn einer Phase haben beide Algorithmen (der OPT und ALG- Algorithmus ihr Cache Loch beim selben Knoten und es gibt wie immer einen markierten Knoten und somit k unmarkierte Knoten. (Abb. 14 (Abb. 14: Beginn einer k-phase 15

16 Wenn ALG jemals einen markierten Knoten verdrängt, dann wird der Gegenspieler immer diesen Knoten entlang eines markierten- Knoten- Pfades anfragen und damit seine Kosten nicht erhöhen. Also können wir annehmen, das ALG sich auch wie ein Markierungsalgorithmus verhalten muss. Der Gegenspieler wird dann weiterhin das Cache Loch von ALG versuchen anzufragen, indem er den Pfad von C N entlang läuft, der die wenigsten unmarkierten Knoten hat, bis er auf nur einen unmarkierten Knoten gelangt. Diesen betritt der Gegenspieler dann zu Beginn einer neuen Phase. Klar ist dann, dass ALG mindestens log (k+1 Fehler pro Phase macht und OPT genau einen FAR: Ein einheitlich kompetitiver Paging-Algorithmus Den Algorithmus FAR kennen wir schon vom ( k + 1 Knoten Kreis. Dort konnten wir FAR einfach als online Approximation des optimalen Offline Algorithmus LFD ansehen. Im folgenden ist mit Lokalität von Referenzen nicht mehr die Nachbarschaft von zwei Knoten gemeint, sondern diese Knoten sind benachbart, die markierten sind. Von den unmarkierten Knoten wird der Knoten verdrängt, der graphtheoretisch von den markierten Knoten am weitesten entfernt liegt. D.h. wir approximieren zeitlich am weitesten weg (=LFD mit graphtheoretisch am weitesten weg (= FAR. Algorithmus FAR: Sei G ein beliebiger ungerichteter Graph. Sei M die Menge von markierten Knoten (zu jeder Zeit während einer k-phase einschließlich der aktuellen Anfrage. FAR verdrängt eine unmarkierte Seite u, wenn die aktuell angefragte Seite nicht im Cache ist, so dass die Distanz auf G zwischen M und u ( i.z. dist G ( M, u maximal ist. Das bedeutet, dass für jeden Knoten v der nicht markiert ist gelten muss: dist G (M, v dist G (M, u, wobei dist G (M, v := min {dist G (z, v z M}. Nun werden wir beweisen, dass FAR einheitlich kompetitiv ist, d.h.: R( FAR, G = O( R( G für jeden Access Graphen G. Sei σ eine Anfragesequenz. Wir betrachten seine k-phasen-einteilung. Eine neue Seite in einer Phase ist eine, die in der vorherigen Phase nicht angefordert wurde. Des Weiteren ist OPT( σ m i / 2 wobei m i die Anzahl der neuen Seiten in der i- ten Phase ist. Wir wollen nun zeigen, dass FAR (asymptotisch gesehen optimal in jeder Phase ist. Genauer gesagt, dass für eine Konstante c gilt: Theorem 9: Sei σ ( i die i-te Phase. Dann ist: FAR( σ ( i c R ( G m i c R ( G OPT( σ ( i und als unmittelbare Folgerung ergibt sich: FAR( σ = O ( R ( G OPT( σ. 16

17 Bevor wir dieses Theorem beweisen kommen noch ein paar Definitionen und ein Beispiel zur Rebenzerlegung sowie ein Theorem, was eine geeignete untere Schranke zum Beweis von Theorem 9 liefert. Definition: Rebenzerlegung (vine decomposition Eine Rebenzerlegung V ( H = ( T, P von einem zusammenhängenden Graph besteht aus einem Baum und einer Ansammlung von einfachen Pfaden P = (P 1, P 2,... P q. Die Knoten von H werden in diejenigen des Baumes T und in die inneren Knoten der Pfade P i aufgeteilt. Die Pfade werden Reben (vines und die Endpunkte der Pfade (im Baum Anker (anchor genannt. Sei n T die Anzahl von Blättern in T, die keine Anker sind. Definition des Wertes einer Rebe P i : val( P i = log ( Anzahl von Kanten in P i Definition des Wertes einer Rebenzerlegung V ( H : Beispiel 1 (Rebenzerlegung: val ( V ( H = i=1..q val (P i + n T 1 In diesem Bild haben wir eine Rebenzerlegung V ( H = ( T, P von einem 4 x 4 Maschenarray H. Es ist nun val ( V ( H = val( P 1 + val( P 2 + n T 1 = = 7 (Abb. 14: Die gestrichelten Linien sind die Pfade und die durchgezogenen Linien bilden den Baum. Hier zuerst eine untere Schranke, die wir durch Erweiterung des Beweises von Theorem 7 erhalten. Theorem 10: Sei G ein N-Knoten Graph und enthalte G einen Kreis mit (k + g Knoten als Teilgraphen (1 g k. Dann ist R( G log k log g / 2. Diese Schranke verknüpfen wir in Theorem 11 mit der Schranke der Anzahl von Blättern eines k+1 Knoten Teilbaumes. Theorem 11: Untere Schranke für eine Rebenzerlegung (vine decomposition: Sei G ein zusammenhängender Graph mit N ( k + 1 Knoten, H ein (k + 1 Knoten zusammenhängender Teilgraph von G mit einer Rebenzerlegung V( H. Dann ist R( G val ( V ( H. 17

18 Beweis: Sei ALG ein beliebiger Online Algorithmus. Der Gegenspieler schränkt alle Anfragen auf H ein und wird so höchstens einen Seitenfehler pro k-phase verursachen. Es bleibt zu zeigen, dass der Gegenspieler von ALG mindestens val ( V ( H Seitenfehlern pro Phase erzwingen kann. Das ALG- Loch wird vom bösen Gegenspieler so effizient wie möglich angefragt. Befindet sich das ALG- Loch auf einen Knoten im Baum, läuft der Gegenspieler auf markierten oder bauminternen Knoten zu diesem. Ist das ALG- Loch ein innerer Knoten einer Rebe, dann läuft der Gegenspieler zu diesem Knoten, indem er markierte Knoten, bauminterne Knoten, Anker und höchstens die Hälfte der unmarkierten Knoten von P i benutzt. Es ist klar, dass das Loch während einer Phase an jedem der n T nicht- Anker-Blätter auftaucht und mindestens val( P i mal an jeder Rebe P i. Wir bezeichnen val ( H = log k log g wenn H ein (k + g Knoten Kreis ist. Weiterhin definieren wir, wenn H ein zusammenhängender Graph mit k+1 Knoten ist welcher kein Kreis ist val ( H = max V(H ( val ( V ( H. Beweis von Theorem 9: Wir müssen zeigen, dass es für die i-te Phase σ ( i mit m = m i neuen Knoten einen Teilgraphen H gibt, s.d.: val ( H (δ / m FAR ( σ ( i für irgendein δ = 1 / c > 0 gilt. Somit muss H entweder ein Kreis sein oder eine geeignete Rebenzerlegung haben. Betrachte die Sequenz von Knoten, d.h. Seiten die während einer Phase verdrängt wurden und teile die Sequenz in Blöcke von m+1 aufeinander-folgenden Knoten auf. Wir nehmen an es gäbe R Blöcke und zeigen dann, dass es ein H gibt mit val ( H δ R. Wir wählen einen repräsentativen Knoten für jeden Block. Die Anzahl von Knoten die während einer Phase verdrängt und momentan außerhalb des Caches sind, ist höchstens m, da es m neue Knoten in der Phase gibt. Da es m+1 Knoten in einem Block gibt, muss mindestens ein Knoten des Blockes markiert sein bevor irgendein Knoten im nächsten Block verdrängt wird. Wir suchen uns einen solchen Knoten aus und nennen ihn rep. Die R reps werden nun in zwei Kategorien eingeteilt. So können wir die Existenz eines Teilgraphen mit Wert Ω ( R zeigen. Wir betrachten die V Knoten die während einer Phase markiert werden. Die Markierungsreihenfolge definiert einen gerichteten Baum T = ( V, E mit k Knoten. In diesem Baum existieren gerichtete Kanten < u, v >, genau dann wenn die erste Anfrage an v direkt einer Anfrage an u folgt. Der erste Knoten, der in einer Phase markiert wird, ist die Wurzel von T. Eine Kette in T ist ein gerichteter Pfad in T dessen interne Knoten alle Grad 2 in G haben (Solche Knoten nennt man Kettenknoten und dessen Endpunkte keine Kettenknoten sind. Ein nicht Kettenknoten ist entweder die Wurzel von T oder ein Blatt in T oder hat Grad 3 in G. Ketten sind gute Kandidaten für Reben in der Rebenzerlegung, die wir konstruieren wollen. Ein rep ist vom Typ 1, wenn er kein Kettenknoten ist oder wenn er einer der ersten 4 reps in einer Kette ist oder wenn er der letzte rep in einer Kette ist. Ansonsten ist er ein rep vom Typ 2. Wir benutzen folgende zwei Lemmata, um den Beweis zu vollenden. (Beweise der Lemmata siehe Anhang [1] 18

19 Lemma 4: Wenn es R 1 reps vom Typ 1 gibt, dann gibt es einen (k+1 Knoten Teilbaum T in G mit Ω ( R 1 Blättern. Daher nach Theorem 13 und 3 ist R ( G = Ω ( R 1. Lemma 5: Wenn es R 2 reps vom Typ 2 gibt, dann gibt es einen Teilgraphen H von G mit val ( H = Ω ( R 2. Nach Theorem 13 ist R ( G = Ω ( R 2. Die beiden Lemmata zeigen, dass es einen geeigneten Teilgraphen von G gibt, so dass aus der unteren Schranke eines Teilgraphen mit Rebenzerlegung die einheitliche Kompetitivität von FAR folgt. 6. Zusammenfassung und Ausblick 6.1. FiFo, LRU, FAR Wir haben gesehen, dass obwohl FiFo in der reinen kompetitiven Analyse optimal ist, FiFo in vielen Fällen schlecht abschneidet. Des weiteren haben wir gezeigt, dass LRU in vielen Fällen besser als k-kompetitiv und bei Bäumen sogar optimal ist. Als letztes wurde der Algorithmus FAR vorgestellt und wir haben bewiesen, dass er einheitlich kompetitiv ist. Allerdings setzte unsere Analyse voraus, dass der zugrundeliegende Access Graph bekannt ist. Nun werden wir eine Methode kennen lernen, Access Graphen dynamisch zu approximieren Dynamische Access Graphen Um universelle Algorithmen wie FAR auf das allgemeine Paging Problem anzuwenden, müssen wir eine gute dynamische Approximation an den Access Graphen entwickeln. Eine Art der Erstellung eines dynamischen gewichteten (ungerichteten Graphen ist folgende: Umso größer das Gewicht w einer Kante < u, v > ist, desto geringer ist die Chance, dass u (oder v die nächste angeforderte Seite nach v (oder u ist. Dieser Ansatz benutzt diese Gewichte als Distanzen, was die Idee von FAR indem Sinne erweitert, das man graphentheoretische Distanzen als Approximation von LFD hernimmt. Im folgenden eine Art, einen gewichteten Access Graphen G dynamisch zu erzeugen. Die Knoten von G entsprechen wieder den Seiten. Werden das erste Mal 2 Seiten (u und v erfolgreich hintereinander angefordert, dann erstellen wir eine Kante zwischen u und v mit dem Gewicht 1. Wird dieses Paar erfolgreich hintereinander angefragt, werden wir dessen Kantengewicht mit einem Faktor α < 1 multiplizieren. Ist das Gewicht dann noch >1, setzen wir es auf 1. Es werden periodisch, (z.b.: alle λk Anfragen alle Kanten um einen Faktor β > 1 erhöht. Dadurch berücksichtigt der Graph aktuellere Anfragen besser, da er graduell ältere Anfragen vergisst. Jeden Paging Algorithmus (z.b. FAR kann man auf einem Graphen laufen lassen der so entwickelt wird. Folgende FAR- Variation ist nach einer experimentellen Studie vielversprechend. 19

20 6.3. Algorithmus FARL FARL Algorithmus (Farthest to last request Sei G ein gewichteter Access Graph, der von vornherein bekannt sein kann oder durch einen dynamisch entwickelten Graphen entstanden sein kann. FARL verdrängt bei einem Seitenfehler die Seite u, so dass dist G (v, u maximal ist. Wobei v die zuletzt erfolgreich angefragte Seite ist. FARL ist eine sehr natürliche Approximation an LFD, jedoch kein Markieralgorithmus. Der kompetitive Faktor von FARL ist, bezogen auf den optimalen offline Algorithmus: θ(k log k. FARL ist um einiges besser als FAR, der wiederum mit der Performance von LRU zu vergleichen ist. Eine Erklärung dafür ist, dass das Markieren zwar vor worst-case-verhalten schützt, jedoch diese Markierungen eine schlechte Näherung an die in naher Zukunft gebrauchten Seiten darstellen Fazit Abschließend sei davor gewarnt, dass obwohl die kompetitive Analyse oft neue Erkenntnisse in dem wohl meiststudierten online Problem bringt, eine gute Seitenfehlerrate durch erhöhten Aufwand erkauft werden muss. In dieser Hinsicht ist LRU schon teuer und wird oft durch CLOCK approximiert. Das Modell der dynamischen Access Graphen beinhaltet nicht unwesentliche Speicher- und Rechenkosten. Literaturangaben: [1] Allan Borodin Ran El-Yaniv. Online Computation and Competitive Analysis Cambridge University Press 1998 [2] A. Borodin, S. Irani, P. Raghavan and B. Schieber Competitive paging with locality of reference. Journal of the Computer and System Sciences, 50(2: , 1995 [3] S.Irani, A. Karlin and S. Phillips. Strongly competitive algorithms for paging with locality of references. SIAM Journal on omputing, 25(3: ,1996 [4] A. Fiat and A. Karlin. Randomized and multifingers paging with locality of references. In Proceedings of the 27 th Annual ACM Symposium on Theory of Computing, pp , 1995 [5] J.A. Garay, I. S. Gopal, S. Kutten, Y. Mansour, and M. Yung. Efficient on-line call control algorithms. Journal of Algorithms, 23: , 1997 [6] M. Chrobak and J. Noga. LRU is better than FiFo. In Proceedings of the 9 th Annual ACM-SIAM Symposium on Discrete Algorithms, pp , January,

k-server-algorithmen Alexander Leider 4. Februar 2007

k-server-algorithmen Alexander Leider 4. Februar 2007 k-server-algorithmen Alexander Leider 4. Februar 2007 1 INHALTSVERZEICHNIS 2 Inhaltsverzeichnis 1 Einleitung 3 1.1 Online-Algorithmen....................... 3 1.2 Kompetitive Algorithmen....................

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

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

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

Steinerbäume. Seminarausarbeitung Hochschule Aalen Fakultät für Elektronik und Informatik Studiengang Informatik Schwerpunkt Software Engineering

Steinerbäume. Seminarausarbeitung Hochschule Aalen Fakultät für Elektronik und Informatik Studiengang Informatik Schwerpunkt Software Engineering Steinerbäume Seminarausarbeitung Hochschule Aalen Fakultät für Elektronik und Informatik Studiengang Informatik Schwerpunkt Software Engineering Verfasser Flamur Kastrati Betreuer Prof. Dr. habil. Thomas

Mehr

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

Spezialvorlesung Online-Algorithmen. Matthias Westermann Berthold Vöcking Christian Sohler Spezialvorlesung Online-Algorithmen Matthias Westermann Berthold Vöcking Christian Sohler Sommersemester 2005 Inhaltsverzeichnis 1 Einleitung 3 1.1 Grundbegriffe.............................. 4 1.2 Amortisierte

Mehr

4 Greedy-Algorithmen (gierige Algorithmen)

4 Greedy-Algorithmen (gierige Algorithmen) Greedy-Algorithmen (gierige Algorithmen) Greedy-Algorithmen werden oft für die exakte oder approximative Lösung von Optimierungsproblemen verwendet. Typischerweise konstruiert ein Greedy-Algorithmus eine

Mehr

Zeichnen von Graphen. graph drawing

Zeichnen von Graphen. graph drawing Zeichnen von Graphen graph drawing WS 2006 / 2007 Gruppe: D_rot_Ala0607 Christian Becker 11042315 Eugen Plischke 11042351 Vadim Filippov 11042026 Gegeben sei ein Graph G = (V; E) Problemstellung V E =

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

Begleitmaterial zur Vorlesung. Online-Algorithmen. Sommersemester 2007. Detlef Sieling. Universität Dortmund FB Informatik, LS 2 44221 Dortmund

Begleitmaterial zur Vorlesung. Online-Algorithmen. Sommersemester 2007. Detlef Sieling. Universität Dortmund FB Informatik, LS 2 44221 Dortmund Begleitmaterial zur Vorlesung Online-Algorithmen Sommersemester 2007 Detlef Sieling Universität Dortmund FB Informatik, LS 2 44221 Dortmund Von diesem Begleitmaterial dürfen einzelne Ausdrucke oder Kopien

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

Grundlagen der Informatik. Prof. Dr. Stefan Enderle NTA Isny

Grundlagen der Informatik. Prof. Dr. Stefan Enderle NTA Isny Grundlagen der Informatik Prof. Dr. Stefan Enderle NTA Isny 2 Datenstrukturen 2.1 Einführung Syntax: Definition einer formalen Grammatik, um Regeln einer formalen Sprache (Programmiersprache) festzulegen.

Mehr

16. All Pairs Shortest Path (ASPS)

16. All Pairs Shortest Path (ASPS) . All Pairs Shortest Path (ASPS) All Pairs Shortest Path (APSP): Eingabe: Gewichteter Graph G=(V,E) Ausgabe: Für jedes Paar von Knoten u,v V die Distanz von u nach v sowie einen kürzesten Weg a b c d e

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

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

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

Codierung, Codes (variabler Länge)

Codierung, Codes (variabler Länge) Codierung, Codes (variabler Länge) A = {a, b, c,...} eine endliche Menge von Nachrichten (Quellalphabet) B = {0, 1} das Kanalalphabet Eine (binäre) Codierung ist eine injektive Abbildung Φ : A B +, falls

Mehr

Teil II. Nichtlineare Optimierung

Teil II. Nichtlineare Optimierung Teil II Nichtlineare Optimierung 60 Kapitel 1 Einleitung In diesem Abschnitt wird die Optimierung von Funktionen min {f(x)} x Ω betrachtet, wobei Ω R n eine abgeschlossene Menge und f : Ω R eine gegebene

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

Online Algorithmen. 13. Mai 2004

Online Algorithmen. 13. Mai 2004 Online Algorithmen Christoph Jacob chjacob@inf.fu-berlin.de Andreas Rebenstorf rebensto@inf.fu-berlin.de 13. Mai 2004 Zusammenfassung: In Kapitel 1 beschreiben wir den Begriff des Online-Algorithmus zunächst

Mehr

Graphen: Einführung. Vorlesung Mathematische Strukturen. Sommersemester 2011

Graphen: Einführung. Vorlesung Mathematische Strukturen. Sommersemester 2011 Graphen: Einführung Vorlesung Mathematische Strukturen Zum Ende der Vorlesung beschäftigen wir uns mit Graphen. Graphen sind netzartige Strukturen, bestehend aus Knoten und Kanten. Sommersemester 20 Prof.

Mehr

Informatik II Bäume. Beispiele. G. Zachmann Clausthal University, Germany zach@in.tu-clausthal.de. Stammbaum. Stammbaum. Stammbaum

Informatik II Bäume. Beispiele. G. Zachmann Clausthal University, Germany zach@in.tu-clausthal.de. Stammbaum. Stammbaum. Stammbaum lausthal Beispiele Stammbaum Informatik II. Zachmann lausthal University, ermany zach@in.tu-clausthal.de. Zachmann Informatik - SS 06 Stammbaum Stammbaum / Parse tree, Rekursionsbaum Parse tree, Rekursionsbaum

Mehr

1. Musterlösung. Problem 1: Average-case-Laufzeit vs. Worst-case-Laufzeit

1. Musterlösung. Problem 1: Average-case-Laufzeit vs. Worst-case-Laufzeit Universität Karlsruhe Algorithmentechnik Fakultät für Informatik WS 06/07 ITI Wagner Musterlösung Problem : Average-case-Laufzeit vs Worst-case-Laufzeit pt (a) Folgender Algorithmus löst das Problem der

Mehr

Information Systems Engineering Seminar

Information Systems Engineering Seminar Information Systems Engineering Seminar Algorithmische Prüfung der Planarität eines Graphen Marcel Stüttgen, 22.10.2012 FH AACHEN UNIVERSITY OF APPLIED SCIENCES 1 Planarität - Definition Ein Graph heißt

Mehr

Eine Baumstruktur sei folgendermaßen definiert. Eine Baumstruktur mit Grundtyp Element ist entweder

Eine Baumstruktur sei folgendermaßen definiert. Eine Baumstruktur mit Grundtyp Element ist entweder Programmieren in PASCAL Bäume 1 1. Baumstrukturen Eine Baumstruktur sei folgendermaßen definiert. Eine Baumstruktur mit Grundtyp Element ist entweder 1. die leere Struktur oder 2. ein Knoten vom Typ Element

Mehr

Kürzeste Wege in Graphen. Maurice Duvigneau Otto-von-Guericke Universität Fakultät für Informatik

Kürzeste Wege in Graphen. Maurice Duvigneau Otto-von-Guericke Universität Fakultät für Informatik Kürzeste Wege in Graphen Maurice Duvigneau Otto-von-Guericke Universität Fakultät für Informatik Gliederung Einleitung Definitionen Algorithmus von Dijkstra Bellmann-Ford Algorithmus Floyd-Warshall Algorithmus

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

w a is die Anzahl der Vorkommen von a in w Beispiel: abba a = 2

w a is die Anzahl der Vorkommen von a in w Beispiel: abba a = 2 1 2 Notation für Wörter Grundlagen der Theoretischen Informatik Till Mossakowski Fakultät für Informatik Otto-von-Guericke Universität Magdeburg w a is die Anzahl der Vorkommen von a in w Beispiel: abba

Mehr

Grundlagen der Programmierung 2. Bäume

Grundlagen der Programmierung 2. Bäume Grundlagen der Programmierung 2 Bäume Prof. Dr. Manfred Schmidt-Schauÿ Künstliche Intelligenz und Softwaretechnologie 24. Mai 2006 Graphen Graph: Menge von Knoten undzugehörige (gerichtete oder ungerichtete)

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

Technische Informatik I. Übung 3 Speicherhierarchie. v t d 0 d 1 d 2 d 3 0 1 2 3. Technische Informatik I Übung 3. Technische Informatik I Übung 3

Technische Informatik I. Übung 3 Speicherhierarchie. v t d 0 d 1 d 2 d 3 0 1 2 3. Technische Informatik I Übung 3. Technische Informatik I Übung 3 Institut für Kommunikationsnetze und Rechnersysteme Technische Informatik I Paul J. Kühn, Matthias Meyer Übung 3 Speicherhierarchie Inhaltsübersicht Aufgabe 3.1 Daten-Cache Aufgabe 3.2 Virtueller Speicher

Mehr

Approximationsalgorithmen

Approximationsalgorithmen Ausarbeitung zum Thema Approximationsalgorithmen im Rahmen des Fachseminars 24. Juli 2009 Robert Bahmann robert.bahmann@gmail.com FH Wiesbaden Erstellt von: Robert Bahmann Zuletzt berarbeitet von: Robert

Mehr

Kompakte Graphmodelle handgezeichneter Bilder

Kompakte Graphmodelle handgezeichneter Bilder Kompakte Graphmodelle handgezeichneter Bilder Einbeziehung in Authentizierung und Bilderkennung Inhaltsverzeichnis Seminar Mustererkennung WS 006/07 Autor: Stefan Lohs 1 Einleitung 1 Das graphische Modell.1

Mehr

Seminararbeit für das SE Reine Mathematik- Graphentheorie

Seminararbeit für das SE Reine Mathematik- Graphentheorie Seminararbeit für das SE Reine Mathematik- Graphentheorie Der binäre Rang, der symplektische Graph, die Spektralzerlegung und rationale Funktionen Vortrag am 24.01.2012 Heike Farkas 0410052 Inhaltsverzeichnis

Mehr

Kompakte Graphmodelle handgezeichneter Bilder. Einbeziehung in Autentizierung und Bilderkennung

Kompakte Graphmodelle handgezeichneter Bilder. Einbeziehung in Autentizierung und Bilderkennung Kompakte Graphmodelle handgezeichneter Bilder Einbeziehung in Autentizierung und Bilderkennung Inhaltsverzeichnis 1 Einleitung Das graphische Model.1 Image Thinning................................. 3.

Mehr

Welche der folgenden Aussagen gelten? a) Im allgemeinen gilt: ein Deadlock tritt auf gdw. der Resource-Allocation Graph einen Zykel

Welche der folgenden Aussagen gelten? a) Im allgemeinen gilt: ein Deadlock tritt auf gdw. der Resource-Allocation Graph einen Zykel Aufgabe 1 (5 Punkte) (Multiple Choice) Beantworten Sie folgende Fragen durch Ankreuzen der richtigen Antwort. Für jede falsche Antwort wird ein Punkt abgezogen (es werden minimal 0 Punkte vergeben). Welche

Mehr

Algorithmen und Datenstrukturen Suchbaum

Algorithmen und Datenstrukturen Suchbaum Algorithmen und Datenstrukturen Suchbaum Matthias Teschner Graphische Datenverarbeitung Institut für Informatik Universität Freiburg SS 12 Motivation Datenstruktur zur Repräsentation dynamischer Mengen

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

368 4 Algorithmen und Datenstrukturen

368 4 Algorithmen und Datenstrukturen Kap04.fm Seite 368 Dienstag, 7. September 2010 1:51 13 368 4 Algorithmen und Datenstrukturen Java-Klassen Die ist die Klasse Object, ein Pfeil von Klasse A nach Klasse B bedeutet Bextends A, d.h. B ist

Mehr

Absolute Stetigkeit von Maßen

Absolute Stetigkeit von Maßen Absolute Stetigkeit von Maßen Definition. Seien µ und ν Maße auf (X, Ω). Dann heißt ν absolut stetig bezüglich µ (kurz ν µ ), wenn für alle A Ω mit µ(a) = 0 auch gilt dass ν(a) = 0. Lemma. Sei ν ein endliches

Mehr

Algorithmen für Peer-to-Peer-Netzwerke Sommersemester 2004 04.06.2004 7. Vorlesung

Algorithmen für Peer-to-Peer-Netzwerke Sommersemester 2004 04.06.2004 7. Vorlesung Algorithmen für Peer-to-Peer-Netzwerke Sommersemester 2004 04.06.2004 7. Vorlesung 1 Kapitel III Skalierbare Peer to Peer-Netzwerke Tapestry von Zhao, Kubiatowicz und Joseph (2001) Netzw erke 2 Tapestry

Mehr

Approximation in Batch and Multiprocessor Scheduling

Approximation in Batch and Multiprocessor Scheduling Approximation in Batch and Multiprocessor Scheduling Tim Nonner IBM Research Albert-Ludwigs-Universität Freiburg 3. Dezember 2010 Scheduling Zeit als Ressource und Beschränkung Formaler Gegeben sind Jobs

Mehr

Beispiel 11.2. Wenn p ein Polynom vom Grad größer gleich 1 ist, ist q : C Ĉ definiert durch q (z) =

Beispiel 11.2. Wenn p ein Polynom vom Grad größer gleich 1 ist, ist q : C Ĉ definiert durch q (z) = Funktionentheorie, Woche Funktionen und Polstellen. Meromorphe Funktionen Definition.. Sei U C offen und sei f : U gilt, nennt man f meromorph auf U: Ĉ eine Funktion. Wenn folgendes. P := f hat keine Häufungspunkte;.

Mehr

Algorithmen und Datenstrukturen

Algorithmen und Datenstrukturen Algorithmen und Datenstrukturen Dipl. Inform. Andreas Wilkens aw@awilkens.com Überblick Grundlagen Definitionen Elementare Datenstrukturen Rekursionen Bäume 2 1 Datenstruktur Baum Definition eines Baumes

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

Highway Hierarchies. Kristian Dannowski, Matthias Hoeschel

Highway Hierarchies. Kristian Dannowski, Matthias Hoeschel Highway Hierarchies Kristian Dannowski, Matthias Hoeschel Gliederung Einleitung / Bidirektional Dijkstra Intuition / Naive Strategie Konstruktion der Highway Hierarchie Suche in der Highway Hierarchie

Mehr

Approximationsalgorithmen: Klassiker I. Kombinatorische Optimierung Absolute Gütegarantie Graph-Coloring Clique Relative Gütegarantie Scheduling

Approximationsalgorithmen: Klassiker I. Kombinatorische Optimierung Absolute Gütegarantie Graph-Coloring Clique Relative Gütegarantie Scheduling Approximationsalgorithmen: Klassiker I Kombinatorische Optimierung Absolute Gütegarantie Graph-Coloring Clique Relative Gütegarantie Scheduling VO Approximationsalgorithmen WiSe 2011/12 Markus Chimani

Mehr

3.2 Binäre Suche. Usr/local/www/ifi/fk/menschen/schmid/folien/infovk.ppt 1

3.2 Binäre Suche. Usr/local/www/ifi/fk/menschen/schmid/folien/infovk.ppt 1 3.2 Binäre Suche Beispiel 6.5.1: Intervallschachtelung (oder binäre Suche) (Hier ist n die Anzahl der Elemente im Feld!) Ein Feld A: array (1..n) of Integer sei gegeben. Das Feld sei sortiert, d.h.: A(i)

Mehr

Seminar Analysis Konvexe Funktionen und einige wichtige Ungleichungen

Seminar Analysis Konvexe Funktionen und einige wichtige Ungleichungen Seminar Analysis Konvexe Funktionen und einige wichtige Ungleichungen Michael Schaeer 3.04.03 Abstract This seminar is about convex functions and several imortant ineualities. At the beginning the term

Mehr

Was bisher geschah Wissensrepräsentation und -verarbeitung in Zustandsübergangssystemen Constraint-Systemen Logiken Repräsentation von Mengen

Was bisher geschah Wissensrepräsentation und -verarbeitung in Zustandsübergangssystemen Constraint-Systemen Logiken Repräsentation von Mengen Was bisher geschah Wissensrepräsentation und -verarbeitung in Zustandsübergangssystemen Constraint-Systemen Logiken Repräsentation von Mengen aussagenlogischer Regeln: Wissensbasis (Kontextwissen): Formelmenge,

Mehr

Derivatebewertung im Binomialmodell

Derivatebewertung im Binomialmodell Derivatebewertung im Binomialmodell Roland Stamm 27. Juni 2013 Roland Stamm 1 / 24 Agenda 1 Einleitung 2 Binomialmodell mit einer Periode 3 Binomialmodell mit mehreren Perioden 4 Kritische Würdigung und

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

Codierung. Auszug aus dem Skript von Maciej Liśkiewicz und Henning Fernau

Codierung. Auszug aus dem Skript von Maciej Liśkiewicz und Henning Fernau Codierung Auszug aus dem Skript von Maciej Liśkiewicz und Henning Fernau Ein bisschen Informationstheorie Betrachten wir das folgende Problem: Wie lautet eine sinnvolle Definition für das quantitative

Mehr

Der linke Teilbaum von v enthält nur Schlüssel < key(v) und der rechte Teilbaum enthält nur Schlüssel > key(v)

Der linke Teilbaum von v enthält nur Schlüssel < key(v) und der rechte Teilbaum enthält nur Schlüssel > key(v) Ein Baum T mit Knotengraden 2, dessen Knoten Schlüssel aus einer total geordneten Menge speichern, ist ein binärer Suchbaum (BST), wenn für jeden inneren Knoten v von T die Suchbaumeigenschaft gilt: Der

Mehr

13. Binäre Suchbäume

13. Binäre Suchbäume 1. Binäre Suchbäume Binäre Suchbäume realiesieren Wörterbücher. Sie unterstützen die Operationen 1. Einfügen (Insert) 2. Entfernen (Delete). Suchen (Search) 4. Maximum/Minimum-Suche 5. Vorgänger (Predecessor),

Mehr

Prozesse und Scheduling

Prozesse und Scheduling Betriebssysteme für Wirtschaftsinformatiker SS04 KLAUSUR Vorbereitung mit Lösungen / Blatt 1 Prozesse und Scheduling Aufgabe 1 : Scheduling Gegeben seien die folgenden Prozesse und die Längen des jeweiligen

Mehr

Heuristiken im Kontext von Scheduling

Heuristiken im Kontext von Scheduling Heuristiken im Kontext von Scheduling Expertenvortrag CoMa SS 09 CoMa SS 09 1/35 Übersicht Motivation Makespan Scheduling Lokale Suche Weitere Metaheuristiken Zusammenfassung Literatur CoMa SS 09 2/35

Mehr

3. Das Auslastungsspiel

3. Das Auslastungsspiel Literatur: 3. Das Auslastungsspiel R. W. Rosenthal. A class of games possessing pure-strategy Nash equilibria. International Journal of Game Theory 2, pp. 65 67. 1973. D. S. Johnson, Chr. H. Papadimitriou,

Mehr

Vorlesung 04.12.2006: Binäre Entscheidungsdiagramme (BDDs) Dr. Carsten Sinz

Vorlesung 04.12.2006: Binäre Entscheidungsdiagramme (BDDs) Dr. Carsten Sinz Vorlesung 04.12.2006: Binäre Entscheidungsdiagramme (BDDs) Dr. Carsten Sinz Datenstruktur BDD 1986 von R. Bryant vorgeschlagen zur Darstellung von aussagenlogischen Formeln (genauer: Booleschen Funktionen)

Mehr

1 Vom Problem zum Programm

1 Vom Problem zum Programm 1 Vom Problem zum Programm Ein Problem besteht darin, aus einer gegebenen Menge von Informationen eine weitere (bisher unbekannte) Information zu bestimmen. 1 Vom Problem zum Programm Ein Algorithmus ist

Mehr

a n + 2 1 auf Konvergenz. Berechnen der ersten paar Folgenglieder liefert:

a n + 2 1 auf Konvergenz. Berechnen der ersten paar Folgenglieder liefert: Beispiel: Wir untersuchen die rekursiv definierte Folge a 0 + auf Konvergenz. Berechnen der ersten paar Folgenglieder liefert: ( ) (,, 7, 5,...) Wir können also vermuten, dass die Folge monoton fallend

Mehr

Gibt es verschiedene Arten unendlich? Dieter Wolke

Gibt es verschiedene Arten unendlich? Dieter Wolke Gibt es verschiedene Arten unendlich? Dieter Wolke 1 Zuerst zum Gebrauch des Wortes unendlich Es wird in der Mathematik in zwei unterschiedlichen Bedeutungen benutzt Erstens im Zusammenhang mit Funktionen

Mehr

Rekursionen (Teschl/Teschl 8.1-8.2)

Rekursionen (Teschl/Teschl 8.1-8.2) Rekursionen (Teschl/Teschl 8.1-8.2) Eine Rekursion kter Ordnung für k N ist eine Folge x 1, x 2, x 3,... deniert durch eine Rekursionsvorschrift x n = f n (x n 1,..., x n k ) für n > k, d. h. jedes Folgenglied

Mehr

3. Übung Algorithmen I

3. Übung Algorithmen I Timo Bingmann, Christian Schulz INSTITUT FÜR THEORETISCHE INFORMATIK, PROF. SANDERS 1 KIT Timo Universität Bingmann, des LandesChristian Baden-Württemberg Schulz und nationales Forschungszentrum in der

Mehr

Beispiel. Bsp.: Betrachte Schlussweise in: (3) folgt aus (1) und (2), siehe z.b. Resolutionsregel. was ist mit folgender Schlußweise:

Beispiel. Bsp.: Betrachte Schlussweise in: (3) folgt aus (1) und (2), siehe z.b. Resolutionsregel. was ist mit folgender Schlußweise: Theoretische Informatik: Logik, M. Lange, FB16, Uni Kassel: 5.4 Prädikatenlogik mit Gleichheit Resolution 192 Beispiel Bsp.: Betrachte Schlussweise in: 1 Wenn es regnet, dann wird die Straße nass. R N

Mehr

Integration geometrischer und fotogrammetrischer Information zum Wiederfinden von Bildern

Integration geometrischer und fotogrammetrischer Information zum Wiederfinden von Bildern Integration geometrischer und fotogrammetrischer Information zum Wiederfinden von Bildern Björn Burow SE Mustererkennung in Bildern und 3D-Daten Lehrstuhl Graphische Systeme BTU Cottbus Inhaltsübersicht

Mehr

Idee: Wenn wir beim Kopfknoten zwei Referenzen verfolgen können, sind die Teillisten kürzer. kopf Eine Datenstruktur mit Schlüsselwerten 1 bis 10

Idee: Wenn wir beim Kopfknoten zwei Referenzen verfolgen können, sind die Teillisten kürzer. kopf Eine Datenstruktur mit Schlüsselwerten 1 bis 10 Binäre Bäume Bäume gehören zu den wichtigsten Datenstrukturen in der Informatik. Sie repräsentieren z.b. die Struktur eines arithmetischen Terms oder die Struktur eines Buchs. Bäume beschreiben Organisationshierarchien

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

Spieltheorie Teil 2. Tone Arnold. Universität des Saarlandes. 28. April 2008

Spieltheorie Teil 2. Tone Arnold. Universität des Saarlandes. 28. April 2008 Spieltheorie Teil 2 Tone Arnold Universität des Saarlandes 28. April 2008 Tone Arnold (Universität des Saarlandes) Spieltheorie Teil 2 28. April 2008 1 / 66 Sequenzielle Spiele: Strategie vs. Aktion Bisher:

Mehr

Kap. 4.2: Binäre Suchbäume

Kap. 4.2: Binäre Suchbäume Kap. 4.2: Binäre Suchbäume Professor Dr. Lehrstuhl für Algorithm Engineering, LS11 Fakultät für Informatik, TU Dortmund 11. VO DAP2 SS 2009 26. Mai 2009 1 Zusätzliche Lernraumbetreuung Morteza Monemizadeh:

Mehr

Seminar künstliche Intelligenz

Seminar künstliche Intelligenz Seminar künstliche Intelligenz Das Kürzeste-Wege-Problem in öffentlichen Verkehrsnetzen Stefan Görlich mi5517 25.05.2005 Inhalt 1. Einleitung 1.1 Problemstellung 3 1.2 Zielsetzung 3 1.3 Die Suche in öffentlichen

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

Datenstrukturen und Algorithmen

Datenstrukturen und Algorithmen Datenstrukturen und Algorithmen VO 708.031 Bäume robert.legenstein@igi.tugraz.at 1 Inhalt der Vorlesung 1. Motivation, Einführung, Grundlagen 2. Algorithmische Grundprinzipien 3. Sortierverfahren 4. Halden

Mehr

Formaler Entwurf mit Event-B Die Eventbank

Formaler Entwurf mit Event-B Die Eventbank Institut für Theoretische Informatik Anwendungsorientierte Formale Verifikation Vorlesung Anwendung Formaler Verifikation SS 2015, 9.6.15 Dr. V. Klebanov, Dr. M. Ulbrich Formaler Entwurf mit Event-B Die

Mehr

Die Cantor-Funktion. Stephan Welz

Die Cantor-Funktion. Stephan Welz Die Cantor-Funktion Stephan Welz Ausarbeitung zum Vortrag im Proseminar Überraschungen und Gegenbeispiele in der Analysis (Sommersemester 2009, Leitung PD Dr. Gudrun Thäter) Zusammenfassung: In dieser

Mehr

Verteilte Systeme CS5001

Verteilte Systeme CS5001 CS5001 Th. Letschert TH Mittelhessen Gießen University of Applied Sciences Einführung Administratives Unterlagen Verwendbar: Master of Science (Informatik) Wahlpflichtfach (Theorie-Pool) Unterlagen Folien:

Mehr

Entscheidungsprobleme. Berechenbarkeit und Komplexität Entscheidbarkeit und Unentscheidbarkeit. Die Entscheidbarkeit von Problemen

Entscheidungsprobleme. Berechenbarkeit und Komplexität Entscheidbarkeit und Unentscheidbarkeit. Die Entscheidbarkeit von Problemen Berechenbarkeit und Komlexität Entscheidbarkeit und Unentscheidbarkeit Wolfgang Schreiner Wolfgang.Schreiner@risc.uni-linz.ac.at Research Institute for Symbolic Comutation (RISC) Johannes Keler University,

Mehr

x 2 2x + = 3 + Es gibt genau ein x R mit ax + b = 0, denn es gilt

x 2 2x + = 3 + Es gibt genau ein x R mit ax + b = 0, denn es gilt - 17 - Die Frage ist hier also: Für welche x R gilt x = x + 1? Das ist eine quadratische Gleichung für x. Es gilt x = x + 1 x x 3 = 0, und man kann quadratische Ergänzung machen:... ( ) ( ) x x + = 3 +

Mehr

Programmiertechnik II

Programmiertechnik II Analyse von Algorithmen Algorithmenentwurf Algorithmen sind oft Teil einer größeren Anwendung operieren auf Daten der Anwendung, sollen aber unabhängig von konkreten Typen sein Darstellung der Algorithmen

Mehr

1. Einfach verkettete Liste unsortiert 2. Einfach verkettete Liste sortiert 3. Doppelt verkettete Liste sortiert

1. Einfach verkettete Liste unsortiert 2. Einfach verkettete Liste sortiert 3. Doppelt verkettete Liste sortiert Inhalt Einführung 1. Arrays 1. Array unsortiert 2. Array sortiert 3. Heap 2. Listen 1. Einfach verkettete Liste unsortiert 2. Einfach verkettete Liste sortiert 3. Doppelt verkettete Liste sortiert 3. Bäume

Mehr

Von der UML nach C++

Von der UML nach C++ 22 Von der UML nach C++ Dieses Kapitel behandelt die folgenden Themen: Vererbung Interfaces Assoziationen Multiplizität Aggregation Komposition Die Unified Modeling Language (UML) ist eine weit verbreitete

Mehr

Grundlagen verteilter Systeme

Grundlagen verteilter Systeme Universität Augsburg Institut für Informatik Prof. Dr. Bernhard Bauer Stephan Roser Viviane Schöbel Wintersemester 07/08 Übungsblatt 5 08.01.08 Grundlagen verteilter Systeme Lösungsvorschlag Aufgabe 1:

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

Vorlesung 3 MINIMALE SPANNBÄUME

Vorlesung 3 MINIMALE SPANNBÄUME Vorlesung 3 MINIMALE SPANNBÄUME 72 Aufgabe! Szenario: Sie arbeiten für eine Firma, die ein Neubaugebiet ans Netz (Wasser, Strom oder Kabel oder...) anschließt! Ziel: Alle Haushalte ans Netz bringen, dabei

Mehr

Informatik-Sommercamp 2012. Mastermind mit dem Android SDK

Informatik-Sommercamp 2012. Mastermind mit dem Android SDK Mastermind mit dem Android SDK Übersicht Einführungen Mastermind und Strategien (Stefan) Eclipse und das ADT Plugin (Jan) GUI-Programmierung (Dominik) Mastermind und Strategien - Übersicht Mastermind Spielregeln

Mehr

5.3 Sampling-Algorithmen

5.3 Sampling-Algorithmen 5.3 Sampling-Algorithmen Vorgehensweise in der Statistik: Gesamtheit von Werten durch kleine, möglichst repräsentative Stichprobe darstellen. (Vgl. z. B. Hochrechnungen für Wahlergebnisse.) Genauer: Gegeben

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

DATENSTRUKTUREN UND ZAHLENSYSTEME

DATENSTRUKTUREN UND ZAHLENSYSTEME DATENSTRUKTUREN UND ZAHLENSYSTEME RALF HINZE Institute of Information and Computing Sciences Utrecht University Email: ralf@cs.uu.nl Homepage: http://www.cs.uu.nl/~ralf/ March, 2001 (Die Folien finden

Mehr

1 Einleitung. 1.1 Caching von Webanwendungen. 1.1.1 Clientseites Caching

1 Einleitung. 1.1 Caching von Webanwendungen. 1.1.1 Clientseites Caching 1.1 Caching von Webanwendungen In den vergangenen Jahren hat sich das Webumfeld sehr verändert. Nicht nur eine zunehmend größere Zahl an Benutzern sondern auch die Anforderungen in Bezug auf dynamischere

Mehr

ax 2 + bx + c = 0, (4.1)

ax 2 + bx + c = 0, (4.1) Kapitel 4 Komplexe Zahlen Wenn wir uns auf die reellen Zahlen beschränken, ist die Operation des Wurzelziehens (also die Umkehrung der Potenzierung) nicht immer möglich. Zum Beispiel können wir nicht die

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

Datenstruktur, die viele Operationen dynamischer Mengen unterstützt

Datenstruktur, die viele Operationen dynamischer Mengen unterstützt Algorithmen und Datenstrukturen 265 10 Binäre Suchbäume Suchbäume Datenstruktur, die viele Operationen dynamischer Mengen unterstützt Kann als Wörterbuch, aber auch zu mehr eingesetzt werden (Prioritätsschlange)

Mehr

Amerikanischen Optionen

Amerikanischen Optionen Die Bewertung von Amerikanischen Optionen im Mehrperiodenmodell Universität-Gesamthochschule Paderborn Fachbereich 17 Seminar Finanzmathematik SS 2001 Referentin: Christiane Becker-Funke Dozent: Prof.

Mehr

Vorlesung Algorithmische Geometrie. Streckenschnitte. Martin Nöllenburg 19.04.2011

Vorlesung Algorithmische Geometrie. Streckenschnitte. Martin Nöllenburg 19.04.2011 Vorlesung Algorithmische Geometrie LEHRSTUHL FÜR ALGORITHMIK I INSTITUT FÜR THEORETISCHE INFORMATIK FAKULTÄT FÜR INFORMATIK Martin Nöllenburg 19.04.2011 Überlagern von Kartenebenen Beispiel: Gegeben zwei

Mehr

4. Relationen. Beschreibung einer binären Relation

4. Relationen. Beschreibung einer binären Relation 4. Relationen Relationen spielen bei Datenbanken eine wichtige Rolle. Die meisten Datenbanksysteme sind relational. 4.1 Binäre Relationen Eine binäre Relation (Beziehung) R zwischen zwei Mengen A und B

Mehr

Zur Vereinfachung betrachten wir nun nur noch Funktionen f, die einen Funktionswert f nµberechnen. Sie werden alle in einer Tabelle dargestellt:

Zur Vereinfachung betrachten wir nun nur noch Funktionen f, die einen Funktionswert f nµberechnen. Sie werden alle in einer Tabelle dargestellt: Informatik 13: Gierhardt Theoretische Informatik III Berechenbarkeit Nicht-berechenbare Funktionen Nach der Church-Turing-These kann alles, was berechenbar ist, mit einer Turing-Maschine oder einer While-Maschine

Mehr

Zugelassenes Hilfsmittel: nicht programmierbarer Taschenrechner.

Zugelassenes Hilfsmittel: nicht programmierbarer Taschenrechner. Bachelor-Kursprüfung Kapitalmarkttheorie Schwerpunktmodul Finanzmärkte 6 Kreditpunkte WS 2014/15 23.2.2015 Prof. Dr. Lutz Arnold Bitte gut leserlich ausfüllen: Name: Vorname: Matr.-nr.: Wird vom Prüfer

Mehr

Binäre Bäume Darstellung und Traversierung

Binäre Bäume Darstellung und Traversierung Binäre Bäume Darstellung und Traversierung Name Frank Bollwig Matrikel-Nr. 2770085 E-Mail fb641378@inf.tu-dresden.de Datum 15. November 2001 0. Vorbemerkungen... 3 1. Terminologie binärer Bäume... 4 2.

Mehr

Branch-and-Bound. Wir betrachten allgemein Probleme, deren Suchraum durch Bäume dargestellt werden kann. Innerhalb des Suchraums suchen wir

Branch-and-Bound. Wir betrachten allgemein Probleme, deren Suchraum durch Bäume dargestellt werden kann. Innerhalb des Suchraums suchen wir Effiziente Algorithmen Lösen NP-vollständiger Probleme 289 Branch-and-Bound Wir betrachten allgemein Probleme, deren Suchraum durch Bäume dargestellt werden kann. Innerhalb des Suchraums suchen wir 1.

Mehr

Verfahren zur Berechnung von Routen zur Gewährleistung von Ende-zu-Ende QoS

Verfahren zur Berechnung von Routen zur Gewährleistung von Ende-zu-Ende QoS Verfahren zur Berechnung von Routen zur Gewährleistung von Ende-zu-Ende QoS Dezember 007 Dipl.-Ing. Stefan Abu Salah Dipl.-Ing. Achim Marikar QoS (Quality of Service): Sicherstellung der Qualität Zeitkritische

Mehr