Von Labyrinthen zu. Algorithmen

Ähnliche Dokumente
Kostenmaße. F3 03/04 p.188/395

Einführung in die Informatik I Kapitel II.3: Sortieren

Abschnitt: Algorithmendesign und Laufzeitanalyse

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

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

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

Randomisierte Algorithmen 2. Erste Beispiele

Abgabe: (vor der Vorlesung) Aufgabe 2.1 (P) O-Notation Beweisen Sie die folgenden Aussagen für positive Funktionen f und g:

1 Zahlentheorie. 1.1 Kongruenzen

Entwurf von Algorithmen - Kontrollstrukturen

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

Sortieren durch Einfügen. Prof. Dr. W. Kowalk Sortieren durch Einfügen 1

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

Programmieren I. Kapitel 7. Sortieren und Suchen

Einführung in die Informatik I

Ein Graph ist ein Paar (V,E), wobei V eine Menge von Knoten und E eine Menge von Kanten (v,w) mit v,w in V ist.

Erfüllbarkeit und Allgemeingültigkeit

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


Folge 13 - Quicksort

Sortierverfahren für Felder (Listen)

JAVA - Suchen - Sortieren

Überblick. 1 Vorbemerkungen. 2 Algorithmen. 3 Eigenschaften von Algorithmen. 4 Historischer Überblick. Einführung

Algorithmen und Datenstrukturen 1

ALP I. Funktionale Programmierung

2.3.1 Einleitung Einfache Sortierverfahren Höhere Sortierverfahren Komplexität von Sortierverfahren Spezielle Sortierverfahren

Algorithmen und Datenstrukturen 1

Datenstrukturen & Algorithmen

Algorithmen und Datenstrukturen 2

Einführung in die Informatik 2

Unterscheidung: Workflowsystem vs. Informationssystem

Überblick. TSP Vergleich der Lösungen. Das Travelling Salesman Problem. Nearest-Neighbor Heuristik für TSP

Nichtlineare Gleichungssysteme

Algorithmen und Datenstrukturen

ADS: Algorithmen und Datenstrukturen 2

11.1 Grundlagen - Denitionen

Niedersächsisches Kultusministerium Juli 2015

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

Einführung in die Informatik

Bäume Jiri Spale, Algorithmen und Datenstrukturen - Bäume 1

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

1 topologisches Sortieren

Informatik II Musterlösung

Theoretische Grundlagen der Informatik

Universität des Saarlandes

BUBBLE SORT. Können wir die gefundenen Algorithmen auch auf Listen mit mehr als drei Elementen ausdehnen?

3. Musterlösung. Problem 1: Boruvka MST

Algorithmus zur Berechnung der Jordannormalform

Algorithmik Übung 3 Prof. Dr. Heiner Klocke. Sortierfolge nach Werten: Bube Dame König As nach Farben: Karo ( ) Herz ( ) Piek ( ) Kreuz ( )

Minimale Anzahl von Hinweisen bei Sudoku

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

Minimal spannende Bäume

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

Kommentiertes Beispiel für das Gaußsche Eliminationsverfahren

Grundlegende Sortieralgorithmen

Kapiteltests zum Leitprogramm Binäre Suchbäume

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

Laufzeit und Komplexität

Effiziente Algorithmen I

Problemreduktion durch Transformation am Beispiel des. Erweiterten Euklidschen Algorithmus

BuK 2000 Lösungen Übungen

Suchen. lineare Suche, binäre Suche, divide and conquer, rekursive und iterative Algorithmen, geordnete Daten, Comparable

Beispiellösungen zu Blatt 7

2 Sortieren. Beispiel: Es seien n = 8 und a = i : a i : ϕ(i) : a ϕ(i) :

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

Programmiertechnik II

Informatik ohne Rechner

Ein Blick voraus. des Autors von C++: Bjarne Stroustrup Conrad Kobsch

Algorithmen und Datenstrukturen CS1017

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

Rechnerstrukturen. Michael Engel und Peter Marwedel WS 2013/14. TU Dortmund, Fakultät für Informatik

VBA-Programmierung: Zusammenfassung

ADS: Algorithmen und Datenstrukturen 2

Übersicht Datenstrukturen und Algorithmen. Literatur. Algorithmus: Wikipedia Definition. Vorlesung 1: Einführung. Prof. Dr.

Abstrakte Algorithmen und Sprachkonzepte

Informatik II Greedy-Algorithmen

Algorithmen & Datenstrukturen 1. Klausur

Lösung zur Klausur zu Krypographie Sommersemester 2005

Theoretische Informatik 1

Einstieg in die Informatik mit Java

Testdokument (Universität Paderborn, Softwaretechnikpraktikum SS2006)

Approximationsalgorithmen

Grenzwertanalyse. Domain-Testing. Ronny Schwierzinski, Bernd Rabe, Anna Bartwicki

Suchen in Listen und Hashtabellen

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

Sortieralgorithmen. Inhalt: InsertionSort BubbleSort QuickSort. Marco Block

Minimal spannender Baum

Programmierung, Algorithmen und Techniken. von Thomas Ohlhauser

abgeschlossen unter,,,, R,

