• Keine Ergebnisse gefunden

Kapitel 1: Suchprobleme (Effiziente Algorithmen, WS 2019) Gerhard Woeginger

N/A
N/A
Protected

Academic year: 2022

Aktie "Kapitel 1: Suchprobleme (Effiziente Algorithmen, WS 2019) Gerhard Woeginger"

Copied!
56
0
0

Wird geladen.... (Jetzt Volltext ansehen)

Volltext

(1)

Kapitel 1: Suchprobleme

(Effiziente Algorithmen, WS 2019) Gerhard Woeginger

WS 2019, RWTH

(2)

Suchprobleme

Bitmuster

Graph-Zusammenhang Gr¨osste Zahl

Maximum und Minimum Zweitgr¨osste Zahl Median (worst case) Median (randomisiert)

(3)

Zum Aufw¨ armen:

Suche nach Bitmustern

(4)

Ein einzelnes Bit (1): Problemstellung

Algorithmisches Problem: Bitmuster #1 Eingabe:Ein BitstringB[1, . . . ,7]der L¨ange7 Frage:Ist mindestens eines dieser Bits auf1?

Teure Operation: Abfrage eines Bits

Ziel: Antwort mit m¨oglichst wenig Bitabfragen finden

Frage

Wie sieht ein guter Algorithmus fuer dieses Problem aus, der auch im Worst Case nur wenige Bitabfragen macht?

(5)

Ein einzelnes Bit (2): Resultat

Wenn die ersten sechs abgefragten Bits s¨amtlich gleich0sind, muss auch das siebente Bit abgefragt werden:

Satz

Es existiert kein Algorithmus,

der im Worst Case mit weniger als 7Abfragen auskommt.

F¨ur das entsprechende Problem f¨ur Bitstrings der L¨angengilt:

Satz

Es existiert kein Algorithmus,

der im Worst Case mit weniger als nAbfragen auskommt.

(6)

Zwei Bits (1): Problemstellung

Algorithmisches Problem: Bitmuster #2 Eingabe:Ein BitstringB[1, . . . ,5]der L¨ange5 Frage:Enth¨altB den Teilstring01?

Teure Operation: Abfrage eines Bits

Ziel: Antwort mit m¨oglichst wenig Bitabfragen finden

Frage

Wie sieht ein guter Algorithmus fuer dieses Problem aus, der auch im Worst Case nur wenige Bitabfragen macht?

(7)

Zwei Bits (2): Algorithmus

Algorithmus 1. AbfrageB[2]

2. AbfrageB[4]

Danach unterscheiden wir vier F¨alle:

B =x0x0x: BitB[1]irrelevant B =x1x1x: BitB[5]irrelevant B =x1x0x: BitB[3]irrelevant B =x0x1x: Antwort = JA

Ergo: Es existiert ein Algorithmus, der mit h¨ochstens4Abfragen auskommt.

(8)

Zwei Bits (3): Strings mit ungerader L¨ ange

Nun betrachten wir die Suche nach dem Teilstring01in Strings der L¨angen.

Algorithmus f¨ur ungeradesn

Wir fragen die BitsB[2],B[4], . . . ,B[n−1] ab.

Danach unterscheiden wir vier F¨alle:

B ∈Σ: Antwort = JA B ∈(Σ0)Σ: BitB[1]irrelevant B ∈(Σ1)Σ: BitB[n]irrelevant

B ∈Σ1Σ0Σ: Bit zwischen1und0irrelevant

Ergo: Es existiert ein Algorithmus, der mit≤n−1Abfragen auskommt.

(9)

Zwei Bits (4a): Strings mit gerader L¨ ange

Eine b¨osartige Strategie, die Bitabfragen zu beantworten.

Adversary Strategie f¨ur geradesn

1. Definiere Dummybits B[0] =1undB[n+1] =0.

Setze`:=0und r :=n+1.

2. Wenn Abfrage q≤`: Antworte B[q] =1 Wenn Abfrageq≥r: Antworte B[q] =0 3. Wenn Abfrage ` <q<r:

Wenn q−`ungerade, antworteB[q] =0und setzer :=q.

