Laufzeit und Komplexität

Größe: px
Ab Seite anzeigen:

Download "Laufzeit und Komplexität"

Transkript

1 Laufzeit und Komplexität Laufzeit eines Algorithmus Benchmarking versus Analyse Abstraktion Rechenzeit, Anzahl Schritte Bester, Mittlerer, Schlechtester Fall Beispiel: Lineare Suche Komplexitätsklassen und O-Notation Problemgröße Vernachlässigung nicht relevanter Teile, O-Notation Wichtige Komplexitätsklassen und typische Laufzeiten Laufzeitanalyse von Algorithmen Beispiele: Binäre und lineare Suche Medieninformatik Algorithmen und Datenstrukturen 1

2 Motivation Suchen Wie schnell kann man suchen? Medieninformatik Algorithmen und Datenstrukturen 2

3 Suche in einem Feld Ein Feld (Array) a Mit n Elementen im Beispiel n=10 Indiziert von 0 bis n-1 im Beispiel 0 bis 9 Aufsteigend sortiert für alle 0 pos n-1: a[pos] a[pos+1] Problemstellung Suche ein vorgegebenes Element s in a Bestimme Index pos, so dass a[pos] gleich s und gebe pos zurück Falls s nicht in dem Feld gebe n zurück a s Problem: Suche in einem Feld Eingabe: Feld a mit n Elementen Suchwert s Ausgabe: pos falls ein pos existiert mit a[pos] gleich s n sonst Nicht enthalten, Rückgabe 10 Medieninformatik Algorithmen und Datenstrukturen 3

4 Lineare Suche Lineare Suche Idee Teste sequentiell (hintereinander) von links nach rechts alle Feldelemente auf Gleichheit mit Suchwert Sobald gefunden breche ab a ==? s 42 Lineare Suche Algorithmus Initialisiere Indexvariable (Position) pos mit 0 Durchlaufe eine Schleife Falls pos ein korrekter Index ist (innerhalb der Feldgrenzen) und das Element noch nicht gefunden wurde Erhöhe pos um 1 Gebe pos zurück # Lineare Suche pos = 0 while pos < n and a[pos]!= s: pos = pos+1 return pos Medieninformatik Algorithmen und Datenstrukturen 4

5 Laufzeitbetrachtung mit Anzahl Schritten Benchmarking nicht aussagekräftig Implementieren des Algorithmus in spezifischer Programmiersprache Testen mit verschiedenen Eingaben Probleme Abhängig von Hardware, Sprache, Compiler, Implementierungsdetails, Testauswahl Ausführen auf doppelt so schnellem Rechner macht Algorithmus nicht besser/effizienter Besser: Anzahl der Einzelschritte Einzelschritt als abstrakte Zeiteinheit Bestimmung der Anzahl der Einzelschritte Unabhängig von Hardware, Implementierungsdetails (Sprache, Compiler) Probleme, z.b. Testauswahl Im Beispiel ist Element nicht im Feld, also werden alle Elemente getestet Was passiert, wenn das Element im Feld ist? Medieninformatik Algorithmen und Datenstrukturen 5

6 Laufzeitbetrachtung Lineare Suche Analyse Schritte konkretes Beispiel Zuweisung 10 Schleifendurchläufe a 4 Einzelschritte Zwei Tests Feldzugriff Addition Letzter Test Rückgabe Anzahl Schritte = 43 Schritte a s # Lineare Suche pos = 0 while pos < n and a[pos]!= s: pos = pos+1 return pos Medieninformatik Algorithmen und Datenstrukturen 6

7 Abstraktionen für die Laufzeitbetrachtung Abstraktion vom Rechner und der konkreten Implementierung Berechnen der Anzahl der Einzelschritte Basierend auf abstrakter Maschine, möglichst nahe an realer Hardware für Realisierung Einzelschritt Definition eines Einzelschritts zum Beispiel Zuweisung, Addition, Vergleich,... Abstraktion von konkreten Problemen Allgemeine Beschreibung der Eingabeobjekte statt konkrete Werte Festlegung der Größe der Eingabeobjekte, zum Beispiel Feldgröße n Aussagen über besten, mittleren, schlechtesten Fall zum Beispiel Element gefunden, Element nicht gefunden Aussagen für große n, Vernachlässigung von Bestandteilen die unabhängig von n sind Medieninformatik Algorithmen und Datenstrukturen 7

8 Größe der Eingabeobjekte Abstraktion von konkreter Menge an möglichen Eingabeobjekten Das Wesentliche ist meist die Größe Kein einheitliches Maß möglich ein irgendwie hergeleitetes n Meist in Zusammenhang mit Problemstellung Beispiele Feldgröße n (oder Anzahl der Elemente) für Suchen und Sortieren Gleichungssysteme mit m Gleichungen und k Unbekannten, für n kann m k gewählt werden, die Anzahl der Koeffizienten Graphen, für n zum Beispiel Anzahl der Knoten oder Anzahl der Kanten... Medieninformatik Algorithmen und Datenstrukturen 8

9 Bester, mittlerer, schlechtester Fall Bester Fall Konstruktion einer spezifischen Eingabe Mit der minimal möglichen Anzahl von Schritten Meist nicht charakteristische Aussage Mittlerer Fall Bei allen möglichen Eingaben, (oder mit Nebenbedingungen auf relevante Eingaben beschränkt) Durchschnittliche Anzahl von Schritten über alle diese Eingaben Interessante und schwierigste Aussage Schlechtester Fall Konstruktion einer spezifischen Eingabe Mit der maximal möglichen Anzahl von Schritten Relevante und meist machbare Aussage Medieninformatik Algorithmen und Datenstrukturen 9

10 Lineare Suche Bester Fall Eingabe s = a[0] Analyse Zuweisung Schleife einmal mit Vergleich Feldzugriff Vergleich Rückgabe Anzahl Schritte = = 5 Schritte Bester Fall Immer 5 Schritte Unabhängig von Feldgröße a s # Lineare Suche pos = 0 while pos < n and a[pos]!= s: pos = pos+1 return pos Medieninformatik Algorithmen und Datenstrukturen 10

11 Lineare Suche Schlechtester Fall Eingabe s nicht im Feld s a[pos] für alle 0 Analyse Zuweisung Schleife n-mal mit Vergleich Feldzugriff Vergleich Addition Letzter Vergleich Rückgabe Anzahl Schritte pos < n n + 2 = n Schritte Schlechtester Fall Immer 3+4 n Schritte a s # Lineare Suche pos = 0 while pos < n and a[pos]!= s: pos = pos+1 return pos Medieninformatik Algorithmen und Datenstrukturen 11

