Übung Algorithmen und Datenstrukturen

Ähnliche Dokumente
Algorithmen und Datenstrukturen (ESE) Entwurf, Analyse und Umsetzung von Algorithmen (IEMS) WS 2014 / 2015 Vorlesung 3, Donnerstag 6.

WS 2009/10. Diskrete Strukturen

Algorithmen und Datenstrukturen

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 Wien Institut für Computergraphik und Algorithmen Arbeitsbereich für Algorithmen und Datenstrukturen

Kostenmodell. Daniel Graf, Tobias Pröger. 22. September 2016 (aktualisierte Fassung 5 vom 9. Oktober 2016)

Algorithmen und Datenstrukturen

Definition: Unter der n-ten Potenz einer beliebigen reellen Zahl a versteht man das n-fache Produkt von a mit sich selbst

Einführung in die Informatik 2

Algorithmen & Datenstrukturen

Klausur Algorithmen und Datenstrukturen

Übungen zur Vorlesung MATHEMATIK II

Logik und diskrete Strukturen

Advanced Topics of Software Engineering. Organisatorische Hinweise

Operations Research I

Übungen zu Grundlagen der Logik in der Informatik - WS15/16

Kapitel 0: Organisatorisches

Beziehungen zwischen Vektorräumen und ihren Dimensionen

Software Engineering II Projektorganisation und Management Organisatorische Hinweise

Algorithmen und Datenstrukturen

Mathematik II für Studierende der Informatik. Wirtschaftsinformatik (Analysis und lineare Algebra) im Sommersemester 2016

Algorithmen und Datenstrukturen CS1017

Physik 4: Quantenmechanik, Atomund Kernphysik (Pk 4a/b)

Mathematik für Biologen und Biotechnologen (240109)

Komplexität. G. Zachmann Clausthal University, Germany Leistungsverhalten von Algorithmen

Einführung in die Praktische Informatik WS 09/10

Praktische Informatik 1

Einführung in die Programmierung

Der Primzahlsatz. Es gibt eine Konstante A, so daß f(x) g(x) Ah(x) für alle genügend großen x.

4. Übungsblatt zu Mathematik für Informatiker I, WS 2003/04

Komplexität von Algorithmen

Einführung in die Informatik für Nebenfach. Einleitung

Fortgeschrittene Programmiertechniken

Mathematik für Wirtschaftswissenschaftler I

Kapitel 16 : Differentialrechnung

Thomas Markwig. 23. Oktober 2013

Übungen zur Vorlesung. Maschinelles Lernen. Wintersemester 2011/2012

Übung Info A. Übungsleiter. Informationen (Sprechstunden, Kontaktdaten): André Schaefer Gudrun Fischer

Übungsaufgaben zu Partielle Differentialgleichungen Blatt III vom

Algorithmen und Datenstrukturen 1-1. Seminar -

Einstieg in die Informatik mit Java

Programmierung 2. Organisatorisches. Sebastian Hack. Klaas Boesche. Sommersemester

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

Algorithmen und Datenstrukturen. PD Ma&hias Thimm

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

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

Datenstrukturen, Algorithmen und Programmierung 2

Mathematik für Biologen

Alle bislang betrachteten Sortieralgorithmen hatten (worst-case) Laufzeit Ω(nlog(n)).

4. DIE ABLEITUNG (DERIVATIVE)

Algorithmische Mathematik und Programmieren

Jeweils am Montag um 18:30 treffen sich Studenten in Seminarraum 3 zum gemeinsamen Lernen.

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

Übungsaufgaben zur Analysis

Kapitel 9. Komplexität von Algorithmen und Sortieralgorithmen

Physik 1: Mechanik, Thermodynamik und Schwingungen (Pk 1)

Vorlesung Berechenbarkeit und Komplexität. Motivation, Übersicht und Organisatorisches

Funktionalgleichungen

Probeklausur zur Linearen Algebra II (B2)

Angewandte Mathematik: Stochastik Prof. Dr. Reinhard Klein