Wenn r−qungerade, antworteB[q] =1und setze `:=q.

Invarianten:

Alle Bits links von `sind1, alle Bits rechts vonr sind0 Alle Bits zwischen`undr sind unbekannt

(10)

Zwei Bits (4b): Strings mit gerader L¨ ange

Eine b¨osartige Strategie, die Bitabfragen zu beantworten.

Adversary Strategie f¨ur geradesn

1. Definiere Dummybits B[0] =1undB[n+1] =0.

Setze`:=0und r :=n+1.

2. Wenn Abfrage q≤`: Antworte B[q] =1 Wenn Abfrageq≥r: Antworte B[q] =0 3. Wenn Abfrage ` <q<r:

Wenn q−`ungerade, antworteB[q] =0und setzer :=q.

Wenn r−qungerade, antworteB[q] =1und setze `:=q.

Der Adversary konstruiert eine NEIN Instanz (ohne Teilstring01) Der Algorithmus muss alle Bits links von`erfragen

Der Algorithmus muss alle Bits rechts vonr erfragen Der Algorithmus muss alle Bits zwischen `undr erfragen

(11)

Zwei Bits (5): Zusammenfassung

Der Adversary (f¨ur Strings mit gerader L¨ange) zwingt jeden Algorithmus, allenBits abzufragen:

Satz

F¨ur geradesnexistiert kein Algorithmus,

der im Worst Case mit weniger als nAbfragen auskommt.

Satz

F¨ur jedes ungeradenexistiert ein Algorithmus,

der im Worst Case mit h¨ochstensn−1Abfragen auskommt.

(12)

Graph-Zusammenhang

(13)

Graph-Zusammenhang (1): Problemstellung

Algorithmisches Problem: Graph-Zusammenhang

Eingabe:Ein ungerichteter GraphG = (V,E)mitnKnoten Frage:Ist dieser Graph zusammenh¨angend?

Teure Operation: Abfrage einer Kante/Nicht-Kante zwischen zwei Knoten

Ziel: Antwort mit m¨oglichst wenig Abfragen finden

Frage

Wie sieht ein guter Algorithmus fuer dieses Problem aus, der auch im Worst Case nur wenige Abfragen macht?

(14)

Adversary Strategie (1)

Eine b¨osartige Strategie, die Abfragen zu beantworten.

1. DefiniereE+:=∅ undE?:=V ×V.

2. Die Abfrage nach einer Kante e wird wie folgt beantwortet:

Wenn(V,E?− {e})zusammenh¨angend ist, so l¨oschee ausE? und antworte NEIN.

Wenn(V,E?− {e})nicht zusammenh¨angend ist, so f¨ugee inE+ ein und antworte JA.

Beobachtungen:

Alle Kanten inE+ sind inG

Kanten ausserhalb vonE? sind nicht inG Es gilt E+⊆E?

(15)

Adversary Strategie (2)

Invarianten:

Der Graph(V,E?)ist zusammenh¨angend

Wenn(V,E?)einen KreisC enth¨alt, so ist keine Kante vonC inE+ Der Graph(V,E+)ist kreisfrei

Wenn E+6=E?, dann ist(V,E+)nicht zusammenh¨angend

Satz

Der Adversary zwingt jeden Algorithmus, alle Kanten abzufragen.

(16)

Evasive Graph-Eigenschaften (1)

Allgemeines Suchspiel:

Ein Algorithmus soll mit m¨oglichst wenig Kantenabfragen

herausfinden, ob ein Graph mitnKnoten eine EigenschaftP besitzt.

Ein Adversary beantwortet die Kantenabfragen und versucht, das Spielende m¨oglichst lange hinauszuz¨ogern.

Beispiele f¨ur EigenschaftP:

zusammenh¨angend; nicht zusammenh¨angend; kreisfrei; planar;

ohne Kanten; enth¨alt Knoten vom Grad 3; Baum;

Definition

Eine Graph-EigenschaftP heisstevasiv, wenn der Adversary erzwingen kann, dass der Algorithmus alle n2

Kanten abfragt.

(17)

Evasive Graph-Eigenschaften (2)

