Vorlesung Informatik 2 Algorithmen und Datenstrukturen. (01 Einleitung) Prof. Dr. Susanne Albers

Ähnliche Dokumente
Kurzvorstellung und Forschungsinteressen. Datenstrukturen, Algorithmen und Programmierung 2. Motivation. Überblick. Kapitel 1: Einführung.

Kapitel 10. Rekursion

Algorithmen und Datenstrukturen

Mathematische Rekursion. Rekursion. Rekursion in C++ Mathematische Rekursion. Definition. 1, falls n 1. n! = n (n-1)!, falls n > 1

2 Asymptotische Schranken

Übersicht. Datenstrukturen und Algorithmen. Rekursionsgleichungen. Übersicht. Vorlesung 6: Mastertheorem (K4) Joost-Pieter Katoen

Musterlösung. Testklausur Vorkurs Informatik, Testklausur Vorkurs Informatik Musterlösung. Seite 1 von 10

Tutoraufgabe 1 (Rekursionsgleichungen):

Asymptotische Notationen

Dynamische Programmierung Matrixkettenprodukt

Lösungsskizzen Mathematik für Informatiker 5. Aufl. Kapitel 3 Peter Hartmann

Lösungsskizzen Mathematik für Informatiker 6. Aufl. Kapitel 4 Peter Hartmann

Vorkurs Mathematik für Informatiker Potenzen und Polynome --

Informatik II Dynamische Programmierung

3 T (d 1, l 2. ) + (6 + 2) falls d > 0 7 sonst. n 2. 4T ( n 2 ) + log 2 (n), falls n > 1 1, sonst

3. Inkrementelle Algorithmen

3 Elemente der Komplexitätstheorie Definitionen und ein Beispiel Nichtdeterminismus und das P-NP-Problem... 57

Info2 Übungsstunde 5. Agenda. Lösungen U4. Java... more insights. Tipps zur Übung 5

4.1 Dezimalzahlen und Intervallschachtelungen. a) Reelle Zahlen werden meist als Dezimalzahlen dargestellt, etwa

Analysis I Lösungsvorschläge zum 3. Übungsblatt Abgabe: Bis Donnerstag, den , um 11:30 Uhr

Algorithmen und Datenstrukturen 1

Zusammenfassung: Folgen und Konvergenz

II. Grundlagen der Programmierung. Variable: Literale (Konstanten) Operatoren & Ausdrücke. Variablendeklaration:

Prof. Dr. Wolfgang Konen Mathematik 1, WS Wozu InformatikerInnen Folgen brauchen

Langrange-Multiplikators und Hinreichende Bedingungen

Quantensuchalgorithmen

Höhere Mathematik I (Analysis) für die Fachrichtung Informatik

Grenzwert. 1. Der Grenzwert von monotonen, beschränkten Folgen

