Algorithmen und Datenstrukturen Einführung

Ähnliche Dokumente
Algorithmen und Berechnungskomplexität I

Informatikgrundlagen (WS 2015/2016)

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

Institut für Telematik Universität zu Lübeck. Programmieren. Kapitel 0: Organisatorisches. Wintersemester 2008/2009. Prof. Dr.

Algorithmen und Datenstrukturen

Algorithmen und Datenstrukturen Balancierte Suchbäume

Algorithmen & Datenstrukturen 1. Klausur

Datenstrukturen & Algorithmen

Einführung in die Informatik

Virtueller Seminarordner Anleitung für die Dozentinnen und Dozenten

Einführung in die Informatik

Vorkurs Informatik WiSe 15/16

Algorithmen und Datenstrukturen Suchbaum

Herzlich willkommen zur Lehrveranstaltung. Softwaretechnische Grundlagen / Programmierpraktikum

Einführung in die Informatik II

Wintersemester 2010/2011 Rüdiger Westermann Institut für Informatik Technische Universität München

Datenstrukturen und Algorithmen

Anlegen eines DLRG Accounts

Campus Management (CM)

Bedienungsanleitung für den Online-Shop

Algorithmik - Kompaktkurs

Datenstrukturen und Algorithmen

1 topologisches Sortieren

Grundbegriffe der Informatik

Wir empfehlen Ihnen eine zeitnahe Bewerbung, da in jedem Halbjahr nur eine limitierte Anzahl an Bündnissen bewilligt werden können.

Algorithmen und Datenstrukturen. Große Übung vom Nils Schweer

Babeș-Bolyai Universität Cluj Napoca Fakultät für Mathematik und Informatik Grundlagen der Programmierung MLG5005. Paradigmen im Algorithmenentwurf

Algorithmen und Datenstrukturen Bereichsbäume

Konzepte der Informatik

Mathematische Grundlagen

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

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

Lernziele: Ausgleichstechniken für binäre Bäume verstehen und einsetzen können.

Stud.IP. Inhalt. Rechenzentrum. Vorgehen zur Eintragung in Veranstaltungen / Gruppen. Stand: Januar 2015

Projektgruppe Algorithmen für die Cloud-unterstützte 3-D-Darstellung auf mobilen Endgeräten

Kurzanleitung für Verkäufer

Novell Client. Anleitung. zur Verfügung gestellt durch: ZID Dezentrale Systeme. Februar ZID Dezentrale Systeme

Gesucht und Gefunden: Die Funktionsweise einer Suchmaschine

Arbeitsschritte EAÜ Leistungserbringer Einnahmen erfassen

1 Was ist das Mediencenter?

Herzlich willkommen zur Lehrveranstaltung. Softwaretechnische Grundlagen / Programmierpraktikum

UserManual. Handbuch zur Konfiguration einer FRITZ!Box. Autor: Version: Hansruedi Steiner 2.0, November 2014

Kurzanweisung für Google Analytics

Proseminar: Website-Managment-System. NetObjects Fusion. von Christoph Feller

Registrierung am Elterninformationssysytem: ClaXss Infoline

Abschlussklausur am 12. Juli 2004

1. Man schreibe die folgenden Aussagen jeweils in einen normalen Satz um. Zum Beispiel kann man die Aussage:

How to do? Projekte - Zeiterfassung

1 Mathematische Grundlagen

Anleitung zum erstellen einer PDF-Datei aus Microsoft Word

Was ich als Bürgermeister für Lübbecke tun möchte

Ihre Interessentendatensätze bei inobroker. 1. Interessentendatensätze

Leichte-Sprache-Bilder

Data Mining: Einige Grundlagen aus der Stochastik

Einrichten eines Postfachs mit Outlook Express / Outlook bis Version 2000

Beispiel zu Datenstrukturen

Bedienungsanleitung Nokia MixRadio

Softwaretechnologie -Wintersemester 2013/ Dr. Günter Kniesel

1. Mentorium Einführung, Organisation und Aufgaben zur Architektur von Informationssystemen

Fragebogen zur Evaluation der Vorlesung und Übungen Computer Grafik, CS231, SS05

Kulturobjekte der Donau Das ContentManagementSystem (CMS)

Das Seminar ist eine Prüfungsleistung für Bachelor und Masterstudierende der Informatik!

Algorithmen mit Python