Definition

Eine Graph-EigenschaftP heisstnicht-trivial,

wenn es mindestens einen Graphen gibt, derP hat, und wenn es mindestens einen Graphen gibt, derP nicht hat.

Eine Graph-EigenschaftP heisstmonoton,

wenn f¨ur jeden GraphenG = (V,E)und jede TeilmengeE0⊆E gilt:

Wenn G = (V,E)EigenschaftP hat, so auch der Graph(V,E0).

Beispiel: Ist “kreisfrei” monoton?

Beispiel: Ist “zusammenh¨angend” monoton?

Beispiel: Ist “nicht zusammenh¨angend” monoton?

(18)

Evasive Graph-Eigenschaften (3)

St˚al Aanderaa, Richard M. Karp, und Arnold L. Rosenberg vermuten:

Aanderaa-Karp-Rosenberg conjecture (1974)

Jede nicht-triviale, monotone Graph-Eigenschaft ist evasiv.

Alle F¨alle, in denenn=pk eine Primzahl-Potenz ist, sind bewiesen.

(19)

Zum Aufw¨ armen:

Gr¨ osste Zahl

(20)

Maximum (1): Problemstellung

Algorithmisches Problem: Maximum Eingabe:Ganze Zahlena1,a2, . . . ,an Gesucht:Das Maximummax{a1,a2, . . . ,an}

Teure Operation: Vergleich von zwei Zahlenai undaj Liefert ai <aj oderai =aj oderai >aj als Antwort Kein Zugriff auf den Zahlenwert von ai

Verwaltungsoperationen (FOR-Loops; Indexoperationen;

Rechenoperationen; etc) sind gratis

Frage

Wie sieht ein guter Algorithmus fuer dieses Problem aus, der auch im Worst Case nur wenige Vergleiche macht?

(21)

Maximum (2): Algorithmus

1 k= n;

2 for i= 1 to n-1 do

3 if (a[i] ¿ a[k]) then k= i;

4

5 return k;

Satz

Das Maximum Problem

kann mitn−1Vergleichen (im Worst Case) gel¨ost werden.

Frage

Gibt es einen besseren Algorithmus?

(22)

Maximum (3): Untere Schranke

Betrachte beliebigen AlgorithmusAf¨ur das Maximum Problem Konstruiere HilfsgraphenG = (V,E)mitV ={1,2, . . . ,n}

Am Anfang ist die KantenmengeE leer

Wenn AlgorithmusAdie Zahlenai und aj vergleicht, f¨ugen wir die Kante{i,j}ein

SolangeG = (V,E)nicht zusammenh¨angend ist,

hatAdas Maximum Problem noch nicht gel¨ost (Warum?)

(Einfacher) Satz aus der Graphentheorie

WennG = (V,E)zusammenh¨angend, dann|E| ≥ |V| −1.

Ergo: Dien−1Vergleiche sind bereits bestm¨oglich

(23)

Maximum und Minimum

(24)

Max+Min (1): Problemstellung

Problem: Max+Min

Eingabe:Ganze Zahlena1,a2, . . . ,an

Gesucht:max{a1,a2, . . . ,an} undmin{a1,a2, . . . ,an} Wir nehmen an:nist eine gerade Zahl mitn=2q Algorithmus:

Teile die Zahlen inq Paare auf

Bestimme in jedem Paar die gr¨ossere Zahl (Gewinner) und die kleinere Zahl (Verlierer)

Bestimme das Minimum der Verlierer Bestimme das Maximum der Gewinner Satz

Das Max+Min Problem kann mit3q−2Vergleichen gel¨ost werden.

(25)

Max+Min (2a): Untere Schranke

Klassifikation der Zahlen in vier Typen:

U: unber¨uhrt; wurde noch nie verglichen

G: Gewinner; hat einen Vergleich gewonnen, noch nie verloren V: Verlierer; hat einen Vergleich verloren, noch nie gewonnen E: Eliminiert; hat Vergleich gewonnen und Vergleich verloren Gewichte:

Jede Zahl inU hat Gewicht2 Jede Zahl inG hat Gewicht1 Jede Zahl inV hat Gewicht1 Jede Zahl inE hat Gewicht 0