12 Lineare Suche Mittlerer Fall Eingabe Annahme über Verteilung der Eingabeobjekte muss gemacht werden Position von s im Feld, sowie s nicht im Feld, sind gleichverteilt Analyse Falls s an der Position pos für 0 pos < n: Laufzeit = 2+4 pos + 3 = pos Falls s nicht enthalten: Laufzeit 3 + 4n Vereinfachende Annahme (Feld eins länger, s in a[n]): Laufzeit 5+4n Laufzeit im Mittel ist (bei Gleichverteilung) Summe Laufzeiten für 0 pos n (inklusive nicht enthalten) geteilt durch n+1 Dies entspricht n, Herleitung nächste Seite Anzahl Schritte: n Schritte Mittlerer Fall Im Schnitt n Schritte Ungefähr halb so viel wie im schlechtesten Fall (entspricht Intuition) Medieninformatik Algorithmen und Datenstrukturen 12

13 Herleitung Mittlerer Fall Summe der möglichen Laufzeiten durch Anzahl mögliche Laufzeiten n i=0 5 4 i n 1 Konstanten rausziehen Summe aufspalten n i=0 5 n 1 4 i=0 n 1 n i Summen auflösen Gauß (Induktionsbeweis) 5 n 1 n 1 4 n n 1 2 n 1 Vereinfachen 5 4 n n 1 2 n 1 Vereinfachen 5 2 n Medieninformatik Algorithmen und Datenstrukturen 13

14 Aussagen über Algorithmenlaufzeit Man sucht nach relativen Aussagen über Skalierbarkeit Bei Verdopplung der Eingabegröße braucht der Algorithmus doppelt so lang Interessant ist Relative Lage Für große n Beispiel Schlechteste Laufzeit bei linearer Suche 3+4n Vernachlässigen kleinerer Funktionsteile 4n Vernachlässigen von Konstanten n Aussage Bei Verdopplung von n doppelt so lange Medieninformatik Algorithmen und Datenstrukturen 14

15 Vernachlässigen kleiner Funktionsteile Vernachlässigen kleiner Funktionsteile Idee Aussagen von Laufzeitfunktion für große n Konzentration auf den am stärksten wachsenden Teil der Funktion Beispiel: 4n statt 3 + 4n Für kleine n ist der Unterschied zwischen 3 + 4n und 4n relativ groß Bei n = 2 ist die Abweichung rund 20 Prozent Aber bei ~ 1 Million Schritte pro Sekunde liegt der Fehler im Mikrosekundenbereich Für große n ist der Fehler relativ zu der Zahl minimal Schon bei n = 10,000 ist der Fehler kleiner als ein Hundertstel eines Prozents und die Gesamtlaufzeit noch kleiner als eine Sekunde Je größer n, desto geringer der Fehler 3+4n 4n Medieninformatik Algorithmen und Datenstrukturen 15

16 Vernachlässigen von Konstanten Vernachlässigen von Konstanten Aussagen von Laufzeitfunktionen unabhängig von Hardware Konstante Faktoren repräsentieren Dauer eines Schritts Ignorieren von konstanten Faktoren Beispiel: n statt 4n Der Unterschied zwischen 4n und n ist ein konstanter Faktor Aussagen wie Bei Verdopplung der Eingabegröße braucht der Algorithmus doppelt so lange werden dadurch nicht beeinträchtigt Konstante Faktoren sind typischerweise abhängig von weg abstrahierten Eigenschaften n statt 4n könnte durch 4 mal schneller Maschine erreicht werden Annahme, dass Einzelschritt nur ein Viertel Zeiteinheit braucht 4n n Medieninformatik Algorithmen und Datenstrukturen 16

17 Zuordnung von Klassen zu Funktionen Idee Gruppieren von Funktionen Vernachlässigen und Reduktion aufs Wesentliche Wenn zwei Funktionen nach Vernachlässigung und Reduktion identisch sind, dann gehören Sie zu der gleichen Klasse Namen für die wichtigsten Klassen Formal O-Notation (asymptotisch obere Schranken) Beispiel: Lineare Suche Laufzeitfunktion T(n) = n Vernachlässigung: n 4 n n, T(n) ist linear n ist auch linear Weitere Beispiele n + 5 n² 5 n² n² quadratisch n + 3 n³ 3 n³ n³ kubisch log n 4 log n log n logarithmisch n n 3 2 n 2 n exponentiell Medieninformatik Algorithmen und Datenstrukturen 17

18 O-Notation T O(g) T wächst nicht schneller als g g ist eine asymptotische obere Schranke von T Ab einem bestimmten n wächst g schneller als T Ab einem bestimmten n ist für ein bestimmtes c der Wert c g(n) immer größer als T(n) Formale Spezifikation T O(g) Es existiert eine Konstante c 0 eine Konstante n 0 0 so dass für alle n n 0 gilt, dass T(n) c g(n) n 0 c g(n) T(n) c 0 n 0 0 n n 0 : T n c g n Medieninformatik Algorithmen und Datenstrukturen 18

19 O-Notation Andere Symbole Alternative Schreibweise: T = O(g) Eigentlich T O(g), aber = Notation hat sich eingebürgert Sprechweise bleibt, T ist in O von g Notationsproblem Achtung bei Gleichungsketten: Gleichheit gilt nicht!!! g = (T) genau dann wenn T = O(g) g wächst mindestens so schnell wie T T = (g) genau dann wenn T = O(g) und g = O(T) T und g sind von der gleichen Wachstumsordnung Sinnvoll für gute Abschätzungen Medieninformatik Algorithmen und Datenstrukturen 19

20 Rechnen mit der O-Notation Zugehörigkeit zu Komplexitätsklassen f = O(f) O(O(f)) = O(f) Ignorieren von Konstanten möglich, für c Konstante c O(f) = O(f) O(c f) = O(f) O(f+c) = O(f) Addition (Maximum) O(f) + O(g) = O(max(f,g)) O(c 0 + c 1 n + c 2 n c k n k ) = O(n k ) Multiplikation (bleibt Multiplikation) O(f) O(g) = O(f g) Es gilt O(1) < O(log(n)) < O (n) < O (n log(n)) < O(n 2 ) <... < O(2 n ) Medieninformatik Algorithmen und Datenstrukturen 20

21 Einfluss auf die Analyse Initialisierung Ignorieren von Konstanten Einfache Initialisierung und Aufräumen kann ignoriert werden f und h nicht von n abhängig, das heißt konstant Beispiel Lineare Suche Initialisierung i = 0 ignorieren Rückgabe ignorieren // Algorithmus A, Konstanten f g(n) h O(A) = O(f) + O(g) + O(h) = O(g) # Lineare Suche i = 0 while i < n and a[i]!= s: i = i+1 return i Medieninformatik Algorithmen und Datenstrukturen 21

