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

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

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)

Fachwissenschaftliche Grundlagen

Grundbegriffe der Informatik Tutorium 2

Algorithmen und Datenstrukturen

Klausur Algorithmen und Datenstrukturen

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

Technische Universität München Zentrum Mathematik Mathematik 1 (Elektrotechnik) Übungsblatt 1

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

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

Vorkurs Mathematik und Informatik Mengen, natürliche Zahlen, Induktion

Algorithmen II Vorlesung am

Aufgaben und Lösungen zum Vorkurs Mathematik: Beweismethoden Für Mittwoch den

Elementare Beweismethoden

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

Informatik II - Tutorium

Einführung in die Informatik 2

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

Resolutionsalgorithmus

Übungen zur Vorlesung MATHEMATIK II

Induktive Beweise und rekursive Definitionen

Themen: Kubische Gleichungen, Ungleichungen, Induktion

Aufgaben und Lösungen zum Vorkurs Mathematik: Beweismethoden Für Donnerstag den x > 1 3x > 3 3x + 3 > 6 6x + 3 > 3x + 6.

Wie werden die Vorlesungen/Übungen organisiert?

Vorlesung. Vollständige Induktion 1

Informatik II Übung 1 Gruppe 7. Leyna Sadamori

Beispiellösungen zu den Übungen Datenstrukturen und Algorithmen SS 2008 Blatt 6

A N A L Y S I S I F Ü R T P H, U E ( ) 1. Übungstest (FR, ) (mit Lösung )

Prof. Dr. Heinrich Müller; Dr. Frank Weichert 7. September 2015

Algorithmen und Datenstrukturen 1-1. Seminar -

Kapitel 5 KONVERGENZ

Donnerstag, 11. Dezember 03 Satz 2.2 Der Name Unterraum ist gerechtfertigt, denn jeder Unterraum U von V ist bzgl.

Algorithmen und Datenstrukturen

3 Vollständige Induktion

TECHNISCHE UNIVERSITÄT MÜNCHEN

Kapitel 3. Konvergenz von Folgen und Reihen

11. Übungsblatt zur Mathematik I für Maschinenbau

SS April Übungen zur Vorlesung Logik Blatt 1. Prof. Dr. Klaus Madlener Abgabe bis 27. April :00h

Höhere Mathematik für Physiker II

6 Reelle und komplexe Zahlenfolgen

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

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

Funktionalgleichungen

Algorithmen und Datenstrukturen

Die Ackermannfunktion

4. DIE ABLEITUNG (DERIVATIVE)

Datenstrukturen und SS Robert Elsässer

Kapitel 16 : Differentialrechnung

Randomisierte Algorithmen

Logik und diskrete Strukturen

Ersetzbarkeitstheorem

Vertiefung NWI: 13. Vorlesung zur Wahrscheinlichkeitstheorie

Algorithmen und Datenstrukturen Tafelübung 4. Jens Wetzl 15. November 2011

TECHNISCHE UNIVERSITÄT MÜNCHEN

6.1 Natürliche Zahlen 6.2 Induktion und Rekursion 6.3 Ganze, rationale, reelle und komplexe Zahlen 6.4 Darstellung von Zahlen

Übungsaufgaben zu Partielle Differentialgleichungen Blatt III vom

Theorie der Informatik

Diskrete Strukturen Kapitel 2: Grundlagen (Beweise)

ADS: Algorithmen und Datenstrukturen 2

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

Einführung in die Informatik 1

Induktive Beweise und rekursive Definitionen

Student: Alexander Carls Matrikelnummer: Aufgabe: Beschreibung des euklidischen Algorithmus Datum:

Theoretische Informatik SS 03 Übung 3

Fachwissenschaftliche Grundlagen

Algorithmen & Datenstrukturen

Kapitel 9. Komplexität von Algorithmen und Sortieralgorithmen

2 i. i=0. und beweisen Sie mittels eines geeigneten Verfahrens die Korrektheit der geschlossenen Form.

2. Symmetrische Gruppen

TU8 Beweismethoden. Daniela Andrade

Kapitel 9. Komplexität von Algorithmen und Sortieralgorithmen

Mathematische Grundlagen der Ökonomie Übungsblatt 8

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

Informatik I WS 07/08 Tutorium 24

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

1.2 Eigenschaften der ganzen Zahlen

Vorkurs: Mathematik für Informatiker

Informatik II Übung 1 Gruppe 7