(26)

Max+Min (2b): Untere Schranke

Grundidee

Wir betrachten einen beliebigen AlgorithmusA, und

lassen einen b¨osartigen Gegenspieler (“Adversary”) gegen Aarbeiten.

Der Adversary beantwortet Vergleiche derart, dass m¨oglichst wenig Gewicht verloren geht (aber konsistent mit vorherigen Vergleichen)

U versusU: Gewichtsverlust =2 V versusV: Gewichtsverlust =1 G versusG: Gewichtsverlust =1 U versusG/V/E: Gewichtsverlust = 1 E versusG/V/E: Gewichtsverlust =0 G versusV: Gewichtsverlust =0

(27)

Max+Min (2c): Untere Schranke

Definition

v0 := Anzahl der Vergleiche, die Gesamtgewicht nicht senken v1 := Anzahl der Vergleiche, die Gesamtgewicht um1senken v2 := Anzahl der Vergleiche, die Gesamtgewicht um2senken

Gesamtgewicht f¨allt von 2n(am Anfang) auf2(am Ende) Ergo: v1+2v2=2n−2=4q−2

Nur U versusU Vergleiche senken Gewicht um2 Ergo: v2≤n/2=q

Daher gilt:v1+v2 = 4q−2−v2 ≥ 4q−2−q Satz

(28)

Zweitgr¨ osste Zahl

(29)

Zweitgr¨ osste Zahl (1): Problemstellung

Problem: Zweitgr¨osste Zahl

Eingabe:Ganze Zahlena1,a2, . . . ,an

Gesucht:Die gr¨osste und die zweitgr¨osste Zahl untera1,a2, . . . ,an

Wir nehmen an:nist eine Zweierpotenz mitn=2q Algorithmus:

Wir schreibena1,a2, . . . ,an in die Bl¨atter eines Bin¨arbaumes Jeder Vaterknoten enth¨alt das Maximum der beiden S¨ohne Die gr¨osste Zahl steht in der Wurzel

Die zweitgr¨osste Zahl hat Vergleich gegen gr¨osste Zahl verloren Satz

q

(30)

Zweitgr¨ osste Zahl (2a): Untere Schranke

Jede Zahlai wird als Partikel mit gewisser Energie angesehen Die Anfangsenergie jedes Partikels ist 1

Werden zwei Zahlen mit einander verglichen, so erh¨alt Gewinner gesamte Energie des Verlierers dazu (Verlierer hat dann Energie 0) Anmerkungen:

Die Gesamtenergie bleibt konstant.

Am Ende hat Maximum die gesamte Energie n=2q angesammelt;

alle anderen Partikel haben Energie0 Grundidee

Der Adversary beantwortet die Vergleiche immer derart,

dass der Partikel mit der h¨oheren Energie den Vergleich gewinnt.

(Tiebreaking = beliebig; Partikel mit Energie0= konsistent)

(31)

Zweitgr¨ osste Zahl (2b): Untere Schranke

Am Ende hat das Maximum an vielen Vergleichen teilgenommen:

Vor seinem letzten Vergleich hatte Maximum Energie ≥2q−1 Vor dem vorletzten Vergleich hatte Maximum Energie≥2q−2 Etc. Etc.

Ergo: Maximum hat mindestensq Vergleiche gewonnen

Analyse

Jedes Nicht-Maximum hat mindestens einen Vergleich verloren.

Jede nicht-zweitgr¨osste Zahl, die gegen Maximum verloren hat, hat mindestens einen weiteren Vergleich verloren.

Ergo: Mindestens(2q−1) + (q−1)Vergleiche

(32)

k -kleinste Zahl und Median

(33)

k -kleinste Zahl: Problemstellung

Problem:k-kleinste Zahl

Eingabe:Ganze Zahlena1,a2, . . . ,an undk Gesucht:Die k-kleinste Zahl untera1,a2, . . . ,an

k =1: Minimum k =n: Maximum k =n/2: Median

Problem: Median

Eingabe:Ganze Zahlena1,a2, . . . ,an