Höhere Mathematik für Naturwissenschaftler Studienjahr 2016/17

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

Regulär variierende Funktionen

1 Grundbegriffe zur Asymptotik

Kapitel 9. Komplexität von Algorithmen und Sortieralgorithmen

Algorithmen und Datenstrukturen (für ET/IT)

Evolutionäre Algorithmen. SS 2015 Woche 01

II. Zeitlicher Ablauf und Fernbleiben an einem Praktikumstermin

Technische Universität München Zentrum Mathematik. Übungsblatt 4

Datenstrukturen und Algorithmen

Höhere Mathematik für Physiker II

Stetigkeit. Kapitel 4. Stetigkeit. Peter Becker (H-BRS) Analysis Sommersemester / 543

Mathematik für Wirtschaftswissenschaftler. gehalten von Claus Diem

Kapitel 5 KONVERGENZ

Vorlesung Formale Aspekte der Software-Sicherheit und Kryptographie Sommersemester 2015 Universität Duisburg-Essen

Einführung in die Betriebswirtschaftslehre (BWL)

ADS. 1. Vorlesung. Techniken der Programmentwicklung Prof. Dr. Wolfgang Schramm

How To: Bachelor SWT. Heiko Geppert. Fachgruppe Informatik

Vorlesung Makroökonomik (früher AVWL II) Wintersemester 2014/15. Prof. Dr. Frank Heinemann AVWL II

1. Einführung. Was ist ein Algorithmus (eine Datenstruktur)? Welche Probleme kann man damit lösen? Warum betrachten wir (effiziente) Algorithmen?

Kapitel 3. Konvergenz von Folgen und Reihen

Der Begriff der konvexen Menge ist bereits aus Definition 1.4, Teil I, bekannt.

2.3 Logarithmus. b). a n = b n = log a. b für a,b 0 ( : gesprochen genau dann bedeutet, dass beide Definitionen gleichwertig sind) Oder log a

Technische Universität Wien Institut für Computergraphik und Algorithmen Arbeitsbereich für Algorithmen und Datenstrukturen

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

Theorie der Informatik

Vorlesung: Analysis I für Ingenieure

AuD-Tafelübung T-B5b

3.5 Glattheit von Funktionen und asymptotisches Verhalten der Fourierkoeffizienten

Einführung in die Programmierung

Formale Grundlagen 2008W. Vorlesung im 2008S Institut für Algebra Johannes Kepler Universität Linz

Grundlagen der Programmkonstruktion (GPK)

Kapitel 8. Rekursionsgleichungen. Landau-Symbole. Lösen von Rekursionsgleichungen Allgemeines Iterationsmethode Spezialfälle Erzeugende Funktionen

11. Übungsblatt zur Mathematik I für Maschinenbau

Rückblick auf die letzte Vorlesung. Bemerkung

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

Klausur Mathematik 1

Diskrete Strukturen Tutorium I 29. Oktober Tim Weißker

6 Reelle und komplexe Zahlenfolgen

2 Die Dimension eines Vektorraums

Transkript:

Übung Algorithmen und Datenstrukturen Sommersemester 2015 Marc Bux, Humboldt-Universität zu Berlin

Organisation Vorlesung: Montag 11 13 Uhr Ulf Leser RUD 26, 0 115 Mittwoch 11 13 Uhr Ulf Leser RUD 26, 0 115 Übung: Montag 13 15 Uhr Marc Bux RUD 26, 1 306 Mittwoch 09 11 Uhr Berit Grußien RUD 26, 1 306 Mittwoch 13 15 Uhr Berit Grußien RUD 26, 0 313 Mittwoch 13 15 Uhr Marc Bux RUD 26, 0 310 Donnerstag 09 11 Uhr Sebastian Wandelt RUD 26, 0 313 Donnerstag 11 13 Uhr Sebastian Wandelt RUD 26, 0 313 Freitag 09 11 Uhr Jan Sürmeli RUD 26, 1 305 Freitag 11 13 Uhr Jan Sürmeli RUD 26, 1 305 Tutorium: Montag 13 15 Uhr Michael R. Jung RUD 25 4.112 Dienstag 13 15 Uhr Michael R. Jung RUD 25 4.112 Donnerstag 17 19 Uhr Michael R. Jung RUD 26 0 313 Klausur: 11. August und 15. September 2015, jeweils 11 14 Uhr 2

