Kapitel 10 Parallele Algorithmen. Bitonisches Sortieren Teilworterkennung Leader election in Ringnetzwerken
|
|
- Daniel Kneller
- vor 5 Jahren
- Abrufe
Transkript
1 Kapitel 10 Bitonisches Sortieren Teilworterkennung Leader election in Ringnetzwerken
2 Überblick Situation: weitere Beschleunigung der Prozessorgeschwindigkeit wünschenswert physikalischer Grenzwert "Lichtgeschwindigkeit" bald erreicht Offenbar einzige Lösung: Parallelisierung
3 Überblick Wunsch: p parallel arbeitende Prozessoren lösen ein Problem p-fach schneller (10 5 bis 10 6 parallele Prozessoren werden angestrebt) Problem Geeignete Parallelisierung eines Problems erfordert neue Algorithmen
4 Beispiel Addition von Vektoren a=(a 1,...,an) und b=(b1,...,bn) leicht parallelisierbar Berechnung der Potenz x2 beweisbar nicht effizient parallelisierbar k
5 Sortieren Eingabe: n ganze Zahlen a 1,...,an (o.b.d.a. n Zweierpotenz, sonst ergänze zur nächsten Zweierpotenz um Zahlen ) Ausgabe: aufsteigende Sortierung von a 1,...,an Algorithmus: Bitonisches Sortieren (K.E. Batcher, 1968)
6 bitonisch Definition: a1,...,an heißt bitonisch, falls a1,...,ai aufsteigend und ai+1,...,an absteigend sortiert ist, oder falls dieser Zustand durch Rundschieben hergestellt werden kann.
7 bitonisch Beispiele: 7, 12, 13, 16, 29, 17, 12, 1 16, 29, 17, 12, 1, 7, 12, 13 1, 2, 3, 4, 5, 6, 7, 8.
8 bitonisch Beispiele: 7, 12, 13, 16, 29, 17, 12, 1 16, 29, 17, 12, 1, 7, 12, 13 1, 2, 3, 4, 5, 6, 7, 8.
9 bitonisch Beispiele: 7, 12, 13, 16, 29, 17, 12, 1 16, 29, 17, 12, 1, 7, 12, 13 1, 2, 3, 4, 5, 6, 7, 8.
10 bitonisch Beispiele: 7, 12, 13, 16, 29, 17, 12, 1 16, 29, 17, 12, 1, 7, 12, 13 1, 2, 3, 4, 5, 6, 7, 8.
11 bitonisch Beispiele: 7, 12, 13, 16, 29, 17, 12, 1 16, 29, 17, 12, 1, 7, 12, 13 1, 2, 3, 4, 5, 6, 7, 8.
12 bitonisch Beispiele: 7, 12, 13, 16, 29, 17, 12, 1 16, 29, 17, 12, 1, 7, 12, 13 1, 2, 3, 4, 5, 6, 7, 8.
13 bitonisch Beispiele: 7, 12, 13, 16, 29, 17, 12, 1 16, 29, 17, 12, 1, 7, 12, 13 1, 2, 3, 4, 5, 6, 7, 8.
14 Idee des Algorithmus Fundamentale Ideen: Rekursion und Divideand-conquer Ist a 1,..., an bereits bitonisch, so mische die beiden Teilfolgen zu einer sortierten Folge: Fertig. Anderenfalls gehe rekursiv vor und versuche den gewünschten Zustand herzustellen, indem die linke Hälfte aufsteigend, die rechte Hälfte absteigend sortiert wird.
15 Idee des Algorithmus - Beispiel
16 Idee des Algorithmus - Beispiel
17 Idee des Algorithmus - Beispiel
18 Idee des Algorithmus - Beispiel
19 Idee des Algorithmus - Beispiel
20 Idee des Algorithmus - Beispiel
21 Idee des Algorithmus - Beispiel
22 Idee des Algorithmus - Beispiel
23 Idee des Algorithmus - Beispiel
24 Idee des Algorithmus - Beispiel
25 Idee des Algorithmus - Beispiel
26 Idee des Algorithmus - Beispiel
27 Idee des Algorithmus - Beispiel
28 Idee des Algorithmus - Beispiel
29 Idee des Algorithmus - Beispiel
30 Idee des Algorithmus - Beispiel
31 Idee des Algorithmus - Beispiel
32 Idee des Algorithmus - Beispiel
33 Idee des Algorithmus - Beispiel
34 Idee des Algorithmus - Beispiel
35 Idee des Algorithmus - Beispiel
36 Idee des Algorithmus - Beispiel
37 Idee des Algorithmus - Beispiel
38 Idee des Algorithmus - Beispiel
39 Idee des Algorithmus - Beispiel
40 Idee des Algorithmus - Beispiel
41 Idee des Algorithmus - Beispiel
42 Idee des Algorithmus - Beispiel
43 Idee des Algorithmus - Beispiel
44 Idee des Algorithmus - Beispiel
45 Mischen einer bitonischen Folge Gegeben a1,a2,...,a2n 1. Schritt: Vergleiche jedes aj, 1 j n, der ersten Hälfte mit korrespondierendem Element aj+n der zweiten Hälfte; vertausche, wenn sie in der falschen Reihenfolge stehen, falls also aj>aj+n ist 2. Schritt: Wende Verfahren rekursiv auf die beiden Hälften an Fertig: Folge sortiert, wenn Verfahren abbricht
46 Prozessor X Y X':=min(X,Y) Y':=max(X,Y) X,Y,X',Y' IN X' Y'
47 Prozessornetzwerk - Grundoperationen Grundoperationen: Zusammenführen aller Paare aj und aj+n, 1 j n, Vergleichen ggf. Vertauschen Zurückführen an Plätze j und j+n
48 Prozessornetzwerk - Architektur bitonischer Mischer für n/2 Zahlen bitonischer Mischer für n/2 Zahlen
49 shuffle- exchange- Netzwerk Prozessornetzwerk - Architektur bitonischer Mischer für n/2 Zahlen bitonischer Mischer für n/2 Zahlen
50 Prozessornetzwerk - Architektur shuffle- exchange- Netzwerk shuffling bitonischer Mischer für n/2 Zahlen bitonischer Mischer für n/2 Zahlen
51 Prozessornetzwerk - Architektur shuffle- exchange- Netzwerk shuffling unshuffling bitonischer Mischer für n/2 Zahlen bitonischer Mischer für n/2 Zahlen
52 Prozessornetzwerk - Zusammenbau
53 Prozessornetzwerk - Zusammenbau biton. Mischer für n/2=4 Zahlen
54 Prozessornetzwerk - Zusammenbau biton. Mischer für n/2=4 Zahlen biton. Mischer für n/2=4 Zahlen
55 Prozessornetzwerk - Zusammenbau biton. Mischer für n/2=4 Zahlen
56 Prozessornetzwerk - Zusammenbau
57 Prozessornetzwerk - Zusammenbau biton. Mischer für n/4=2 Zahlen
58 Prozessornetzwerk - Zusammenbau
59 Prozessornetzwerk - Zusammenbau
60 Prozessornetzwerk - Zusammenbau
61 Prozessornetzwerk - Zusammenbau
62 Prozessornetzwerk - Zusammenbau
63 bitonisches Mischen (n=8) Prozessornetzwerk - Reduktion Effizienz log2 n Shuffle- Exchange-Stufen log2 n Takte log2 n
64 Sortiernetzwerk Zusammenbau des Sortiernetzwerks Idee: Rekursion 1. Schritt: Mache aus je vier aufeinanderfolgenden Elementen eine bitonische Folge. Ergebnis: n/4 bitonische Folgen der Länge Schritt: Verwende Algorithmus zum bitonischen Mischen und mache aus den n/4 Folgen gleichviele Folgen, die im Wechsel aufsteigend und absteigend sortiert. Ergebnis: n/8 bitonische Folgen der Länge 8. Rekursives Anwenden, bis sortierte Folge vorliegt.
65 Sortiernetzwerk - vollständig (n=16)
66 Sortiernetzwerk - vollständig (n=16)
67 hier liegen 4 bitonische Folgen der Länge 4 vor Sortiernetzwerk - vollständig (n=16)
68 hier liegen 4 bitonische Folgen der Länge 4 vor Sortiernetzwerk - vollständig (n=16) hier liegen 2 bitonische Folgen der Länge 8 vor
69 hier liegen 4 bitonische Folgen der Länge 4 vor Sortiernetzwerk - vollständig (n=16) hier liegen 2 bitonische Folgen der Länge 8 vor hier liegt 1 bitonische Folgen der Länge 16 vor
70 Sortiernetzwerk - Effizienz
71 Sortiernetzwerk - Effizienz
72 Sortiernetzwerk - Effizienz Mischen: log2 n Takte
73 Sortiernetzwerk - Effizienz n/4 bitonische Folgen der Länge 4: 1 Takt Mischen: log2 n Takte
74 Sortiernetzwerk - Effizienz n/4 bitonische Folgen der Länge 4: 1 Takt n/8 bitonische Folgen der Länge 8: 2 Takte Mischen: log2 n Takte
75 Sortiernetzwerk - Effizienz n/4 bitonische Folgen der Länge 4: 1 Takt n/8 bitonische Folgen der Länge 8: 2 Takte n/16 bitonische Folgen der Länge 16: 3 Takte Mischen: log2 n Takte
76 Sortiernetzwerk - Effizienz Algorithmusteil letzter Schritt: Mischen einer bitonischen Folge Takte O(log2n) Herstellen einer bitonischen Folge 1. Schritt: Erzeuge n/4 bitonische Folgen der Länge Schritt: Erzeuge n/8 bitonische Folgen der Länge Schritt: Erzeuge n/16 bitonische Folgen der Länge k. Schritt: Erzeuge n/2 k+1 bitonische Folgen der Länge 2 k k Summe T(n)
77 Sortiernetzwerk - Effizienz T(n) = (log2n-1)+log2n = 1/2(log2n)(log2n+1) 1/2(log2n) 2 =O((log2n) 2 ). Anzahl Prozessoren:O(n(log2n) 2 ). Aber: n Prozessoren reichen, wenn man Output-Leitungen auf Input schaltet. Problem: wie realisiert man dynamisch die Shuffle-Vernetzung?
78 Sortiernetzwerk - Effizienzvergleich Effizienz von parallelen Algorithmen bewertet man in Relation zu den sequentiellen: Sequentieller Fall mit einem Prozessor: Beste Laufzeit f(n) Paralleler Fall mit p Prozessoren: Laufzeit g(n) Erwartete Laufzeit f(n)/p Speed-up f(n)/g(n) paralleler Algorithmus optimal, wenn f(n)/p, d.h. Speed-up von p erreicht wird
79 Sortiernetzwerk - Speed-up/Effizienz T p(n): Laufzeit eines Algorithmus, der zur Ausführung p Prozessoren benötigt Speed-up Sp(n)= T1(n)/Tp(n) Offenbar: 1 Sp(n) p Effizienz Ep(n)=Sp(n)/p (Quotient aus erreichtem und theoretisch möglichem Speed-up) Offenbar: 1/p Ep(n) 1. Ep(n)=1, dann Algorithmus optimal.
80 Sortiernetzwerk - Effizienzvergleich Anwendung auf Sortieren: Sequentieller Fall mit einem Prozessor: Schnellstes Sortierverfahren: Speed-up: O(n log2 n) O((n log2 n)/(log2 n) 2 )=O(n/log2 n) Effizienz: O((n/log 2 n)/n)=o(1/log2 n) Sortiernetzwerk nicht optimal!
81 Sortiernetzwerk - Effizienzvergleich M. Ajtai, J. Komlós, E. Szemerédi (Ungarn, USA, 1983): paralleler Algorithmus mit n Prozessoren und O(log2 n) Takten Sehr aufwendiger Beweis! sehr große Konstanten (versteckt in Groß-O)
82 Teilworterkennung Gesucht: paralleler Algorithmus, der testet, ob ein eingegebenes Wort w ein bestimmtes Teilwort t enthält hier: w beliebig, t=t 1t2t3 (Länge 3)
83 Teilworterkennung - Prozessortyp x y' x' y ti x'=x y'=y (x=ti)
84 Teilworterkennung - Prozessornetz xn...x2x1 true t3 t2 t1
85 Teilworterkennung - Prozessornetz xn...x2x1 true t3 t2 t1 liegen dauerhaft an
86 Teilworterkennung - Prozessornetz xn...x2x1 true t3 t2 t1 im Abstand von 2 Takten liegen dauerhaft an
87 Teilworterkennung - Prozessornetz ab a b a b true a b a
88 Teilworterkennung - Prozessornetz ab a b a false b false false true a b a 1. Takt
89 Teilworterkennung - Prozessornetz ab a b a false false b false true a b a 2. Takt
90 Teilworterkennung - Prozessornetz ab a b false a false false b true a b a 3. Takt
91 Teilworterkennung - Prozessornetz ab a b false false a false b true a b a 4. Takt
92 Teilworterkennung - Prozessornetz ab a false b false false a true a b a 5. Takt
93 Teilworterkennung - Prozessornetz ab a false false b true a true a b a 6. Takt
94 Teilworterkennung - Prozessornetz ab false a true false b true a b a 7. Takt
95 Teilworterkennung - Prozessornetz ab true false a false b true a b a erstmalig aba in Eingabe erkannt 8. Takt
96 Teilworterkennung - Effizienzvergleich Sequentieller Fall mit einem Prozessor: T1(n)=3n Paralleler Fall mit drei Prozessoren: T3(n)=2n-1 Speed-up: S3(n)=3n/(2n-1) 3/2 Effizienz: E3(n)=S3(n)/3 1/2 Teilworterkennung nicht optimal.
97 Leader election in Netzen Motivation automatischer Neustart eines Rechnernetzes Bestimmung eines ausgezeichneten Rechners für erste Verwaltungaufgaben Bestimmen eines neuen Leaders nach Ausfall des alten Erzeugung eines Token in Tokennetzwerken Varianten: Uniformität Anonymität Synchronität Direktionalität von Kanten Netztopologien (hier nur Ringe)
98 Leader election in Netzen Sensornetze Motivation
99 Leader election in Netzen Sensornetze Motivation
100 Leader election in Netzen Sensornetze Motivation
101 Leader election in Netzen Sensornetze Motivation
102 Leader election in Netzen Sensornetze Motivation
103 Leader election in Netzen Sensornetze Motivation wo seid ihr?
104 Leader election in Netzen Sensornetze Motivation
105 Leader election in Netzen Sensornetze hier brennts. Hört mich einer? Motivation
106 Leader election in Netzen Sensornetze Motivation
107 Leader election in Netzen Sensornetze Motivation wieviele sind wir eigentlich?
108 Leader election in Netzen Sensornetze Motivation
109 Leader election in Netzen Sensornetze Motivation
110 Leader election in Netzen im Ring Algorithmus [Franklin 1982]: je Rechner eindeutige Identifikation (id) anfangs alle Rechner aktiv (=weiß, schwarz=passiv). Programm für jeden Rechner: sende beiden Nachbarn deine Information id empfange id1 und id2 von beiden Nachbarn falls id1>id oder id2>id dann werde passiv falls id1,id2<id dann alles nochmal (nächste Runde) falls id1=id2=id dann erkläre dich zum Leader.
111 Leader election in Netzen im Ring - Beispiel sende beiden Nachbarn deine Information id empfange id1 und id2 von beiden Nachbarn falls id1>id oder id2>id dann werde passiv falls id1,id2<id dann alles nochmal (nächste Runde) falls id1=id2=id dann erkläre dich zum Leader
112 Leader election in Netzen im Ring - Beispiel sende beiden Nachbarn deine Information id empfange id1 und id2 von beiden Nachbarn falls id1>id oder id2>id dann werde passiv falls id1,id2<id dann alles nochmal (nächste Runde) falls id1=id2=id dann erkläre dich zum Leader
113 Leader election in Netzen im Ring - Beispiel sende beiden Nachbarn deine Information id empfange id1 und id2 von beiden Nachbarn falls id1>id oder id2>id dann werde passiv falls id1,id2<id dann alles nochmal (nächste Runde) falls id1=id2=id dann erkläre dich zum Leader 0,7
114 Leader election in Netzen im Ring - Beispiel sende beiden Nachbarn deine Information id empfange id1 und id2 von beiden Nachbarn falls id1>id oder id2>id dann werde passiv falls id1,id2<id dann alles nochmal (nächste Runde) falls id1=id2=id dann erkläre dich zum Leader 0,7 5,2
115 Leader election in Netzen im Ring - Beispiel sende beiden Nachbarn deine Information id empfange id1 und id2 von beiden Nachbarn falls id1>id oder id2>id dann werde passiv falls id1,id2<id dann alles nochmal (nächste Runde) falls id1=id2=id dann erkläre dich zum Leader 0,7 5,2 0,1
116 Leader election in Netzen im Ring - Beispiel sende beiden Nachbarn deine Information id empfange id1 und id2 von beiden Nachbarn falls id1>id oder id2>id dann werde passiv falls id1,id2<id dann alles nochmal (nächste Runde) falls id1=id2=id dann erkläre dich zum Leader 0,7 5,2 0,1 2,3
117 Leader election in Netzen im Ring - Beispiel sende beiden Nachbarn deine Information id empfange id1 und id2 von beiden Nachbarn falls id1>id oder id2>id dann werde passiv falls id1,id2<id dann alles nochmal (nächste Runde) falls id1=id2=id dann erkläre dich zum Leader 0,7 5,2 0,1 2,3 1,9
118 Leader election in Netzen im Ring - Beispiel sende beiden Nachbarn deine Information id empfange id1 und id2 von beiden Nachbarn falls id1>id oder id2>id dann werde passiv falls id1,id2<id dann alles nochmal (nächste Runde) falls id1=id2=id dann erkläre dich zum Leader 0,7 5,2 0,1 2,3 1,9 3,6
119 Leader election in Netzen im Ring - Beispiel sende beiden Nachbarn deine Information id empfange id1 und id2 von beiden Nachbarn falls id1>id oder id2>id dann werde passiv falls id1,id2<id dann alles nochmal (nächste Runde) falls id1=id2=id dann erkläre dich zum Leader 0,7 7,9 5,2 0,1 2,3 1,9 3,6
120 Leader election in Netzen im Ring - Beispiel sende beiden Nachbarn deine Information id empfange id1 und id2 von beiden Nachbarn falls id1>id oder id2>id dann werde passiv falls id1,id2<id dann alles nochmal (nächste Runde) falls id1=id2=id dann erkläre dich zum Leader 5,6 0,7 7,9 5,2 0,1 2,3 1,9 3,6
121 Leader election in Netzen im Ring - Beispiel sende beiden Nachbarn deine Information id empfange id1 und id2 von beiden Nachbarn falls id1>id oder id2>id dann werde passiv falls id1,id2<id dann alles nochmal (nächste Runde) falls id1=id2=id dann erkläre dich zum Leader 5,6 0,7 7,9 5,2 0,1 2,3 1,9 3,6
122 Leader election in Netzen im Ring - Beispiel sende beiden Nachbarn deine Information id empfange id1 und id2 von beiden Nachbarn falls id1>id oder id2>id dann werde passiv falls id1,id2<id dann alles nochmal (nächste Runde) falls id1=id2=id dann erkläre dich zum Leader 5,6 0,7 7,9 5,2 0,1 2,3 1,9 3,6
123 Leader election in Netzen im Ring - Beispiel sende beiden Nachbarn deine Information id empfange id1 und id2 von beiden Nachbarn falls id1>id oder id2>id dann werde passiv falls id1,id2<id dann alles nochmal (nächste Runde) falls id1=id2=id dann erkläre dich zum Leader 5,6 0,7 7,9 5,2 0,1 2,3 1,9 3,6
124 Leader election in Netzen im Ring - Beispiel sende beiden Nachbarn deine Information id empfange id1 und id2 von beiden Nachbarn falls id1>id oder id2>id dann werde passiv falls id1,id2<id dann alles nochmal (nächste Runde) falls id1=id2=id dann erkläre dich zum Leader 5,6 0,7 7,9 5,2 0,1 2,3 1,9 3,6
125 Leader election in Netzen im Ring - Beispiel sende beiden Nachbarn deine Information id empfange id1 und id2 von beiden Nachbarn falls id1>id oder id2>id dann werde passiv falls id1,id2<id dann alles nochmal (nächste Runde) falls id1=id2=id dann erkläre dich zum Leader 5,6 0,7 7,9 5,2 0,1 2,3 1,9 3,6
126 Leader election in Netzen im Ring - Beispiel sende beiden Nachbarn deine Information id empfange id1 und id2 von beiden Nachbarn falls id1>id oder id2>id dann werde passiv falls id1,id2<id dann alles nochmal (nächste Runde) falls id1=id2=id dann erkläre dich zum Leader 5,6 0,7 7,9 5,2 0,1 2,3 1,9 3,6
127 Leader election in Netzen im Ring - Beispiel sende beiden Nachbarn deine Information id empfange id1 und id2 von beiden Nachbarn falls id1>id oder id2>id dann werde passiv falls id1,id2<id dann alles nochmal (nächste Runde) falls id1=id2=id dann erkläre dich zum Leader 5,6 0,7 7,9 5,2 0,1 2,3 1,9 3,6
128 Leader election in Netzen im Ring - Beispiel sende beiden Nachbarn deine Information id empfange id1 und id2 von beiden Nachbarn falls id1>id oder id2>id dann werde passiv falls id1,id2<id dann alles nochmal (nächste Runde) falls id1=id2=id dann erkläre dich zum Leader 5,6 0,7 7,9 5,2 0,1 2,3 1,9 3,6
129 Leader election in Netzen im Ring - Beispiel sende beiden Nachbarn deine Information id empfange id1 und id2 von beiden Nachbarn falls id1>id oder id2>id dann werde passiv falls id1,id2<id dann alles nochmal (nächste Runde) falls id1=id2=id dann erkläre dich zum Leader 5,6 0,7 7,9 5,2 0,1 2,3 1,9 3,6
130 Leader election in Netzen im Ring - Beispiel sende beiden Nachbarn deine Information id empfange id1 und id2 von beiden Nachbarn falls id1>id oder id2>id dann werde passiv falls id1,id2<id dann alles nochmal (nächste Runde) falls id1=id2=id dann erkläre dich zum Leader 5,6 0,7 7,9 5,2 0,1 2,3 1,9 3,6
131 Leader election in Netzen im Ring - Beispiel sende beiden Nachbarn deine Information id empfange id1 und id2 von beiden Nachbarn falls id1>id oder id2>id dann werde passiv falls id1,id2<id dann alles nochmal (nächste Runde) falls id1=id2=id dann erkläre dich zum Leader 5,6 0,7 7,9 5,2 0,1 2,3 1,9 3,6
132 Leader election in Netzen im Ring - Beispiel sende beiden Nachbarn deine Information id empfange id1 und id2 von beiden Nachbarn falls id1>id oder id2>id dann werde passiv falls id1,id2<id dann alles nochmal (nächste Runde) falls id1=id2=id dann erkläre dich zum Leader 5,6 0,7 7,9 5,2 0,1 2,3 1,9 3,6
133 Leader election in Netzen im Ring - Beispiel sende beiden Nachbarn deine Information id empfange id1 und id2 von beiden Nachbarn falls id1>id oder id2>id dann werde passiv falls id1,id2<id dann alles nochmal (nächste Runde) falls id1=id2=id dann erkläre dich zum Leader 5,6 0,7 7,9 5,2 0,1 2,3 1,9 3,6
134 Leader election in Netzen im Ring - Beispiel sende beiden Nachbarn deine Information id empfange id1 und id2 von beiden Nachbarn falls id1>id oder id2>id dann werde passiv falls id1,id2<id dann alles nochmal (nächste Runde) falls id1=id2=id dann erkläre dich zum Leader 5,6 0,7 7,9 5,2 0,1 2,3 1,9 3,6
135 Leader election in Netzen im Ring - Beispiel sende beiden Nachbarn deine Information id empfange id1 und id2 von beiden Nachbarn falls id1>id oder id2>id dann werde passiv falls id1,id2<id dann alles nochmal (nächste Runde) falls id1=id2=id dann erkläre dich zum Leader 5,6 0,7 7,9 5,2 0,1 2,3 1,9 3,6
136 Leader election in Netzen im Ring - Beispiel sende beiden Nachbarn deine Information id empfange id1 und id2 von beiden Nachbarn falls id1>id oder id2>id dann werde passiv falls id1,id2<id dann alles nochmal (nächste Runde) falls id1=id2=id dann erkläre dich zum Leader 5,6 0,7 7,9 5,2 0,1 2,3 1,9 3,6
137 Leader election in Netzen im Ring - Beispiel sende beiden Nachbarn deine Information id empfange id1 und id2 von beiden Nachbarn falls id1>id oder id2>id dann werde passiv falls id1,id2<id dann alles nochmal (nächste Runde) falls id1=id2=id dann erkläre dich zum Leader 5,6 0,7 7,9 5,2 0,1 7,9 2,3 1,9 3,6
138 Leader election in Netzen im Ring - Beispiel sende beiden Nachbarn deine Information id empfange id1 und id2 von beiden Nachbarn falls id1>id oder id2>id dann werde passiv falls id1,id2<id dann alles nochmal (nächste Runde) falls id1=id2=id dann erkläre dich zum Leader 5,6 0,7 7,9 5,2 0,1 7,9 2,3 1,9 7,2 3,6
139 Leader election in Netzen im Ring - Beispiel sende beiden Nachbarn deine Information id empfange id1 und id2 von beiden Nachbarn falls id1>id oder id2>id dann werde passiv falls id1,id2<id dann alles nochmal (nächste Runde) falls id1=id2=id dann erkläre dich zum Leader 0,7 5,6 9,2 7,9 5,2 0,1 7,9 2,3 1,9 7,2 3,6
140 Leader election in Netzen im Ring - Beispiel sende beiden Nachbarn deine Information id empfange id1 und id2 von beiden Nachbarn falls id1>id oder id2>id dann werde passiv falls id1,id2<id dann alles nochmal (nächste Runde) falls id1=id2=id dann erkläre dich zum Leader 0,7 5,6 9,2 7,9 5,2 0,1 7,9 2,3 1,9 7,2 3,6
141 Leader election in Netzen im Ring - Beispiel sende beiden Nachbarn deine Information id empfange id1 und id2 von beiden Nachbarn falls id1>id oder id2>id dann werde passiv falls id1,id2<id dann alles nochmal (nächste Runde) falls id1=id2=id dann erkläre dich zum Leader 0,7 5,6 9,2 7,9 5,2 0,1 7,9 2,3 1,9 7,2 3,6
142 Leader election in Netzen im Ring - Beispiel sende beiden Nachbarn deine Information id empfange id1 und id2 von beiden Nachbarn falls id1>id oder id2>id dann werde passiv falls id1,id2<id dann alles nochmal (nächste Runde) falls id1=id2=id dann erkläre dich zum Leader 0,7 5,6 9,2 7,9 5,2 0,1 7,9 2,3 9,9 1,9 7,2 3,6
143 Leader election in Netzen im Ring - Beispiel sende beiden Nachbarn deine Information id empfange id1 und id2 von beiden Nachbarn falls id1>id oder id2>id dann werde passiv falls id1,id2<id dann alles nochmal (nächste Runde) falls id1=id2=id dann erkläre dich zum Leader 0,7 5,6 9,2 7,9 5,2 0,1 7,9 2,3 9,9 1,9 7,2 3,6
144 Leader election in Netzen im Ring - Beispiel sende beiden Nachbarn deine Information id empfange id1 und id2 von beiden Nachbarn falls id1>id oder id2>id dann werde passiv falls id1,id2<id dann alles nochmal (nächste Runde) falls id1=id2=id dann erkläre dich zum Leader 0,7 5,6 9,2 7,9 5,2 0,1 7,9 2,3 9,9 1,9 7,2 3,6
145 Leader election in Netzen Aufwand Rechenaufwand Ring mit n Rechnern => mind. n /2 Rechner haben Nachbarn mit größerer id je Runde wird mind. die Hälfte der noch aktiven Rechner passiv max. log n Runden nur noch ein Rechner aktiv Kommunikationsaufwand je Runde sendet jeder Rechner 2 Nachrichten mit je log n Bits, insgesamt also O(n (log n) 2 ) Bits
146 Leader election in Netzen anonyme Netze - kontrollierter Zufall Problem es gibt keinen Leader-election Algorithmus für synchrone anonyme Rechnernetzringe Grund: nach jeder Runde sind alle Prozessoren im selben Zustand Folge der Symmetrie Lösung - Symmetry breaking kontrollierter Zufall löst die Symmetrie auf
147 Leader election in Netzen Algorithmus mit kontrolliertem Zufall Programm für jeden Rechner: var s: list of {1,...,K} wiederhole solange bis eine id in s eindeutig ist s:= id sei zufällige Zahl aus {1,...K} wiederhole n-mal füge id zu s hinzu sende id an linken Nachbarn empfange id vom rechten Nachbarn Rechner mit größter eindeutiger id wird Leader.
148 Leader election in Netzen im Ring - Beispiel var s: list of {1,...,K} wiederhole bis eine id in s eindeutig s:= id zufällig aus {1,...K} wiederhole n-mal füge id zu s hinzu sende id an linken Nachbarn empfange id vom rechten Nachbarn
149 Leader election in Netzen im Ring - Beispiel var s: list of {1,...,K} wiederhole bis eine id in s eindeutig s:= id zufällig aus {1,...K} wiederhole n-mal füge id zu s hinzu sende id an linken Nachbarn empfange id vom rechten Nachbarn 7
150 Leader election in Netzen im Ring - Beispiel var s: list of {1,...,K} wiederhole bis eine id in s eindeutig s:= id zufällig aus {1,...K} wiederhole n-mal füge id zu s hinzu sende id an linken Nachbarn empfange id vom rechten Nachbarn 7 1
151 Leader election in Netzen im Ring - Beispiel var s: list of {1,...,K} wiederhole bis eine id in s eindeutig s:= id zufällig aus {1,...K} wiederhole n-mal füge id zu s hinzu sende id an linken Nachbarn empfange id vom rechten Nachbarn 7 1 0
152 Leader election in Netzen im Ring - Beispiel var s: list of {1,...,K} wiederhole bis eine id in s eindeutig s:= id zufällig aus {1,...K} wiederhole n-mal füge id zu s hinzu sende id an linken Nachbarn empfange id vom rechten Nachbarn
153 Leader election in Netzen im Ring - Beispiel var s: list of {1,...,K} wiederhole bis eine id in s eindeutig s:= id zufällig aus {1,...K} wiederhole n-mal füge id zu s hinzu sende id an linken Nachbarn empfange id vom rechten Nachbarn
154 Leader election in Netzen im Ring - Beispiel var s: list of {1,...,K} wiederhole bis eine id in s eindeutig s:= id zufällig aus {1,...K} wiederhole n-mal füge id zu s hinzu sende id an linken Nachbarn empfange id vom rechten Nachbarn
155 Leader election in Netzen im Ring - Beispiel var s: list of {1,...,K} wiederhole bis eine id in s eindeutig s:= id zufällig aus {1,...K} wiederhole n-mal füge id zu s hinzu sende id an linken Nachbarn empfange id vom rechten Nachbarn
156 Leader election in Netzen im Ring - Beispiel var s: list of {1,...,K} wiederhole bis eine id in s eindeutig s:= id zufällig aus {1,...K} wiederhole n-mal füge id zu s hinzu sende id an linken Nachbarn empfange id vom rechten Nachbarn
157 Leader election in Netzen im Ring - Beispiel var s: list of {1,...,K} wiederhole bis eine id in s eindeutig s:= id zufällig aus {1,...K} wiederhole n-mal füge id zu s hinzu sende id an linken Nachbarn empfange id vom rechten Nachbarn
158 Leader election in Netzen im Ring - Beispiel var s: list of {1,...,K} wiederhole bis eine id in s eindeutig s:= id zufällig aus {1,...K} wiederhole n-mal füge id zu s hinzu sende id an linken Nachbarn empfange id vom rechten Nachbarn 4
159 Leader election in Netzen im Ring - Beispiel var s: list of {1,...,K} wiederhole bis eine id in s eindeutig s:= id zufällig aus {1,...K} wiederhole n-mal füge id zu s hinzu sende id an linken Nachbarn empfange id vom rechten Nachbarn 4 8
160 Leader election in Netzen im Ring - Beispiel var s: list of {1,...,K} wiederhole bis eine id in s eindeutig s:= id zufällig aus {1,...K} wiederhole n-mal füge id zu s hinzu sende id an linken Nachbarn empfange id vom rechten Nachbarn 4 8 4
161 Leader election in Netzen im Ring - Beispiel var s: list of {1,...,K} wiederhole bis eine id in s eindeutig s:= id zufällig aus {1,...K} wiederhole n-mal füge id zu s hinzu sende id an linken Nachbarn empfange id vom rechten Nachbarn
162 Leader election in Netzen im Ring - Beispiel var s: list of {1,...,K} wiederhole bis eine id in s eindeutig s:= id zufällig aus {1,...K} wiederhole n-mal füge id zu s hinzu sende id an linken Nachbarn empfange id vom rechten Nachbarn
163 Leader election in Netzen im Ring - Beispiel var s: list of {1,...,K} wiederhole bis eine id in s eindeutig s:= id zufällig aus {1,...K} wiederhole n-mal füge id zu s hinzu sende id an linken Nachbarn empfange id vom rechten Nachbarn
164 Leader election in Netzen im Ring - Beispiel var s: list of {1,...,K} wiederhole bis eine id in s eindeutig s:= id zufällig aus {1,...K} wiederhole n-mal füge id zu s hinzu sende id an linken Nachbarn empfange id vom rechten Nachbarn
165 Leader election in Netzen im Ring - Beispiel var s: list of {1,...,K} wiederhole bis eine id in s eindeutig s:= id zufällig aus {1,...K} wiederhole n-mal füge id zu s hinzu sende id an linken Nachbarn empfange id vom rechten Nachbarn
166 Leader election in Netzen im Ring - Beispiel var s: list of {1,...,K} wiederhole bis eine id in s eindeutig s:= id zufällig aus {1,...K} wiederhole n-mal füge id zu s hinzu sende id an linken Nachbarn empfange id vom rechten Nachbarn
167 Leader election in Netzen im Ring - Beispiel var s: list of {1,...,K} wiederhole bis eine id in s eindeutig s:= id zufällig aus {1,...K} wiederhole n-mal füge id zu s hinzu sende id an linken Nachbarn empfange id vom rechten Nachbarn
168 Leader election in Netzen im Ring - Beispiel var s: list of {1,...,K} wiederhole bis eine id in s eindeutig s:= id zufällig aus {1,...K} wiederhole n-mal füge id zu s hinzu sende id an linken Nachbarn empfange id vom rechten Nachbarn
169 Leader election in Netzen im Ring - Beispiel var s: list of {1,...,K} wiederhole bis eine id in s eindeutig s:= id zufällig aus {1,...K} wiederhole n-mal füge id zu s hinzu sende id an linken Nachbarn empfange id vom rechten Nachbarn
170 Leader election in Netzen im Ring - Beispiel var s: list of {1,...,K} wiederhole bis eine id in s eindeutig s:= id zufällig aus {1,...K} wiederhole n-mal füge id zu s hinzu sende id an linken Nachbarn empfange id vom rechten Nachbarn
171 Leader election in Netzen im Ring - Beispiel var s: list of {1,...,K} wiederhole bis eine id in s eindeutig s:= id zufällig aus {1,...K} wiederhole n-mal füge id zu s hinzu sende id an linken Nachbarn empfange id vom rechten Nachbarn
172 Leader election in Netzen im Ring - Beispiel var s: list of {1,...,K} wiederhole bis eine id in s eindeutig s:= id zufällig aus {1,...K} wiederhole n-mal füge id zu s hinzu sende id an linken Nachbarn empfange id vom rechten Nachbarn
173 Leader election in Netzen im Ring - Beispiel var s: list of {1,...,K} wiederhole bis eine id in s eindeutig s:= id zufällig aus {1,...K} wiederhole n-mal füge id zu s hinzu sende id an linken Nachbarn empfange id vom rechten Nachbarn
174 Leader election in Netzen im Ring - Beispiel var s: list of {1,...,K} wiederhole bis eine id in s eindeutig s:= id zufällig aus {1,...K} wiederhole n-mal füge id zu s hinzu sende id an linken Nachbarn empfange id vom rechten Nachbarn
175 Leader election in Netzen im Ring - Beispiel var s: list of {1,...,K} wiederhole bis eine id in s eindeutig s:= id zufällig aus {1,...K} wiederhole n-mal füge id zu s hinzu sende id an linken Nachbarn empfange id vom rechten Nachbarn
176 Leader election in Netzen im Ring - Beispiel var s: list of {1,...,K} wiederhole bis eine id in s eindeutig s:= id zufällig aus {1,...K} wiederhole n-mal füge id zu s hinzu sende id an linken Nachbarn empfange id vom rechten Nachbarn
177 Leader election in Netzen im Ring - Beispiel var s: list of {1,...,K} wiederhole bis eine id in s eindeutig s:= id zufällig aus {1,...K} wiederhole n-mal füge id zu s hinzu sende id an linken Nachbarn empfange id vom rechten Nachbarn
178 Leader election in Netzen im Ring - Beispiel var s: list of {1,...,K} wiederhole bis eine id in s eindeutig s:= id zufällig aus {1,...K} wiederhole n-mal füge id zu s hinzu sende id an linken Nachbarn empfange id vom rechten Nachbarn
179 Leader election in Netzen im Ring - Beispiel var s: list of {1,...,K} wiederhole bis eine id in s eindeutig s:= id zufällig aus {1,...K} wiederhole n-mal füge id zu s hinzu sende id an linken Nachbarn empfange id vom rechten Nachbarn
180 Leader election in Netzen im Ring - Beispiel var s: list of {1,...,K} wiederhole bis eine id in s eindeutig s:= id zufällig aus {1,...K} wiederhole n-mal füge id zu s hinzu sende id an linken Nachbarn empfange id vom rechten Nachbarn
181 Leader election in Netzen im Ring - Beispiel var s: list of {1,...,K} wiederhole bis eine id in s eindeutig s:= id zufällig aus {1,...K} wiederhole n-mal füge id zu s hinzu sende id an linken Nachbarn empfange id vom rechten Nachbarn
182 Leader election in Netzen im Ring - Beispiel var s: list of {1,...,K} wiederhole bis eine id in s eindeutig s:= id zufällig aus {1,...K} wiederhole n-mal füge id zu s hinzu sende id an linken Nachbarn empfange id vom rechten Nachbarn Nach 8 Runden wird Rechner 12 Leader 10 3
183 Leader election in Netzen im Ring - Beispiel var s: list of {1,...,K} wiederhole bis eine id in s eindeutig s:= id zufällig aus {1,...K} wiederhole n-mal füge id zu s hinzu sende id an linken Nachbarn empfange id vom rechten Nachbarn Nach 8 Runden wird Rechner 12 Leader 10 3
184 Leader election in Netzen mit Zufall - Aufwand Rechenaufwand wiederhole bis eine id in s eindeutig entscheidet über Laufzeit des Algorithmus Wahrscheinlichkeit geht gegen 1. Kommunikationsaufwand wie oben, abhängig von der Zahl der Runden
Christoph Niederseer, Michaela Mayr, Alexander Aichinger, Fabian Küppers. Wissenschaftl. Arbeitstechniken und Präsentation
Christoph Niederseer, Michaela Mayr, Alexander Aichinger, Fabian Küppers 1. Was ist paralleles Programmieren 2. Bitoner Sortieralgorithmus 3. Quicksort a) sequenzielles Quicksort b) paralleles Quicksort
MehrKapitel 2. Weitere Beispiele Effizienter Algorithmen
Kapitel 2 Weitere Beispiele Effizienter Algorithmen Sequentielle Suche Gegeben: Array a[1..n] Suche in a nach Element x Ohne weitere Zusatzinformationen: Sequentielle Suche a[1] a[2] a[3] Laufzeit: n Schritte
Mehrp max = 4 T = 8 Work = 28 3 I = Work / T = 3,5 2 Cost = p max * T = 32 U = I / p max = 87,5% 1
Massivparallele Modelle und Architekturen Wintersemester 2010/2011 Lösungsvorschlag 1. Übung 1. Aufgabe: Leistungsbewertung paralleler Systeme Betrachtet werden soll der Odd-Even-Sort-Algorithmus mit n
MehrKapitel 2: Analyse der Laufzeit von Algorithmen Gliederung
Gliederung 1. Motivation / Einordnung / Grundlagen 2. Analyse der Laufzeit von Algorithmen 3. Untere Schranken für algorithmische Probleme 4. Sortier- und Selektionsverfahren 5. Paradigmen des Algorithmenentwurfs
Mehrp max = 4 T = 8 Work = 28 3 I = Work / T = 3,5 2 Cost = p max * T = 32 U = I / p max = 87,5% 1
Massivparallele Modelle und Architekturen Wintersemester 13/14 Lösungsvorschlag 1. Übung 1. Aufgabe: Leistungsbewertung paralleler Systeme Betrachtet werden soll der Odd-Even-Sort-Algorithmus mit n Eingangswerten
MehrUNABHÄNGIGER LASTEN. Vorlesung 9 BALANCIERUNG DYNAMISCHER. Graphenalgorithmen und lineare Algebra Hand in Hand
Vorlesung 9 BALANCIERUNG DYNAMISCHER UNABHÄNGIGER LASTEN 266 Lastbalancierung Motivation! Ein paralleles System besteht aus! verschiedenen Recheneinheiten,! die miteinander kommunizieren können! Warum
Mehrverschiedenen Recheneinheiten, die miteinander kommunizieren können
Vorlesung 9 BALANCIERUNG DYNAMISCHER UNABHÄNGIGER LASTEN 293 Lastbalancierung Motivation Ein paralleles System besteht aus verschiedenen Recheneinheiten, die miteinander kommunizieren können Warum parallel
Mehr> Parallele Systeme Übung: 4. Übungsblatt Philipp Kegel Wintersemester 2012/2013. Parallele und Verteilte Systeme, Institut für Informatik
> Parallele Systeme Übung: 4. Übungsblatt Philipp Kegel Wintersemester 2012/2013 Parallele und Verteilte Systeme, Institut für Informatik Inhaltsverzeichnis 2 1 Besprechung des 4. Übungsblattes Aufgabe
MehrParallele Algorithmen
Parallele Algorithmen bereits behandelt: paralleles Sortieren mit Ranksort parallele Matrixmultiplikation nach Gentleman numerisches Iterationsverfahren nach Jacobi Matrixmultiplikation im Hypercube (DNS-Verfahren)
MehrKomplexität von Algorithmen:
Komplexität von Algorithmen: Ansatz: Beschreiben/erfassen der Komplexität über eine Funktion, zur Abschätzung des Rechenaufwandes abhängig von der Größe der Eingabe n Uns interessiert: (1) Wie sieht eine
MehrAlgorithmen und Datenstrukturen
Universität Innsbruck Institut für Informatik Zweite Prüfung 16. Oktober 2008 Algorithmen und Datenstrukturen Name: Matrikelnr: Die Prüfung besteht aus 8 Aufgaben. Die verfügbaren Punkte für jede Aufgabe
MehrBeispiel: Quicksort. Theoretische Informatik III (Winter 2018/19) Prof. Dr. Ulrich Hertrampf. quicksort(a 1,...,a n ): IF n 2 THEN
Als zweites Beispiel betrachten wir ein weiteres Sortierverfahren, das unter dem Namen quicksort bekannt ist. Eingabe ist wieder ein Array a 1,...,a n AUFGABE: Sortiere a 1,...,a n nach vorgegebenem Schlüssel!
MehrKapitel 3: Sortierverfahren Gliederung
Gliederung 1. Grundlagen 2. Zahlentheoretische Algorithmen 3. Sortierverfahren 4. Ausgewählte Datenstrukturen 5. Dynamisches Programmieren 6. Graphalgorithmen 7. String-Matching 8. Kombinatorische Algorithmen
Mehr4 Effizienz und Komplexität 3.1 1
4 Effizienz und Komplexität 3.1 1 Effizienz (efficiency): auf den Ressourcen-Verbrauch bezogene Programmeigenschaft: hohe Effizienz bedeutet geringen Aufwand an Ressourcen. Typische Beispiele: Speichereffizienz
MehrEffiziente Algorithmen (SS2015)
Effiziente Algorithmen (SS205) Kapitel 5 Approximation II Walter Unger Lehrstuhl für Informatik 2.06.205 07:59 5 Inhaltsverzeichnis < > Walter Unger 5.7.205 :3 SS205 Z Inhalt I Set Cover Einleitung Approximation
Mehr7. Parallele Algorithmen für FPGA-Implementierungen
7. Parallele Algorithmen für FPGA-Implementierungen Odd-Even-Transposition-Sort für 8 Elemente Ein sinnvolles Werkzeug bei der Entwicklung und dem Beweis von Sortierverfahren ist das 0-1-Pinzip. 0-1-Prinzip
MehrÜbung zu Algorithmen und Datenstrukturen (für ET/IT)
Übung zu Algorithmen und Datenstrukturen (für ET/IT) Sommersemester 2017 Rüdiger Göbl, Mai Bui Computer Aided Medical Procedures Technische Universität München Fibonacci Zahlen Fibonacci Folge Die Fibonacci
MehrJAVA - Suchen - Sortieren
Übungen Informatik I JAVA - Suchen - Sortieren http://www.fbi-lkt.fh-karlsruhe.de/lab/info01/tutorial Übungen Informatik 1 Folie 1 Inhalt Suchen/Sortieren binary search mergesort bubblesort Übungen Informatik
MehrKapitel 5: Paradigmen des Algorithmenentwurfs. Gliederung
Gliederung 1. Grundlagen 2. Analyse der Laufzeit von Algorithmen 3. Untere Schranken für algorithmische Probleme 4. Sortier- und Selektionsverfahren 5. Paradigmen des Algorithmenentwurfs 6. Ausgewählte
Mehr6. Parallele Algorithmen
6. Parallele Algorithmen 6.1 Vorbemerkungen Bisher: Instruktionen von Programmen werden durch einen einzigen Prozessor sequentiell ausgeführt. Eine Beschleunigung von Algorithmen ist dabei nur möglich,
MehrTechnische Universität Wien Institut für Computergraphik und Algorithmen Arbeitsbereich für Algorithmen und Datenstrukturen
Technische Universität Wien Institut für Computergraphik und Algorithmen Arbeitsbereich für Algorithmen und Datenstrukturen 186.172 Algorithmen und Datenstrukturen 1 VL 4.0 Übungsblatt 1 für die Übung
MehrElementare Sortierverfahren
Algorithmen und Datenstrukturen I Elementare Sortierverfahren Fakultät für Informatik und Mathematik Hochschule München Letzte Änderung: 18.03.2018 18:16 Inhaltsverzeichnis Sortieren.......................................
MehrModul Algorithmik, T-Katalog
Modul Algorithmik, T-Katalog Sommersemester 2017 Steffen Lange 1/1, Folie 1 2017 Prof. Steffen Lange - HDa/FbI - Algorithmik Organisatorisches u Vorlesung Folien im Netz u Übung eine Übung alle 14 Tage
MehrSuchen und Sortieren
Suchen und Sortieren Suchen Sortieren Mischen Zeitmessungen Bewertung von Sortier-Verfahren Seite 1 Suchverfahren Begriffe Suchen = Bestimmen der Position (Adresse) eines Wertes in einer Datenfolge Sequentielles
Mehr3.3 Laufzeit von Programmen
3.3 Laufzeit von Programmen Die Laufzeit eines Programmes T(n) messen wir als die Zahl der Befehle, die für die Eingabe n abgearbeitet werden Betrachten wir unser Programm zur Berechnung von Zweierpotenzen,
MehrPräfix-Summe. Das Schweizer Offiziersmesser der Parallelen Algorithmen. Parallele Rechenmodelle Präfix-Summe Brents Lemma Anwendungen
Präfix-Summe Das Schweizer Offiziersmesser der Parallelen Algorithmen Parallele Rechenmodelle Präfix-Summe Brents Lemma Anwendungen Parallele Rechenmodelle Beispiel: Summieren von Zahlen Verlauf des Rechenprozesses:
MehrKap. 3: Sortieren. 4. VO DAP2 SS April 2009
Kap. 3: Sortieren Professor Dr. Lehrstuhl für Algorithm Engineering, LS11 Fakultät für Informatik, TU Dortmund 4. VO DAP2 SS 2009 23. April 2009 1 Überblick Einführung in das Sortierproblem Insertion-Sort
MehrAbgabe: (vor der Vorlesung) Aufgabe 2.1 (P) O-Notation Beweisen Sie die folgenden Aussagen für positive Funktionen f und g:
TECHNISCHE UNIVERSITÄT MÜNCHEN FAKULTÄT FÜR INFORMATIK Lehrstuhl für Sprachen und Beschreibungsstrukturen SS 2009 Grundlagen: Algorithmen und Datenstrukturen Übungsblatt 2 Prof. Dr. Helmut Seidl, S. Pott,
MehrDatenstrukturen und Algorithmen. Christian Sohler FG Algorithmen & Komplexität
Datenstrukturen und Algorithmen Christian Sohler FG Algorithmen & Komplexität 1 Geometrisches Problem: Problem: Nächstes Paar Eingabe: n Punkte in der Ebene Ausgabe: Das Paar q,r mit geringstem Abstand
MehrAlgorithmen und Datenstrukturen 1 VL Übungstest WS November 2008
Technische Universität Wien Institut für Computergraphik und Algorithmen Arbeitsbereich für Algorithmen und Datenstrukturen 186.172 Algorithmen und Datenstrukturen 1 VL 4.0 1. Übungstest WS 2008 07. November
MehrInhalt. Organisatorisches. Verteilte Algorithmen Überblick 4. Verteilte Systeme. Formales Modell Algorithmus
1 2 Organisatorisches Inhalt Webseite zur Vorlesung: /teaching/ss_05/algosens/ Folien zur Vorlesung und Übung (soweit verfügbar) Übungsblätter Referenzen auf weiterführende Literatur Ankündigungen zur
MehrÜbersicht über Informatik und Softwaresystemtechnik WS 99/00, Prof. Dr. Andreas Schwill
Konvexe Hülle Hierbei handelt es sich um ein klassisches Problem aus der Algorithmischen Geometrie, dem Teilgebiet der Informatik, in dem man für geometrische Probleme effiziente Algorithmen bestimmt.
MehrEin sortiertes Feld kann in O(log n) durchsucht werden, z.b. mit Binärsuche. Der Algorithmus 1 gibt den Pseudocode der binären Suche an.
2.5 Suchen Eine Menge S will nach einem Element durchsucht werden. Die Menge S ist statisch und S = n. S ist Teilmenge eines Universums auf dem eine lineare Ordnung definiert ist und soll so gespeichert
MehrProgrammieren I. Kapitel 7. Sortieren und Suchen
Programmieren I Kapitel 7. Sortieren und Suchen Kapitel 7: Sortieren und Suchen Ziel: Varianten der häufigsten Anwendung kennenlernen Ordnung Suchen lineares Suchen Binärsuche oder Bisektionssuche Sortieren
MehrKap. 3: Sortieren. Überblick. Unser Sortierproblem. Motivation. Laufzeitmessung. Warum soll ich hier bleiben? Sortierverfahren sind WICHTIG!!!
Kap. 3: Sortieren Professor Dr. Lehrstuhl für Algorithm Engineering, LS11 Fakultät für Informatik, TU Dortmund Überblick Einführung in das Sortierproblem Insertion-Sort Selection-Sort Merge-Sort 4. VO
MehrÜbung Algorithmen und Datenstrukturen
Übung Algorithmen und Datenstrukturen Sommersemester 017 Marc Bux, Humboldt-Universität zu Berlin Agenda 1. Vorrechnen von Aufgabenblatt 1. Wohlgeformte Klammerausdrücke 3. Teile und Herrsche Agenda 1.
MehrSuchen und Sortieren
Ideen und Konzepte der Informatik [Ordnung ist das halbe Leben] Kurt Mehlhorn (viele Folien von Kostas Panagiotou) Suchen Welche Telefonnummer hat Kurt Mehlhorn? Wie schreibt man das Wort Gerechtigkeit?
MehrAlgorithmen und Datenstrukturen (für ET/IT)
Algorithmen und Datenstrukturen (für ET/IT) Sommersemester 2017 Dr. Stefanie Demirci Computer Aided Medical Procedures Technische Universität München Programm heute 1 Einführung 2 Grundlagen von Algorithmen
MehrInformatik II, SS 2018
Informatik II - SS 2018 (Algorithmen & Datenstrukturen) Vorlesung 4 (30.4.2018) Sortieren IV Algorithmen und Komplexität Analyse Merge Sort Laufzeit T(n) setzt sich zusammen aus: Divide und Merge: O n
Mehr5. Übungsblatt zu Algorithmen II im WS 2017/2018
Karlsruher Institut für Technologie Institut für Theoretische Informatik Prof. Dr. Peter Sanders Dr. Thomas Worsch, Dr. Simon Gog Demian Hespe, Yaroslav Akhremstev 5. Übungsblatt zu Algorithmen II im WS
Mehr5. Bäume und Minimalgerüste
5. Bäume und Minimalgerüste Charakterisierung von Minimalgerüsten 5. Bäume und Minimalgerüste Definition 5.1. Es ein G = (V, E) ein zusammenhängender Graph. H = (V,E ) heißt Gerüst von G gdw. wenn H ein
MehrStud.-Nummer: Datenstrukturen & Algorithmen Seite 1
Stud.-Nummer: Datenstrukturen & Algorithmen Seite 1 Aufgabe 1. / 16 P Instruktionen: 1) In dieser Aufgabe sollen Sie nur die Ergebnisse angeben. Diese können Sie direkt bei den Aufgaben notieren. 2) Sofern
MehrSuchen und Sortieren
Ideen und Konzepte der Informatik Suchen und Sortieren [Ordnung muss sein ] Kurt Mehlhorn (viele Folien von Kostas Panagiotou) Suchen Welche Telefonnummer hat Kurt Mehlhorn? Wie schreibt man das Wort Equivalenz?
MehrKonvexe Hülle. Konvexe Hülle. Mathematik. Konvexe Hülle: Definition. Mathematik. Konvexe Hülle: Eigenschaften. AK der Algorithmik 5, SS 2005 Hu Bin
Konvexe Hülle Konvexe Hülle AK der Algorithmik 5, SS 2005 Hu Bin Anwendung: Computergraphik Boundary Kalkulationen Geometrische Optimierungsaufgaben Konvexe Hülle: Definition Mathematik Konvex: Linie zwischen
MehrKlausur Paralleles Rechnen (Richtwert 60 min) 10. Dez. 2015
Klausur Paralleles Rechnen (Richtwert 60 min) 10. Dez. 2015 Aufgabe 1: (30 Punkte) 1. Erläutern Sie kurz das PRAM-Modell? Was wird sehr idealistisch, was wird realistischer im Vergleich mit echten Parallelrechnern
Mehr2. Woche Eindeutige Entschlüsselbarleit, Sätze von Kraft und McMillan, Huffmancodierung
2 Woche Eindeutige Entschlüsselbarleit, Sätze von Kraft und McMillan, Huffmancodierung 2 Woche: Eindeutige Entschlüsselbarleit, Sätze von Kraft und McMillan, Huffmancodierung 24/ 44 Zwei Beispiele a 0
MehrAlgorithmen und Datenstrukturen SoSe 2008 in Trier. Henning Fernau Universität Trier
Algorithmen und Datenstrukturen SoSe 2008 in Trier Henning Fernau Universität Trier fernau@uni-trier.de 1 Algorithmen und Datenstrukturen Gesamtübersicht Organisatorisches / Einführung Grundlagen: RAM,
Mehr4.1 Bäume, Datenstrukturen und Algorithmen. Zunächst führen wir Graphen ein. Die einfachste Vorstellung ist, dass ein Graph gegeben ist als
Kapitel 4 Bäume 4.1 Bäume, Datenstrukturen und Algorithmen Zunächst führen wir Graphen ein. Die einfachste Vorstellung ist, dass ein Graph gegeben ist als eine Menge von Knoten und eine Menge von zugehörigen
MehrG. Zachmann Clausthal University, Germany Die wichtigsten Entwurfsverfahren für Algorithmen:
lausthal Informatik II Divide & onquer. Zachmann lausthal University, ermany zach@in.tu-clausthal.de Algorithmen-Design-Techniken Die wichtigsten Entwurfsverfahren für Algorithmen: 1. Divide and onquer
Mehr(a, b)-bäume / 1. Datenmenge ist so groß, dass sie auf der Festplatte abgespeichert werden muss.
(a, b)-bäume / 1. Szenario: Datenmenge ist so groß, dass sie auf der Festplatte abgespeichert werden muss. Konsequenz: Kommunikation zwischen Hauptspeicher und Festplatte - geschieht nicht Byte für Byte,
MehrDas Divide - and - Conquer Prinzip. Quicksort Formulierung und Analyse des Prinzips Geometrisches Divide and Conquer - Closest-Pair - Segmentschnitt
Divide and Conquer Das Divide - and - Conquer Prinzip Quicksort Formulierung und Analyse des Prinzips Geometrisches Divide and Conquer - Closest-Pair - Segmentschnitt 2 Quicksort: Sortieren durch Teilen
MehrWir wollen nun die Behauptung beweisen, dass die Laufzeit von SELECT linear ist, also dass T (n) = O(n) gilt.
Abschätzung für die Rekursion von SELECT Wir wollen nun die Behauptung beweisen, dass die Laufzeit von SELECT linear ist, also dass T (n) = O(n) gilt. Wir nehmen erst einmal an, dass eine Konstante d existiert,
MehrAm Dienstag, den 15. Dezember, ist Eulenfest. 1/60
Am Dienstag, den 15. Dezember, ist Eulenfest. 1/60 Grundbegriffe der Informatik Einheit 12: Erste Algorithmen in Graphen Thomas Worsch Karlsruher Institut für Technologie, Fakultät für Informatik Wintersemester
MehrWann sind Codes eindeutig entschlüsselbar?
Wann sind Codes eindeutig entschlüsselbar? Definition Suffix Sei C ein Code. Ein Folge s {0, 1} heißt Suffix in C falls 1 c i, c j C : c i = c j s oder 2 c C und einen Suffix s in C: s = cs oder 3 c C
MehrAlgorithmen und Datenstrukturen
Algorithmen und Datenstrukturen Wintersemester 2012/13 17. Vorlesung Nächstes Paar Prof. Dr. Alexander Wolff Lehrstuhl für Informatik I Problem: Gegeben: Menge P von n Punkten in der Ebene, jeder Punkt
MehrMotivation. Überblick. Motivation. Sequentielle Verfahren
Überblick Motivation Wahlalgorithmen Motivation Grundlagen Chang-Roberts-Algorithmus Wellenverfahren Adoptionsverfahren Problem: Wahl eines Anführerknotens szenarien Koordinierung verteilter Aktionen Erzeugung
MehrAlgorithmen & Komplexität
Algorithmen & Komplexität Angelika Steger Institut für Theoretische Informatik steger@inf.ethz.ch Breitensuche, Tiefensuche Wir besprechen nun zwei grundlegende Verfahren, alle Knoten eines Graphen zu
MehrAlgorithms & Data Structures 2
Algorithms & Data Structures Digital Sorting WS B. Anzengruber-Tanase (Institute for Pervasive Computing, JKU Linz) (Institute for Pervasive Computing, JKU Linz) WIEDERHOLUNG :: UNTERE SCHRANKE FÜR SORTIEREN
MehrKapitel 1: Schaltfunktionen und ihre Darstellung
Kapitel 1: Schaltfunktionen und ihre Darstellung Kapitel 1 Schaltfunktionen und ihre Darstellung Literatur: Oberschelp/Vossen, Kapitel 1 Kapitel 1: Schaltfunktionen und ihre Darstellung Seite 1 Motivation
MehrSeminar. Algorithmische Geometrie
Seminar Algorithmische Geometrie WS 2000/2001 Thema: Konvexe Hülle Mirko Dennler 21439 Inhaltsverzeichnis Konvexe Hülle 1. Problemstellung 3 2. GRAHAMS SCAN 4-5 3. JARVIS' MARCH 5-6 4. QUICK HULL 6-7 5.
MehrAlgorithmik Kap. 2: Laufzeit von Algorithmen
1. Motivation 1.1 Fallstudie: Sortieralgorithmen 1.2 Fallstudie: Selektionsalgorithmen 2. Laufzeit von Algorithmen 2.1 Grundlagen 2.2 3. Paradigmen des Algorithmenentwurfs 3.1 Dynamisches Programmieren
MehrWahlalgorithmen auf beliebigen Netzstrukturen. Verteilte Algorithmen (VA), WS 2003/04 43
Wahlalgorithmen Überblick/Problemstellung Wahlalgorithmen auf Ringstrukturen Beispiel TokenRing Wahlalgorithmen auf Baumstrukturen Wahlalgorithmen auf beliebigen Netzstrukturen Verteilte Algorithmen (VA),
MehrAlgorithmen und Datenstrukturen (für ET/IT)
Algorithmen und Datenstrukturen (für ET/IT) Sommersemester 2018 Dr. Stefanie Demirci Computer Aided Medical Procedures Technische Universität München Organisatorisches: Keine Vorlesung nächste Woche wegen
MehrAlgorithmen und Datenstrukturen
Technische Universität München WiSe 2012/13 Institut für Informatik I-16 Lösungsblatt 7 Dr. Tobias Lasser 3. Dezember 2012 Jakob Vogel Algorithmen und Datenstrukturen Aufgabe 1 Rechnen mit Landau-Symbolen
MehrAbschnitt 19: Sortierverfahren
Abschnitt 19: Sortierverfahren 19. Sortierverfahren 19.1 Allgemeines 19.2 Einfache Sortierverfahren 19.3 Effizientes Sortieren: Quicksort 19.4 Zusammenfassung 19 Sortierverfahren Informatik 2 (SS 07) 758
MehrA+D: Bitonisches Sortieren
A+D: Bitonisches Sortieren H. P. Wolf Version: 9.12.2005, file: shsort.rev 1 Schritte zum Verständnis des bitonischen Sortierens Zur Klärung wollen wir zwei Definitionen voranstellen. Eine bitonische Folge
MehrAlgorithmen für Ad-hoc- und Sensornetze
Algorithmen für Ad-hoc- und Sensornetze Übung 6 Kommunikation und Färbungen im SINR Modell (basierend auf VL11) Fabian Fuchs 17. Jan. 2015 (Version 1) INSTITUT FÜR THEORETISCHE INFORMATIK - LEHRSTUHL FÜR
Mehr2.1. Konvexe Hülle in 2D
Wir wollen die konvexe Hülle einer Menge von Punkten P = {p 1,..., p n } in der Ebene R 2 bestimmen. y y x x Def. 21: Eine Teilmenge S der Ebene ist konvex gdw für jedes Paar das Liniensegment pq in S
MehrAlgorithmen und Datenstrukturen
1 Algorithmen und Datenstrukturen Wintersemester 2014/15 3. Vorlesung Laufzeitanalyse Prof. Dr. Alexander Wolff Lehrstuhl für Informatik I 2 Recap: Diskutieren Sie mit Ihrer NachbarIn! 1. 2. 3. Was sind
MehrDas Suchproblem 4. Suchen Das Auswahlproblem Suche in Array
Das Suchproblem Gegeben. Suchen Lineare Suche, Binäre Suche, Interpolationssuche, Untere Schranken [Ottman/Widmayer, Kap. 3.2, Cormen et al, Kap. 2: Problems 2.-3,2.2-3,2.3-] Menge von Datensätzen. Beispiele
MehrAlgorithmen und Datenstrukturen 1
Algorithmen und Datenstrukturen 1 6. Vorlesung Martin Middendorf / Universität Leipzig Institut für Informatik middendorf@informatik.uni-leipzig.de studla@bioinf.uni-leipzig.de Merge-Sort Anwendbar für
MehrAlgorithmen und Datenstrukturen Tutorium Übungsaufgaben
Algorithmen und Datenstrukturen Tutorium Übungsaufgaben AlgoDat - Übungsaufgaben 1 1 Landau-Notation Aufgabe Lösung 2 Rekurrenzen Aufgabe 3 Algorithmenentwurf und -analyse Aufgabe AlgoDat - Übungsaufgaben
MehrAlgorithmische Techniken für Geometrische Probleme
Algorithmische Techniken für Geometrische Probleme Berthold Vöcking 14. Juni 2007 Inhaltsverzeichnis 1 Die Sweepline-Technik 2 1.1 Schnitte orthogonaler Liniensegmente............... 2 1.2 Schnitte beliebiger
MehrDas Suchproblem. Gegeben Menge von Datensätzen. Beispiele Telefonverzeichnis, Wörterbuch, Symboltabelle
122 4. Suchen Lineare Suche, Binäre Suche, Interpolationssuche, Untere Schranken [Ottman/Widmayer, Kap. 3.2, Cormen et al, Kap. 2: Problems 2.1-3,2.2-3,2.3-5] 123 Das Suchproblem Gegeben Menge von Datensätzen.
Mehr( )= c+t(n-1) n>1. Stand der Vorlesung Komplexität von Algorithmen (Kapitel 3)
Stand der Vorlesung Komplexität von Algorithmen (Kapitel 3) Motivation: IT gestützte Steuerung, Überwachung, Fertigung, Produktion,. : erfordert effiziente Berechnungsvorschriften Ziel: Methoden kennen
MehrAuswählen nach Rang (Selektion)
Auswählen nach Rang (Selektion) Geg.: Folge X von n Schlüsseln, eine Zahl k mit k n Ges.: ein k-kleinster Schlüssel von X, also den Schlüssel x k für X sortiert als x x 2 L x n trivial lösbar in Zeit O(kn)
MehrKlausur Algorithmentheorie
Prof. Dr. G. Schnitger Frankfurt, den 13.02.2009 Klausur Algorithmentheorie WS 2008/2009 Name: Vorname: Studiengang: BITTE GENAU LESEN Die Klausur besteht aus 4 Aufgaben, in denen maximal 100 Punkte erreicht
Mehr1.8 Shift-And-Algorithmus
.8 Shift-And-Algorithmus nutzt durch Bitoperationen mögliche Parallelisierung Theoretischer Hintergrund: Nichtdeterministischer endlicher Automat Laufzeit: Θ(n), falls die Länge des Suchwortes nicht größer
MehrÜbungsblatt 1. f(n) = f(n) = O(g(n)) g(n) = O(f(n)) Zeigen oder widerlegen Sie: 3 n = Θ(2 n ) Aufgabe 1.2 Gegeben sei die folgende Funktion:
Übungsblatt 1 Aufgabe 1.1 Beweisen oder widerlegen Sie, dass für die im Folgenden definierte Funktion f(n) die Beziehung f(n) = Θ(n 4 ) gilt. Beachten Sie, dass zu einem vollständigen Beweis gegebenenfalls
Mehr1. Übungsblatt zu Algorithmen II im WS 2011/2012
Karlsruher Institut für Technologie Institut für Theoretische Informatik Prof. Dr. Peter Sanders Moritz Kobitzsch, Dennis Schieferdecker. Übungsblatt zu Algorithmen II im WS 0/0 http://algo.iti.kit.edu/algorithmenii.php
MehrAbschnitt 7: Komplexität von imperativen Programmen
Abschnitt 7: Komplexität von imperativen Programmen 7. Komplexität von imperativen Programmen 7 Komplexität von imperativen Programmen Einf. Progr. (WS 08/09) 399 Ressourcenbedarf von Algorithmen Algorithmen
MehrStand der Vorlesung Komplexität von Algorithmen (Kapitel 3)
Stand der Vorlesung Komplexität von Algorithmen (Kapitel 3) Technische Universität München Motivation: IT gestützte Steuerung, Überwachung, Fertigung, Produktion,. : erfordert effiziente Berechnungsvorschriften
MehrSuchen und Sortieren
Ideen und Konzepte der Informatik Suchen und Sortieren Ordnung ist das halbe Leben Antonios Antoniadis (Basierend auf Folien von Kurt Mehlhorn und Konstantinos Panagiotou) 6. November 2017 6. November
MehrIsomorphismus. Definition Gruppen-Isomorphismus. Seien (G, +) und (G, ) Gruppen. Die Abbildung f : G G heißt Gruppen-Isomorphismus, falls gilt
Isomorphismus Definition Gruppen-Isomorphismus Seien (G, +) und (G, ) Gruppen. Die Abbildung f : G G heißt Gruppen-Isomorphismus, falls gilt 1 f ist bijektiv f (u + v) = f (u) f (v) für alle u, v G, die
MehrAlgorithmen und Datenstrukturen (Th. Ottmann und P. Widmayer) Folien: Spezielle Sortierverfahren Autor: Sven Schuierer
Algorithmen und Datenstrukturen (Th. Ottmann und P. Widmayer) Folien: Spezielle Sortierverfahren Autor: Sven Schuierer Institut für Informatik Georges-Köhler-Allee Albert-Ludwigs-Universität Freiburg 1
MehrKap. 3: Sortieren (3)
Kap. 3: Sortieren (3) Professor Dr. Lehrstuhl für Algorithm Engineering, LS Fakultät für Informatik, TU Dortmund 6. VO DAP2 SS 2009 30. April 2009 Überblick Quick-Sort Analyse von Quick-Sort Quick-Sort
Mehr1. Asymptotische Notationen 2. Zahlentheoretische Algorithmen 3. Sortierverfahren 4. String Matching 5. Ausgewählte Datenstrukturen
Gliederung 1. Asymptotische Notationen 2. Zahlentheoretische Algorithmen 3. Sortierverfahren 4. String Matching 5. Ausgewählte Datenstrukturen 1/1, Folie 1 2009 Prof. Steffen Lange - HDa/FbI - Effiziente
MehrDatenstrukturen und Algorithmen (SS 2013)
Datenstrukturen und Algorithmen (SS 2013) Übungsblatt 10 Abgabe: Montag, 08.07.2013, 14:00 Uhr Die Übungen sollen in Gruppen von zwei bis drei Personen bearbeitet werden. Schreiben Sie die Namen jedes
MehrCopyright, Page 1 of 7 Heapsort
www.mathematik-netz.de Copyright, Page 1 of 7 Heapsort Alle grundlegenden, allgemeinen Sortierverfahren benötigen O(n 2 ) Zeit für das Sortieren von n Schlüsseln. Die kritischen Operationen, d.h. die Auswahl
MehrDie asymptotische Notation
Die asymptotische Notation f, g : N R 0 seien Funktionen, die einer Eingabelänge n N eine nicht-negative Laufzeit f (n), bzw. g(n) zuweisen. Asymptotik 1 / 9 Die asymptotische Notation f, g : N R 0 seien
MehrPräsenzübung Datenstrukturen und Algorithmen SS 2014
Prof. aa Dr. E. Ábrahám F. Corzilius, S. Schupp, T. Ströder Präsenzübung Datenstrukturen und Algorithmen SS 2014 Vorname: Nachname: Studiengang (bitte genau einen markieren): Informatik Bachelor Informatik
MehrKapitel 10. Komplexität von Algorithmen und Sortieralgorithmen
Kapitel 10 Komplexität von Algorithmen und Sortieralgorithmen Arrays 1 Ziele Komplexität von Algorithmen bestimmen können (in Bezug auf Laufzeit und auf Speicherplatzbedarf) Sortieralgorithmen kennenlernen:
Mehr2. Algorithmische Methoden 2.1 Rekursion. 18. April 2017
2. Algorithmische Methoden 2.1 Rekursion 18. April 2017 Rekursiver Algorithmus Ein rekursiver Algorithmus löst ein Problem, indem er eine oder mehrere kleinere Instanzen des gleichen Problems löst. Beispiel
MehrVorlesung Datenstrukturen
Vorlesung Datenstrukturen Minimale Spannbäume Maike Buchin 18.7., 20.7.2017 Einführung Motivation: Verbinde Inseln mit Fähren oder Städte mit Schienen und verbrauche dabei möglichst wenig Länge. Problem:
Mehr