Vorkurs Informatik WiSe 16/17

Ähnliche Dokumente
Konzepte der Informatik

Routing Algorithmen. Begriffe, Definitionen

Minimal spannende Bäume

Vorkurs Informatik WiSe 15/16

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.

f h c 7 a 1 b 1 g 2 2 d

Theoretische Informatik 1 WS 2007/2008. Prof. Dr. Rainer Lütticke

Klausur Informatik B April Teil I: Informatik 3

Ausarbeitung zum Modulabschluss. Graphentheorie. spannende Bäume, bewertete Graphen, optimale Bäume, Verbindungsprobleme

Algorithmen und Datenstrukturen 2

Algorithmen und Datenstrukturen

2. Repräsentationen von Graphen in Computern

Definition Ein gerichteter Graph G = (V, E) ist ein Graph von geordneten Paaren (u, v) mit u V und v V.

Kapitel 6: Graphalgorithmen Gliederung

1. Motivation / Grundlagen 2. Sortierverfahren 3. Elementare Datenstrukturen / Anwendungen 4. Bäume / Graphen 5. Hashing 6. Algorithmische Geometrie

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

8 Diskrete Optimierung

Diskrete Mathematik. Sebastian Iwanowski FH Wedel. Kap. 6: Graphentheorie

Vorkurs Informatik WiSe 16/17

Grundlagen Datenstrukturen Transitive Hülle Traversierung Kürzeste Wege Spannender Baum Max. Fluss Zuordnungen. 6. Graphen

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

Minimal spannender Baum

Dynamische Programmierung. Problemlösungsstrategie der Informatik

ADS: Algorithmen und Datenstrukturen 2

1 topologisches Sortieren

Lernmodul 2 Graphen. Lernmodul 2: Geoobjekte und ihre Modellierung - Graphen

Algorithmen und Datenstrukturen 2

Vorlesung Informatik 2 Algorithmen und Datenstrukturen. (20 Graphen) T. Lauer

Kombinatorische Optimierung

ADS: Algorithmen und Datenstrukturen 2

Graphen: Einführung. Vorlesung Mathematische Strukturen. Sommersemester 2011

Grundbegriffe der Informatik

Graphenalgorithmen I

4. Kreis- und Wegeprobleme Abstände in Graphen

Aufgabe 4.2 Sei G = (V, E, l) ein ungerichteter, gewichteter und zusammenhängender Graph.

Algorithmen und Datenstrukturen 2

Lange Nacht der Wissenschaft. Ein Klassiker. Die Mathematik der Kürzesten Wege

6. Übung zur Linearen Optimierung SS08

Grundbegriffe der Informatik

Datenstrukturen & Algorithmen

Graphen. Leonhard Euler ( )

Das Briefträgerproblem

Informatik 11 Kapitel 2 - Rekursive Datenstrukturen

DynaTraffic Modelle und mathematische Prognosen. Simulation der Verteilung des Verkehrs mit Hilfe von Markov-Ketten

Durchschnitt von Matroiden

Proseminar Online Algorithmen, Prof. Dr. Rolf Klein

Graphenalgorithmen und lineare Algebra Hand in Hand Vorlesung für den Bereich Diplom/Master Informatik

Westfählische Wilhelms-Universität. Eulersche Graphen. Autor: Jan-Hendrik Hoffeld

WS 2009/10. Diskrete Strukturen

Schnelle und genaue Routenplanung

Kombinatorische Optimierung

Kürzeste Wege in Graphen. Maurice Duvigneau Otto-von-Guericke Universität Fakultät für Informatik

MafI I: Logik & Diskrete Mathematik (F. Hoffmann)

WS 2009/10. Diskrete Strukturen

TECHNISCHE UNIVERSITÄT MÜNCHEN FAKULTÄT FÜR INFORMATIK

Einführung in die Informatik I (autip)

Kapitel 3: Untere Schranken für algorithmische Probleme Gliederung

M. Anderegg, E. Müller Graphentheorie