Reelle Folgen. Definition. Eine reelle Folge ist eine Abbildung f : N R. liefert ( 7 9, 37

HEUTE. Beispiele. O-Notation neue Einführung Ideen und Eigenschaften Aufgaben 47 und 52

AUFGABENSTELLUNG (ZUSAMMENFASSUNG) 2 SPEZIFIKATION 2. Datenfluß und Programmablauf 2. Vorbedingung 3. Nachbedingung 3. Schleifeninvariante 3

Satz Ein Boolescher Term t ist eine Tautologie genau dann, wenn t unerfüllbar ist.

Frank Heitmann 2/56. Satz. 3 f (n) Θ(g(n)) lim n. 5 f (n) ω(g(n)) lim n

Klausur 1 über Folgen

Basisfall Vergleichsbasiertes Sortieren Programmieraufgabe Algorithm Engineering

1.3 Funktionen. Seien M und N Mengen. f : M N x M : 1 y N : y = f(x) nennt man Funktion oder Abbildung. Beachte: Zuordnung ist eindeutig.

Indizieren Sie die folgenden Summen und Produkte gemäß der Vorgabe um und schreiben Sie sie einmal explizit aus: 5

ALP I Induktion und Rekursion

Eigenschaften von Texten

5.7. Aufgaben zu Folgen

2 Vollständige Induktion

Qualitätskennzahlen für IT-Verfahren in der öffentlichen Verwaltung Lösungsansätze zur Beschreibung von Metriken nach V-Modell XT

1. Übungsblatt zu Algorithmen II im WS 2016/2017

Höhere Mathematik für die Fachrichtung Physik

so spricht man von einer kommutativen Gruppe oder auch abelschen Gruppe.

Arithmetische und geometrische Folgen. Die wichtigsten Theorieteile. und ganz ausführliches Training. Datei Nr

TECHNISCHE UNIVERSITÄT MÜNCHEN

2 Die natürlichen, ganzen und rationalen Zahlen

6. Übung - Differenzengleichungen

18 2 Zeichen, Zahlen & Induktion *

Allgemeine Lösungen der n-dimensionalen Laplace-Gleichung und ihre komplexe Variable

1 Aussagenlogik und vollständige Induktion

Aufgaben zu Kapitel 6

... a ik) i=1...m, k=1...n A = = ( a mn

5.3 Wachstum von Folgen

Folgen und Reihen. 23. Mai 2002

Effiziente Algorithmen I: Approximationsalgorithmen Motivation und Begriffe

Algorithmen und Datenstrukturen 1 VU Übungstest SS April 2012

Wörterbuchmethoden und Lempel-Ziv-Codierung

KAPITEL 7. Zahlenfolgen. 7.1 Konvergente Zahlenfolgen Grenzwertbestimmung Grenzwertbestimmung durch Abschätzung...

Übungen zur Analysis I WS 2008/2009

1 Lösungen zu Analysis 1/ 12.Übung

Fakultät und Binomialkoeffizient Ac

Innerbetriebliche Leistungsverrechnung

Vl Statistische Prozess- und Qualitätskontrolle und Versuchsplanung Übung 5

D-MATH, D-PHYS, D-CHAB Analysis I HS 2017 Prof. Manfred Einsiedler. Übungsblatt 8. b n := 1 n. a k. k=1

KAPITEL 2. Zahlenfolgen

Lösungen zu Übungsblatt 2 Signale, Codes und Chiffren II Sommersemester 2009 Übung vom 26. Mai 2009

Übungen mit dem Applet Taylor-Entwickung von Funktionen

4.6 Berechnung von Eigenwerten

mit (a 1 ) (0,0,,0). Dann ist die Menge,,a n,a 2 eine endliche Menge und besitzt ein grösstes Element ggt(a 1

Zahlenfolgen und Konvergenzkriterien

Musterlösung zu Übungsblatt 2

Herzlich Willkommen zur Vorlesung. Analysis I SoSe 2014

Empirische Verteilungsfunktion

24 Konvergente Teilfolgen und Cauchy-Kriterium

Kryptologie: Kryptographie und Kryptoanalyse Kryptologie ist die Wissenschaft, die sich mit dem Ver- und Entschlüsseln von Informationen befasst.

Sortieren DNA-Array oder DNA-Chip

Merge-Sort und Binäres Suchen

Methode der kleinsten Quadrate

Es werden 120 Schüler befragt, ob sie ein Handy besitzen. Das Ergebnis der Umfrage lautet: Von 120 Schülern besitzen 99 ein Handy.

Index. Majorante, 24 Minorante, 23. Partialsumme, 17

2. Schätzverfahren 2.1 Punktschätzung wirtschaftlicher Kennzahlen. Allgemein: Punktschätzung eines Parameters:

Lektion II Grundlagen der Kryptologie

1 Einführende Worte 2

Kapitel 6: Quadratisches Wachstum

Vorkurs Mathematik für Informatiker Folgen

Methoden: Heron-Verfahren, Erweiterung von Differenzen von Quadratwurzeln

2. Gleichwertige Lösungen

ÜBUNGSBLATT 4 LÖSUNGEN MAT121/MAT131 ANALYSIS I HERBSTSEMESTER 2010 PROF. DR. CAMILLO DE LELLIS

$Id: reihen.tex,v /06/14 13:59:06 hk Exp $

Aufgabe G 1.1. [Vollständige Induktion, Teleskopsumme] n k 3 = n N : k(k + 1) = 1 1

Universität Stuttgart Fachbereich Mathematik. 1 Lineare Abbildungen und Matrizen. 1.1 Um was geht es?

1 Analysis T1 Übungsblatt 1

Taylorreihen und ihre Implementierung mit JAVA: n 0

Durch das Borgen steht an der Zehner-Stelle jetzt nur noch eine 1 statt einer 2

Quantenmechanik I. Musterlösung 12.

Übungen zur Infinitesimalrechnung 2, H.-C. Im Hof 19. März Blatt 4. Abgabe: 26. März 2010, Nachmittag. e x2 dx + e x2 dx = 2 e x2 dx

Übung 1 Algorithmen II

Kovarianz und Korrelation

Transkript:

Vorlesug Iformatik Algorithme ud Datestrukture (01 Eileitug) Prof. Dr. Susae Albers

Orgaisatorisches Vorlesug: Mo 14.00 16.00 Uhr, HS 00-06, Geb.101 Do 11.00 13.00 Uhr, HS 00-06, Geb.101 Übuge: Ameldug bis - Mo 9-11, SR 03-06, Geb. 051 - Mo 9-11 SR 00-034, Geb. 051 - Mo 9-11 SR 01-018, Geb. 101 - Mo 16-18 SR 03-036, Geb. 051 - Mo 16-18 SR 01-018, Geb. 051 - Do 16-18, SR 01-018, Geb. 101 - Do 16-18, SR 03-06, Geb. 051 http://www.iformatik.ui-freiburg.de/~ipr/ Teachig Iformatik II

Orgaistorisches Klausur: 18. Oktober 006 Teilahmevoraussetzug: - 50% der Übuge bearbeitet - 1-mal i de Übuge vorgerechet Bous bei bestadeer Klausur: Verbesserug um - 1/3 Notestufe, we 50% der Übugspukte erzielt - /3 Notestufe, we 80% der Übugspukte erzielt 3

Literatur Ottma, Widmayer : Algorithme ud Datestrukture, Spektrum Akademischer Verlag, Heidelberg, Berli; ISBN: 3-874-109-0, 4. Auflage, 00 Saake, Sattler : Algorithme ud Datestrukture: eie Eiführug mit Java, dpukt-verlag, Heidelberg, 00; ISBN: 3-89864-1-8 Corme, Leiserso, Rivest, Stei : Itroductio to Algorithms, Secod Editio, MIT-Press ad McGraw Hill, 00 Kleiberg, Tardos : Algorithm Desig, Pearso/Addiso-Wesley; ISBN: 0-31- 9535-8, First Editio, 005 Goodrich, Tamassia : Data Structures ad Algorithms i Java, Joh Wiley & Sos; ISBN: 0-471-38367, Secod Editio, 001 Zahlreiche weitere Bücher vo : D. Kuth, S.Baase / Va Gelder, R. Sedgewick, Nievergelt / Hirichs, Gütig / Dieker, Heu, A. Drozdeck, Th. Stadisch, Kruse, Wood, u.v.a. 4

Ihaltsübersicht 1. Eileitug, Grudlage. Algorithmeetwurfstechike 3. Elemetare Datestrukture 4. Sortiere, Suche, Auswahl 5. Wörterbücher, Bäume ud Hash-Verfahre 6. Graphealgorithme 5

Lerziele Algorithme für wichtige Probleme : Sortiere, Suche, Wörterbuch-Problem, Berechug kürzester Pfade,... Datestrukture : Liste, Stapel, Schlage, Bäume, Hash-Tabelle,... Problemlösetechike : Ziele: Divide-ad-Coquer, Greedy, vollstädige Aufzählug, Backtrackig,... Etwicklug effizieter Algorithme für Istaze vo Probleme aus eiem gegebee Bereich Fähigkeit zur Beurteilug vo Algorithme aufgrud präziser Kriterie (Korrektheit, Effiziez) 6

Beschreibug ud Aalyse vo Algorithme Sprache zur Formulierug vo Algorithme Natürliche Sprache, Pseudocode, Flussdiagramme, Programmiersprache (Java, C,...) Mathematisches Istrumetarium zur Messug der Komplexität (Zeit- ud Platzbedarf): Groß-O-Kalkül (Ladausche Symbole) 7

Pseudocode abstrakte Beschreibug eies Algorithmus strukturierter als Beschreibug mit ormalem Sprachvokabular weiger detailliert als ei Programm bevorzugte Notatio zur Beschreibug eies Algorithmus versteckt Programmetwurfsprobleme Beispiel : Fide des größte Elemets i eiem array Algorithmus arraymax(a,) Iput array A mit Iteger Output größtes Elemet vo A curretmax A[0] for i 1 to 1 do if A[i] > curretmax the curretmax retur curretmax A[i] 8

Pseudocode Details Kotrollfluss - if the [else ] - while do - repeat util -for do - Eirücke ersetzt Klammer Deklaratio vo Methode Algorithm method(arg[, arg ]) Iput Output Methodeaufruf var.method(arg[,arg ]) Rückgabewert retur Ausdruck Ausdrücke Zuweisug (wie = i Java) = Gleichheitstest (wie == i Java) ² Superscripts ud adere mathematische Formatieruge sid erlaubt 9

Formale Eigeschafte vo Algorithme Korrektheit Effiziez Frage : Wie beweist ma die Korrektheit? Programmverifikatio Teste Wie misst ma die Effiziez vo Algorithme? Implemetatio ud Test für repräsetative Beispiele Platz- ud Zeitbedarf auf Real RAM Bestimmug sigifikater Parameter 10

Korrektheit partielle : We der Algorithmus hält, da liefert er das gewüschte Resultat totale : Algorithmus hält ud liefert das gewüschte Ergebis Vorbedigug (Eigabe-Bedigug) : Spezifiziert de Zustad vor Ausführug eies Algorithmus Nachbedigug (Ausgabe-Bedigug) : Spezifiziert de Zustad ach Ausführug des Algorithmus {P} S {Q} Beispiel : {? } x = y + 3 { x > 0 } Hoare Kalkül 11

Grudbausteie imperativer Sprache Sprachkostrukte spiegel die Vo Neuma Recherarchitektur wieder. Variable sid symbolische Name für Speicherplätze. Aweisuge: Zuweisug: x = t Kompositio: S 1 ; S Selektio: if B the S 1 else S Iteratio: while B do S Hoare Kalkül: Diet zum Nachweis der partielle Korrektheit vo Programme, d.h. vo Aussage der Form {P} S {Q} 1

Beweisregel We aus wahre Aussage A 1,, A folgt, dass auch die Aussage A wahr ist, otiert ma das i der Form: A 1,, A A Die zu verifizierede Aussage sid die Hoare-Tripel der Form {P} S {Q}. 13

Zuweisugsaxiom {P[x/t]} x = t {P} P[x/t] bedeutet, dass i der Aussage P jedes Vorkomme vo x durch de Term t ersetzt wird. Beispiele: {x+1 = 43} y = x+1 {y = 43} {y = 43} z = y {z = 43} 14

Kompositio ud Selektio Kompositio {P} S 1 {Q}, {Q} S {R} {P} S 1 ; S {R} Selektio {P ud B} S 1 {R}, {P ud icht B} S {R} {P} if B the S 1 else S {R} 15

Beispiel zur Kompositio Kompositio {P} S 1 {Q}, {Q} S {R} {P} S 1 ; S {R} {x+1 = 43} y = x+1 {y = 43} z = y {z = 43} 16

Iteratio P impliziert I, {I ud B} S {I}, (I ud icht B) impliziert Q {P} while B do S {Q} Die i dieser Regel auftretede Aussage I heißt Schleifeivariate. Das Fide geeigeter Schleifeivariate ist i.a. algorithmisch ulösbar! Daher empfiehlt es sich, Schleifeivariate als Kommetare (Assertios) a de etsprechede Stelle i Programme eizufüge 17

Abschwächug ud Verstärkug Abschwächug {P} {P }, {P } S {Q} {P} S {Q} Verstärkug {P} S {Q }, {Q } {Q} {P} S {Q} 18

Beispiel eies (formale) Korrektheitsbeweises Algorithmus Mult(x,y) Eigabe : Ei Paar x,y vo atürliche Zahle Ausgabe : Das Produkt vo x ud y Methode : z 0 ; while (y>0) do { if (y ist gerade) the {y y/; x x+x} else /* y ist ugerade */ {y y-1; z z+x} } retur z; 19

Implemetatio i Java class Mult { public static void mai ( Strig [] args ) { it x = ew Iteger (args[0]).itvalue(); it y = ew Iteger (args[1]).itvalue(); System.out.pritl ( Das Produkt vo +x+ ud +y+ ist +mult(x,y)); public static it mult (it x, it y) { it z = 0; while (y>0) if (y % == 0) { y = y / ; x = x+x ;} else { y = y-1; z = z+x; } } } retur z; 0

Durchführug vo Mult(x,y) a eiem Beispiel 1

Durchführug vo Mult(x,y) a eiem Beispiel 1101*101 1 101 00 00 110 1 1000 001 x y z # Iteratioe

Nachweis der totale Korrektheit Beh. (1) Für jedes Paar a,b vo atürliche Zahle gilt: Mult(a,b) hält ach edlich viele Schritte. Beh. () Sid a ud b atürliche Zahle, da liefert Mult(a,b) de Wert z = a * b. it z = 0; while (y>0) if (y % == 0) { y = y / ; x = x+x ;} else { y = y-1; z = z+x; } 3

Schleifeivariate Scheifeivariate I: y 0 ud z + x y = a b Beh..1: I gilt vor erstmaliger Ausführug der while-schleife Beh..: I bleibt bei eimaliger Ausführug des Rumpfs der while-schleife richtig. it z = 0; while (y>0) if (y % == 0) { y = y / ; x = x+x ;} else { y = y-1; z = z+x; } 4

Weiteres Beispiel { 0} i = 0; k = -1; y = 0; while i < do i = i + 1; k = k + ; y = y + k {y = } Schleifeivariate: (k = i -1) ud (y = i ) ud (i ) 5

Beschreibug ud Aalyse vo Algorithme Sprache zur Formulierug vo Algorithme : atürliche Sprache (Eglisch), Java, C, Assembler, Pseudocode Mathematisches Istrumetarium zur Messug der Komplexität (Zeit- ud Platzbedarf): Groß-O-Kalkül (Ladausche Symbole) 6

Effiziezaalyse Laufzeitkomplexität: Steht die Laufzeit im akzeptable/verüftige/optimale Verhältis zur Größe der Aufgabe? Speicherplatzkomplexität: Wird primärer (sekudärer) Speicherplatz effiziet geutzt? Theorie: Ka utere Schrake liefer, die für jede Algorithmus gelte, der das Problem löst (etwa Ω( log ) Schritte für jedes allgemeie Sortierverfahre mit Elemete) Spezieller Algorithmus: Liefert obere Schrake für die Lösug eies Problems (etwa O( ) Schritte für Bubblesort mit Elemete) Effiziete Algorithme ud Komplexitätstheorie: Zweige der Theoretische Iformatik zur Erforschug vo obere ud utere Schrake 7

Komplexitätsschrake Komplexität Schrake für spezielle Algorithmus Komplexität des Problems Utere Schrake aus der Theorie Iputgröße 8

Laufzeitaalyse (1) Ei Programm P, das für eie Problembeschreibug x mit Läge = x die Lösug fidet, habe Laufzeit T P () Der beste Fall (best case): Laufzeit meist leicht bestimmbar, kommt i der Praxis eher selte vor: T P,best () = if{t P (x) = x } Der schlechteste Fall (worst case): Liefert garatierte Schrake, Laufzeit meist leicht bestimmbar, aber meist zu pessimistisch i der Praxis: T P,worst () = sup{t P (x) = x } Im amortisierte worst case wird der durchschittliche Aufwad für eie schlechtestmögliche Folge vo Eigabe bestimmt (techisch aspruchsvoll). Der mittlere Fall (average case): z. B. Mittelug über alle Eigabe mit Läge T P,average () = 1/ (#(x)mit x =) x = T P (x) 9

Messug des Leistugsverhaltes 1. Betrachte kokrete Implemetierug auf kokreter Hardware. Miss Laufzeit ud Platzverbrauch für repräsetative Eigabe.. Bereche Verbrauch a Platz ud Zeit für idealisierte Referezmaschie, Radom Access Machie (RAM), Registermachie (RM), Turigmachie (TM),... 3. Bestimme Azahl bestimmter (teurer) Grudoperatioe, etwa # Vergleiche, # Beweguge vo Date (beim Sortiere) # Multiplikatioe/Divisioe (für umerische Verfahre) Bei. ud 3.: Beschreibe Aufwad eies Verfahres als Fuktio der Größe des Iputs. (Die Iput-Größe ka verschiede gemesse werde.) 30

Beispiel: Taktzahl (1) Bestimme Aufwad (Taktzahl = Azahl der Bitwechsel) eies Vo Neuma Addierwerks bei Additio eier 1 zu eier durch Biärziffer gegebee Zahl i. 0 i 1 Die Taktzahl ist 1 plus # der 1e am Ede der Darstellug vo i. Bester Fall: Die best case Rechezeit beträgt 1 Takt 000...0 1443 (Addiere 1 zu ) Schlechtester Fall: Die worst case Rechezeit beträgt + 1 Takte (Addiere 1 zu 111...1 1443 ) 31

Beispiel: Taktzahl () Mittlerer Fall: Ageomme wird die Gleichverteilug auf der Mege der Eigabe. Es gibt (-k) Eigabe, die mit 01...1 13 ede ud k Takte beötige. Die Zahl - 1 braucht + 1 k 1 Takte. Die average case Rechezeit beträgt also T add1 ( ) = 1 k = 1 ( + 1 k k + ( + + ( 1) + 1)) = Im Mittel reiche also Takte, um eie Additio vo 1 durchzuführe. 3

33 Neberechug k k k = + + = + + + + + + + + + + + + = + + + = + 1) (... 1) (......... * 1 *... * 1 1 0 3 0 3 0 1 3 0 1 1 M

Primitive Operatioe Grudlegede Berechuge, die vo eiem Algorithmus ausgeführt werde Ablesbar aus Pseudocode oder Programmstück Überwieged uabhägig vo eier (imperative) Programmiersprache Exakte Defiitio ist icht bedeuted Beispiele eie Ausdruck auswerte eier Variable eie Wert zuweise Idexierug i eiem Array Aufrufe eier Methode Verlasse eier Methode 34

Zähle vo primitive Operatioe Durch Utersuche des Pseudocode köe wir die maximale Zahl vo primitive Operatioe, die durch eie Algorithmus ausgeführt wurde, als eie Fuktio der Eigabegröße bestimme. Algorithmus arraymax(a,) # Operatioe curretmax A[0] for i 1 to -1 do (-1) if A[i] > curretmax the (-1) curretmax A[i] (-1) { erhöhe Zähler i } retur curretmax 1 Total 6-3 35

Laufzeit abschätze Der Algorithmus arraymax führt im worst case 6-3 primitive Operatioe aus Defiiere a Zeit, die die schellste primitive Operatio verbraucht hat b Zeit, die die lagsamste primitive Operatio verbraucht hat T() sei die tatsächliche worst-case Laufzeit vo arraymax. Da ist : a ( 6 3) T ( ) b(6 3) Daher ist die Laufzeit T() durch zwei lieare Fuktioe beschräkt. 36

Zuwachsrate der Laufzeit Veräder der Hard- ud Softwareumgebug - beeiflusst T() um eie kostate Faktor, aber - ädert die Wachstumsordug vo T() icht Das lieare Wachstum der Laufzeit T() ist eie für de Algorithmus arraymax charakteristische Eigeschaft. 37