22 Einfluss auf die Analyse Sequenz, Verzweigung Verzweigung und Sequenz Addition der Teile entspricht Maximum Sequenz Bei hintereinander ausgeführten Algorithmenteilen wird der einfachere vernachlässigt Verzweigung Abschätzung nach oben, Maximum der beiden Verzweigungsmöglichkeiten // Algorithmus A, Sequenz f g O(A) = O(f) + O(g) = O(max(f,g)) // Algorithmus B, Verzweigung if t: f else: g h O(B) = O(t) + O(max(f,g)) + O(h) = O(max(t,f,g,h)) Medieninformatik Algorithmen und Datenstrukturen 22

23 Sequenz, Verzweigung in Linearer Suche Einmaliger Durchlauf der while-schleife Sequenz bei Durchlauf Schleife Bei hintereinander ausgeführten Algorithmenteilen wird der einfachere vernachlässigt Erster Vergleich, dann Feldzugriff, dann zweiter Vergleich, dann Addition Alles konstant (O(1)), also gesamt konstant Verzweigung bei Abbruch Schleife Maximum der beiden Verzweigungsmöglichkeiten Entweder erster Test klappt nicht, oder zweiter Test klappt nicht Alles konstant, also gesamt konstant Einmaliger Durchlauf while-schleife ist O(1) # Lineare Suche i = 0 while i < n and a[i]!= s: i = i+1 return i Medieninformatik Algorithmen und Datenstrukturen 23

24 Einfluss auf die Analyse Schleife Schleife ist Multiplikation Häufigkeit in Abhängigkeit von n in der Schleifenkörper durchlaufen wird Multiplizieren mit dieser Häufigkeit Annahme: O(t) O(f) // Algorithmus A, Schleife while t: f O(A) = O(f) Anzahl Durchläufe in Abhängigkeit von n For-Schleife n-maliges Durchlaufen Mit n multiplizieren Beispiel n-maliges Durchlaufen (for Schleife) Linearer Algorithmus f n O(n) = O(n) O(n) = O(n²) // Algorithmus A, for-schleife for i in 1..n: f O(A) = O(f) n Medieninformatik Algorithmen und Datenstrukturen 24

25 Schleife in Linearer Suche Anzahl der Durchläufe Im besten Fall 1 mal (O(1)) Im schlechtesten Fall n mal (O(n)) Im mittleren Fall n/2 mal (O(n)) Anzahl Durchläufe O(n) Zusammengefasst Schleifenkörper O(1) Anzahl Durchläufe O(n) Initialisierung und Ende O(1) Gesamt: O(n) # Lineare Suche i = 0 while i < n and a[i]!= s: i = i+1 return i Medieninformatik Algorithmen und Datenstrukturen 25

26 O statt T Laufzeit T(n) T ist Funktion, die die Anzahl der Elementarschritte eines Algorithmus in Abhängigkeit der Eingabegröße n berechnet Genau für konkrete Laufzeit Schwierig zu berechnen (viel Fallunterscheidung) Nicht direkt aussagekräftig für Skalierungsaussagen Komplexität O(T(n)) Zuordnung einer Laufzeitfunktion T zu einer Klasse von Funktionen Ungenau für konkrete Laufzeit Viel leichter zu berechnen Sofort aussagekräftig für relevante Skalierungsaussagen Aussagen über Effizienz von Algorithmen Angabe von O(T(n)), asymptotische obere Grenze Meist Angabe von f mit T(n) = (f), gleiches Wachstum Medieninformatik Algorithmen und Datenstrukturen 26

27 Bezeichnungen O(1): konstant O(log i (n)): logarithmisch (Basis i egal) O(n): linear O(n log i (n)): keine Bezeichnung, trotzdem sehr wichtig! O(n²): quadratisch O(n³): kubisch O(nk ): polynomiell (bzw. polynomiell begrenzt), beliebiges k O(2n ): exponentiell Medieninformatik Algorithmen und Datenstrukturen 27

28 Typische Laufzeiten polynomiell exponentiell Logarithmisch, linear und n log(n) sind gut handhabbar Höhergradig polynomiell meist machbar Exponentiell ist massiv unangenehm Grenze des praktisch Lösbaren Medieninformatik Algorithmen und Datenstrukturen 28

29 Typische Beispiele in den Klassen O(1): Feldzugriff, Hashing O(log i (n)): Binäre Suche O(n): Lineare Suche O(n log i (n)): Sortieren schnell O(n²): Sortieren langsam, kürzeste Wege O(nk ): Simplex (Praxis) O(2n ): Simplex (Theorie), Aussagenlogik, Ganzzahlige Optimierung Medieninformatik Algorithmen und Datenstrukturen 29

30 Kritik O-Notation und vorgestellte Herangehensweise Grobe Abschätzung Gute Informationen für schlechtesten Fall und große Probleme (Skalierung) Praxis Konstanter Faktor nicht berücksichtigt. Wichtig für Benutzerinteraktion ob 0,2 oder 2 Sekunden Wartezeit Wenn Problemgröße beschränkt ist, kann ein laut O-Notation schlechteres Verfahren besser sein Spezielle Hardware wird nicht berücksichtigt (nur implizit Beispiel: Termauswertung als Elementaroperation) Mittelwert kann wichtiger sein (Beispiel Simplex) Mitdenken nicht vergessen! (Gilt öfter ;-) Medieninformatik Algorithmen und Datenstrukturen 30

31 Komplexität Problem/Algorithmus Nicht verwechseln! Verschiedene Lösungsalgorithmen für ein Problem möglich Komplexität eines Problems Zugehörigkeit zur Komplexitätsklasse der Laufzeit des besten Algorithmus Beispiel: Suche in sortiertem Feld, Komplexität O(log(n)) Komplexität eines Algorithmus Zugehörigkeit Komplexitätsklasse der Laufzeit dieses Algorithmus Beispiel: Suche in sortierten Feld mit linearer Suche, Komplexität O(n) Komplexität eines Problems schwierig zu bestimmen Komplexität einer Problemklasse schwierig zu bestimmen Bekanntestes Beispiel: P NP Beweis steht noch aus!! P Klasse Polynomieller Probleme NP Klasse Nichtdeterministisch Polynomieller Probleme (nur exponentielle Algorithmen zur Lösung bisher bekannt) Medieninformatik Algorithmen und Datenstrukturen 31