INSTITUT FÜR THEORETISCHE INFORMATIK, PROF. SANDERS

A2.3 Lineare Gleichungssysteme

Effiziente Algorithmen I

16. All Pairs Shortest Path (ASPS)

Fortgeschrittene Netzwerk- und Graph-Algorithmen

Formale Grundlagen der Informatik

Graph Paar (V,E) V: nichtleere Menge von Knoten (vertex) E: Menge von Kanten (edges): Relation (Verbindung) zwischen den Knoten

Very simple methods for all pairs network flow analysis

Anmerkungen zur Übergangsprüfung

Proseminar Kodierverfahren bei Dr. Ulrich Tamm Sommersemester 2003 Thema: Codierung von Bäumen (Prüfer Codes...)

Graphen. Formale Methoden der Informatik WiSe 2010/2011 teil 2, folie 1 (von 60)

Prüfungsklausur Operations Research,

Algorithmen und Datenstrukturen

Kapitel 4: Dynamische Datenstrukturen. Algorithmen und Datenstrukturen WS 2012/13. Prof. Dr. Sándor Fekete

Algorithmen und Datenstrukturen Graphen - Einführung

Guten Morgen und Willkommen zur Saalübung!

Vorlesung Diskrete Strukturen Graphen: Wieviele Bäume?

Massive Parallelität : Neuronale Netze

Algorithmische Mathematik

Technische Universität München Zentrum Mathematik Propädeutikum Diskrete Mathematik. Weihnachtsblatt

Binärbäume. Prof. Dr. E. Ehses,

Graphen: Datenstrukturen und Algorithmen

Graphentheorie. Graphen sind Modelle für Netzwerke.

Minimal spannende Bäume

Datenstrukturen & Algorithmen

Schulinterner Lehrplan für das Fach Informatik der Sekundarstufe II an der Bettine von Arnim Gesamtschule

κ(k) k K S Algorithmus zur Bestimmung eines spannenden Baumes mit minimalen Kosten (Kruskal, 1965).

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

Vorkurs Informatik WiSe 15/16

1. Einleitung wichtige Begriffe

Algorithmen und Datenstrukturen (WS 2007/08) 63

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

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

Was bisher geschah. 1. Zerlegung in monotone Polygone 2. Triangulierung der monotonen Teilpolygone

4 Greedy-Algorithmen (gierige Algorithmen)

Entwurf und Umsetzung eines Werkzeugs für die Fluchtwegplanung

Transkript:

Institut für Programmierung Konzepte der Informatik Dr. Werner Struckmann / Stephan Mielke, Jakob Garbe, 12.10.2016 Technische Universität Braunschweig, IPS

Inhaltsverzeichnis Schilda-Rallye Was steckt dahinter? Darstellung von Graphen Zusammenfassung Datenstrukturen 12.10.2016 Dr. Werner Struckmann / Stephan Mielke, Jakob Garbe Seite 2 Institut für Programmierung

Überblick Schilda-Rallye Was steckt dahinter? Darstellung von Graphen Zusammenfassung Datenstrukturen 12.10.2016 Dr. Werner Struckmann / Stephan Mielke, Jakob Garbe Seite 3 Institut für Programmierung

Schilda-Rallye Stadtplan Der Stadtrat hat vor kurzem beschlossen, alle Straßen zu Einbahnstraßen zu machen. 12.10.2016 Dr. Werner Struckmann / Stephan Mielke, Jakob Garbe Seite 4 Institut für Programmierung

Schilda-Rallye Problemstellung Die Fahrzeuge von Schilda-Taxi warten auf den Hotels Adler und Gozo sowie auf dem Parkplatz der Pension Kapitol: Aufgrund der neuen Verkehrsführung benötigen die Fahrer einen Plan, wie sie auf dem kürzesten Weg von ihrem Standort zu allen anderen Hotels kommen. Eine Entfernungstabelle ist auch zur Berechnung der neuen Tarife notwendig. 12.10.2016 Dr. Werner Struckmann / Stephan Mielke, Jakob Garbe Seite 5 Institut für Programmierung

