Übung Algorithmen und Datenstrukturen

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

Algorithmen & Datenstrukturen 1. Klausur

3 Amortisierte Analyse

3. Übung Algorithmen I

Suchen und Sortieren Sortieren. Heaps

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

a) Da die Zahlen im IEEE-32Bit-Format dargestellt werden sollen, ist der Bias = 127.

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

Algorithmik - Kompaktkurs

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

Fibonacci-Heaps und Amortisierte Analyse

Grundlagen der Programmierung

Programmiertechnik II

Codes und Informationsgehalt

Algorithmen zur Integer-Multiplikation

Informatik I WS 07/08 Tutorium 24

Suchen und Sortieren (Die klassischen Algorithmen)

Grundlagen der Informatik. Prof. Dr. Stefan Enderle NTA Isny

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

Praktikum zu Einführung in die Informatik für LogWiIngs und WiMas Wintersemester 2015/16. Vorbereitende Aufgaben. Präsenzaufgaben

Name:... Vorname:... Matrikel-Nr.:... Unterschrift:...

Algorithmen und Datenstrukturen (ESE) Entwurf, Analyse und Umsetzung von Algorithmen (IEMS) WS 2012 / Vorlesung 9, Dienstag 18.

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

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

Algorithmen und Datenstrukturen (ESE) Entwurf, Analyse und Umsetzung von Algorithmen (IEMS) WS 2014 / Vorlesung 5, Donnerstag, 20.

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

4 Greedy-Algorithmen (gierige Algorithmen)

Laufzeit und Komplexität

Übungen zu Einführung in die Informatik: Programmierung und Software-Entwicklung: Lösungsvorschlag

Lösungen: zu 1. a.) b.) c.)

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

Methoden des Algorithmenentwurfs Kapitel 2.2: Randomisierte Online Algorithmen

Programmiertechnik II

Mikro-Controller-Pass 1

KONSTRUKTION VON ROT-SCHWARZ-BÄUMEN

Undirected Single-Source Shortest Paths with Positive Integer Weights in Linear Time

Grundlagen: Algorithmen und Datenstrukturen

Einführung in die Programmierung

Wirtschaftsinformatik I

Einführung in die Informatik 1

Lösung 1. Übungsblatt

Übungen zu Einführung in die Informatik: Programmierung und Software-Entwicklung: Lösungsvorschlag

In vergleichsbasierten Suchbäumen wird nicht in Schlüssel hineingeschaut.

AVL-Bäume Analyse. Theorem Ein AVL-Baum der Höhe h besitzt zwischen F h und 2 h 1 viele Knoten. Definition Wir definieren die nte Fibonaccizahl:

Spezialvorlesung Online-Algorithmen. Matthias Westermann Berthold Vöcking Christian Sohler

Architektur verteilter Anwendungen

4 Algorithmen und Datenstrukturen

Datentypen: Enum, Array, Struct, Union

1. Grundlagen Sortieren Vertauschen Selektion Einfügen Quicksort Suchen...

Approximationsalgorithmen

Zahlensysteme Seite -1- Zahlensysteme

Software- Qualitätsmanagement

Theoretische Informatik SS 04 Übung 1

Grundlegende Datentypen

Kapitel 0: Organisatorisches

Programmieren in C++ Arrays, Strings und Zeigerarithmetik

Sortieren. Eine Testmenge erstellen

3. Ziel der Vorlesung

1. 4-Bit Binärzahlen ohne Vorzeichen 2. 4-Bit Binärzahlen mit Vorzeichen 3. 4-Bit Binärzahlen im 2er Komplement 4. Rechnen im 2er Komplement

VBA-Programmierung: Zusammenfassung

Inhaltsverzeichnis. Danksagungen... 11

Eine Logikschaltung zur Addition zweier Zahlen

Kapitel 5: Dynamisches Programmieren Gliederung

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

Wir unterscheiden folgende drei Schritte im Design paralleler Algorithmen:

Algorithmen und Datenstrukturen 1

Einführung in die Informatik

Zahlensysteme. von Christian Bartl

Abschnitt: Algorithmendesign und Laufzeitanalyse

BSZ für Elektrotechnik Dresden. Zahlenformate. Dr.-Ing. Uwe Heiner Leichsenring

Midterm-Klausur Technische Grundlagen der Informatik

Schulinterner Lehrplan zum Kernlehrplan für die Qualifikationsphase Informatik

B.SC. INFORMATIK TIM JUNGNICKEL

Übungen für die Einführung in die Assemblerprogrammierung mit dem Prozessor c515c

Information in einem Computer ist ein