32 Suchen Lineare Suche Suchen Problemgröße: n, Anzahl der Feldelemente Komplexität: O(n) Beste: O(1) Mittlere: O(n) Schlechteste: O(n) Keine Voraussetzungen an Liste Suchen in sortierter Liste Wenn Liste sortiert, dann geht es besser... a s # Lineare Suche pos = 0 while pos < n and a[pos]!= s: pos = pos+1 return pos Medieninformatik Algorithmen und Datenstrukturen 32

33 Suchen in Sortierter Liste Binäre Suche Suchen in sortierter Liste Problemgröße: n, Anzahl der Feldelemente Komplexität: O(log n) Beste: O(1) Mittlere: O(log n) Schlechteste: O(log n) Liste muss sortiert sein 0 i n 1 :a[i] a[i 1] Suche in sortierten und unsortierten Feldern sind zwei unterschiedliche Probleme a s # Binäre Suche li = 0 re = n-1 while re >= li: x = (li+re)/2 if s == a[x]: return x if s < a[x]: re = x-1 else: li = x+1 return n Medieninformatik Algorithmen und Datenstrukturen 33

34 Binäre Suche Beispiel Halbiere den Suchbereich Bis gefunden oder Suchbereich leer a s # Binäre Suche li = 0 re = n-1 while re >= l: x = (li+re)/2 if s == a[x]: return x if s < a[x]: re = x-1 else: li = x+1 return n li=0 li=5 li=5 re=6 li=re= 6 re=6 li=7 nicht gefunden re=9 re=9 Medieninformatik Algorithmen und Datenstrukturen 34

35 Binäre Suche Rekursiv Rekursiver Algorithmus bs_rek Aufruf mit bs_rek(0, n-1) Reduktion auf Teilfeld, halbiere Problemgröße Suche in Teilfeld, Löse halb so großes Problem Terminierung wenn Teilfeld leer oder gefunden, Problem trivial Typische Rekursion Löse Problem durch Problemreduktion Lösen des kleineren Problems durch rekursiven Aufruf Abfangen trivialer Fall Keine explizite Schleife mehr # Binäre Suche rekursiv # a, n vorhanden def bs_rek(li, re): if re < li: return n x = (li+re)/2 if s == a[x]: return x if s < a[x]: return bs_rek(li, x-1) else return bs_rek(x+1, re) Medieninformatik Algorithmen und Datenstrukturen 35

36 Analyse der Binären Suche Betrachtung schlechtester Fall Element nicht gefunden Schleife wird beendet wenn li und re sich treffen Wenn li und re sich treffen noch genau ein Durchlauf (konstant, ignoriert) Bei jedem Durchlauf wird Abstand von l und r halbiert Initial ist der Abstand n Beim zweiten Durchlauf n/2 Beim dritten Durchlauf n/4... Schleife wird log(n) mal durchlaufen, O(log(n)) [formal folgt] Anweisungen innerhalb Schleife konstant Anweisungen sind unabhängig von n, also konstant Einfluss Anweisungen wird ignoriert, O(1) Komplexität Binäre Suche: O(log(n)) Medieninformatik Algorithmen und Datenstrukturen 36

37 Analyse Binäre Suche Rekurrenz Laufzeit der binären Suche Was ist T(n)? Rekursiver Aufruf Halb so großes Problem T(n/2) Anweisungen in Funktion Unabhängig von n Konstant c, O(1) Es gilt also T(n) = T(n/2) + c # Binäre Suche rekursiv # a, n vorhanden def bs_rek(li, re): if re < li: return n x = (li+re)/2 if s == a[x]: return x if s < a[x]: return bs_rek(li, x-1) else return bs_rek(x+1, re) eine Rekurrenz-Beziehung Medieninformatik Algorithmen und Datenstrukturen 37

38 Auflösen der Rekurrenz Lösen der Rekurrenz: T(n) = T(n/2) + c Annahme: T(1) konstant d, n = 2 k T(2 k ) = T(2 k-1 ) + c = T(2 k-2 ) + c + c = T(2 k-3 ) + c + c + c... = T(2 k-k ) + k c = d+ k c T(2 k ) ~ k Es gilt log 2 (2 k ) = k, Anzahl Ziffern Binärdarstellung Also ist Laufzeit für diesen Fall logarithmisch Beliebige n, obere Abschätzung mit nächster Zweierpotenz Verlängern des Feldes auf das nächste 2 k, 2 k-1 < n 2 k T(n) O(log 2 (n)) da T(2 k-1 ) = T(2 k-2 ) + c da T(2 k-2 ) = T(2 k-3 ) + c Medieninformatik Algorithmen und Datenstrukturen 38

Programmiertechnik II

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

Mehr

Kapitel 6. Komplexität von Algorithmen. Xiaoyi Jiang Informatik I Grundlagen der Programmierung

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

Mehr

Abschnitt: Algorithmendesign und Laufzeitanalyse

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

Mehr

Einführung in die Informatik

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

Mehr

Grundlagen der Informatik 2 (GdI2) - Algorithmen und Datenstrukturen -

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: anja.schanzenberger@hs-augsburg.de

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

Sortierverfahren für Felder (Listen)

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

Mehr

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

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

Mehr

Algorithmen II Vorlesung am 15.11.2012

Algorithmen II Vorlesung am 15.11.2012 Algorithmen II Vorlesung am 15.11.2012 Kreisbasen, Matroide & Algorithmen INSTITUT FÜR THEORETISCHE INFORMATIK PROF. DR. DOROTHEA WAGNER KIT Universität des Landes Baden-Württemberg und Algorithmen nationales

Mehr

Approximationsalgorithmen

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

Mehr

Teil 2 - Softwaretechnik. Modul: Programmierung B-PRG Grundlagen der Programmierung 1 Teil 2. Übersicht. Softwaretechnik

Teil 2 - Softwaretechnik. Modul: Programmierung B-PRG Grundlagen der Programmierung 1 Teil 2. Übersicht. Softwaretechnik Grundlagen der Programmierung 1 Modul: Programmierung B-PRG Grundlagen der Programmierung 1 Teil 2 Softwaretechnik Prof. Dr. O. Drobnik Professur Architektur und Betrieb verteilter Systeme Institut für

Mehr

Kapitel 4: Dynamische Datenstrukturen. Algorithmen und Datenstrukturen WS 2012/13. Prof. Dr. Sándor Fekete

Kapitel 4: Dynamische Datenstrukturen. Algorithmen und Datenstrukturen WS 2012/13. Prof. Dr. Sándor Fekete Kapitel 4: Dynamische Datenstrukturen Algorithmen und Datenstrukturen WS 2012/13 Prof. Dr. Sándor Fekete 4.4 Binäre Suche Aufgabenstellung: Rate eine Zahl zwischen 100 und 114! Algorithmus 4.1 INPUT: OUTPUT:

Mehr

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

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.

Mehr