Schilda-Rallye Markierung der Kreuzungen

Schilda-Rallye Abstrakte Stadtplan

Schilda-Rallye Erste Schritt

Schilda-Rallye Fortsetzung (1)

Schilda-Rallye Fortsetzung (2)

Schilda-Rallye Fortsetzung (3)

Schilda-Rallye Fortsetzung (4)

Schilda-Rallye Fortsetzung (5)

Schilda-Rallye Fortsetzung (6)

Schilda-Rallye Fortsetzung (7)

Schilda-Rallye Fortsetzung (8)

Schilda-Rallye Fortsetzung (9)

Schilda-Rallye Fortsetzung (10)

Schilda-Rallye Fortsetzung (11)

Schilda-Rallye Fortsetzung (12)

Schilda-Rallye Fortsetzung (13)

Schilda-Rallye Fortsetzung (14)

Schilda-Rallye Fortsetzung (16)

Schilda-Rallye Fortsetzung (17)

Schilda-Rallye Fortsetzung (18)

Schilda-Rallye Fortsetzung (19)

Schilda-Rallye Fortsetzung (20)

Schilda-Rallye Fortsetzung (21)

Schilda-Rallye Fortsetzung (22)

Schilda-Rallye Ende

Schilda-Rallye Entfernungstabelle Hotel Entfernung (km) Adler 0,0 Bogart 11,5 Club 9,7 Doge 8,1 Emilio 3,7 Fromm 6,5 Gozo 6,2 Holunder 7,6 Iliona 11,4 Jorge 9,8 Kapitol 10,7 Lundt 7,9 12.10.2016 Dr. Werner Struckmann / Stephan Mielke, Jakob Garbe Seite 31 Institut für Programmierung

Überblick Schilda-Rallye Was steckt dahinter? Darstellung von Graphen Zusammenfassung Datenstrukturen 12.10.2016 Dr. Werner Struckmann / Stephan Mielke, Jakob Garbe Seite 32 Institut für Programmierung

Was steckt dahinter? Einleitung Die besprochenen Probleme gehören in das Umfeld der so genannten Graphenalgorithmen. Ein Graph besteht hierbei aus einer Menge von Knoten und einer Menge von Kanten, die zwischen den Knoten verlaufen. Die Knoten (Vertices) werden oft als Kreise und die Kanten (Edges) als Linien oder Pfeile dazwischen dargestellt. Man unterscheidet ungerichtete Graphen (ohne Pfeil), bei denen die Verbindung zweier Konten in beide Richtungen geht und gerichtete Graphen (mit Pfeil). Wozu ist aber ein Graph gut? Wie andere Modelle in der Informatik kann er ein Ausschnitt der Wirklichkeit modellieren, um diese einfacher zu verstehen und zu analysieren. 12.10.2016 Dr. Werner Struckmann / Stephan Mielke, Jakob Garbe Seite 33 Institut für Programmierung

Was steckt dahinter? Anforderungen Aufgrund der vielfältigen Anwendungen gibt es auch eine Menge von Algorithmen auf Graphen. Der Dijkstra-Algorithmus ist hier ein sehr bekannter Vertreter. Was zeichnet einen guten Algorithmus aus? Er muss zuerst einmal die gestellte Aufgabe lösen. Wichtiges Kriterium ist außerdem, dass dieser die Aufgabe möglichst schnell löst und auch bei großen Problemen nicht in die Knie geht. 12.10.2016 Dr. Werner Struckmann / Stephan Mielke, Jakob Garbe Seite 34 Institut für Programmierung

Was steckt dahinter? Zeitbedarfs Wir betrachten wie stark der Zeitbedarf mit der Problemgröße ansteigt. Am Beispiel der Landkarte kann dies sehr gut demonstriert werden. Eine Problemgröße ist zum Beispiel die Anzahl der Städte auf der Landkarte. Betrachten wir jetzt noch einmal den Brute-Force-Ansatz zur Bestimmung des kürzesten Weges: Bestimme alle möglichen Wege vom Start zum Ziel und suche davon den kürzesten. 12.10.2016 Dr. Werner Struckmann / Stephan Mielke, Jakob Garbe Seite 35 Institut für Programmierung

