Algorithms & Data Structures 2
|
|
|
- Rolf Maus
- vor 7 Jahren
- Abrufe
Transkript
1 Algorithms & Data Structures 2 Complexity WS2017 B. Anzengruber-Tanase (Institute for Pervasive Computing, JKU Linz) (Institute for Pervasive Computing, JKU Linz)
2 KLASSISCHER (DETERMINISTISCHER) ALGORITHMUSBEGRIFF Allgemeingültige, detaillierte, eindeutige und formalisiert ("rein mechanisch") ausführbare Vorschrift zum schrittweisen Lösen einer lösbaren Aufgabenklasse d.h. aller durch konkrete Parameterwerte charakterisierten Aufgaben eines bestimmten Typs, z.b. Lösen der quadratischen Gleichung x² + px + q = 0 (p, q - Parameter) unter Zugrundelegung eines bestimmten Prozessortyps Mensch, v. Neumann-Rechner, RAM, Turingmaschine,...; sequentiell, sequentiell-parallel, parallel mit endlichem Aufwand (Ressourcen, Zeit) niedergeschrieben als endlicher Text in einer vereinbarten Notierungsform Durch Einbringen nichtdeterministischer, stochastischer, evolutionärer, genetischer,... Elemente gelangt man zu Algorithmen, die zum Lösen bestimmter Aufgabenklassen wesentlich leistungsfähiger sind als klassische Algorithmen: stochastische (probabilistische), genetische,... Algorithmen. Algorithms & Datastructures 2 // 2017W // 2
3 DETERMINISMUS deterministischer Algorithmus zu jedem Zeitpunkt der Verarbeitung besteht höchstens eine Möglichkeit der Fortsetzung Beispiel: Durchwandern eines Irrgartens "immer an der Wand lang" nichtdeterministischer Algorithmus es gibt Zeitpunkte der Verarbeitung, bei denen zwei oder mehr Möglichkeiten der Fortsetzung beliebig ausgewählt werden können Beispiel: zufälliges Suchen im Irrgarten Algorithms & Datastructures 2 // 2017W // 3
4 FORMALE EIGENSCHAFTEN EINES ALGORITHMUS Korrektheit Gestellte Aufgabe richtig gelöst? (Dijkstra) Robustheit Werden Sonderfälle sicher abgehandelt? Allgemeingültigkeit Arbeitet er für beliebige Eingaben? Verständlichkeit Ist er verständlich aufgeschrieben? Effizienz Laufzeit? Speicherplatzbedarf? Messung (nach Implementation) Analyse für idealisierten Modellrechner / Referenzmaschine Interesse: Wachstum der Effizienz Algorithms & Datastructures 2 // 2017W // 4
5 KOMPLEXITÄT Speicherplatzkomplexität Wird (primärer, sekundärer) Speicherplatz effizient genutzt? Laufzeitkomplexität Steht die Laufzeit im akzeptablen/vernünftigen/optimalen Verhältnis zur Aufgabe? Worst-case Analyse Best-case Analyse Average-case Analyse (schwierig Verteilungsannahmen!) => Interesse an oberen und unteren Schranken => Interesse an Größenordnung (konstante Faktoren nicht vordergründig) Algorithms & Datastructures 2 // 2017W // 5
6 CASES Ausgangspunkt: Sei P das betrachtete Problem x... Eingabe, x =n Länge von x T P (x)... Laufzeit von P auf x T P (n)... Laufzeit von P bei Problemgröße n best case: oft leicht zu bestimmen, nicht repräsentativ worst case: konservativ, meist leicht zu bestimmen T P (n) = sup{ T P (x) x = n und x ist Eingabe für P } amortisierter worst case: durchschnittlicher Aufwand für eine schlechtest mögliche Folge von Operationen. average case: oft nicht leicht zu handhaben, aber praxisrelevant. Definition einer Wahrscheinlichkeitsverteilung q n für mögliche x T P,qn (n) = x = n und x ist Eingabe für P T P,qn (x) q n (x) Mittelwert worüber? Inputs gleich verteilt? Algorithms & Datastructures 2 // 2017W // 6
7 FUNKTIONENKLASSEN Groß-O-Notation O-, - und - Notation obere, untere bzw. genaue Schranken Idee beim Aufwand kommt es auf Summanden und konstante Faktoren letztlich nicht an Gründe Interesse am asymptotischen Verhalten für große Eingaben genaue Analyse oft technisch sehr aufwendig / unmöglich lineare Beschleunigungen sind leicht möglich (Tausch von Hard- und Software) Ziel Einteilung der Komplexitätsmessungen nach Funktionenklassen, z.b. O(f) Menge von Funktionen, die in der Größenordnung von f sind Algorithms & Datastructures 2 // 2017W // 7
8 ERMITTLUNG DES LEISTUNGSVERHALTENS Messung einer konkreten Implementierung auf realer Zielmaschine: Laufzeitmessung für repräsentative Eingaben Berechnung/Analyse des Laufzeit- Speicherplatzverbrauches für idealisierte Zielmaschine: Turingmaschine (TM) Random Access Maschine (RAM) Ermittlung/Analyse teurer Elementaroperationen: Anzahl der Vergleiche / Vertauschungen beim Sortieren Anzahl der Multiplikationen / Divisionen beim numerischen Rechnen Algorithms & Datastructures 2 // 2017W // 8
9 MESSUNG Experimentelle Bestimmung der Laufzeit Mögliche Ergebnisse: Programm, das den Algorithmus implementiert exekutiere das Programm mit unterschiedlichen Eingabedaten (n) verwende eine Methode zur Messung der Laufzeit t(ms) n Algorithms & Datastructures 2 // 2017W // 9
10 MESSUNG Vergleich von Geschwindigkeit eines Algorithmus erfordert Mittelwertbildung Arithmetisches Mittel Geometrisches Mittel Harmonisches Mittel K AM = x i / K i=1 K GM = P x 1/K i i=1 K HM = K / ( ( 1 / x i ) ) i=1 Algorithms & Datastructures 2 // 2017W // 10
11 BEISPIEL :: VERGLEICHSMESSUNG VON SORTIERALGORITHMEN Man betrachte 2 Sortieralgorithmen (A und B), implementiert für Maschine Y Frage: Welcher Algorithmus ist schneller? Definition: Sortiergeschwindigkeit = Problemgröße / gemessene Laufzeit Ergebnisse für Problemgröße n = 300 bei unterschiedlicher Struktur der Eingabedaten (Test 1 und Test 2) Geschwindigkeit Algorithmus A Geschwindigkeit Algorithmus B Test 1 5 (Laufzeit 60) 6 (Laufzeit 50) Test (Laufzeit 2) 60 (Laufzeit 5) Algorithmus B bei Test 1 schneller, Algorithmus A bei Test 2 schneller Frage: Welcher Algorithmus ist im Mittel schneller? Algorithms & Datastructures 2 // 2017W // 11
12 BEISPIEL :: VERGLEICH VON SORTIERALGORITHMEN Geschwindigkeit Algorithmus A Geschwindigkeit Algorithmus B Test 1 5 (Laufzeit 60) 6 (Laufzeit 50) Test (Laufzeit 2) 60 (Laufzeit 5) Arithmetisches Mittel: Geschwindigkeit Algorithmus A = (150+5)/2 = 77.5 A schneller Geschwindigkeit Algorithmus B = (60+6)/2 = 33 Geometrisches Mittel: Geschwindigkeit Algorithmus A = (150 * 5) = A schneller Geschwindigkeit Algorithmus B = (60 * 6) = Harmonisches Mittel: Geschwindigkeit Algorithmus A = 2/(1/5 + 1/150) = 9.6 Geschwindigkeit Algorithmus B = 2/(1/6 + 1/60) = B schneller (Überlege zur Probe: Algorithmus A: 600 Elemente in 62 sec, Algorithmus B: 600 Elemente in 55 sec!) Algorithms & Datastructures 2 // 2017W // 12
13 BEISPIEL :: VERGLEICH VON SORTIERALGORITHMEN Geschwindigkeit Algorithmus A Geschwindigkeit Algorithmus B Test 1 5 (Laufzeit 60) 6 (Laufzeit 50) Test (Laufzeit 2) 60 (Laufzeit 5) Arithmetisches Mittel (der Geschwindigkeit): Geschwindigkeit Algorithmus A = (150+5)/2 = 77.5 A schneller Geschwindigkeit Algorithmus B = (60+6)/2 = 33 Geometrisches Mittel (der Geschwindigkeit): Geschwindigkeit Algorithmus A = (150 * 5) = A schneller Geschwindigkeit Algorithmus B = (60 * 6) = Harmonisches Mittel (der Geschwindigkeit): Geschwindigkeit Algorithmus A = 2/(1/5 + 1/150) = 9.6 Geschwindigkeit Algorithmus B = 2/(1/6 + 1/60) = B schneller (Überlege zur Probe: Algorithmus A: 600 Elemente in 62 sec, Algorithmus B: 600 Elemente in 55 sec!) Algorithms & Datastructures 2 // 2017W // 13
14 BEISPIEL :: VERGLEICH VON SORTIERALGORITHMEN Geschwindigkeit Algorithmus A Geschwindigkeit Algorithmus B Test 1 5 (Laufzeit 60) 6 (Laufzeit 50) Test (Laufzeit 2) 60 (Laufzeit 5) Arithmetisches Mittel (der Laufzeit): Geschwindigkeit Algorithmus A = (60+2)/2 = 31 Geschwindigkeit Algorithmus B = (50+5)/2 = 27.5 B schneller Geometrisches Mittel (der Laufzeit): Geschwindigkeit Algorithmus A = (60 2) = A schneller Geschwindigkeit Algorithmus B = (50 5) = Harmonisches Mittel (der Laufzeit): Geschwindigkeit Algorithmus A = 2/(1/60 + 1/2) = 9.23 Geschwindigkeit Algorithmus B = 2/(1/50 + 1/5) = 9.09 B schneller (Überlege zur Probe: Algorithmus A: 600 Elemente in 62 sec, Algorithmus B: 600 Elemente in 55 sec!) Verwende bei Raten (z.b. Geschwindigkeit, Operationen/Sekunde, km/h,...) immer Harmonisches Mittel!! Algorithms & Datastructures 2 // 2017W // 14
15 KRITIK AN EXPERIMENTELLER MESSUNG zusätzlicher Aufwand durch Implementierung und Test des Programmes Experimente sind hinsichtlich der durchführbaren Kombinationen der Eingabegrößen beschränkt, die gewählten Kombinationen sind u.u. nicht typisch für das Verhalten des Algorithmus für den Vergleich von Algorithmen muss eine identische HW/SW Plattform verwendet werden Anforderungen an eine allgemeine Methode zur Laufzeitanalyse soll auf abstrakter Beschreibung des Algorithmus aufbauen (statt auf einer konkreten Implementierung) soll alle möglichen Eingabekombinationen berücksichtigen soll eine HW/SW-unabhängige Bewertung eines Algorithmus erlauben bezogen auf einen Idealisierten Modellrechner Algorithms & Datastructures 2 // 2017W // 15
16 IDEALISIERTER MODELLRECHNER: RAM MODELL Algorithms & Datastructures 2 // 2017W // 16
17 IDEALISIERTER MODELLRECHNER :: RAM MODELL Annahmen: Register, halten unbeschränkt große (evtl. reelle) Zahlen abzählbar unendliche Menge einzeln addressierbarer Speicherzellen direkt oder indirekt addressierbar Befehlssatz ähnlich Assembler (Laden, Speichern, arithmetische Verknüpfung von Registerinhalten, bedingte/unbedingte Sprünge), Speicherplatz Zahl der benötigten RAM-Zellen Laufzeit Zahl der ausgeführten RAM-Befehle Problem: uneingeschränkte Größe der Datenelemente: Einheitskostenmaß: jedes Datenelement belegt nur beschränkten Speicher Größe des Inputs bestimmt durch Anzahl benötigter Datenelemente z.b. Größe eines Sortierproblems gemessen in der Anzahl zu sortierender Zahlen Logarithmisches Kostenmaß: einzelnes DE kann beliebig groß sein Größe des Inputs bestimmt durch Summe der Größe der Elemente Für n > 0 ist die Anzahl der benötigten Darstellungs-Bits log 2 (n+1) Algorithms & Datastructures 2 // 2017W // 17
18 IDEALISIERTER MODELLRECHNER :: PRAM MODELL (PARALLELE BERECHNUNG) Algorithms & Datastructures 2 // 2017W // 18
19 LAUFZEITANALYSE :: LANDAU SCHE O-NOTATION f = O(g) (in Worten: f wächst nicht schneller als g), wenn f = (g) (in Worten: f wächst mindestens so schnell wie g), wenn c +, n o 0, n n 0 : f(n) c g(n) c +, n o 0, n n 0 : f(n) c g(n) f = (g) (in Worten: f und g sind von der gleichen Wachstumsordnung), wenn f = o(g) (in Worten: f wächst langsamer als g), wenn f = w(g) (in Worten: f wächst schneller als g), wenn In Ottmann/Widmayer O(g) = { f a > 0, b > 0, n f(n) a g(n) + b } und (g) = { g c > 0, viele n: f(n) c g(n) } f = O(g) und g = O(f) f(n) / g(n) eine Nullfolge ist g = o(f) Algorithms & Datastructures 2 // 2017W // 19
20 LAUFZEITANALYSE :: LANDAU SCHE O-NOTATION Beispiel 3n 4 + 5n log n O(n 4 ), denn 3n 4 + 5n log n < 3n 4 + 5n 4 + 7n 4 = 15 n 4 für n >= 1. Wähle also c = 15, n 0 = 1. c +, n o 0, n n 0 : f(n) c g(n) In O(n 4 ) steht n 4 für die Funktion, die n auf n 4 abbildet. Häufig schreibt man auch h = O(n 4 ) statt h O(n 4 ) Üblicherweise verwendete Funktionen zum Messen des Wachstums: 1) logarithmische: log n 2) linear: n 3) n log n: n log n 4) quadratisch, kubisch, n 2, n 3,... 5) exponentiell: 2 n, 3 n,... Unterschied zwischen (4) und (5): handhabbar (tractable) - nicht handhabbar Algorithms & Datastructures 2 // 2017W // 20
21 (LAUFZEIT-) KOMPLEXITÄTSKLASSEN Drei zentrale Zeitkomplexitätsklassen werden unterschieden: Algorithmus A heißt: linear-zeitbeschränkt f A O ( n ) polynomial-zeitbeschränkt exponentiell-zeitbeschränkt k N, so daß f A O ( n k ). k N, so daß f A O ( k n ). Komplexitätsklassen P und NP P: Die Menge aller Sprachen (Probleme), die ein deterministischer Automat in Polynomialzeit (O(P(n)) akzeptiert NP: Die Menge aller Sprachen (Probleme), die ein nicht-deterministischer Automat in Polynomialzeit akzeptiert Algorithms & Datastructures 2 // 2017W // 21
22 BERECHNUNG DER (WORST-CASE) ZEITKOMPLEXITÄT Elementare Operationen (Zuweisung, Ein-/ Ausgabe): O ( l ) Summenregel: T 1 ( n ) und T 2 ( n ) seien die Laufzeiten zweier Programmfragmente P1 und P2 ; es gelte: T 1 ( n ) O (f ( n ) ) und T 2 ( n ) O ( g ( n ) ). Für die Hintereinanderausführung von P 1 und P 2 ist dann T 1 ( n ) + T 2 ( n ) O ( max ( f ( n ), g ( n ) ) ) Produktregel: z. B. für geschachtelte Schleifenausführung von P 1 und P 2 T 1 ( n ) * T 2 ( n ) O ( f ( n ) * g ( n ) ) Algorithms & Datastructures 2 // 2017W // 22
23 BERECHNUNG DER (WORST-CASE) ZEITKOMPLEXITÄT Fallunterscheidung: Kosten der Bedingungsanweisung ( O ( l ) ) + Kosten der längsten Alternative Schleife: Produkt aus Anzahl der Schleifendurchläufe mit Kosten der teuersten Schleifenausführung Rekursive Prozeduraufrufe: Produkt aus Anzahl der rekursiven Aufrufe mit Kosten der teuersten Prozedurausführung Algorithms & Datastructures 2 // 2017W // 23
24 BEISPIEL SORTIEREN Definition Sortieren Eingabe: Ausgabe: Reihe von Zahlen a 1, a 2,..., a n Permutation der Eingabe-Zahlenreihe a 1,...,a n, sodass gilt: a 1... a n Mögliche Lösungsalgorithmen: Insertion Sort Merge Sort Algorithms & Datastructures 2 // 2017W // 24
25 ALGORITHMUS :: INSERTION SORT Prinzip: für i=2,...,n, generiere sort. Liste a 1,..., a i durch Einfügen von a i in sortierte Liste a 1,..., a i-1 Eingabe: Pseudocode Algorithm InsertionSort: Input: Array A[1...n] Output: sortiertes Array A for i 2 to n do while A[i] < A[i-1] swap A[i] with A[i-1] decrement i Algorithms & Datastructures 2 // 2017W // 25
26 LAUFZEITANALYSE :: INSERTION SORT Laufzeit ist lineare Funktion der Anzahl der Vergleichsoperationen worst case Eingabedaten sind in umgekehrter Reihenfolge sortiert n-1 Anzahl der Vergleichsoperationen i = n (n-1) / 2 Komplexität (n 2 ) i=1 best case Eingabedaten sind bereits sortiert n-1 Anzahl der Vergleichsoperationen 1 = n-1 Komplexität (n) i=1 average case n-1 Erwartete Anzahl von V.op. (i+1)/2 = n (n+1) / 4 Komplexität (n 2 ) i=1 Algorithms & Datastructures 2 // 2017W // 26
27 ALGORITHMUS :: MERGE SORT Prinzip: Divide and Conquer Divide: Teile Array in 2 Hälften Conquer: sortiere jede Hälfte Combine: vereinige sortierte Listen in einzige sortierte Liste Pseudocode Algorithm MergeSort (A,p,q), sort A[p...q] n q - p + 1, m p + n/2 if n=1 return MergeSort(A,p,m-1) MergeSort(A,m,q) i p, j m, t 1 while (i m-1) and (j q) if j=q+1 or (i m-1 and j q and A[i] < A[j] ) B[t] A[i], i i+1, t t+1 else B[t] A[j], j j+1, t t+1 for t 1 to n A[p + t - 1] B[t] Algorithms & Datastructures 2 // 2017W // 27
28 ALGORITHMUS :: MERGE SORT Eingabe: Rekursive Struktur: Algorithms & Datastructures 2 // 2017W // 28
29 LAUFZEITANALYSE :: MERGE SORT Laufzeit ist lineare Funktion der Anzahl der Zuweisungsoperationen der Arrays A und B Im Merge-Teil sind das 2n Operationen Daher gilt für die Laufzeit T(n) = (n) + T( n/2 ) + T( n/2 ) Durch Anwendung der Master-Methode erhält man T(n) = ( n ln n ) Algorithms & Datastructures 2 // 2017W // 29
30 LAUFZEITANALYSE :: REKURRENZBEZIEHUNGEN Funktion f(n) ist definiert durch Basisfall, z.b.: f(1) = 2 Rekursiver Fall, z.b.: f(n) = f(n-1) + N Standardmethode zur Lösung von Rekurrenzen: Entfaltung wiederholte Substitutionen der rekursiven Regel, bis Basisfall erreicht ist f(n) f(n) = f(n-1) + N = f(n-2) + (N-1) + N = f(n-3) + (N-2) + (N-1) + N... = f(n-i) + (N-i+1) (N-1) + N Basisfall erreicht bei i = N-1: f(n) = (N-2) + (N-1) + N = N ( N+1)/2 + 1 = O(N 2 ) Algorithms & Datastructures 2 // 2017W // 30
31 LAUFZEITANALYSE :: TÜRME VON HANOI Ziel: Schichte alle Scheiben von Stange A auf Stange C Regel: in einem Schritt darf nur eine Scheibe bewegt werden es darf nie eine größere Scheibe auf einer kleineren zu liegen kommen Rekursive Lösung: Schichte N-1 Scheiben von A auf B um Bewege größte Scheibe von A nach C Schichte N-1 Scheiben von B auf C um Gesamtzahl der Züge : T(N) = T(N-1) T(N-1) Algorithms & Datastructures 2 // 2017W // 31
32 LAUFZEITANALYSE :: TÜRMEN VON HANOI Rekurrenzbeziehung T(N) = 2 T(N-1) + 1 T(1) = 1 Lösung durch Entfaltung T(N) = 2 ( 2 T(N-2) + 1) + 1 = = 4 T(N-2) = = 4 ( 2 T(N-3) + 1) = = 8 T(N-3) =... = 2 i T(N-i) + 2 i i Expansion bricht bei i = N-1 ab T(N) = 2 N N N Geometrische Summe, daher T(N) = 2 N - 1 = O(2 N ) Algorithms & Datastructures 2 // 2017W // 32
33 LAUFZEITANALYSE :: REKURRENZ T(N) = 2 T(N/2) + N für N 2 T(1) = 1 T(N) = 2 ( 2T(N/4) + N/2 ) + N = 4 T(N/4) + 2N = 4 ( 2 T(N/8) + N/4 ) +2N = 8 T(N/8) + 3N... = 2 i T(N/2 i ) + in T(1) = 1 Expansion bricht bei i = ld N ab, sodass T(N) = N + N ld N Algorithms & Datastructures 2 // 2017W // 33
34 LÖSEN DER REKURRENZ DURCH RATEN UND BEWEISEN Beispiel T(N) = 2 T(N/2) + N für N 2 T(1) = 1 Annahme ( wild guess ) T(N) = N + N ld N Beweis durch Induktion Basis: T(1) = ld 1 = 1 Induktionsschritt: T(N) = 2 T(N/2) + N = 2 ( N/2 + N/2 ld (N/2)) + N = N + N ( ld N - 1 ) + N = N + N ld N Algorithms & Datastructures 2 // 2017W // 34
35 WEITERES BEISPIEL T(N) = 2 T( N ) + 1 = 2 T(N1/2) + 1 T(2) = 0 T(N) = 2 T(N1/2) + 1 = 2 ( 2 T(N1/4) + 1) + 1 = 4 T(N1/4) = 8 T(N1/8) i T(N1/2 i ) i-1 Expansion bricht bei N1/2i = 2 ab, also bei i = loglog N, daher T(N) = loglogn-1 = logn Algorithms & Datastructures 2 // 2017W // 35
36 LAUFZEITANALYSE :: LÖSEN DER REKURRENZ DURCH INDUKTION Zu zeigen Eigenschaft P gilt für alle ganzzahligen Werte n n 0 Basis: Zeige, daß P für n 0 gilt Induktionsschritt: Zeige wenn P gilt für alle k mit n 0 k n-1 dann gilt P auch für n Beispiel n-1 S(n) = i = n (n-1)/2 für n 2 i=1 Basis: S(2) = 2 (2-1)/2 = 1 Induktionsschritt: Annahme: S(k) = k(k+1)/2 für 2 k n-1 n-1 n-2 S(N) = i = i + n-1 = S(n-1) + n-1 i=1 i=1 = (n-1)(n-1-1)/2 + n-1 = (n 2-3n+2n+2-2)/2 = n (n-1)/2 Algorithms & Datastructures 2 // 2017W // 36
37 LAUFZEITANALYSE :: MASTER THEOREM Kochrezept für Rekurrenzgleichungen der Form: T(n) = a T(n/b) + f(n) mit a 1, b>1 und f(n) asymptotisch positiv und n/b entweder n/b oder n/b Falls f(n) = O ( n log b a-e ) für eine Konstante e > 0, dann T(n) = ( n log b a ) Falls k 0 sodaß f(n) = ( n log b a log k n), dann T(n) = ( n log b a log k+1 n) Falls e > 0 und c<1 sodaß f(n) = ( n log b a+e ) und a f(n/b) c f(n) für n hinreichend groß, dann T(n) = ( f(n) ) Algorithms & Datastructures 2 // 2017W // 37
38 BEISPIEL :: MASTER THEOREM Beispiel T(N) = 2 T(N/2) + N für N 2 T(1) = 1 Lösung a = 2 b = 2 f(n) = N N log b a = N log 2 2 = N 1 = N f(n) vergleichen mit N log b a ergibt Fall 2: f(n) = Θ(N log b a ) = Θ(N) => N und N sind von der gleichen Rangordnung T(N) = Θ(N log b a log N) = Θ(N log N) Algorithms & Datastructures 2 // 2017W // 38
39 ANHANG :: ANALYSE VON ALGORITHMEN Mathematische Grundlagen Logarithmen log b (xy) = log b x + log b y log b (x/y) = log b x log b y log b x a = alog b x log b a = log a x / log a b Exponenten a (b+c) = a b a c a (b-c) = a b /a c a bc = (a b ) c b = a log a b b c = a c*log a b Floor, Ceiling x = grösste ganze Zahl x x = kleinste ganze Zahl x Algorithms & Datastructures 2 // 2017W // 42
40 ANHANG :: ANALYSE VON ALGORITHMEN Mathematische Grundlagen Summen t f(i) = f(s) + f(s+1) + f(s+2) f(t) i=s wobei f eine Funktion ist, s der Startindex, und t der Endindex Geometrische Reihe f(i) = a i n a i = 1 + a + a a n = i=0 1 - a n a geometrische Reihe zeigt exponentielles Wachstum Algorithms & Datastructures 2 // 2017W // 43
41 ANHANG :: BEISPIEL ZUR ASYMPTOTISCHEN ANALYSE Algorithmus zur Bestimmung von Prefix-Mittelwerten Algorithm prefixaverages1(x): Input: Array X, enthält n Zahlen. Output: Array A, enthält n Elemente und in Element A[i] den Mittelwert der Elemente X[0],...,X[i]. for i 0 to n-1 do a 0 for j 0 to i do a a + X[j] A[i] a/(i+1) return array A Analyse... Algorithms & Datastructures 2 // 2017W // 44
42 ANHANG :: BEISPIEL ZUR ASYMPTOTISCHEN ANALYSE verbesserter Algorithmus Algorithm prefixaverages2(x): Input: Array X, enthält n Zahlen. Output: Array A, enthält n Elemente und in Element A[i] den Mittelwert der Elemente X[0],...,X[i] s 0 for i 0 to n-1 do s s + X[j] A[i] s/(i+1) return array A Analyse... Algorithms & Datastructures 2 // 2017W // 45
43 Algorithms & Data Structures 2 Complexity WS2017 B. Anzengruber-Tanase (Institute for Pervasive Computing, JKU Linz) (Institute for Pervasive Computing, JKU Linz)
Komplexität. G. Zachmann Clausthal University, Germany Leistungsverhalten von Algorithmen
lausthal Informatik II Komplexität von Algorithmen. Zachmann lausthal University, ermany [email protected] Leistungsverhalten von Algorithmen Speicherplatzkomplexität: Wird primärer & sekundärer
Informatik I Komplexität von Algorithmen
Leistungsverhalten von Algorithmen Informatik I Komplexität von Algorithmen G. Zachmann Clausthal University, Germany [email protected] Speicherplatzkomplexität: Wird primärer & sekundärer Speicherplatz
Komplexität von Algorithmen
Komplexität von Algorithmen Prof. Dr. Christian Böhm WS 07/08 in Zusammenarbeit mit Gefei Zhang http://www.dbs.informatik.uni-muenchen.de/lehre/nfinfosw Ressourcenbedarf - Größenordnungen Prozesse verbrauchen
Kapitel 6. Komplexität von Algorithmen. Xiaoyi Jiang Informatik I Grundlagen der Programmierung
Kapitel 6 Komplexität von Algorithmen 1 6.1 Beurteilung von Algorithmen I.d.R. existieren viele Algorithmen, um dieselbe Funktion zu realisieren. Welche Algorithmen sind die besseren? Betrachtung nicht-funktionaler
2. Algorithmen und Algorithmisierung Algorithmen und Algorithmisierung von Aufgaben
Algorithmen und Algorithmisierung von Aufgaben 2-1 Algorithmisierung: Formulierung (Entwicklung, Wahl) der Algorithmen + symbolische Darstellung von Algorithmen Formalismen für die symbolische Darstellung
Abschnitt: Algorithmendesign und Laufzeitanalyse
Abschnitt: Algorithmendesign und Laufzeitanalyse Definition Divide-and-Conquer Paradigma Divide-and-Conquer Algorithmen verwenden die Strategien 1 Divide: Teile das Problem rekursiv in Subproblem gleicher
Programmiertechnik II
Analyse von Algorithmen Algorithmenentwurf Algorithmen sind oft Teil einer größeren Anwendung operieren auf Daten der Anwendung, sollen aber unabhängig von konkreten Typen sein Darstellung der Algorithmen
Kostenmodell. Daniel Graf, Tobias Pröger. 22. September 2016 (aktualisierte Fassung 5 vom 9. Oktober 2016)
Kostenmodell Daniel Graf, Tobias Pröger 22. September 2016 (aktualisierte Fassung 5 vom 9. Oktober 2016) Erklärung: Diese Mitschrift ist als Ergänzung zur Vorlesung gedacht. Wir erheben keinen Anspruch
Laufzeit und Komplexität
Laufzeit und Komplexität Laufzeit eines Algorithmus Benchmarking versus Analyse Abstraktion Rechenzeit, Anzahl Schritte Bester, Mittlerer, Schlechtester Fall Beispiel: Lineare Suche Komplexitätsklassen
Algorithmen und Datenstrukturen (für ET/IT)
Algorithmen und Datenstrukturen (für ET/IT) Wintersemester 2012/13 Dr. Tobias Lasser Computer Aided Medical Procedures Technische Universität München Programm heute 1 Einführung 2 Mathematische Grundlagen
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,
Übersicht. Datenstrukturen und Algorithmen. Übersicht. Divide-and-Conquer. Vorlesung 9: Quicksort (K7)
Datenstrukturen und Algorithmen Vorlesung 9: (K7) Joost-Pieter Katoen Lehrstuhl für Informatik 2 Software Modeling and Verification Group http://www-i2.rwth-aachen.de/i2/dsal0/ Algorithmus 8. Mai 200 Joost-Pieter
Algorithmen und Datenstrukturen Wintersemester 2004/ November T(n) = T(n a) + T(a) + n
Lehrstuhl für Praktische Informatik III Norman May B6, 29, Raum C0.05 68131 Mannheim Telefon: (0621) 181 2517 Email: [email protected] Matthias Brantner B6, 29, Raum C0.05 68131 Mannheim
Datenstrukturen und Algorithmen
Joost-Pieter Katoen Datenstrukturen und Algorithmen 1/32 Datenstrukturen und Algorithmen Vorlesung 7: Sortieren (K2) Joost-Pieter Katoen Lehrstuhl für Informatik 2 Software Modeling and Verification Group
Uebersicht. Webpage & Ilias. Administratives. Lehrbuch. Vorkenntnisse. Datenstrukturen & Algorithmen
Datenstrukturen & Algorithmen Uebersicht Administratives Einleitung Ein einführendes Beispiel Matthias Zwicker Universität Bern Frühling 2010 2 Administratives Dozent Prof. Zwicker, [email protected]
Kombinatorik: Abzählverfahren (Teschl/Teschl 7) Summenregel. Allgemeiner
Kombinatorik: Abzählverfahren (Teschl/Teschl 7) Fragestellung: Wie viele verschiedene Möglichkeiten gibt es, Elemente auszuwählen, z. B. Anzahl verschiedener möglicher Passwörter, IPAdressen, Zahlenkombinationen
Übersicht. Datenstrukturen und Algorithmen Vorlesung 5: Rekursionsgleichungen (K4) Übersicht. Binäre Suche. Joost-Pieter Katoen. 20.
Übersicht Datenstrukturen und Algorithmen Vorlesung 5: (K4) Joost-Pieter Katoen Lehrstuhl für Informatik 2 Software Modeling and Verification Group http://www-i2.informatik.rwth-aachen.de/i2/dsal12/ 20.
Grundlagen der Informatik 2 (GdI2) - Algorithmen und Datenstrukturen -
Grundlagen der Informatik 2 (GdI2) - Algorithmen und Datenstrukturen - 2) Algorithmenanalyse Prof. Dr. Anja Schanzenberger FH Augsburg, Fakultät für Informatik Kontakt: [email protected]
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
Ü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
16. All Pairs Shortest Path (ASPS)
. All Pairs Shortest Path (ASPS) All Pairs Shortest Path (APSP): Eingabe: Gewichteter Graph G=(V,E) Ausgabe: Für jedes Paar von Knoten u,v V die Distanz von u nach v sowie einen kürzesten Weg a b c d e
T (n) = max. g(x)=n t(n) S(n) = max. g(x)=n s(n)
Beim Logarithmischen Kostenmaß wird, im Gegensatz zum EKM, die Stelligkeit der Werte berücksichtigt und mit in die Laufzeit eingerechnet. Beispiel: R1 := R2 (R3), wobei R2 den Wert 5, R3 den Wert 10 und
Prof. Dr. Margarita Esponda
Die O-Notation Analyse von Algorithmen Die O-Notation Prof. Dr. Margarita Esponda Freie Universität Berlin ALP II: Margarita Esponda, 5. Vorlesung, 26.4.2012 1 Die O-Notation Analyse von Algorithmen Korrektheit
Theoretische Informatik 1
Theoretische Informatik 1 Registermaschine David Kappel Institut für Grundlagen der Informationsverarbeitung TU Graz SS 2012 Übersicht Registermaschinen Algorithmusbegriff konkretisiert formale Beschreibung
Kapitel 8. Rekursionsgleichungen. Landau-Symbole. Lösen von Rekursionsgleichungen Allgemeines Iterationsmethode Spezialfälle Erzeugende Funktionen
Rekursionsgleichungen Landau-Symbole Kapitel 8 Lösen von Rekursionsgleichungen Allgemeines Iterationsmethode Spezialfälle Erzeugende Funktionen Kapitel 8 Rekursionsgleichungen p./42 Landau-Symbole () Modellierung
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
Komplexita tstheorie eine erste Ubersicht. KTV bedeutet: Details erfahren Sie in der Komplexitätstheorie-Vorlesung.
Komplexita tstheorie eine erste Ubersicht KTV bedeutet: Details erfahren Sie in der Komplexitätstheorie-Vorlesung. Probleme Problem = Menge von unendlich vielen konkreten Einzelfragen (Instanzen) F n,
Numerische Verfahren und Grundlagen der Analysis
Numerische Verfahren und Grundlagen der Analysis Rasa Steuding Hochschule RheinMain Wiesbaden Wintersemester 2011/12 R. Steuding (HS-RM) NumAna Wintersemester 2011/12 1 / 16 4. Groß-O R. Steuding (HS-RM)
Effiziente Algorithmen und Datenstrukturen I. Kapitel 10: Lineare Algebra
Effiziente Algorithmen und Datenstrukturen I Kapitel 10: Lineare Algebra Christian Scheideler WS 2008 19.02.2009 Kapitel 10 1 Überblick Notation Arithmetik auf großen Zahlen (Addition und Multiplikation)
Grundlagen der Informatik Algorithmen und Komplexität
Grundlagen der Informatik Algorithmen und Komplexität Prof. Dr. Bernhard Schiefer (basierend auf Unterlagen von Prof. Dr. Duque-Antón) [email protected] http://www.fh-kl.de/~schiefer Inhalt Einleitung
UE Algorithmen und Datenstrukturen 1 UE Praktische Informatik 1. Übung 5. Asymptotische Laufzeitkomplexität Definition Regeln Beispiele
UE Algorithmen und Datenstrukturen 1 UE Praktische Informatik 1 Übung 5 Asymptotische Laufzeitkomplexität Definition Regeln Beispiele Institut für Pervasive Computing Johannes Kepler Universität Linz Altenberger
1. Musterlösung. Problem 1: Average-case-Laufzeit vs. Worst-case-Laufzeit
Universität Karlsruhe Algorithmentechnik Fakultät für Informatik WS 06/07 ITI Wagner Musterlösung Problem : Average-case-Laufzeit vs Worst-case-Laufzeit pt (a) Folgender Algorithmus löst das Problem der
Übersicht Datenstrukturen und Algorithmen. Literatur. Algorithmus: Wikipedia Definition. Vorlesung 1: Einführung. Prof. Dr.
Übersicht Datenstrukturen und Vorlesung 1: Prof. Dr. Erika Ábrahám Theorie Hybrider Systeme Informatik 2 http://ths.rwth-aachen.de/teaching/ss-14/ datenstrukturen-und-algorithmen/ Diese Präsentation verwendet
Einführung in die Informatik
Einführung in die Informatik Jochen Hoenicke Software Engineering Albert-Ludwigs-University Freiburg Sommersemester 2014 Jochen Hoenicke (Software Engineering) Einführung in die Informatik Sommersemester
Grenzen der Berechenbarkeit
M. Jakob Gymnasium Pegnitz 3. Mai 2015 Inhaltsverzeichnis Experimentelle Laufzeitabschätzung ausgewählter Algorithmen Historische Kryptographie Moderne Kryptographie Das Halteproblem In diesem Abschnitt
Algorithmik Übung 3 Prof. Dr. Heiner Klocke. Sortierfolge nach Werten: 7 8 9 10 Bube Dame König As nach Farben: Karo ( ) Herz ( ) Piek ( ) Kreuz ( )
Algorithmi Übung 3 Prof. Dr. Heiner Kloce Winter 11/12 16.10.2011 Divide&Conquer- Algorithmen lassen sich gut als reursive Algorithmen darstellen. Das Prinzip eines reursiven Algorithmus beruht darauf,
abgeschlossen unter,,,, R,
Was bisher geschah Turing-Maschinen können Sprachen L X akzeptieren entscheiden Funktionen berechnen f : X X (partiell) Menge aller Turing-akzeptierbaren Sprachen genau die Menge aller Chomsky-Typ-0-Sprachen
Einstieg in die Informatik mit Java
1 / 20 Einstieg in die Informatik mit Java Rekursion Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 20 1 Überblick 2 Rekursion 3 Rekursive Sortieralgorithmen 4 Backtracking
Sortierverfahren für Felder (Listen)
Sortierverfahren für Felder (Listen) Generell geht es um die Sortierung von Daten nach einem bestimmten Sortierschlüssel. Es ist auch möglich, daß verschiedene Daten denselben Sortierschlüssel haben. Es
Grundlagen der Programmierung
Grundlagen der Programmierung Algorithmen und Datenstrukturen Die Inhalte der Vorlesung wurden primär auf Basis der angegebenen Literatur erstellt. Darüber hinaus sind viele Teile direkt aus der Vorlesung
Entscheidungsbäume. Definition Entscheidungsbaum. Frage: Gibt es einen Sortieralgorithmus mit o(n log n) Vergleichen?
Entscheidungsbäume Frage: Gibt es einen Sortieralgorithmus mit o(n log n) Vergleichen? Definition Entscheidungsbaum Sei T ein Binärbaum und A = {a 1,..., a n } eine zu sortierenden Menge. T ist ein Entscheidungsbaum
Einführung in die Informatik 1
Einführung in die Informatik 1 Algorithmen und algorithmische Sprachkonzepte Sven Kosub AG Algorithmik/Theorie komplexer Systeme Universität Konstanz E 202 [email protected] Sprechstunde: Freitag,
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
Überblick. Lineares Suchen
Komplexität Was ist das? Die Komplexität eines Algorithmus sei hierbei die Abschätzung des Aufwandes seiner Realisierung bzw. Berechnung auf einem Computer. Sie wird daher auch rechnerische Komplexität
Kostenmaße. F3 03/04 p.188/395
Kostenmaße Bei der TM nur ein Kostenmaß: Ein Schritt (Konfigurationsübergang) kostet eine Zeiteinheit; eine Bandzelle kostet eine Platzeinheit. Bei der RAM zwei Kostenmaße: uniformes Kostenmaß: (wie oben);
Algorithmen mit konstantem Platzbedarf: Die Klasse REG
Algorithmen mit konstantem Platzbedarf: Die Klasse REG Sommerakademie Rot an der Rot AG 1 Wieviel Platz brauchen Algorithmen wirklich? Daniel Alm Institut für Numerische Simulation Universität Bonn August
Kapitel 4. Grundlagen der Analyse von Algorithmen. Xiaoyi Jiang Informatik II Datenstrukturen und Algorithmen
Kapitel 4 Grundlagen der Analyse von Algorithmen 1 4.1 Kostenfunktion zu Beurteilung von Algorithmen Die Angabe der Laufzeit (und etwas weniger wichtig des Speicherplatzes) liefert das wichtigste Maß für
1. Grundlagen... 2. 2. Sortieren... 6. 1.1. Vertauschen... 13. 1.2. Selektion... 16. 1.3. Einfügen... 19. 1.4. Quicksort... 22. 3. Suchen...
Suchen und Sortieren In diesem Kapitel behandeln wir Algorithmen zum Suchen und Sortieren Inhalt 1. Grundlagen... 2 2. Sortieren... 6 1.1. Vertauschen... 13 1.2. Selektion... 16 1.3. Einfügen... 19 1.4.
Grundlegende Sortieralgorithmen
Grundlegende Sortieralgorithmen Martin Wirsing in Zusammenarbeit mit Matthias Hölzl und Nora Koch Sortieren in Java Man kann Sortierverfahren in einem imperativem oder einem objektorientierten Stil programmieren.
3.2 Binäre Suche. Usr/local/www/ifi/fk/menschen/schmid/folien/infovk.ppt 1
3.2 Binäre Suche Beispiel 6.5.1: Intervallschachtelung (oder binäre Suche) (Hier ist n die Anzahl der Elemente im Feld!) Ein Feld A: array (1..n) of Integer sei gegeben. Das Feld sei sortiert, d.h.: A(i)
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
3. Ziel der Vorlesung
3. Ziel der Vorlesung Der Zweck der Vorlesung ist das Studium fundamentaler Konzepte in der Algorithmentheorie. Es werden relevante Maschinenmodelle, grundlegende und höhere Datenstrukturen sowie der Entwurf
Sortieralgorithmen. Inhalt: InsertionSort BubbleSort QuickSort. Marco Block
Inhalt: InsertionSort BubbleSort QuickSort Block M.: "Java-Intensivkurs - In 14 Tagen lernen Projekte erfolgreich zu realisieren", Springer-Verlag 2007 InsertionSort I Das Problem unsortierte Daten in
3. Übung Algorithmen I
Timo Bingmann, Christian Schulz INSTITUT FÜR THEORETISCHE INFORMATIK, PROF. SANDERS 1 KIT Timo Universität Bingmann, des LandesChristian Baden-Württemberg Schulz und nationales Forschungszentrum in der
2: Zahlentheorie / Restklassen 2.1: Modulare Arithmetik
Stefan Lucks Diskrete Strukturen (WS 2009/10) 57 2: Zahlentheorie / Restklassen 2.1: Modulare Arithmetik Uhr: Stunden mod 24, Minuten mod 60, Sekunden mod 60,... Rechnerarithmetik: mod 2 w, w {8, 16, 32,
Abstrakte Algorithmen und Sprachkonzepte
Abstrakte Algorithmen und Sprachkonzepte Thomas Röfer Begriff des Algorithmus Algorithmenaufbau Programmiersprachliche Grundkonzepte Interative und rekursive Algorithmen Rückblick Aufbau und Funktionsweise
Effizienz in Haskell
Informatikseminar WS03/04 Oliver Lohmann mi4430 1 Gliederung Allgemeine Definition von Effizienz Lazy Evaluation Asymptotische Analyse Parameter Akkumulation Tupling Speicherplatz kontrollieren Allgemeine
Kapitel 3. Speicherhierachie. Beispiel für Cache Effekte. Motivation Externspeicheralgorithmen. Motivation Für Beachtung von Cache Effekten
Kapitel 3 Algorithmen für große Datenmengen Motivation Externspeicheralgorithmen Es werden immer größere Datenmengen gesammelt (WWW, Medizin, Gentechnik ) Daten müssen auf großen externen Massenspeichern
Kapitel 4: Dynamische Datenstrukturen. Algorithmen und Datenstrukturen WS 2012/13. Prof. Dr. Sándor Fekete
Kapitel 4: Dynamische Datenstrukturen Algorithmen und Datenstrukturen WS 2012/13 Prof. Dr. Sándor Fekete 4.4 Binäre Suche Aufgabenstellung: Rate eine Zahl zwischen 100 und 114! Algorithmus 4.1 INPUT: OUTPUT:
Informatik I 4. Kapitel Suchen in sequentiellen Listen
Informatik I 4. Kapitel Rainer Schrader Zentrum für Angewandte Informatik Köln 21. Mai 2008 1 / 55 2 / 55 Szenario Suchen in Daten gehört zu den wichtigsten Operationen etwa Suchen nach: Stichworten in
Algorithmentheorie Randomisierung. Robert Elsässer
Algorithmentheorie 03 - Randomisierung Robert Elsässer Randomisierung Klassen von randomisierten Algorithmen Randomisierter Quicksort Randomisierter Primzahltest Kryptographie 2 1. Klassen von randomisierten
Die Komplexitätsklassen P und NP
Die Komplexitätsklassen P und NP Prof. Dr. Berthold Vöcking Lehrstuhl Informatik 1 Algorithmen und Komplexität RWTH Aachen 3. Dezember 2009 Berthold Vöcking, Informatik 1 () Vorlesung Berechenbarkeit und
Höhere Algorithmik. Eine Vorlesung von Prof. Dr. Helmut Alt Mitschrift von Pascal-Nicolas Becker
Höhere Algorithmik Eine Vorlesung von Prof. Dr. Helmut Alt Mitschrift von Pascal-Nicolas Becker Wintersemsester 2010/2011 Stand: 02.08.2011 flattr.com/t/78695 Dieses Skript ist eine Mitschrift der Vorlesung
Kapitel 7. Rekursionsgleichungen. Allgemeines Iterationsmethode Klassen von Rekursionsgleichungen Erzeugende Funktionen
Kapitel 7 Rekursionsgleichungen p. /38 Kapitel 7 Rekursionsgleichungen Allgemeines Iterationsmethode Klassen von Rekursionsgleichungen Erzeugende Funktionen Kapitel 7 Rekursionsgleichungen p. 2/38 Allgemeines
Grundlagen der Informatik I (Studiengang Medieninformatik)
Grundlagen der Informatik I (Studiengang Medieninformatik) Thema: 3. Datentypen, Datenstrukturen und imperative Programme Prof. Dr. S. Kühn Fachbereich Informatik/Mathematik Email: [email protected]
Syntax von LOOP-Programmen
LOOP-Berechenbarkeit Syntax von LOOP-Programmen Definition LOOP-Programme bestehen aus: Variablen: x 0, x 1, x 2, x 3,... Konstanten: 0, 1, 2, 3,... Trennsymbolen:; und := Operationen: + und Befehlen:
Algorithmen und Datenstrukturen Laufzeitabschätzung
Algorithmen und Datenstrukturen Laufzeitabschätzung Matthias Teschner Graphische Datenverarbeitung Institut für Informatik Universität Freiburg SS 12 Lernziele der Vorlesung Algorithmen Sortieren, Suchen,
Kapitel 5: Abstrakte Algorithmen und Sprachkonzepte. Elementare Schritte
Elementare Schritte Ein elementarer Berechnungsschritt eines Algorithmus ändert im Allgemeinen den Wert von Variablen Zuweisungsoperation von fundamentaler Bedeutung Zuweisungsoperator In Pascal := In
Grundlagen der Programmierung 2. Parallele Verarbeitung
Grundlagen der Programmierung 2 Parallele Verarbeitung Prof. Dr. Manfred Schmidt-Schauÿ Künstliche Intelligenz und Softwaretechnologie 27. Mai 2009 Parallele Algorithmen und Ressourcenbedarf Themen: Nebenläufigkeit,
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
Schulmethode zur Multiplikation von n-stelligen Binärzahlen a und b: (evtl. fallen Zeilen weg, wenn das zugehörige Bit des Multiplikators 0 ist).
4-1 4. Algorithmen auf Zahlen Themen: Multiplikation von binären Zahlen Matrixmultiplikation 4.1 Multiplikation ganzer Zahlen Schulmethode zur Multiplikation von n-stelligen Binärzahlen a und b: n=8: aaaaaaaa
4.Grundsätzliche Programmentwicklungsmethoden
4.Grundsätzliche Programmentwicklungsmethoden 1.1 Grundlage strukturierter und objektorientierter Programmierung Begriff Software Engineering - umfaßt den gezielten Einsatz von Beschreibungsmitteln, Methoden
MATHEMATISCHE ANALYSE VON ALGORITHMEN
MATHEMATISCHE ANALYSE VON ALGORITHMEN Michael Drmota Institut für Diskrete Mathematik und Geometrie, TU Wien [email protected] www.dmg.tuwien.ac.at/drmota/ Ringvorlesung SS 2008, TU Wien Algorithmus
Sortieralgorithmen. Vorlesung Algorithmen und Datenstrukturen 2. Prof. Dr. W. P. Kowalk Universität Oldenburg
Sortieralgorithmen Vorlesung Algorithmen und Datenstrukturen 2 im SS 2004 Prof. Dr. W. P. Kowalk Universität Oldenburg Literatur Die folgenden Bücher wurden für die Vorlesung verwendet. Darüber hinaus
Einführung. Vorlesungen zur Komplexitätstheorie: Reduktion und Vollständigkeit (3) Vorlesungen zur Komplexitätstheorie. K-Vollständigkeit (1/5)
Einführung 3 Vorlesungen zur Komplexitätstheorie: Reduktion und Vollständigkeit (3) Univ.-Prof. Dr. Christoph Meinel Hasso-Plattner-Institut Universität Potsdam, Deutschland Hatten den Reduktionsbegriff
Dynamische Programmierung. Problemlösungsstrategie der Informatik
als Problemlösungsstrategie der Informatik und ihre Anwedung in der Diskreten Mathematik und Graphentheorie Fabian Cordt Enisa Metovic Wissenschaftliche Arbeiten und Präsentationen, WS 2010/2011 Gliederung
Einführung in die Informatik I Kapitel II.3: Sortieren
1 Einführung in die Informatik I Kapitel II.3: Sortieren Prof. Dr.-Ing. Marcin Grzegorzek Juniorprofessur für Mustererkennung im Institut für Bildinformatik Department Elektrotechnik und Informatik Fakultät
Suchen und Sortieren (Die klassischen Algorithmen)
Suchen und Sortieren (Die klassischen Algorithmen) Lineare Suche und Binäre Suche (Vorbedingung und Komplexität) Sortieralgorithmen (allgemein) Direkte Sortierverfahren (einfach aber langsam) Schnelle
Seminar Kompressionsalgorithmen Huffman-Codierung, arithmetische Codierung
Huffman-Codierung, arithmetische Codierung Theoretische Informatik RWTH-Aachen 4. April 2012 Übersicht 1 Einführung 2 3 4 5 6 Einführung Datenkompression Disziplin,die Kompressionsalgorithmen entwirft
Programmiertechnik II
Bäume Symboltabellen Suche nach Werten (items), die unter einem Schlüssel (key) gefunden werden können Bankkonten: Schlüssel ist Kontonummer Flugreservierung: Schlüssel ist Flugnummer, Reservierungsnummer,...
Nichtdeterministische Platzklassen
Sommerakademie 2010 Rot an der Rot AG 1: Wieviel Platz brauchen Algorithmen wirklich? Nichtdeterministische Platzklassen Ulf Kulau August 23, 2010 1 Contents 1 Einführung 3 2 Nichtdeterminismus allgemein
Rechnerische Komplexität
Proseminar Effiziente Algorithmen SS 2002 Rechnerische Komplexität Ulrike Krönert (34180) 0. Inhalt 1. Einführung 2. Algorithmen und Komplexität 2.1. Algorithmen 2.2. Laufzeitabschätzung 2.3. Polynomialzeit
Algorithmen & Datenstrukturen 1. Klausur
Algorithmen & Datenstrukturen 1. Klausur 7. Juli 2010 Name Matrikelnummer Aufgabe mögliche Punkte erreichte Punkte 1 35 2 30 3 30 4 15 5 40 6 30 Gesamt 180 1 Seite 2 von 14 Aufgabe 1) Programm Analyse
Algorithmen. Sortieren durch Auswählen, Sortieren durch Mischen und Vergleich der Laufzeit. Abschätzung der Laufzeit eines Algorithmus, O-Notation.
Algorithmen Sortieren durch Auswählen, Sortieren durch Mischen und Vergleich der Laufzeit Abschätzung der Laufzeit eines Algorithmus, O-Notation. Rekursion Einführung in die Informatik: Programmierung
Projekt Systementwicklung
Projekt Systementwicklung Effiziente Codierung: Laufzeitoptimierung Prof. Dr. Nikolaus Wulff Effiziente Codierung Der Wunsch effizienten Code zu schreiben entstammt mehreren Quellen: Zielplattformen mit
Folge 13 - Quicksort
Für Abiturienten Folge 13 - Quicksort 13.1 Grundprinzip des Quicksort Schritt 1 Gegeben ist ein unsortierter Array von ganzen Zahlen. Ein Element des Arrays wird nun besonders behandelt, es wird nämlich
Mächtigkeit von WHILE-Programmen
Mächtigkeit von WHILE-Programmen Prof. Dr. Berthold Vöcking Lehrstuhl Informatik 1 Algorithmen und Komplexität RWTH Aachen 26. November 2009 Berthold Vöcking, Informatik 1 () Vorlesung Berechenbarkeit
Suchen und Sortieren Sortieren. Heaps
Suchen und Heaps (Folie 245, Seite 63 im Skript) 3 7 21 10 17 31 49 28 14 35 24 42 38 Definition Ein Heap ist ein Binärbaum, der die Heapeigenschaft hat (Kinder sind größer als der Vater), bis auf die
Vorlesung 4 BETWEENNESS CENTRALITY
Vorlesung 4 BETWEENNESS CENTRALITY 101 Aufgabe! Szenario: Sie arbeiten bei einem sozialen Online-Netzwerk. Aus der Netzwerk-Struktur Ihrer Benutzer sollen Sie wichtige Eigenschaften extrahieren. [http://www.fahrschule-vatterodt.de/
Fragen für die Klausuren
Fragen für die Klausuren Vom Quellcode zum ausführbaren Programm Was ist ein Quellcode? Ist der Quellcode von einem Programm auf unterschiedlichen Rechner gleich? Nennen Sie drei Programmiersprachen. Was
Wiederholung ADT Menge Ziel: Verwaltung (Finden, Einfügen, Entfernen) einer Menge von Elementen
Was bisher geschah abstrakter Datentyp : Signatur Σ und Axiome Φ z.b. ADT Menge zur Verwaltung (Finden, Einfügen, Entfernen) mehrerer Elemente desselben Typs Spezifikation einer Schnittstelle Konkreter
Effizienz von Algorithmen
Effizienz von Algorithmen Letzte Bearbeitung: Jan 211 Ein wichtiger Aspekt bei Algorithmen sind seine "Kosten". Wir wollen uns hier ausschließlich mit der Laufzeit des gewählten Algorithmus beschäftigen.
Elementare Zahlentheorie. Diskrete Strukturen. Winter Semester 2012 #
Erster Teil 1 Elementare Diskrete Strukturen Winter Semester 2012 # 342 207 Prof. Armin Biere Institut für Formale Modelle und Verifikation Johannes Kepler Universität, Linz http://fmv.jku.at/ds Literatur
1 Zahlentheorie. 1.1 Kongruenzen
3 Zahlentheorie. Kongruenzen Der letzte Abschnitt zeigte, daß es sinnvoll ist, mit großen Zahlen möglichst einfach rechnen zu können. Oft kommt es nicht darauf, an eine Zahl im Detail zu kennen, sondern
Sortieren Jiri Spale, Algorithmen und Datenstrukturen - Sortieren 1
Sortieren 2009 Jiri Spale, Algorithmen und Datenstrukturen - Sortieren 1 Sortiermethoden (Auswahl) Allgemeine Methoden: Sortieren in Arrays Spezielle Methoden: Sortieren von Dateien 2009 Jiri Spale, Algorithmen