Gesucht:Der Median der Zahlena1,a2, . . . ,an

(34)

k -kleinste Zahl: Ein schneller Algorithmus

Einfache Idee:

Sortiere die Zahlen a1,a2, . . . ,an Gib diek-te Zahl in der Sortierung aus

Satz

Diek-kleinste Zahl und der Median

k¨onnen mitO(nlogn)Vergleichen gefunden werden.

(35)

Median: Untere Schranke (1)

Der Adversary h¨alt folgende Struktur aufrecht:

Die Zahlena1,a2, . . . ,an sind in drei Mengen aufgeteilt.

Die MengeG der grossen Zahlen ist total geordnet.

Die MengeK der kleinen Zahlen ist total geordnet.

Die MengeM der mittleren Zahlen besteht aus vergleichbaren Paaren und Einzelelementen.

F¨ur allek ∈K, m∈M,g∈G giltk <m<g

G K

(36)

Median: Untere Schranke (2a)

Angenommen, der Algorithmus m¨ochte wissen, wie sich die beiden Elementex undy zu einander verhalten:

Fallsx,y ∈K, oderx,y ∈G,

so antwortet der Adversary gem¨ass der totalen Ordnung.

Fallsx∈K undy ∈M∪G, oderx∈M undy ∈G, so antwortet der Adversary “x<y”.

In den verbleibenden F¨allen giltx,y∈M.

(37)

Median: Untere Schranke (2b)

Wir definieren einen Hilfswertα(x)f¨ur jedesx ∈M:

α(x) =0, fallsx Einzelement

α(x) =−1, fallsx kleines Element in Paar α(x) = +1, fallsx grosses Element in Paar

Muss der Adversary zwei Elementex undy mitα(x)≤α(y)vergleichen, so antwortet er “x <y”.

Fallsα(x) =α(y) =0, so bleibenx undy inM und formen ein neues Paar.

Andernfalls: Wennα(x) =−1, so wirdx ausM entfernt und wandert als neues gr¨osstes Element nach K

Andernfalls: Wennα(x)∈ {0,1}, so wirdy aus M entfernt und wandert als neues keinstes Element nachG

(38)

Median: Untere Schranke (3a)

Es seiv die Anzahl der bisher gemachten Vergleiche.

Es seipdie Anzahl der vergleichbaren Paare in M.

Lemma

Der Adversary h¨alt die Invariante v ≥2n+p−2|M| aufrecht.

Beweisskizze:

Fallsα(x) =α(y) =0: ein neues Paar entsteht

Andernfalls: Ein Element verschwindet ausM, ein Paar l¨ost sich auf

(39)

Median: Untere Schranke (3b)

Wir betrachten den Zeitpunktt,

wenn zum ersten Mal|G|=n/2−1oder|K|=n/2−1gilt.

Vor diesem Zeitpunktt steht es dem Adversary v¨ollig frei zu entscheiden, ob ein Element von M nachK oder nachG geh¨ort.

Zum Zeitpunktt kann dann aber nur noch das kleinste/gr¨osste Element von M nachK/G geh¨oren.

Lemma

Zum Zeitpunkttgilt die triviale Schranke |M| ≤n/2+1

(40)

Median: Untere Schranke (4)

Zum Zeitpunkttgilt also:

Invariante v ≥2n+p−2|M|

Schranke |M| ≤n/2+1 Satz

Im Worst Case braucht man mindestens3n/2−2Vergleiche um den Median zu finden.

Beweisskizze:

Bis zum Zeitpunktt hat der Algorithmus mindestens2n+p−2|M| Vergleiche gemacht.

Nach dem Zeitpunktt muss der Algorithmus dann noch das Minimum/Maximum von M herausfinden. Dazu braucht er

|M| −p−1weitere Vergleiche.

Insgesamt braucht der Algorithmus also mindestens 2n− |M| −1 Vergleiche.

(41)

k -kleinste Zahl (und Median)

in linearer Zeit

(42)

k -kleinste Zahl in linearer Zeit: Hilfsprozedur

Eingabe:Ein ArrayA[1. . .n]; eine Zahl x