Was steckt dahinter? Brute-Force-Methode Im schlechtesten Fall müssen also alle von einem Punkt ausgehenden Wege bestimmt werden. Außerdem sind im schlechtesten Fall alle Knoten mit allen anderen Knoten verbunden (vollständiger Graph). Für drei Knoten ist es noch kein Problem, die Anzahl möglicher Wege vom Startpunkt S aus zu bestimmen. 12.10.2016 Dr. Werner Struckmann / Stephan Mielke, Jakob Garbe Seite 36 Institut für Programmierung

Was steckt dahinter? Brute-Force-Methode Mit jedem zusätzlichen Knoten steigt die Anzahl der möglichen Wege stark an. Zeichnerisch die Lösung zu bestimmen ist dann nicht mehr praktikabel. Man kann die Anzahl der Knoten auch rechnerisch bestimmen. Für den Graphen mit vier Knoten gilt, dass man ihn aus zwei Komponenten zusammensetzen kann: ein einzelner Knoten S plus ein Graph mit drei Knoten. Da der bekannte Graph drei Knoten besitzt, kann vom neuen Knoten S auf drei Arten ein Weg zum bekannten Graphen begonnen werden. 12.10.2016 Dr. Werner Struckmann / Stephan Mielke, Jakob Garbe Seite 37 Institut für Programmierung

Was steckt dahinter? Brute-Force-Methode Im 3er-Graphen wird dann auf die bereits ermittelte Weise ein Weg gesucht. Daher ist die Anzahl möglicher Wege im 4er-Graphen 3 2 = 6. Für einen 5er-Graphen gibt es vier Möglichkeiten, Wege vom neuen Knoten zum 4er-Graphen zu beginnen. Die Anzahl der Wege beträgt daher 4 6 = 24. Auf diese Weise kann man ableiten, dass in einem vollständigen Graphen mit n Knoten (n 1)! verschiedene Wege von einem gesetzten Startpunkt ausgehen. Da für jeden der Wege n 1 Streckenabschnitte eingerechnet werden müssen, bedarf es für die Brute-Force-Methode ungefähr (n 1)(n 1)! Berechnungen, um den kürzesten Weg zu finden. 12.10.2016 Dr. Werner Struckmann / Stephan Mielke, Jakob Garbe Seite 38 Institut für Programmierung

Was steckt dahinter? Brute-Force-Methode # Knoten Schritte 3 4 4 18 5 96 6 600 7 4.320 8 35.280 9 322.560 10 3.265.920 15 1.220.496.076.800 20 2.311.256.907.767.808.000 50 29805811337679110482740356002743473467490088737581301760000000000 12.10.2016 Dr. Werner Struckmann / Stephan Mielke, Jakob Garbe Seite 39 Institut für Programmierung

Was steckt dahinter? Brute-Force-Methode Für 100 Knoten sind im schlimmsten Fall bereits 92392953289504711154882246467704033485808808581737805 25390703425626542399329761645528520493363949531033911 60941618951520668673358807695360000000000000000000000 Berechnungen nötig. Wenn auch nur alle 12.903 Gemeinden Deutschlands als Knoten in die Suche einbezogen werden, sind 9, 88 10 47438 Berechnungen nötig. 12.10.2016 Dr. Werner Struckmann / Stephan Mielke, Jakob Garbe Seite 40 Institut für Programmierung

Überblick Schilda-Rallye Was steckt dahinter? Darstellung von Graphen Zusammenfassung Datenstrukturen 12.10.2016 Dr. Werner Struckmann / Stephan Mielke, Jakob Garbe Seite 41 Institut für Programmierung

Darstellung von Graphen Überlegung Computer kennt keine graphische Darstellung Insbesondere keine Kanten und Knoten Abstraktion notwendig Überführung der graphischen Darstellung in eine Datenstruktur 12.10.2016 Dr. Werner Struckmann / Stephan Mielke, Jakob Garbe Seite 42 Institut für Programmierung