Inhalt dieser Veranstaltung Heute (KW 17): Organisatorisches, Vorbereitung und Besprechung 1. Übungsblatt In KW 19, 21, 23, 25, 27, 29: Pflichttermin Ausgabe und Besprechung von Übungsblatt n in KW 15 + 2n Abgabe und Besprechung der Lösungen von Übungsblatt n in KW 17 + 2n Rückgabe der Lösungen von Übungsblatt n in KW 19 + 2n Pro Aufgabe werden zwei bis drei Studenten zur Vorstellung der Lösung ihrer Gruppe ausgelost Wer mehr als zwei Mal gelost wird und nicht anwesend ist (oder die Lösungen seiner Gruppe nicht präsentieren kann), wird nicht zur Prüfung zugelassen In den Wochen dazwischen: freiwillige Veranstaltung Fragen zu den Übungsaufgaben klären Wiederholungen und Vertiefungen von Themen aus der Vorlesung Wenn anderer Termin besser passt oder eine Übung ausfällt: zu anderer Übung gehen (Ausnahme: Pflichttermine) Website: http://tinyurl.com/algodat15 3

Übungsaufgaben 6 Blätter mit je 50 Punkten Ausgabe mindestens zwei Wochen vor Abgabetermin in GOYA und auf der Webseite Erstes Übungsblatt: Seit 17. April Abgabe des ersten Übungsblatts: Bis 4. Mai Danach alle zwei Wochen Lösungen schriftlicher Aufgaben sind auf Papier mit nach Aufgaben getrennten Blättern abzugeben Abgabe schriftlicher Aufgaben vor der Vorlesung bis 11:10 Uhr Oder vorher im Sekretariat RUD 25, 4.402 Programmieraufgaben (Java 1.6) sind auf gruenau2 zu testen und in GOYA abzugeben (gleicher Termin wie schriftliche Aufgaben) Namen, Matrikelnummer, Übungsgruppe auf jeder Aufgabe / Abgabe angeben 4

Übungsschein Übungsschein = Zulassung zur Prüfung Voraussetzungen für Erhalt: Anmeldung und Gruppenzuweisung in GOYA (wichtige Informationen werden über GOYA verschickt) Jedes Übungsblatt muss bearbeitet werden Insgesamt müssen 50% der Punkte erreicht werden (150 Punkte) Anwesenheit und Beteiligung bei Vorrechnen der Aufgaben Bei vermutetem Abschreiben: 0 Punkte Nicht ausführbare Programmieraufgaben: 0 Punkte 5

Übungsgruppen Übungsblätter sind in Gruppen zu bearbeiten Zusammensetzung: zwei Studenten aus der selben Veranstaltung Ziel: Zusammenarbeit fördern und voneinander lernen Beide Mitglieder einer Gruppe müssen Ergebnisse präsentieren können Als Absicherung und um die eigene Abgabe in der Übung parat zu haben: Abgabe kopieren Wenn Übungspartner sich nicht fair beteiligt: früh Bescheid geben Wer Ende der Woche noch keinen Partner hat, bekommt einen zugewiesen Wer hat den Übungsschein bereits? Wer hat noch keinen Übungspartner? 6

Agenda 1. Organisatorisches 2. Die Landau-Notation 3. Vorstellung des ersten Übungsblatts 7

Zeitkomplexität Ziel: Abschätzung der Anzahl notwendiger Operationen eines Algorithmus als Funktion der Eingabe (üblicherweise) im schlechtesten Fall unabhängig von Hardware und Implementierung Grundidee: Welche Faktoren bestimmen die Laufzeit des Algorithmus, wenn die Eingabe sehr groß wird Nur der größte Faktor (mit dem größten Exponent) ist interessant Konstante (und lineare) Faktoren sind uninteressant 8