Überblick. Lineares Suchen

Ü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

Mehr

Literatur. Dominating Set (DS) Dominating Sets in Sensornetzen. Problem Minimum Dominating Set (MDS)

Literatur. Dominating Set (DS) Dominating Sets in Sensornetzen. Problem Minimum Dominating Set (MDS) Dominating Set 59 Literatur Dominating Set Grundlagen 60 Dominating Set (DS) M. V. Marathe, H. Breu, H.B. Hunt III, S. S. Ravi, and D. J. Rosenkrantz: Simple Heuristics for Unit Disk Graphs. Networks 25,

Mehr

Prof. Dr. Margarita Esponda

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

Mehr

Entscheidungsbäume. Definition Entscheidungsbaum. Frage: Gibt es einen Sortieralgorithmus mit o(n log n) Vergleichen?

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

Mehr

Übersicht. Datenstrukturen und Algorithmen Vorlesung 5: Rekursionsgleichungen (K4) Übersicht. Binäre Suche. Joost-Pieter Katoen. 20.

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

Mehr

SOI 2013. Die Schweizer Informatikolympiade

SOI 2013. Die Schweizer Informatikolympiade SOI Die Schweizer Informatikolympiade Lösung SOI Wie schreibe ich eine gute Lösung? Bevor wir die Aufgaben präsentieren, möchten wir dir einige Tipps geben, wie eine gute Lösung für die theoretischen

Mehr

Kostenmaße. F3 03/04 p.188/395

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

Mehr

Rechnerische Komplexität

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

Mehr

Numerische Verfahren und Grundlagen der Analysis

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)

Mehr

Effiziente Algorithmen und Datenstrukturen I. Kapitel 10: Lineare Algebra

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)

Mehr

Grundlagen der Programmierung

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

Mehr

Approximationsalgorithmen

Approximationsalgorithmen Makespan-Scheduling Kapitel 4: Approximationsalgorithmen (dritter Teil) (weitere Beispiele und Illustrationen an der Tafel) Hilfreiche Literatur: Vazarani: Approximation Algorithms, Springer Verlag, 2001.

Mehr

Motivation. Formale Grundlagen der Informatik 1 Kapitel 10. Motivation. Motivation. Bisher haben wir mit TMs. Probleme gelöst/entschieden/berechnet.

Motivation. Formale Grundlagen der Informatik 1 Kapitel 10. Motivation. Motivation. Bisher haben wir mit TMs. Probleme gelöst/entschieden/berechnet. bei TMs bei Computern Formale Grundlagen der Informatik 1 Kapitel 10 Frank Heitmann heitmann@informatik.uni-hamburg.de Bisher haben wir mit TMs Probleme gelöst/entschieden/berechnet. Dabei war entscheidbar

Mehr

Die Komplexitätsklassen P und NP

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

Mehr

5.2 Das All-Pairs-Shortest-Paths-Problem (APSP-Problem) Kürzeste Wege zwischen allen Knoten. Eingabe: Gerichteter Graph G =(V, E, c)

5.2 Das All-Pairs-Shortest-Paths-Problem (APSP-Problem) Kürzeste Wege zwischen allen Knoten. Eingabe: Gerichteter Graph G =(V, E, c) 5.2 Das All-Pairs-Shortest-Paths-Problem (APSP-Problem) Kürzeste Wege zwischen allen Knoten. Eingabe: Gerichteter Graph G =(V, E, c) mit V = {1,...,n} und E {(v, w) 1 apple v, w apple n, v 6= w}. c : E!

Mehr

Algorithmen & Datenstrukturen 1. Klausur

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

Mehr

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

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

Mehr

Nichtlineare Optimierung ohne Nebenbedingungen

Nichtlineare Optimierung ohne Nebenbedingungen Kapitel 2 Nichtlineare Optimierung ohne Nebenbedingungen In diesem Abschnitt sollen im wesentlichen Verfahren zur Bestimmung des Minimums von nichtglatten Funktionen in einer Variablen im Detail vorgestellt

Mehr

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

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

Mehr

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

Mehr

4 Greedy-Algorithmen (gierige Algorithmen)

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

Mehr

Komplexität und Komplexitätsklassen

Komplexität und Komplexitätsklassen Dr. Sebastian Bab WiSe 12/13 Theoretische Grundlagen der Informatik für TI Termin: VL 21 vom 21.01.2013 Komplexität und Komplexitätsklassen Die meisten Probleme mit denen wir zu tun haben sind entscheidbar.

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

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

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

Mehr

2: Zahlentheorie / Restklassen 2.1: Modulare Arithmetik

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,

Mehr

Wirtschaftsinformatik I

Wirtschaftsinformatik I Wirtschaftsinformatik I - Tutorium 6/ 7 (April 2010) Zusatzinformationen - Lösungsvorschläge Wirtschaftsinformatik I Tutorium Jochen Daum (4.Semester BWL) Universität Mannheim Rechtshinweis: Diese Präsentation

Mehr

Einführung. Vorlesungen zur Komplexitätstheorie: Reduktion und Vollständigkeit (3) Vorlesungen zur Komplexitätstheorie. K-Vollständigkeit (1/5)

Einführung. Vorlesungen zur Komplexitätstheorie: Reduktion und Vollständigkeit (3) Vorlesungen zur Komplexitätstheorie. K-Vollständigkeit (1/5) Einführung 3 Vorlesungen zur Komplexitätstheorie: Reduktion und Vollständigkeit (3) Univ.-Prof. Dr. Christoph Meinel Hasso-Plattner-Institut Universität Potsdam, Deutschland Hatten den Reduktionsbegriff

Mehr

Theoretische Informatik

Theoretische Informatik Theoretische Informatik Einheit 1 Mathematische Methodik 1. Problemlösen 2. Beweistechniken 3. Wichtige Grundbegriffe Methodik des Problemlösens Klärung der Voraussetzungen Welche Begriffe sind zum Verständnis

Mehr

16. All Pairs Shortest Path (ASPS)

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

Mehr

1. Grundlegende Konzepte der Informatik

1. Grundlegende Konzepte der Informatik 1. Grundlegende Konzepte der Informatik Inhalt Algorithmen Darstellung von Algorithmen mit Programmablaufplänen Beispiele für Algorithmen Aussagenlogik Zahlensysteme Kodierung Peter Sobe 1 Algorithmen

Mehr

Rekursive Auswertungsprozesse in Haskell

Rekursive Auswertungsprozesse in Haskell Rekursive Auswertungsprozesse in Haskell Auswertungsprozess, der durch eine rekursive Funktion bewirkt wird Beispiel: Auswertung der rekursiven Fakultätsfunktion 0! := 1 n! := n (n 1)! fakultaet x = if