Darstellung von Graphen Adjazenzmatrix Idee für ungerichtete Graphen: Sei n die Anzahl der Knoten. Benutze eine n n Matrix. Wenn eine Kante zwischen Knoten a und b existiert, dann trage in Zeile a und Spalte b eine 1 ein, andernfalls eine 0. Verfahre ebenso mit Zeile b und Spalte a. 0 1 1 0 1 1 0 0 1 0 1 0 0 1 1 0 1 1 0 1 1 0 1 1 0 12.10.2016 Dr. Werner Struckmann / Stephan Mielke, Jakob Garbe Seite 43 Institut für Programmierung

Darstellung von Graphen Adjazenzmatrix Beispiel für ungerichteten Graphen mit Gewichten: Symmetrie bleibt erhalten. Anstelle von einer 1 trage das Kantengewicht ein. 0 7 8 0 5 7 0 0 1 0 8 0 0 2 6 0 1 2 0 9 5 0 6 9 0 12.10.2016 Dr. Werner Struckmann / Stephan Mielke, Jakob Garbe Seite 44 Institut für Programmierung

Darstellung von Graphen Adjazenzmatrix Beispiel für gerichteten Graphen mit Gewichten: Keine Symmetrie mehr. 0 7 8 0 5 0 0 0 0 0 0 0 0 2 0 0 1 0 0 9 0 0 6 0 0 12.10.2016 Dr. Werner Struckmann / Stephan Mielke, Jakob Garbe Seite 45 Institut für Programmierung

Darstellung von Graphen Adjazenzmatrix Anstatt einer Matrix wird eine verkettete Liste benutzt. Besonders geeignet für gerichtete Graphen Die Basisstruktur bildet die Liste aller Knoten. Für jeden Knoten wird eine Liste der Nachfolger entlang gerichteter Kanten abgespeichert. 12.10.2016 Dr. Werner Struckmann / Stephan Mielke, Jakob Garbe Seite 46 Institut für Programmierung

Darstellung von Graphen Inzidenzmatrix Anstatt Verbindungen von Knoten zu Knoten darzustellen, wird hier die Nachbarschaft der Kanten zu den Knoten dargestellt. Jede Spalte enthält 2 von Null verschiedene Einträge e1 e2 e3 e4 e5 e6 e7 1 1 1 0 0 0 0 1-1 0 0 0-1 0 0 2 0-1 0 1 0 0-1 3 0 0 0-1 1 1 0 4 0 0-1 0 0-1 1 5 12.10.2016 Dr. Werner Struckmann / Stephan Mielke, Jakob Garbe Seite 47 Institut für Programmierung

Überblick Schilda-Rallye Was steckt dahinter? Darstellung von Graphen Zusammenfassung Datenstrukturen 12.10.2016 Dr. Werner Struckmann / Stephan Mielke, Jakob Garbe Seite 48 Institut für Programmierung

Zusammenfassung Datenstrukturen Listen Array s (zusammenhängender Speicher) (doppelt) Verkettete Listen Stapel 12.10.2016 Dr. Werner Struckmann / Stephan Mielke, Jakob Garbe Seite 49 Institut für Programmierung

Zusammenfassung Datenstrukturen Graphen Bäume 12.10.2016 Dr. Werner Struckmann / Stephan Mielke, Jakob Garbe Seite 50 Institut für Programmierung

Zusammenfassung Graphentheorie Brute-Force-Methode vs. Greedy-Algorithmen Darstellung von Graphen Datenstrukturen (Zusammenfassung) Morgen: Codierungen 12.10.2016 Dr. Werner Struckmann / Stephan Mielke, Jakob Garbe Seite 51 Institut für Programmierung

Danke Vielen Dank für Ihre Aufmerksamkeit! 12.10.2016 Dr. Werner Struckmann / Stephan Mielke, Jakob Garbe Seite 52 Institut für Programmierung