Grundlagen der Technischen Informatik Wintersemester 12/13 J. Kaiser, IVS-EOS

2.7 Klassen 2.8 Methoden 2.9 Rekursion 2.10 Dateien 2.11 Objektorientierung 2.12 Dynamische Datenstrukturen 2.13 Vererbung

Grundlagen der Technischen Informatik. 4. Übung

Datenstrukturen. Mariano Zelke. Sommersemester 2012

Beispiel zu Datenstrukturen

Einführung in die Informatik für Hörer aller Fakultäten II. Andreas Podelski Stephan Diehl Uwe Waldmann

Tutorium Algorithmen & Datenstrukturen

Vertiefungsstoff zum Thema Darstellung von Zahlen

- k Maximalwerte aus Menge mit n >> k Elementen (Rangfolgebestimmung von Suchmaschinen!) Die typische Operationen:

Die Bedeutung abstrakter Datentypen in der objektorientierten Programmierung. Klaus Kusche, September 2014

Über den Autor 7. Teil I Erste Schritte mit der Java-Programmierung 29

Numerisches Programmieren, Übungen

Informationssysteme Gleitkommazahlen nach dem IEEE-Standard 754. Berechnung von Gleitkommazahlen aus Dezimalzahlen. HSLU T&A Informatik HS10

BITte ein BIT. Vom Bit zum Binärsystem. A Bit Of Magic. 1. Welche Werte kann ein Bit annehmen? 2. Wie viele Zustände können Sie mit 2 Bit darstellen?

Grundlagen der Informatik Generische Klassen

Technische Informatik - Eine Einführung

Graphen: Datenstrukturen und Algorithmen

Technische Informatik 2 Adressierungsarten

Curriculum Programmieren C/C++ linux.isoe.ch/lecture

Vortrag. Suchverfahren der Künstlichen Intelligenz. Sven Schmidt (Technische Informatik)

Organisatorisches. Informatik II Informationen und Daten. Organisatorisches. Organisatorisches. Rainer Schrader. 13. Oktober 2008

Diese vier Teile werden durch Bindestriche (oder seltener Leerzeichen) abgetrennt.

Theoretische Grundlagen der Informatik

M. Graefenhan Übungen zu C. Blatt 3. Musterlösung

Hello world. Sebastian Dyroff. 21. September 2009

Transkript:

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

Agenda Schreibtischtest zu Suchverfahren Amortisierte Analyse Max-Heaps und HeapSort 2

Agenda Schreibtischtest zu Suchverfahren Amortisierte Analyse Max-Heaps und HeapSort 3

Aufgabe Schreibtischtests zu Suchverfahren 4

Agenda Schreibtischtest zu Suchverfahren Amortisierte Analyse Max-Heaps und HeapSort 5

Binärzähler Geg.: k-bit Binärzähler Array von k Bits b 0, b 1,, b k 1 Entspricht Binärzahl b k 1 b 1 b 0 bzw. Dezimalzahl i b i 2 i Operation: Zahl inkrementieren D. h. Addition von 1 Kosten = Anzahl der Bitänderungen jedes Bit kostet 1 n b 7 b 6 b 5 b 4 b 3 b 2 b 1 b 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 1 Bitwechsel n b 7 b 6 b 5 b 4 b 3 b 2 b 1 b 0 23 0 0 0 1 0 1 1 1 24 0 0 0 1 1 0 0 0 4 Bitwechsel 6

Binärzähler Kostenabschätzung Gesucht: Kosten für n Inkrement-Operationen, wenn Zähler bei 0 beginnt Best-case: 1 Bitwechsel Worst-case: Alle Bits werden verändert k Ergibt Kosten: n k = O(nk) Problem sehr pessimistische Abschätzung, da Worst-case eher selten n b 7 b 6 b 5 b 4 b 3 b 2 b 1 b 0 127 0 1 1 1 1 1 1 1 128 1 0 0 0 0 0 0 0 k Bitwechsel 7

Binärzähler Kostenabschätzung (2) n b 7 b 6 b 5 b 4 b 3 b 2 b 1 b 0 #BW Gesamt 0 0 0 0 0 0 0 0 0 n #BW kn 1 0 0 0 0 0 0 0 1 1 1 1 8 2 0 0 0 0 0 0 1 0 2 2 3 16 3 0 0 0 0 0 0 1 1 1 3 4 24 4 0 0 0 0 0 1 0 0 3 4 7 32 5 0 0 0 0 0 1 0 1 1 5 8 40 6 0 0 0 0 0 1 1 0 2 6 10 48 7 0 0 0 0 0 1 1 1 1 7 11 56 8 0 0 0 0 1 0 0 0 4 8 15 64 9 0 0 0 0 1 0 0 1 1 9 16 72 10 0 0 0 0 1 0 1 0 2 10 18 80 Häufig geringe Kosten Abschätzung zu pessimistisch 8