Teil III: Evaluationstest

Prof. H. Herbstreith Fachbereich Informatik. Leistungsnachweis. Informatik 1 WS 2001/2002

Einführung in die Informatik Algorithms

Die Funktion SVERWEIS(Suchkriterium;Matrix;Index;Bereich_Verweis)

Analytische Geometrie

17. Penalty- und Barriere-Methoden

Inhaltsverzeichnis. Ingo R. Dölle / Seite 1 von 5

Algorithmik II. SS 2003 Prof. Dr. H. Stoyan Lehrstuhl für Informatik 8 ( Künstliche Intelligenz) stoyan@informatik.uni-erlangen.

Einführung in die Informatik I Kapitel II.1: Suchen

Einführung in die Informatik

Transkript:

Von Labyrinthen zu 4 Gerald Futschek Charakterisierung Algorithmus Ein Algorithmus ist ein schrittweises Verfahren ist exakt beschrieben liefert nach endlich vielen Schritten das Ergebnis (terminiert) liefert stets ein richtiges Ergebnis (ist korrekt) löst ein allgemeines Problem 1

Probleme, die nicht mit lösbar sind Fahre eine Strasse entlang zur City, nimm den letzten freien Parkplatz vor der City Schreibe die Lottozahlen vom nächsten Sonntag auf Beweise, dass ein beliebiger gegebener Algorithmus richtig oder falsch ist Erstelle einen Algorithmus zu einer beliebigen gegebenen Aufgabenstellung Phasen der Problemlösung mit Programmen Problemanalyse: Was soll getan werden? Spezifikation Lösungsdesign: Wie kommt man zur Lösung? Algorithmus Implementierung: Realisierung in einer Programmiersprache Programm Testen: hat der Algorithmus / das Programm Fehler? Testprotokoll 2

Beispiel: Suchen in einem großen Datenbestand 1 Problemanalyse Datenbestand besteht aus vielen gleichgestaltigen Einzeldaten Fragestellung lautet: Kommt ein gegebener Wert x im Datenbestand vor oder nicht? Ergebnis ist wahr oder falsch Es gibt keine Sortierung der Daten Lösungsdesign Vergleiche der Reihe nach alle Werte des Datenbestandes mit Wert x (sequentielle/lineare Suche) ist mindestens einer gleich x, ist Ergebnis wahr ist keiner mit x gleich, ist Ergebnis falsch Beispiel: Suchen in einem großen Datenbestand 2 Fragen zur Implementierung: In welcher Reihenfolge sollen die Daten verglichen werden? Gibt es bessere / schlechtere Reihenfolgen? Gibt es überhaupt immer eine Reihenfolge? Gibt es immer ein Ergebnis? Was ist die Precondition? 3

Beispiel: Suchen in einem großen Datenbestand 3 Lineare Suche ( x, gefunden): y erster Wert gefunden falsch solange (noch ein weiterer Wert existiert) falls (y = x) gefunden wahr y nächster Wert mit welchen Eingangswerten (Testdaten) soll man den Algorithmus testen? kein, ein, mehrere Werte im Datenbestand gesuchter Wert x am Anfang, in der Mitte, am Ende gesuchter Wert x nicht enthalten Beispiel: Suchen in einem großen Datenbestand 4 (Verbesserte Version) Lineare Suche ( x, gefunden): y erster Wert falls (y = x) gefunden wahr sonst gefunden falsch solange (noch ein weiterer Wert existiert) y nächster Wert falls (y = x) gefunden wahr Beobachtung: gefunden enthält stets das Ergebnis für den bereits untersuchten Datenbestand Der bereits untersuchte Datenbestand wächst in jedem Schritt um einen Wert an (allgemeine Strategie!) Was ist der Aufwand des Verfahrens? Kann man das Verfahren beschleunigen? 4

Optimierte Lineare Suche Lineare Suche 2 ( x, gefunden): y erster Wert solange (y x) und (noch ein weiterer Wert existiert) y nächster Wert falls (y = x) gefunden wahr sonst gefunden falsch In welchen Fällen ist die optimierte Version besser geworden? In welchen Fällen ist die optimierte Version gleich gut? In welchen Fällen ist die optimierte Version schlechter geworden? Suche in einem sortierten Datenbestand Aufgabenanalyse kann man in einem sortierten Datenbestand schneller suchen als in einem unsortierten? welche Datenbestände lassen sich sortieren? Lösungsdesign Lösungsstrategie Teile und Herrsche in jedem Schritt wird der noch zu untersuchende Datenbestand halbiert 5

Binäre Suche Beispiel: Werte -18, -8, -4, -4, -4, -1, 14, 15, 15, 24, 70, 89, 111 Indizes 1 2 3 4 5 6 7 8 9 10 11 12 13 Binäre Suche ( x, gefunden): links erster Index rechts letzter Index gefunden falsch solange (links < rechts) m (links + rechts) / 2 falls (Wert(m) = x) gefunden wahr falls (Wert(m) < x) links m + 1 falls (Wert(m) > x) rechts m 1 In welchen Fällen ist die binäre Suche nicht besser als die lineare Suche? Was ist die Precondition der binären Suche? 6