Ausgabe:Eine Umsortierung der Zahlen inA, in der alle Zahlen≤x links von den Zahlen>x stehen

PARTITION (A,x) 1 i= 0

2 for j= 1 to n do 3 if A[j]¡=x then

4 –i= i+1;

5 exchange A[i] with A[j]˝

6 return i

Invariante: Jeder Indexpmit1≤p≤i erf¨ulltA[p]≤x Invariante: Jeder Indexpmiti+1≤p≤j−1erf¨ulltA[p]>x

(43)

k -kleinste Zahl in linearer Zeit: Hauptprogramm

1 Fallsn≤20: Bestimmek-kleinste Zahl durch Sortieren. Stop.

2 Teile die nZahlen inbn/5cF¨unfergruppen auf

(und eine Restgruppe mit den restlichennmod 5Zahlen)

3 Sortiere in jeder dieser dn/5eGruppen die Zahlen, und bestimme den Median der Gruppe

4 Bestimme (rekursiv) den Medianx dieser dn/5eMediane

5 PARTITIONiere das Eingabearray um den Median-der-Mediane x.

Danach sind die erstenqZahlen im Array ≤x, und die restlichenn−qZahlen sind>x.

6 Wenn k =q: Gibx alsk-kleinste Zahl aus.

Wennk<q: Berechne rekursiv die k-kleinste Zahl inA[1. . .q−1].

Wennk >q: Berechne rekursiv die(k−q)-kleinste Zahl

(44)

k -kleinste Zahl in linearer Zeit: Analyse (1)

Aufteilung in F¨unfergruppen: in linearer ZeitO(n)

Sortieren der f¨unf Zahlen in jeder Gruppe: in linearer ZeitO(n) Bestimmung des Medians-der-Mediane: in Zeit T(n/5)

PARTITION in Teil≤x und Teil >x: in linearer ZeitO(n) Rekursion: in ZeitO(1)oderT(q)oderT(n−q)

Wir erhalten die Zeitgleichung

T(n) = T(n/5) +max{T(q), T(n−q)}+O(n)

(45)

k -kleinste Zahl in linearer Zeit: Analyse (2)

(46)

k -kleinste Zahl in linearer Zeit: Analyse (2)

(47)

k -kleinste Zahl in linearer Zeit: Analyse (2)

(48)

k -kleinste Zahl in linearer Zeit: Analyse (2)

(49)

k -kleinste Zahl in linearer Zeit: Analyse (3)

Zusammenfassende Beobachtung

Von dennZahlen sind≈3n/10garantiert>Median-der-Mediane.

Von dennZahlen sind≈3n/10garantiert≤Median-der-Mediane.

Ergo: 3n/10≤q≤7n/10

Die alte Zeitgleichung mitq

T(n) = T(n/5) +max{T(q), T(n−q)}+O(n) liefert uns nun

T(n) ≤ T(n/5) +T(7n/10) +O(n).

(50)

k -kleinste Zahl in linearer Zeit: Analyse (4)

Satz

Diek-kleinste Zahl und der Median

k¨onnen in linearer ZeitO(n)berechnet werden.

Zur Erinnerung: Wenn f¨ur ein reellesc>0 T(n) ≤ T(n/5) +T(7n/10) +cn

gilt, so kann man daraus mit vollst¨andiger Induktion T(n) ≤ d·n

f¨ur jedes reelled ≥10c herleiten.

(51)

Anmerkungen

DerO(n)Algorithmus stammt von Manuel Blum, Robert Floyd, Vaughan Pratt, Ron Rivest und Robert Tarjan, und ist aus dem Jahr 1973.

Haus¨ubung

(a) Zeige: Nimmt man Dreiergruppen statt F¨unfergruppen, so erh¨alt man keine lineare Laufzeit.

(b) Zeige: Nimmt man Siebenergruppen statt F¨unfergruppen, so erh¨alt man ebenfalls eine lineare Laufzeit.

Satz (Dorit Dor & Uri Zwick, 2001)

Der Median kann mit2.95nVergleichen gefunden werden.

Der Median kann nicht mit(2+2−80)nVergleichen gefunden werden.

(52)