Amortisierte Analyse Amortisation (frz. amortir, tilgen ): Anfängliche Aufwendungen für spätere Erträge Gegeben: Datenstruktur D, Operationen Q Ziel: Zeit- oder Speicherkomplexität einer Datenstruktur im schlechtesten Fall ermitteln Bessere obere Schranken der Laufzeit bei n Operationen (Amortisierter Worst-case) Voraussetzungen: nicht alle Operationen sind teuer teure Operationen benötigen viele vorangehende günstigere Mehrere Vorgehensweisen: Guthabenmethode (Bankkontomethode) Potentialmethode Grundidee: Anfängliche (eigentlich günstige) Operation teurer bewerten um spätere (teure) Operationen auszugleichen 9

Potentialmethode Potentialfunktion Φ: D i R ordnet jedem Zustand der Datenstruktur ein Potential zu Seien c i die realen Kosten der i-ten Operation Amortisierte Kosten d i = c i + Φ D i Φ D i 1 ergibt sich aus den realen Kosten und dem Potentialzuwachs Amortisierte Gesamtkosten: n i=1 d i n = c i + Φ D i Φ D i 1 = i=1 n i=1 c i + Φ D n Φ D 0 Ziel: Finde eine Potentialfunktion Φ, so dass 1. Φ D von einer Eigenschaft von D abhängt, 2. Φ D i Φ D 0, 3. d i lässt sich für alle i berechnen. Dann sind die amortisierten Gesamtkosten obere Schranke für die tatsächlichen Gesamtkosten Herangehensweise: Ermitteln einer Potentialfunktion, die hinreichend (aber nicht unnötig viel) Potential für spätere teure Operationen sammelt 10

Potentialmethode Binärzähler Φ(D i ): Anzahl der Einsen im Zähler In der i-ten Operation springen t i Bits auf 0 und 0-1 Bits auf 1 Es folgt: c i t i + 1 Falls Φ D i = 0, so ist Φ D i 1 = k Falls Φ D i > 0, so ist Φ D i Φ D i 1 t i + 1 In beiden Fällen gilt Φ D i Φ D i 1 t i + 1 Es folgt: d i = c i + Φ D i Φ D i 1 d i t i + 1 + Φ D i 1 t i + 1 Φ D i 1 2 Es gilt: 1. Φ D hängt von einer Eigenschaft von D ab, 2. Φ D i Φ D 0, 3. d i 2. n i=1 d i 2n Ο n ist obere Schranke für die Komplexität 11

Aufgabe Dynamische Arrays Dynamisches Array: Größe des Arrays wird verdoppelt, wenn es voll ist Beispiel: Datenstruktur ArrayList in Java Kosten bei Folge von Push-Operationen: By ScottDNelson (Own work) [CC BY-SA 4.0 (http://creativecommons.org/licenses/by-sa/4.0)], via Wikimedia Commons 12

Potentialmethode Dynamische Arrays Aufgabe: Analysieren Sie mittels der Potentialmethode die Worst-Case-Komplexität eines Dynamischen Arrays, in welches n Elemente eingefügt werden. Zur Erinnerung: Die Potentialfunktion sollte von der Datenstruktur abhängen, das Potential der initialisierten Datenstruktur niemals unterschritten wird und hinreichend (aber nicht unnötig viel) Potential für teure Operationen sammeln. Sei m die aktuelle Größe des Arrays; Φ D i = 2 n m 2 Falls n < m, dann ist c i = 1, Φ D i Φ D i 1 = 2 und damit d i = 1 + 2 = 3 Falls n = m, dann ist c i = 1 + m, Φ D i Φ D i 1 = 2 m und damit d i = 1 + m + 2 m = 3 n i=1 d i 3n Ο n ist obere Schranke für die Komplexität 13

Agenda Schreibtischtest zu Suchverfahren Amortisierte Analyse Max-Heaps und HeapSort 14

Aufgabe MaxHeaps und HeapSort Sortieren Sie das Array A = [17,48,1,2,9,18,17,29,22,5,56,34] mit Hilfe des Algorithmus HeapSort. 15

Ausblick: Nächste Woche Rückgabe der Abgaben zum dritten Übungsblatt Besprechung der Bewertung zum dritten Übungsblatt Besprechung der Lösungen des vierten Übungsblatts Vorstellen der Aufgaben des fünften Übungsblatts Fragen?