Die Landau-Notation Seien f und g Funktionen von R 0 + nach R 0 + Wir schreiben f n = Ο(g n ), falls es Zahlen n o und c > 0 gibt, so dass für alle n n 0 gilt: f n c g(n) Bedeutung: f wächst nicht wesentlich (d.h. höchstens um lineare oder konstante Faktoren) schneller als g. Formal bezeichnet Ο g n die Klasse aller Funktionen f, die obige Bedingungen erfüllen Ο g = f: R + + 0 R c R+ > 0 n 0 R + 0 > 0 0 n n 0 : f n c g(n) Gleichung f n = Ο g n drückt in Wahrheit eine Element- Beziehung f Ο(g n ) aus Ο-Terme können auch auf der linken Seite vorkommen; in diesem Fall wird eine Inklusionsbeziehung ausgedrückt n 2 + Ο n = Ο(n 2 ) steht für die Aussage {n 2 + f f Ο n } Ο n 2 9

Die Landau-Notation (2) Definitionen: Ο g = f: R 0 + R 0 + Ω g = f: R 0 + R 0 + Θ g = f: R 0 + R 0 + ο g = f: R 0 + R 0 + ω g = f: R 0 + R 0 + c R + > 0 n 0 R + 0 > 0 n n 0 : f n c g(n) c R + > 0 n 0 R + 0 > 0 n n 0 : f n c g(n) c 1, c 2 R + > 0 n 0 R + 0 > 0 n n 0 : c 1 g n f n c 2 g(n) c R + > 0 n 0 R + 0 > 0 n n 0 : f n < c g(n) c R + > 0 n 0 R + 0 > 0 n n 0 : f n > c g(n) Bedeutung: f wächst... nicht wesentlich schneller als g nicht wesentlich langsamer als g ungefähr genauso schnell wie g wesentlich langsamer als g wesentlich schneller als g 10

Beispiel 1 Definitionen (kurz): f n = Ο g n c, n 0 n n 0 : f n c g(n) f n = Ω g n c, n 0 n n 0 : f n c g(n) f n = Θ g n c 1, c 2, n 0 n n 0 : c 1 g n f n c 2 g(n) Funktionen f n = k mit k > 0 g n = 1 Wähle c = k, n 0 = 0 n n 0 : f n c g n da k k 1 f n = Ο g n = Ο(1) n n 0 : f n c g n da k k 1 f n = Ω g n = Ω(1) f n = Θ g n = Θ 1 Konstante Funktionen wachsen alle asymptotisch gleich schnell (nämlich gar nicht) 11

Definitionen (kurz): Beispiel 2 f n = Ο g n c, n 0 n n 0 : f n c g(n) f n = Ω g n c, n 0 n n 0 : f n c g(n) f n = Θ g n c 1, c 2, n 0 n n 0 : c 1 g n f n c 2 g(n) Funktionen f n = 3n 5 + 4n 3 + 15 g n = n 5 Wähle c = 3 + 4 + 15 = 22, n 0 = 1 n n 0 : f n c g n da 3n 5 + 4n 3 + 15 22 n 5 für n 1 f n = Ο g n = Ο(n 5 ) Wähle c = 3, n 0 = 1 n n 0 : f n c g n da 3n 5 + 4n 3 + 15 3 n 5 für n 1 f n = Ω g n = Ω(n 5 ) f n = Θ g n = Θ(n 5 ) Allgemein gilt: a k n k + a k 1 n k 1 + + a 0 = Θ n k für a k > 0 12