k -kleinste Zahl (und Median)

randomisiert

(53)

Randomisierter Algorithmus

In der Praxis wird das Split-Elementx einfach zuf¨allig gew¨ahlt (und nicht in einer teuren Rekursion als Median-der-Mediane berechnet).

Intuition: Mit hoher Wahrscheinlichkeit liegt der resultierende Wertq weit weg von0und weit weg vonn.

Die Worst Case Laufzeit dieses randomisierten Algorithmus ist quadratisch.

Wir werden zeigen:

Satz

Die erwartete Laufzeit dieses randomisierten Algorithmus istO(n).

(54)

Hilfsresultat

Fragestellung

Ein Experiment ist mit Wahrscheinlichkeitperfolgreich.

Wie gross ist die erwartete Anzahl an Wiederholungen, bis dass das Experiment einmal erfolgreich ausgeht?

Es seiX die Zufallsvariable, die die Anzahl der Durchf¨uhrungen z¨ahlt Dann gilt Pr[X =k] = (1−p)k−1p

Antwort

E[X] =

X

k=1

k·Pr[X =k] =

X

k=1

k(1−p)k−1p = 1 p Ergo: F¨urp=1/2giltE[X] =2

(55)

Analyse (1)

Wir sagen, dass der randomisierte Algorithmus in Phasek ist, falls die Anzahl der aktiven Zahlen kleiner gleich (3/4)kn und strikt gr¨osser als(3/4)k+1nist.

Am Anfang ist der Algorithmus in Phase0

Eine Zahl x heisst zentral, wenn mindestens ein Viertel der aktiven Zahlen kleiner als x oder mindestens ein Viertel gr¨osser alsx ist Ist das Split-Elementx zentral, dann wird mindestens ein Viertel der aktiven Zahlen weggeworfen

Die H¨alfte aller aktiven Zahlen ist zentral

Die Wahrscheinlichkeit, dass das Split-Element zentral ist, betr¨agt p=1/2

(56)

Analyse (2)

Die Zufallsvariable Xk z¨ahlt die Anzahl der Vergleiche in Phasek In Phasek arbeitet der Algorithmus mit≤(3/4)knElementen In Phasek wird im Erwartungswert h¨ochstens zweimal partitioniert Zusammenfassend: E[Xk]≤2cn(3/4)k

Erwartete Laufzeit = X

k≥0

E[Xk] ≤ X

k≥0

2cn(3/4)k

= 2cnX

k≥0

(3/4)k = 8cn ∈ O(n)

Referenzen

ÄHNLICHE DOKUMENTE

In einem linearen Matroid muß die Matrix A nicht ¨ uber den reellen Zahlen R definiert sein; jeder beliebige K¨ orper F ist erlaubt. Ein derartiges Matroid heisst dann repr¨

In einem linearen Matroid muß die Matrix A nicht ¨ uber den reellen Zahlen R definiert sein; jeder beliebige K¨ orper F ist erlaubt. Ein derartiges Matroid heisst dann repr¨

Die Laufzeit ist polynomial, da der Unabh¨ angigkeitstest in polynomieller Zeit durchgef¨ uhrt werden kann. Es muss nur noch die Korrektheit

Die Laufzeit ist polynomial, da der Unabh¨ angigkeitstest in polynomieller Zeit durchgef¨ uhrt werden kann. Es muss nur noch die Korrektheit

Umfrage: https://terminplaner4.dfn.de/NQvjEX1e1oOy7RUZ Die ¨ Ubungen werden in Gruppen der Gr¨ osse 3–5 bearbeitet Zusammensetzung der

Effiziente Algorithmen SS2015 Kapitel 2 Weitere Flüsse Walter Unger Lehrstuhl für Informatik 1... Spezielle Flüsse Mindestfluss

Wie bestimmt man Flüsse mit einem Mindestfluss auf den Kanten, wo aber auch ein leerer Fluss erlaubt ist?. Wie ist die Idee der Algorithmen zu

Man sieht aber auch im Folgenden, daß bei einer Suche nach beliebigen Kreisen eine pseudopolynomielle Laufzeit erhalten.... Spezielle Flüsse