Prof. Dr. Uwe Schmidt. 21. August Aufgaben zur Klausur Objektorientierte Programmierung im SS 2007 (IA 252)

RT Request Tracker. Benutzerhandbuch V2.0. Inhalte

Anleitung Hosted Exchange

Systeme 1. Kapitel 6. Nebenläufigkeit und wechselseitiger Ausschluss

ZIMT-Dokumentation für Studierende Webmail-Oberfläche (Roundcube)

Alignment-Verfahren zum Vergleich biologischer Sequenzen

Anleitung zur Registrierung und Nutzung des Veranstalter- Zugangs für den Veranstaltungskalender der Expertenliste

Algorithmen und Datenstrukturen Laufzeitabschätzung

Anmeldung im LAUER-FISCHER Internet-Portal

PAUL App. Anleitung für Studierende und Lehrende

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

Einführung in. Logische Schaltungen

Einführung und Motivation

FAQs zum Bachelorstudiengang Software Engineering PO-Version Allgemeine Informationen zum Bachelorstudiengang Software Engineering

Registration ISYS. User's Guide. Elektronisches Anmeldesystem des Fachbereichs Rechtswissenschaft. Version 1.1. User's Guide Version 1.

Das Modul Hilfsmittel ermöglicht den Anwender die Verwaltung der internen Nachrichten, Notizen, Kontakte, Aufgaben und Termine.

Inserate Administra-on. Anleitung

Kapiteltests zum Leitprogramm Binäre Suchbäume

Einrichten des Elektronischen Postfachs

Die Informatik-Studiengänge

! " # $ " % & Nicki Wruck worldwidewruck

Anwendungsbeispiele Buchhaltung

Für die Einrichtung des elektronischen Postfachs melden Sie sich wie gewohnt in unserem Online-Banking auf an.

Anleitung: Terminverwaltung (Eigene Veranstaltungen auf der BM-Website bewerben)

Universität Stuttgart Institut für Automatisierungstechnik und Softwaresysteme Prof. Dr.-Ing. M. Weyrich. Softwaretechnik I

FAQs zum Bachelorstudiengang Informatik PO-Version Allgemeine Informationen zum Bachelorstudiengang Informatik

Änderung des Portals zur MesseCard-Abrechnung

Die Komplexitätsklassen P und NP

Schnellanleitung: Verbuchung von Studien- und Prüfungsleistungen

Kursdemo zum Kurs Übungen zum Zivilrecht. Prof. Dr. Inge Scherer

Fotostammtisch-Schaumburg

Anwendungspraktikum aus JAVA Programmierung im SS 2006 Leitung: Albert Weichselbraun. Java Projekt. Schiffe Versenken mit GUI

In diesem Tutorial lernen Sie, wie Sie einen Termin erfassen und verschiedene Einstellungen zu einem Termin vornehmen können.

0. Wo finde ich detaillierte Informationen zum Fach Chemie für Human- und Zahnmediziner?

Kommunikations-Management

Theoretische Informatik SS 04 Übung 1

Transkript:

Algorithmen und Datenstrukturen Einführung Matthias Teschner Graphische Datenverarbeitung Institut für Informatik Universität Freiburg SS 12

Motivation Einführung in die Begriffe Algorithmus Datenstruktur Entwurfskonzept Bedeutung von Algorithmen und Datenstrukturen Beispiele Anwendungen

Zur Person Informatik-Studium in Berlin Promotion in Erlangen Forschung und Lehre in Stanford und an der ETH Zürich seit 2005 in Freiburg Professur für Graphische Datenverarbeitung am Institut für Informatik Kontakt http://cg.informatik.uni-freiburg.de/ teschner@informatik.uni-freiburg.de 052 / 01-005

Graphische Datenverarbeitung innerhalb der Informatik Algorithmen und Datenstrukturen Rechnerarchitektur und Betriebssysteme Programmiersprachen und Softwaretechnik Künstliche Intelligenz Kommunikations- und Informationssysteme Graphik und Bildverarbeitung Mustererkennung und Bildverarbeitung Graphische Datenverarbeitung

Graphische Datenverarbeitung Forschung physikalisch-basierte Animation Operationsplanung Trainingssysteme Seile deformierbare Objekte Stoff Kontaktbehandlung Effekte Flüssigkeiten Effekte

Überblick Algorithmus Datenstruktur Entwurfskonzept Organisatorisches