Informatik B von Adrian Neumann

Numerische Verfahren und Grundlagen der Analysis

Einführung in die Praktische Informatik WS 09/10

7. Übungsblatt Aufgaben mit Lösungen

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

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

Datenstrukturen und Algorithmen

Algorithmen und Datenstrukturen CS1017

Diskrete Strukturen Tutorium I 29. Oktober Tim Weißker

1 Das Prinzip der vollständigen Induktion

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

Beziehungen zwischen Vektorräumen und ihren Dimensionen

Abschnitt: Algorithmendesign und Laufzeitanalyse

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

Transkript:

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

Organisation Vorlesung: Montag 11 13 Uhr Marius Kloft RUD 26, 0 115 Mittwoch 11 13 Uhr Marius Kloft RUD 26, 0 115 Übung: Montag 09 11 Uhr Marc Bux RUD 26, 1'303 Montag 13 15 Uhr Marc Bux RUD 26, 1'305 Montag 13 15 Uhr Florian Tschorsch RUD 26, 1'303 Dienstag 09 11 Uhr Patrick Schäfer RUD 26, 1'303 Dienstag 13 15 Uhr Kim Völlinger RUD 26, 0'313 Mittwoch 09 11 Uhr Berit Grußien RUD 26, 1'306 Donnerstag 13 15 Uhr Kim Völlinger RUD 26, 1'305 Donnerstag 13 15 Uhr Patrick Schäfer RUD 26, 0'313 Freitag 09 11 Uhr Berit Grußien RUD 26, 1'305 Freitag 11 13 Uhr Florian Tschorsch RUD 26, 1'305 Tutorium: Montag 17 19 Uhr Michael R. Jung RUD 26, 1'303 Mittwoch 17 19 Uhr Michael R. Jung RUD 26, 1'303 Donnerstag 15 17 Uhr Michael R. Jung RUD 26, 1'306 Freitag 11 13 Uhr Michael R. Jung RUD 25, 3.101 Klausur: 1. August und 4. Oktober 2016, jeweils 9 12 Uhr 2

Inhalt dieser Veranstaltung Heute (KW 17): Organisatorisches, Vorbereitung und Besprechung 1. Übungsblatt In KW 18, 20, 22, 24, 26: Vorbereitung und Besprechung von Übungsblatt n in KW 14 + 2n Abgabe von Übungsblatt n in KW 16 + 2n Rückgabe der Lösungen von Übungsblatt n in KW 18 + 2n In KW 19, 21, 23, 25, 27, 29: Besprechung / Vorrechnen der Lösungen von Übungsblatt n in KW 17 + 2n Wenn anderer Termin besser passt oder Übung ausfällt: zu anderer Übung gehen (so lange es genügend freie Plätze gibt) Websites: Übung: https://hu.berlin/algodat16 Vorlesung: https://hu.berlin/vl_algodat16 Tutorium: https://hu.berlin/tutad16 3

Übungsaufgaben 6 Blätter mit je 50 Punkten Ausgabe zwei Wochen vor Abgabetermin in Goya und auf der Website Erstes Übungsblatt: Seit 20. April Abgabe des ersten Übungsblatts: Bis 4. Mai Danach immer Montags alle zwei Wochen Lösungen schriftlicher Aufgaben sind auf Papier mit nach Aufgaben getrennten Blättern abzugeben Blätter einer Aufgabe zusammentackern Abgabe schriftlicher Aufgaben vor der Vorlesung bis 10:55 Uhr Oder vorher im Briefkasten in Raum RUD25, 3.321 Programmieraufgaben (Java 1.7) sind auf gruenau2 zu testen und in Goya abzugeben (gleicher Termin wie schriftliche Aufgaben) Namen, Matrikelnummer, Übungsgruppe, gewünschten Rückgabetermin (eindeutig: Wochentag, Uhrzeit, Dozent) auf jedem Blatt / jeder Java-Klasse jeder Abgabe angeben 4

Übungsschein und Goya Übungsschein = Zulassung zur Prüfung Insgesamt müssen 50% der Punkte erreicht werden (150 Punkte) Anmeldung in Goya nicht auf Warteliste (Wartelisten werden am 2.4. geschlossen) zur Not zu einem beliebigen Termin eintragen und in Goya Wechsel beantragen Gruppenbildung in Goya Gruppen können sich über mehere Termine erstrecken Möglichst einfache / kurze Gruppennamen verwenden Wichtige Informationen werden über Goya verschickt Ggf. Weiterleitung aktivieren Abgaben ohne Anmeldung in Goya: 0 Punkte Abgaben mit invalider Gruppengröße: 0 Punkte Bei vermutetem Abschreiben: 0 Punkte Nicht ausführbare Programmieraufgaben: 0 Punkte 5