Mehr

Algorithmen und Datenstrukturen (für ET/IT)

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

Mehr

Softwareentwicklung Allgemeines und prozedurale Konstrukte

Softwareentwicklung Allgemeines und prozedurale Konstrukte Mag. iur. Dr. techn. Michael Sonntag Softwareentwicklung Allgemeines und prozedurale Konstrukte E-Mail: sonntag@fim.uni-linz.ac.at http://www.fim.uni-linz.ac.at/staff/sonntag.htm Institut für Informationsverarbeitung

Mehr

Wiederholung ADT Menge Ziel: Verwaltung (Finden, Einfügen, Entfernen) einer Menge von Elementen

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

Mehr

Kapitel 4. Grundlagen der Analyse von Algorithmen. Xiaoyi Jiang Informatik II Datenstrukturen und Algorithmen

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

Mehr

Algorithmen und Datenstrukturen Laufzeitabschätzung

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,

Mehr

Effiziente Algorithmen und Datenstrukturen I. Kapitel 9: Minimale Spannbäume

Effiziente Algorithmen und Datenstrukturen I. Kapitel 9: Minimale Spannbäume Effiziente Algorithmen und Datenstrukturen I Kapitel 9: Minimale Spannbäume Christian Scheideler WS 008 19.0.009 Kapitel 9 1 Minimaler Spannbaum Zentrale Frage: Welche Kanten muss ich nehmen, um mit minimalen

Mehr

Babeș-Bolyai Universität Cluj Napoca Fakultät für Mathematik und Informatik Grundlagen der Programmierung MLG5005. Paradigmen im Algorithmenentwurf

Babeș-Bolyai Universität Cluj Napoca Fakultät für Mathematik und Informatik Grundlagen der Programmierung MLG5005. Paradigmen im Algorithmenentwurf Babeș-Bolyai Universität Cluj Napoca Fakultät für Mathematik und Informatik Grundlagen der Programmierung MLG5005 Paradigmen im Algorithmenentwurf Problemlösen Problem definieren Algorithmus entwerfen

Mehr

NP-Vollständigkeit. Krautgartner Martin (9920077) Markgraf Waldomir (9921041) Rattensberger Martin (9921846) Rieder Caroline (0020984)

NP-Vollständigkeit. Krautgartner Martin (9920077) Markgraf Waldomir (9921041) Rattensberger Martin (9921846) Rieder Caroline (0020984) NP-Vollständigkeit Krautgartner Martin (9920077) Markgraf Waldomir (9921041) Rattensberger Martin (9921846) Rieder Caroline (0020984) 0 Übersicht: Einleitung Einteilung in Klassen Die Klassen P und NP

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

Lösungsvorschläge. zu den Aufgaben im Kapitel 4

Lösungsvorschläge. zu den Aufgaben im Kapitel 4 Lösungsvorschläge zu den Aufgaben im Kapitel 4 Aufgabe 4.1: Der KNP-Algorithmus kann verbessert werden, wenn in der Funktion nexttabelle die Zuweisung next[tabindex] = ruecksprung; auf die etwas differenziertere

Mehr

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

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

Mehr

Reihungen. Martin Wirsing. in Zusammenarbeit mit Matthias Hölzl und Nora Koch 11/03

Reihungen. Martin Wirsing. in Zusammenarbeit mit Matthias Hölzl und Nora Koch 11/03 Reihungen Martin Wirsing in Zusammenarbeit mit Matthias Hölzl und Nora Koch 11/03 2 Ziele Die Datenstruktur der Reihungen verstehen: mathematisch und im Speicher Grundlegende Algorithmen auf Reihungen

Mehr

Grundlagen der Programmierung 2. Parallele Verarbeitung

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,

Mehr

Lenstras Algorithmus für Faktorisierung

Lenstras Algorithmus für Faktorisierung Lenstras Algorithmus für Faktorisierung Bertil Nestorius 9 März 2010 1 Motivation Die schnelle Faktorisierung von Zahlen ist heutzutage ein sehr wichtigen Thema, zb gibt es in der Kryptographie viele weit

Mehr

Primzahlzertifikat von Pratt

Primzahlzertifikat von Pratt Primzahlzertifikat von Pratt Daniela Steidl TU München 17. 04. 2008 Primzahltests in der Informatik "Dass das Problem, die Primzahlen von den Zusammengesetzten zu unterscheiden und letztere in ihre Primfaktoren

Mehr

Informatik. Studiengang Chemische Technologie. Michael Roth WS 2012/2013. michael.roth@h-da.de. Hochschule Darmstadt -Fachbereich Informatik-

Informatik. Studiengang Chemische Technologie. Michael Roth WS 2012/2013. michael.roth@h-da.de. Hochschule Darmstadt -Fachbereich Informatik- Informatik Studiengang Chemische Technologie Michael Roth michael.roth@h-da.de Hochschule Darmstadt -Fachbereich Informatik- WS 2012/2013 Inhalt Teil VII Einstieg in Java I Michael Roth (h_da) Informatik

Mehr

Lineare Programmierung

Lineare Programmierung Lineare Programmierung WS 2003/04 Rolle der Linearen Programmierung für das TSP 1954: Dantzig, Fulkerson & Johnson lösen das TSP für 49 US-Städte (ca. 6.2 10 60 mögliche Touren) 1998: 13.509 Städte in

Mehr

Sortieralgorithmen. Inhalt: InsertionSort BubbleSort QuickSort. Marco Block

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

Mehr

Teil II. Nichtlineare Optimierung

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

Mehr

Kap. 4.2: Binäre Suchbäume

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

Mehr

Einstieg in die Informatik mit Java

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

Mehr

4 Algorithmen und Datenstrukturen

4 Algorithmen und Datenstrukturen 4 Algorithmen und Datenstrukturen Algorithmen sind Verfahren zur schrittweisen Lösung von Problemen. Sie können abstrakt, d.h. unabhängig von konkreten Rechnern oder Programmiersprachen, beschrieben werden.

Mehr

Suchen in Listen und Hashtabellen

Suchen in Listen und Hashtabellen Kapitel 12: Suchen in Listen und Hashtabellen Einführung in die Informatik Wintersemester 2007/08 Prof. Bernhard Jung Übersicht Einleitung Lineare Suche Binäre Suche (in sortierten Listen) Hashverfahren

Mehr

MATHEMATISCHE ANALYSE VON ALGORITHMEN

MATHEMATISCHE ANALYSE VON ALGORITHMEN MATHEMATISCHE ANALYSE VON ALGORITHMEN Michael Drmota Institut für Diskrete Mathematik und Geometrie, TU Wien michael.drmota@tuwien.ac.at www.dmg.tuwien.ac.at/drmota/ Ringvorlesung SS 2008, TU Wien Algorithmus

