Kapitel 10 Parallele Algorithmen. Bitonisches Sortieren Teilworterkennung Leader election in Ringnetzwerken

Größe: px
Ab Seite anzeigen:

Download "Kapitel 10 Parallele Algorithmen. Bitonisches Sortieren Teilworterkennung Leader election in Ringnetzwerken"

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. 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

Mehr

Kapitel 2. Weitere Beispiele Effizienter Algorithmen

Kapitel 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

Mehr

p 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

p 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

Mehr

Kapitel 2: Analyse der Laufzeit von Algorithmen Gliederung

Kapitel 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

Mehr

p 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

p 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

Mehr

UNABHÄNGIGER LASTEN. Vorlesung 9 BALANCIERUNG DYNAMISCHER. Graphenalgorithmen und lineare Algebra Hand in Hand

UNABHÄ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

Mehr

verschiedenen Recheneinheiten, die miteinander kommunizieren können

verschiedenen 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 > 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

Mehr

Parallele Algorithmen

Parallele Algorithmen Parallele Algorithmen bereits behandelt: paralleles Sortieren mit Ranksort parallele Matrixmultiplikation nach Gentleman numerisches Iterationsverfahren nach Jacobi Matrixmultiplikation im Hypercube (DNS-Verfahren)

Mehr

Komplexität von Algorithmen:

Komplexitä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

Mehr

Algorithmen und Datenstrukturen

Algorithmen 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

Mehr

Beispiel: Quicksort. Theoretische Informatik III (Winter 2018/19) Prof. Dr. Ulrich Hertrampf. quicksort(a 1,...,a n ): IF n 2 THEN

Beispiel: 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!

Mehr

Kapitel 3: Sortierverfahren Gliederung

Kapitel 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

Mehr

4 Effizienz und Komplexität 3.1 1

4 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

Mehr

Effiziente Algorithmen (SS2015)

Effiziente 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

Mehr

7. Parallele Algorithmen für FPGA-Implementierungen

7. 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) Ü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

Mehr

JAVA - Suchen - Sortieren

JAVA - 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

Mehr

Kapitel 5: Paradigmen des Algorithmenentwurfs. Gliederung

Kapitel 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

Mehr

6. Parallele Algorithmen

6. 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,

Mehr

Technische 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 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

Mehr

Elementare Sortierverfahren

Elementare 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.......................................

Mehr

Modul Algorithmik, T-Katalog

Modul 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

Mehr

Suchen und Sortieren

Suchen 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

Mehr

3.3 Laufzeit von Programmen

3.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,

Mehr

Prä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 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:

Mehr

Kap. 3: Sortieren. 4. VO DAP2 SS April 2009

Kap. 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

Mehr

Abgabe: (vor der Vorlesung) Aufgabe 2.1 (P) O-Notation Beweisen Sie die folgenden Aussagen für positive Funktionen f und g:

Abgabe: (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,

Mehr

Datenstrukturen und Algorithmen. Christian Sohler FG Algorithmen & Komplexität

Datenstrukturen 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

Mehr

Algorithmen und Datenstrukturen 1 VL Übungstest WS November 2008

Algorithmen 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

Mehr

Inhalt. Organisatorisches. Verteilte Algorithmen Überblick 4. Verteilte Systeme. Formales Modell Algorithmus

Inhalt. 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

Ü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.

Mehr

Ein 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.

Ein 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

Mehr

Programmieren I. Kapitel 7. Sortieren und Suchen

Programmieren 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

Mehr

Kap. 3: Sortieren. Überblick. Unser Sortierproblem. Motivation. Laufzeitmessung. Warum soll ich hier bleiben? Sortierverfahren sind WICHTIG!!!

Kap. 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 Ü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.

Mehr

Suchen und Sortieren

Suchen 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?

Mehr

Algorithmen und Datenstrukturen (für ET/IT)

Algorithmen 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

Mehr

Informatik II, SS 2018

Informatik 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

Mehr

5. Übungsblatt zu Algorithmen II im WS 2017/2018

5. Ü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

Mehr

5. Bäume und Minimalgerüste

5. 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

Mehr

Stud.-Nummer: Datenstrukturen & Algorithmen Seite 1

Stud.-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

Mehr

Suchen und Sortieren

Suchen 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?

Mehr

Konvexe 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. 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

Mehr

Klausur Paralleles Rechnen (Richtwert 60 min) 10. Dez. 2015

Klausur 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

Mehr

2. 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 2 Woche: Eindeutige Entschlüsselbarleit, Sätze von Kraft und McMillan, Huffmancodierung 24/ 44 Zwei Beispiele a 0

Mehr

Algorithmen und Datenstrukturen SoSe 2008 in Trier. Henning Fernau Universität Trier

Algorithmen 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,

Mehr

4.1 Bäume, Datenstrukturen und Algorithmen. Zunächst führen wir Graphen ein. Die einfachste Vorstellung ist, dass ein Graph gegeben ist als

4.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

Mehr

G. Zachmann Clausthal University, Germany Die wichtigsten Entwurfsverfahren für Algorithmen:

G. 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. 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,

Mehr

Das Divide - and - Conquer Prinzip. Quicksort Formulierung und Analyse des Prinzips Geometrisches Divide and Conquer - Closest-Pair - Segmentschnitt

Das 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

Mehr

Wir wollen nun die Behauptung beweisen, dass die Laufzeit von SELECT linear ist, also dass T (n) = O(n) gilt.

Wir 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,

Mehr

Am Dienstag, den 15. Dezember, ist Eulenfest. 1/60

Am 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

Mehr

Wann sind Codes eindeutig entschlüsselbar?

Wann 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

Mehr

Algorithmen und Datenstrukturen

Algorithmen 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

Mehr

Motivation. Überblick. Motivation. Sequentielle Verfahren

Motivation. Überblick. Motivation. Sequentielle Verfahren Überblick Motivation Wahlalgorithmen Motivation Grundlagen Chang-Roberts-Algorithmus Wellenverfahren Adoptionsverfahren Problem: Wahl eines Anführerknotens szenarien Koordinierung verteilter Aktionen Erzeugung

Mehr

Algorithmen & Komplexität

Algorithmen & 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

Mehr

Algorithms & Data Structures 2

Algorithms & 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

Mehr

Kapitel 1: Schaltfunktionen und ihre Darstellung

Kapitel 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

Mehr

Seminar. Algorithmische Geometrie

Seminar. 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.

Mehr

Algorithmik Kap. 2: Laufzeit von Algorithmen

Algorithmik 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

Mehr

Wahlalgorithmen auf beliebigen Netzstrukturen. Verteilte Algorithmen (VA), WS 2003/04 43

Wahlalgorithmen 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),

Mehr

Algorithmen und Datenstrukturen (für ET/IT)

Algorithmen 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

Mehr

Algorithmen und Datenstrukturen

Algorithmen 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

Mehr

Abschnitt 19: Sortierverfahren

Abschnitt 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

Mehr

A+D: Bitonisches Sortieren

A+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

Mehr

Algorithmen für Ad-hoc- und Sensornetze

Algorithmen 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

Mehr

2.1. Konvexe Hülle in 2D

2.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

Mehr

Algorithmen und Datenstrukturen

Algorithmen 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

Mehr

Das Suchproblem 4. Suchen Das Auswahlproblem Suche in Array

Das 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

Mehr

Algorithmen und Datenstrukturen 1

Algorithmen 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

Mehr

Algorithmen und Datenstrukturen Tutorium Übungsaufgaben

Algorithmen 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

Mehr

Algorithmische Techniken für Geometrische Probleme

Algorithmische 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

Mehr

Das Suchproblem. Gegeben Menge von Datensätzen. Beispiele Telefonverzeichnis, Wörterbuch, Symboltabelle

Das 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)

( )= 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

Mehr

Auswählen nach Rang (Selektion)

Auswä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)

Mehr

Klausur Algorithmentheorie

Klausur 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

Mehr

1.8 Shift-And-Algorithmus

1.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. 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

Mehr

1. Übungsblatt zu Algorithmen II im WS 2011/2012

1. Ü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

Mehr

Abschnitt 7: Komplexität von imperativen Programmen

Abschnitt 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

Mehr

Stand der Vorlesung Komplexität von Algorithmen (Kapitel 3)

Stand 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

Mehr

Suchen und Sortieren

Suchen 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

Mehr

Isomorphismus. 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 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

Mehr

Algorithmen 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 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

Mehr

Kap. 3: Sortieren (3)

Kap. 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

Mehr

1. Asymptotische Notationen 2. Zahlentheoretische Algorithmen 3. Sortierverfahren 4. String Matching 5. Ausgewählte Datenstrukturen

1. 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

Mehr

Datenstrukturen und Algorithmen (SS 2013)

Datenstrukturen 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

Mehr

Copyright, Page 1 of 7 Heapsort

Copyright, 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

Mehr

Die asymptotische Notation

Die 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

Mehr

Präsenzübung Datenstrukturen und Algorithmen SS 2014

Prä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

Mehr

Kapitel 10. Komplexität von Algorithmen und Sortieralgorithmen

Kapitel 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:

Mehr

2. Algorithmische Methoden 2.1 Rekursion. 18. April 2017

2. 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

Mehr

Vorlesung Datenstrukturen

Vorlesung 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