Übungsgruppen Übungsblätter sind in Gruppen zu bearbeiten Zusammensetzung: zwei (in Ausnahmefällen drei) Studenten Ziel: Zusammenarbeit fördern und voneinander lernen 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 hat den Übungsschein bereits? Wer steht noch auf einer Warte- oder Vormerkliste? Wer hat noch keinen Übungspartner? 6

Agenda 1. Organisatorisches 2. Vorstellung des ersten Übungsblatts 3. Die Landau-Notation 4. Pseudocode-Analyse und Algorithmenentwurf 7

Agenda 1. Organisatorisches 2. Vorstellung des ersten Übungsblatts 3. Die Landau-Notation 4. Pseudocode-Analyse und Algorithmenentwurf 8

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 Terme bestimmen die Laufzeit des Algorithmus, wenn die Eingabe sehr groß wird Nur der Term mit dem größten Wachstum ist interessant Konstante Summanden und Faktoren sind unerheblich 9

Einige gängige Funktionen 10

Die Landau-Notation Seien f und g Funktionen von R 0 nach R 0 Wir schreiben f n = Ο(g n ), falls es Zahlen n 0 0 und c > 0 gibt, so dass für alle n n 0 gilt: f n c g(n) Bedeutung: f wächst nicht wesentlich schneller als g. Formal bezeichnet Ο g n die Klasse aller Funktionen f, die obige Bedingungen erfüllen c R > 0 n Ο g = f: R 0 R 0 R 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 11

Die Landau-Notation (2) Definitionen: Ο g = f: R 0 R 0 Ω g = f: R 0 R 0 c R > 0 n 0 R 0 n n 0 : f n c g(n) c R > 0 n 0 R 0 n n 0 : f n c g(n) c Θ g = f: R 0 R 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 ο g = f: R 0 R 0 R > 0 0 n n 0 : f n < c g(n) c R > 0 n ω g = f: R 0 R 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 langsamer als g schneller als g 12

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

Beispiel 2 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 = 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 ) 14

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

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

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

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 18

Agenda 1. Organisatorisches 2. Vorstellung des ersten Übungsblatts 3. Die Landau-Notation 4. Pseudocode-Analyse und Algorithmenentwurf 19

Vollständige Induktion Beweismethode für den Beweis einer Aussage A(n) über natürliche Zahlen, d.h. n N Induktionsanfang (IA): Beweise, dass A(0) wahr ist Induktionsschritt (IS): Beweise, dass wenn A(k) wahr ist (IV), auch A(k + 1) (IB) wahr sein muss. Induktionsvoraussetzung (IV): Die Aussage A(k) ist wahr für ein bestimmtes k N Induktionsbehauptung (IB): Die Aussage A(k + 1) ist wahr (unter Verwendung der IV) Induktionsschluss: Gültigkeit der Aussage A(n) für alle n N folgt aus IA und IS vgl. Dominoeffekt Wichtiges Werkzeug für Korrektheitsbeweise rekursiver Algorithmen 20

Übungsaufgabe Gegeben Sei der folgende Algorithmus: Algorithmus M(i) Input: i N Output: Zahl x (1) if i = 0 then (2) return i; (3) else (4) return i M(i 1); (5) end if 1. Was berechnet der Algorithmus M i? Geben Sie hierzu eine Formel an. 2. Analysieren Sie die Laufzeit des Algorithmus. 3. Beweisen Sie die Korrektheit des Algorithmus. 21

Korrektheitsbeweis Behauptung: M i = 0 Beweis durch vollständige Induktion über i: IA (i = 0): M i = 2 i = 0 IS (i i + 1): IV: M i = 0 IB: M i + 1 = 0 M i + 1 = 4 i + 1 M i + 1 1 = i + 1 M i = IV i + 1 0 = 0 22

Ausblick: Nächste Woche Klärung von Fragen zum ersten Übungsblatt Fortsetzung der Vertiefung der Landau-Notation Vorstellung des zweiten Übungsblatts (Stacks & Queues) Vorbereitende Aufgaben für das zweite Übungsblatt Fragen? 23