Mehr

Übersicht. Datenstrukturen und Algorithmen. Übersicht. Divide-and-Conquer. Vorlesung 9: Quicksort (K7)

Ü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

Mehr

Kontrollstrukturen, Pseudocode und Modulo-Rechnung

Kontrollstrukturen, Pseudocode und Modulo-Rechnung Kontrollstrukturen, Pseudocode und Modulo-Rechnung CoMa-Übung III TU Berlin 29.10.2012 CoMa-Übung III (TU Berlin) Kontrollstrukturen, Pseudocode und Modulo-Rechnung 29.10.2012 1 / 1 Themen der Übung 1

Mehr

Uebersicht. Webpage & Ilias. Administratives. Lehrbuch. Vorkenntnisse. Datenstrukturen & Algorithmen

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, zwicker@iam.unibe.ch

Mehr

Programmieren ++ Begleitende Übungen zu Veranstaltungen + Umsetzen des Algorithmus in ein lauffähiges Programm

Programmieren ++ Begleitende Übungen zu Veranstaltungen + Umsetzen des Algorithmus in ein lauffähiges Programm Studienanforderungen Studiengang Maschinenbau Programmieren Begleitende Übungen zu Veranstaltungen Umsetzen des Algorithmus in ein lauffähiges Programm Studiengang Bauingenieurwesen Programmieren Begleitende

Mehr

1 topologisches Sortieren