Algorithmus wohldefinierte Rechenvorschrift, die eine Menge von Elementen als Eingabe verwendet und eine Menge von Elementen als Ausgabe erzeugt beschreibt eine Rechenvorschrift zum Erhalt einer durch die Formulierung eines Problems gegebenen Eingabe- Ausgabe-Beziehung Algorithmusf : Eingabe Ausgabe Kochrezepte, Bedienungsanleitungen sind Algorithmen. Programme sind Algorithmen, die durch Computer ausgeführt werden können.

Beispiel Sortierproblem Eingabe: Folge von Zahlen Ausgabe: Sortierte Folge der Eingabe mit a 1 a 2... a n <a 1,a 2,...,a n > <a 1,a 2,...,a n> Sortieralgorithmen lösen das durch die Eingabe-Ausgabe- Relation beschriebene Sortierproblem.

Instanz eines Problems Eine Eingabe stellt eine Instanz eines Problems (Eingabeinstanz) dar, wenn die an die Eingabe gebundenen Bedingungen erfüllt sind und alle zur Ausführung des Algorithmus notwendigen Daten vorliegen Beispiele (4,2,3) ist eine Instanz des Sortierproblems (4, 2, Algorithmus) ist keine Instanz des Sortierproblems, solange keine entsprechende Ordnungsrelation definiert ist (2,3,4)?

Formale Eigenschaften von Algorithmen Korrektheit Ein korrekter Algorithmus stoppt (terminiert) für jede Eingabeinstanz mit der durch die Eingabe-Ausgabe-Relation definierten Ausgabe. Ein inkorrekter Algorithmus stoppt nicht oder stoppt mit einer nicht durch die Eingabe-Ausgabe-Relation vorgegebenen Ausgabe. Effizienz Bedarf an Speicherplatz und Rechenzeit Wachstum (Wachstumsgrad, Wachstumsrate) der Rechenzeit bei steigender Anzahl der Eingabe-Elemente (Laufzeitkomplexität)

Motivation Bedeutung der Korrektheit intuitiv klar Bedeutung der Effizienz eines Algorithmus durch Begrenztheit von Ressourcen gegeben Sortieralgorithmus A benötigt Schritte für n Elemente Sortieralgorithmus B benötigt nlog 2 n Schritte für n Elemente Computer 1: 10 9 Schritte / s, Computer 2: 10 7 Schritte / s Eingabegröße: 10 6 Elemente Laufzeit: Computer 1 Computer 2 17 min 2 d 8 h 0.02 s Wachstumsrate oder Laufzeitkomplexität dominiert die benötigte Berechnungszeit für große Eingaben n 2 Algorithmus A Algorithmus B 2 s

Weitere Eigenschaften von Algorithmen Ausführbarkeit: Jeder Schritt muss ausführbar sein. Finitheit: Algorithmus muss mit endlichem Text eindeutig beschreibbar sein. Dynamische Finitheit: Algorithmus benötigt zu jedem Zeitpunkt endlich viel Speicher. Determiniertheit (determiniertes Ergebnis): Die Ausgabe ist für jede Eingabe eindeutig definiert. Determinismus (deterministischer Ablauf): Der nächste Schritt des Algorithmus ist zu jedem Zeitpunkt eindeutig definiert. Terminierung: Der Algorithmus terminiert, wenn er nach endlich vielen Schritten stoppt.

Beispiele für Problemstellungen Sortieren Optimieren effizienter Transport Verwaltung knapper Ressourcen geometrische Fragestellungen konvexe Hülle einer Punktmenge n nächste Nachbarn eines Punktes innerhalb einer Menge mathematische Fragestellungen Matrixoperationen für spezielle Matrizen

Zusammenfassung Algorithmus präzise, endliche Beschreibung eines Verfahrens realisiert eine gegebene Eingabe-Ausgabe-Beziehung Korrektheit und Effizient sind wichtige formale Eigenschaften zur Analyse von Algorithmen. Die Motivation für die Beschäftigung mit Algorithmen ergibt sich insbesondere aus der Bedeutung der Laufzeitkomplexität. Die Laufzeit eines Algorithmus ist dominiert durch den Wachstumsgrad der Laufzeit bei steigender Eingabegröße.

Überblick Algorithmus Datenstruktur Entwurfskonzept Organisatorisches