Definitionen (kurz): Beispiel 2 (2) f n = Ο g n c, n 0 n n 0 : f n c g(n) f n = Ω g n c, n 0 n n 0 : f n c g(n) f n = Θ g n c 1, c 2, n 0 n n 0 : c 1 g n f n c 2 g(n) f n = ο g n c n 0 n n 0 : f n < c g(n) f n = ω g n c n 0 n n 0 : f n > c g(n) Funktionen f n = 3n 5 + 4n 3 + 15 g n = n 5 Wähle c = 3 ( c: f n < c g n ) da 3n 5 + 4n 3 + 15 > 3 n 5 für n 1 f n ο g n = ο(n 5 ) Wähle c = 3 + 4 + 15 = 22 ( c: f n > c g n ) da 3n 5 + 4n 3 + 15 < 22 n 5 für n 1 f n ω g n = ο(n 5 ) 13

Zusammenhänge zwischen Ο, Ω, Θ, ο und ω Definitionen (kurz): f n = Ο g n c, n 0 n n 0 : f n c g(n) f n = Ω g n c, n 0 n n 0 : f n c g(n) f n = ο g n c n 0 n n 0 : f n < c g(n) f n = ω g n c n 0 n n 0 : f n > c g(n) Satz: f Ο g g Ω(f) Beweis: f Ο(g) c n 0 n n 0 : f n c g n für c = 1 und das gleiche n c 0 gilt: n n 0 : g n g Ω f Satz: f ο g Satz: f ο g g ω f f Ω(g) c f(n) Beweis: f ο(g) c n 0 n n 0 : f n < c g n es existiert kein c, so dass für ein n 0 gilt: n n 0 : f n f Ω(g) Satz: f ω g f Ο(g) c g(n) 14

Grenzwert als hinreichendes Kriterium Definitionen (kurz): f n = Ο g n c, n 0 n n 0 : f n c g(n) f n = ο g n c n 0 n n 0 : f n < c g(n) Satz: lim f(n) n g(n) < f Ο(g) Funktion im Nenner wächst mindestens so schnell wie im Zähler Satz: lim f(n) n g(n) = 0 f ο(g) Funktion im Nenner wächst schneller als im Zähler Beispiel: f n = 23 g n = log log n f(n) lim n 23 log log n = 0 = lim g(n) n f ο g f Ω(g) und g ω(f) 15

Logarithmen und Satz von L Hôpital Logarithmengesetz für Produkte: log b x r = r log b x log a n = log a n log b a log b a = log b a log a n log b a = log b n log b a = 1 log b a log b n Logarithmen zu verschiedenen Basen können mit einem konstanten Faktor ineinander umgerechnet werden log a n = Θ(log b n) Satz von L Hôpital: Seien f und g zwei differenzierbare Funktionen, deren Grenzwerte entweder beide gegen 0 oder beide gegen f n gehen. Dann gilt lim = lim f n (falls der Grenzwert existiert). n g(n) n g (n) Beispiel: f n = log n = log 2 n g n = n lim log n = lim n = n n log n lim n n = lim ln n = lim n ln 2 n n f o g, f Ω(g), g ω(f) 1 n ln 2 1 2 n 1 2 = lim n 2 n ln 2 n 1 2 2 = lim = 0 n ln 2 n 16

Agenda 1. Organisatorisches 2. Die Landau-Notation 3. Vorstellung des ersten Übungsblatts 17

Übungsblatt 1 18

Konventionen 19

Aufgabe 1 20

Aufgabe 2 21

Beispiele zu Aufgabe 2 f(n) g(n) (f) n 1 2 n 3 4 (g) n + log n 2n (h) 2 n 2 n+1 (i) 2 n 2 2n (j)* 2 n n! 22

Aufgabe 3-1 23

Aufgabe 3-2 24

Aufgabe 4-1 25

Aufgabe 4-2 26

Ausblick: Nächste Woche Klärung von Fragen zum ersten Übungsblatt Wiederholung und Fortsetzung der Vertiefung der Landau- Notation Weitere Beispielaufgaben (an der Tafel) Vertiefende Wiederholung zu Dynamic Programming Als Vorbereitung auf Übungsblatt 2 Fragen? 27