1 topologisches Sortieren Wolfgang Hönig / Andreas Ecke WS 09/0 topologisches Sortieren. Überblick. Solange noch Knoten vorhanden: a) Suche Knoten v, zu dem keine Kante führt (Falls nicht vorhanden keine topologische Sortierung

Mehr

Entwurf von Algorithmen - Kontrollstrukturen

Entwurf von Algorithmen - Kontrollstrukturen Entwurf von Algorithmen - Kontrollstrukturen Eine wichtige Phase in der Entwicklung von Computerprogrammen ist der Entwurf von Algorithmen. Dieser Arbeitsschritt vor dem Schreiben des Programmes in einer

Mehr

3.1 Konstruktion von minimalen Spannbäumen Es gibt zwei Prinzipien für die Konstruktion von minimalen Spannbäumen (Tarjan): blaue Regel rote Regel

3.1 Konstruktion von minimalen Spannbäumen Es gibt zwei Prinzipien für die Konstruktion von minimalen Spannbäumen (Tarjan): blaue Regel rote Regel 3.1 Konstruktion von minimalen Spannbäumen Es gibt zwei Prinzipien für die Konstruktion von minimalen Spannbäumen (Tarjan): blaue Regel rote Regel EADS 3.1 Konstruktion von minimalen Spannbäumen 16/36

Mehr

Datenstrukturen. Mariano Zelke. Sommersemester 2012

Datenstrukturen. Mariano Zelke. Sommersemester 2012 Datenstrukturen Mariano Zelke Sommersemester 2012 Mathematische Grundlagen: Das Handwerkszeug Mariano Zelke Datenstrukturen 2/26 Formeln: n - i = n (n+1) 2 und - i=1 k i=0 a i = ak+1 1 a 1, falls a 1 Rechnen

Mehr

Kontrollstrukturen - Universität Köln

Kontrollstrukturen - Universität Köln Kontrollstrukturen - Universität Köln Mario Manno Kontrollstrukturen - Universität Köln p. 1 Was sind Sprachen Auszeichnungssprachen HTML, XML Programmiersprachen ASM, Basic, C, C++, Haskell, Java, Pascal,

Mehr

Mathematische Grundlagen der Kryptographie. 1. Ganze Zahlen 2. Kongruenzen und Restklassenringe. Stefan Brandstädter Jennifer Karstens

Mathematische Grundlagen der Kryptographie. 1. Ganze Zahlen 2. Kongruenzen und Restklassenringe. Stefan Brandstädter Jennifer Karstens Mathematische Grundlagen der Kryptographie 1. Ganze Zahlen 2. Kongruenzen und Restklassenringe Stefan Brandstädter Jennifer Karstens 18. Januar 2005 Inhaltsverzeichnis 1 Ganze Zahlen 1 1.1 Grundlagen............................

Mehr

Programmierung 2. Dynamische Programmierung. Sebastian Hack. Klaas Boesche. Sommersemester 2012. hack@cs.uni-saarland.de. boesche@cs.uni-saarland.

Programmierung 2. Dynamische Programmierung. Sebastian Hack. Klaas Boesche. Sommersemester 2012. hack@cs.uni-saarland.de. boesche@cs.uni-saarland. 1 Programmierung 2 Dynamische Programmierung Sebastian Hack hack@cs.uni-saarland.de Klaas Boesche boesche@cs.uni-saarland.de Sommersemester 2012 2 Übersicht Stammt aus den Zeiten als mit Programmierung

Mehr

Das Briefträgerproblem

Das Briefträgerproblem Das Briefträgerproblem Paul Tabatabai 30. Dezember 2011 Inhaltsverzeichnis 1 Problemstellung und Modellierung 2 1.1 Problem................................ 2 1.2 Modellierung.............................

Mehr

Inhaltsverzeichnis. Was ist Informatik? 5. Programmierung 13. Einleitung. 1 Informatik 7 1.1 Was ist Informatik? 7 1.2 Teilgebiete der Informatik 8

Inhaltsverzeichnis. Was ist Informatik? 5. Programmierung 13. Einleitung. 1 Informatik 7 1.1 Was ist Informatik? 7 1.2 Teilgebiete der Informatik 8 Einleitung Was ist Informatik? 5 1 Informatik 7 1.1 Was ist Informatik? 7 1.2 Teilgebiete der Informatik 8 Programmierung 13 2 Vom Problem über den Algorithmus zum Programm 15 2.1 Vorgehensweise bei der

Mehr

Sortierverfahren. Sortierverfahren für eindimensionale Arrays

Sortierverfahren. Sortierverfahren für eindimensionale Arrays Sortierverfahren Sortierverfahren Sortieren durch Einfügen Sortieren durch Auswählen Sortieren durch Vertauschen (Bubblesort) Quicksort Sortierverfahren für eindimensionale Arrays 1 Gegeben ist eine beliebige

Mehr

Einführung in die Informatik 1

Einführung in die Informatik 1 Einführung in die Informatik 1 Datenorganisation und Datenstrukturen Sven Kosub AG Algorithmik/Theorie komplexer Systeme Universität Konstanz E 202 Sven.Kosub@uni-konstanz.de Sprechstunde: Freitag, 12:30-14:00

Mehr

Einführung in die Informatik I

Einführung in die Informatik I Einführung in die Informatik I Algorithmen und deren Programmierung Prof. Dr. Nikolaus Wulff Definition Algorithmus Ein Algorithmus ist eine präzise formulierte Handlungsanweisung zur Lösung einer gleichartigen

Mehr

Alles zu seiner Zeit Projektplanung heute

Alles zu seiner Zeit Projektplanung heute Alles zu seiner Zeit Projektplanung heute Nicole Megow Matheon Überblick Projektplanung Planen mit Graphentheorie Maschinenscheduling Ein 1 Mio. $ Problem Schwere & leichte Probleme? Zeitplanungsprobleme?

Mehr

Graphen: Datenstrukturen und Algorithmen

Graphen: Datenstrukturen und Algorithmen Graphen: Datenstrukturen und Algorithmen Ein Graph G = (V, E) wird durch die Knotenmenge V und die Kantenmenge E repräsentiert. G ist ungerichtet, wenn wir keinen Start- und Zielpunkt der Kanten auszeichnen.

Mehr

Oft kommt es darauf an, Potenzen a n mod m zu berechnen. Dabei kann n eine sehr groÿe Zahl sein.

Oft kommt es darauf an, Potenzen a n mod m zu berechnen. Dabei kann n eine sehr groÿe Zahl sein. Oft kommt es darauf an, Potenzen a n mod m zu berechnen. Dabei kann n eine sehr groÿe Zahl sein. 3 1384788374932954500363985493554603584759389 mod 28374618732464817362847326847331872341234 Wieso kann ein

Mehr

Teile und Herrsche Teil 2

Teile und Herrsche Teil 2 Teile und Herrsche Teil 2 binär Suchen und schnell Multiplizieren Markus Fleck Manuel Mauky Hochschule Zittau/Görlitz 19. April 2009 Suchen in langen Listen (0, 1, 2, 7, 8, 9, 9, 13, 13, 14, 14, 14, 16,

Mehr

Programmieren I. Kontrollstrukturen. Heusch 8 Ratz 4.5. www.kit.edu. Institut für Angewandte Informatik

Programmieren I. Kontrollstrukturen. Heusch 8 Ratz 4.5. www.kit.edu. Institut für Angewandte Informatik Programmieren I Kontrollstrukturen Heusch 8 Ratz 4.5 KIT Universität des Landes Baden-Württemberg und nationales Großforschungszentrum in der Helmholtz-Gemeinschaft www.kit.edu Arten von Kontrollstrukturen

Mehr

Kapitel 9 Suchalgorithmen

Kapitel 9 Suchalgorithmen Kapitel 9 Suchalgorithmen Technische Universität München Suchverfahren: Verfahren, das in einem Suchraum nach Mustern oder Objekten mit bestimmten Eigenschaften sucht. Vielfältige Anwendungsbereiche für

Mehr

Die Klassen P und NP. Dr. Eva Richter. 29. Juni 2012

Die Klassen P und NP. Dr. Eva Richter. 29. Juni 2012 Die Klassen P und NP Dr. Eva Richter 29. Juni 2012 1 / 35 Die Klasse P P = DTIME(Pol) Klasse der Probleme, die sich von DTM in polynomieller Zeit lösen lassen nach Dogma die praktikablen Probleme beim

Mehr

12. September 2012 Kompexität. Analyse von Algorithmen (Ziele) Empirische Analyse Beispiel Schlussfolgerungen

12. September 2012 Kompexität. Analyse von Algorithmen (Ziele) Empirische Analyse Beispiel Schlussfolgerungen Komplexität von Algorithmen Ferd van Odenhoven Fontys Hogeschool voor Techniek en Logistiek Venlo Software Engineering 12. September 2012 ODE/FHTBM Komplexität von Algorithmen 12. September 2012 1/41 (Ziele)

Mehr

Algorithmen und Datenstrukturen Wintersemester 2004/ November T(n) = T(n a) + T(a) + n

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: norman@pi3.informatik.uni-mannheim.de Matthias Brantner B6, 29, Raum C0.05 68131 Mannheim

Mehr

Ein Algorithmus für die

Ein Algorithmus für die VGG 1 Ein Algorithmus für die Visualisierung gerichteter Graphen in der Ebene (2D) Seminar Graph Drawing SS 2004 bei Prof. Bischof (Lehrstuhl für Hochleistungsrechnen) Gliederung VGG 2 Einleitung Motivation

Mehr

Optimierungsprobleme. B. Langfeld, M. Ritter, B. Wilhelm Diskrete Optimierung: Fallstudien aus der Praxis

Optimierungsprobleme. B. Langfeld, M. Ritter, B. Wilhelm Diskrete Optimierung: Fallstudien aus der Praxis Optimierungsprobleme Instanz eines Optimierungsproblems zulässiger Bereich (meist implizit definiert) Zielfunktion Optimierungsrichtung opt {max, min} Optimierungsproblem Menge von Instanzen meist implizit

Mehr

Datenstrukturen und Algorithmen

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

Mehr

Binäre lineare Optimierung mit K*BMDs p.1/42

Binäre lineare Optimierung mit K*BMDs p.1/42 Binäre lineare Optimierung mit K*BMDs Ralf Wimmer wimmer@informatik.uni-freiburg.de Institut für Informatik Albert-Ludwigs-Universität Freiburg Binäre lineare Optimierung mit K*BMDs p.1/42 Grundlagen Binäre

Mehr

Kapitel 15: Differentialgleichungen

Kapitel 15: Differentialgleichungen FernUNI Hagen WS 00/03 Kapitel 15: Differentialgleichungen Differentialgleichungen = Gleichungen die Beziehungen zwischen einer Funktion und mindestens einer ihrer Ableitungen herstellen. Kommen bei vielen

Mehr

Dr. Monika Meiler. Inhalt

Dr. Monika Meiler. Inhalt Inhalt 4 Einführung in die Programmiersprache Java (Teil II)... 4-2 4.4 Strukturierte Programmierung... 4-2 4.4.1 Strukturierung im Kleinen... 4-2 4.4.2 Addierer (do-schleife)... 4-3 4.4.3 Ein- Mal- Eins

Mehr

S=[n] Menge von Veranstaltungen J S kompatibel mit maximaler Größe J

S=[n] Menge von Veranstaltungen J S kompatibel mit maximaler Größe J Greedy-Strategie Definition Paradigma Greedy Der Greedy-Ansatz verwendet die Strategie 1 Top-down Auswahl: Bestimme in jedem Schritt eine lokal optimale Lösung, so dass man eine global optimale Lösung

Mehr