Datenstruktur Algorithmen manipulieren dynamische Mengen von Elementen (Eingabe Ausgabe) Suchen, Einfügen, Löschen Minimum, Maximum, nächstkleinstes oder nächstgrößtes Element Datenstrukturen werden zur Realisierung (Repräsentation) dynamischer Mengen verwendet. Datenstrukturen sind unterschiedlich effizient in Bezug auf Manipulationen (Operationen). Sinnvolle Wahl einer Datenstruktur hängt von der Effizienz der darin implementierten Operationen ab, die für einen gegebenen Algorithmus relevant sind.

Motivation alternative Repräsentation einer Menge von Zahlen 3 18 7 24 1 7 > 3 18 > 1 24 Liste Binärbaum

Motivation Einfügen eines weiteren Elements "5" 3 18 7 24 1 7 > 3 18 > > 1 5 24 5 Liste aufwändiger für den Binärbaum Binärbaum

Motivation Suchen des Elements "5" 3 18 7 24 1 7 > 3 18 > > 1 5 24 5 Liste effizienter für den Binärbaum Binärbaum

Beispiele für Datenstrukturen Feld Liste Zugriff auf ein Element über einen Index Element besitzt Verweis auf das folgende Element Stapel Elemente können nur in umgekehrter Reihenfolge des Einfügens gelesen oder gelöscht werden Warteschlange Elemente können nur in gleicher Reihenfolge des Einfügens gelesen oder gelöscht werden Graphen, Bäume Elemente besitzen variable Anzahl von Verweisen auf weitere Elemente

Anwendungen in der Graphischen Datenverarbeitung Ray tracing Gilles Tran www.oyonale.com

Ray tracing betrachte einen Sehstrahl pro Bildpunkt werte ein Beleuchtungsmodell am nächsten Schnittpunkt zwischen Sehstrahl und Szene aus weise die resultierende Farbe dem Bildpunkt zu www.wikipedia.de

Ray tracing Problem Minimiere die Zahl der Schnitt-Tests, wenn die Szene durch eine große Zahl von Dreiecken beschrieben ist.

Ray tracing Lösungsansatz Idee räumliche Datenstrukturen (z. B. Begrenzungsvolumina) effizientes Ausschließen potentieller Schnitte Ein Sehstrahl, der das Begrenzungsvolumen nicht schneidet, kann keinen Schnittpunkt mit einem eingeschlossenen Dreieck haben.

Anwendungen in der Graphischen Datenverarbeitung Fluid- Animation Nadir Akinci Markus Ihmsen Gizem Akinci Barbara Solenthaler Matthias Teschner Universität Freiburg / ETHZ

Partikelbasierte Fluid-Animation Problem Finde alle Partikel in der Umgebung eines Partikels zur Berechnung von Kräften

Partikelbasierte Fluid-Animation Lösungsansatz räumliche Datenstruktur (z. B. Raumunterteilung) Partikel werden Raumzellen zugeordnet. Nachbarpartikel können nur in der gleichen oder in angrenzenden Raumzellen liegen.

Zusammenfassung Datenstruktur Algorithmen manipulieren dynamische Mengen von Elementen (Eingabe Ausgabe) Suchen, Einfügen, Löschen Suchen von Punkten in einer Umgebung Datenstrukturen werden zur Realisierung dynamischer Mengen verwendet. Datenstrukturen sind unterschiedlich effizient in Bezug auf Manipulationen (Operationen). Sinnvolle Wahl einer Datenstruktur hängt von der Effizienz der darin implementierten Operationen ab, die von der Anwendung / dem Algorithmus vorgegeben ist.

Überblick Algorithmus Datenstruktur Entwurfskonzept Organisatorisches

Entwurfstechniken umfassen grundlegende Ideen zum Entwurf eines Algorithmus sind generische algorithmische Muster für bestimmte Problemklassen Beispiele Greedy Backtracking Divide-and-Conquer

Greedy wähle jeweils den Folgezustand, der den augenblicklich größten Zugewinn verspricht der augenblicklich optimal ist Beispiel: Wechselgeld mit möglichst wenig Münzen Lösungsansatz: Wähle die jeweils größtmögliche Münze, um schnell (gierig, greedy) ans Ziel zu kommen Münzen: 50, 20, 10, 5, 2, 1 Wechselgeld: 68 = 50 + 10 + 5 + 2 + 1 (optimal) Oft nicht optimal (lediglich lokales statt globales Optimum): Münzen: 11, 5, 1 Wechselgeld: 15 = 11 + 1 + 1 + 1 + 1 (optimal: 15 = 5+5+5)

Backtracking systematische, vollständige Suche in einem vorgegebenen Suchraum Beispiel: Platziere n Damen, die sich nicht gegenseitig bedrohen www.wikipedia.de

Backtracking systematische, vollständige Suche in einem vorgegebenen Suchraum Beispiel: Platziere n Damen, die sich nicht gegenseitig bedrohen www.wikipedia.de

Zusammenfassung Lernziele der Vorlesung Algorithmen Sortieren, Suchen, Optimieren Datenstrukturen Repräsentation von Daten Listen, Stapel, Schlangen, Bäume Techniken zum Entwurf von Algorithmen Algorithmenmuster Greedy, Backtracking, Divide-and-Conquer Analyse von Algorithmen Korrektheit, Effizienz

Literatur Ottmann, Widmayer, "Algorithmen und Datenstrukturen", Spektrum Akademischer Verlag, Heidelberg, ISBN 3-8274-1029-0, 2002. Saake, Sattler, "Algorithmen und Datenstrukturen: eine Einführung mit Java", dpunkt-verlag, Heidelberg, ISBN 3-89864-122-8, 2002. Cormen, Leiserson, Rivest, Stein, "Algorithmen Eine Einführung", Oldenbourg Wissenschaftsverlag, München, ISBN 978-3-486-58262-8, 2007. Cormen, Leiserson, Rivest, Stein, "Introduction to Algorithms", MIT Press, Boston, ISBN 0-262-53196-8, 2003. Knuth, Sedgewick, Baase / van Gelder, Kleinberg / Tardos, Goodrich / Tamassia, Nievergelt / Hinrichs, Güting / Dieker, Heun, Drozdeck, Standisch, Kruse, Wood u.v.a.

Überblick Algorithmus Datenstruktur Entwurfskonzept Organisatorisches

Übungen Eintragung in die Übungsgruppen via Online-Portal Tutorate: wöchentlich Mo, Mi, Do, Fr ab 7. Mai Praktika: Pools im Geb. 082, Räume 021 und 028 Übungsblätter Ausgabe / Abgabe jeweils montags eine Woche Bearbeitungszeit Wechsel von Theorie und Praxis Abgabe bis jeweils montags, 12 Uhr in den entsprechend gekennzeichneten Briefkästen im Erdgeschoss Geb. 051 Ausgabe 1. Übungsblatt: Montag, 30.4.

Übungen Mo 16-18 101 / 01-018 Mi 16-18 051 / 00-006 Do 14-16 051 / 00-006 Do 16-18 078 / 00-014 Fr 14-16 051 / 03-026

Web-Seite http://cg.informatik.uni-freiburg.de/ Teaching / Lehre

Web-Seite http://cg.informatik.uni-freiburg.de/teaching.htm Übersicht der Lehrveranstaltungen Informationen zu Lehrveranstaltungen - Aufzeichnung 2008 - Vorlesungsfolien - Übungsblätter - Ankündigungen

Kontakt Tutoren Christian Schöneweiß info2.christian@tutor.tf Johannes Löffler info2.johannes@tutor.tf Tobias Seufert tobias.seufert@web.de Daniel Leinfelder info2.daniel@tutor.tf Christoph Schötz schoetzc@informatik.uni-freiburg.de Koordination Thorsten Schmidt tschmidt@informatik.uni-freiburg.de

Fragen Web Informatik Graphische Datenverarbeitung Prüfungsordnung Kommilitonen Tutoren Thorsten Schmidt Matthias Teschner

Vermischtes "Wissen Sie schon genau wann die Klausur sein wird?" "Ist es notwendig sich für ohre Vorlesung anzumelden oder sich irgendwo für Übungen einzutragen oder erfährt man das alles in der erten Vorlesungsstunde?" " komme jetzt ins zweite Semester. In diesem ist es geplant Informatik II zu belegen, kann ich mich auch jetzt noch bei Ihnen anmelden?" "Bitte vergessen Sie meine E-Mails." "Hallo, ich habe gehört - Klaus" (Absender: basildon1981@gmx.de)

Nächste Vorlesung Beschreibung von Algorithmen Pseudocode Java