Routing Algorithmen. Begriffe, Definitionen

Ähnliche Dokumente
Routing A lgorithmen Algorithmen Begriffe, Definitionen Wegewahl Verkehrslenkung

Lernmodul 7 Algorithmus von Dijkstra

Geoinformatik 2 (GI-2) Kapitel 7 Ausgewählte Geo-Algorithmen - Wege

Grundbegriffe der Informatik

15. Elementare Graphalgorithmen

Algorithmen und Datenstrukturen SS09. Foliensatz 16. Michael Brinkmeier. Technische Universität Ilmenau Institut für Theoretische Informatik

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

Grundbegriffe der Informatik Musterlösung zu Aufgabenblatt 9

Berechnung von Abständen

4. Kreis- und Wegeprobleme Abstände in Graphen

Algorithmen & Komplexität

Vorlesung Datenstrukturen

8.4 Digraphen mit negativen Kantengewichten Grundsätzliches Betrachte Startknoten s und einen Kreis C mit Gesamtlänge < 0.

Programmierung 2 Studiengang MI / WI

Programm heute. Algorithmen und Datenstrukturen (für ET/IT) Übersicht: Graphen. Definition: Ungerichteter Graph. Definition: Ungerichteter Graph

Vorkurs Informatik WiSe 16/17

Vorkurs Informatik WiSe 15/16

Seien u, v V, u v. Da G zusammenhängend ist, muss mindestens ein Pfad zwischen u und v existieren.

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

Algorithmen und Datenstrukturen

Relationen und Graphentheorie

ADS: Algorithmen und Datenstrukturen 2

ADS: Algorithmen und Datenstrukturen 2

Diskrete Strukturen Kapitel 4: Graphentheorie (Grundlagen)

Kürzeste Wege in einem gewichteten Graphen. Anwendungen

Einführung in die Informatik 2

Datenstrukturen und Algorithmen (SS 2013)

Kapitel 4: Netzplantechnik Gliederung der Vorlesung

Vorlesung Datenstrukturen

2. Repräsentationen von Graphen in Computern

Kapitel 5: Graphen und Graphalgorithmen

Kürzeste Wege in Graphen. Orte mit Straßenverbindungen. Coma I Rolf Möhring

Wie wird ein Graph dargestellt?

Problemlösen in grafischen Strukturen

Graphen Jiri Spale, Algorithmen und Datenstrukturen - Graphen 1

Algorithmen und Datenstrukturen 2

Kodieren Von Graphen

Algorithmen und Datenstrukturen 13

Konzepte der Informatik

Programmiertechnik II

Programmiertechnik II

Am Dienstag, den 15. Dezember, ist Eulenfest. 1/60

Graphen. Definitionen

Aufgaben zur Klausurvorbereitung

Algorithmen und Datenstrukturen

Übersicht. Datenstrukturen und Algorithmen. Das Rechenproblem: kürzeste Pfade. Übersicht. Vorlesung 17: Kürzeste Pfade (K24) Bellman-Ford Dijkstra

10 Kürzeste Pfade SSSP-Problem

Algorithmen und Datenstrukturen 2-1. Seminar -

Graphenalgorithmen I

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

7. Lineare Gleichungssysteme

Software Entwicklung 1. Graphen. Motivation. Definitionen: Graph. Annette Bieniusa / Arnd Poetzsch-Heffter

11. GRAPHEN 3 FLÜSSE UND SPANNBÄUME

ADS: Algorithmen und Datenstrukturen 2

Graphentheorie. Yichuan Shen. 10. Oktober 2013

ADS: Algorithmen und Datenstrukturen 2

Graphentheorie Graphentheorie. Grundlagen Bäume Eigenschaften von Graphen Graphen-Algorithmen Matchings und Netzwerke

Datenstrukturen. einfach verkettete Liste

Algorithmen und Datenstrukturen 2

Software Entwicklung 1

5. Bäume und Minimalgerüste

5 Graphen. Repräsentationen endlicher Graphen. 5.1 Gerichtete Graphen. 5.2 Ungerichtete Graphen. Ordnung von Graphen

Programmierkurs Python II

Tutorium 23 Grundbegriffe der Informatik (7. Sitzung)

10. Übungsblatt zu Algorithmen I im SS 2010

Algorithmische Methoden zur Netzwerkanalyse

Digraphen, DAGs und Wurzelbäume

Graphdurchmusterung, Breiten- und Tiefensuche

Teil 2: Graphenalgorithmen

Teil 2: Graphenalgorithmen

Graphen und Bäume. A.1 Graphen

Vorlesung Datenstrukturen

Grundbegriffe der Informatik

Vorlesung Datenstrukturen

Wir nennen einen Pfad in einem gerichteten Graphen Zyklus, wenn der Pfad im gleichen Knoten beginnt und endet, d. h.

Organisatorisches. Programmierpraktikum Das Canadian Traveller Problem. Organisatorisches. Organisatorisches

(a, b)-bäume / 1. Datenmenge ist so groß, dass sie auf der Festplatte abgespeichert werden muss.

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

16. November 2011 Zentralitätsmaße. H. Meyerhenke: Algorithmische Methoden zur Netzwerkanalyse 87

Graphenalgorithmen I

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

1 Datenstrukturen Datenstrukturen und Algorithmen

Kap. 6.6: Kürzeste Wege

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

Vorlesung Datenstrukturen

Mustererkennung: Graphentheorie

Informatik II, SS 2014

ADS 2: Algorithmen und Datenstrukturen

Algorithmen & Datenstrukturen 2 Praktikum 3

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

= n (n 1) 2 dies beruht auf der Auswahl einer zweielementigen Teilmenge aus V = n. Als Folge ergibt sich, dass ein einfacher Graph maximal ( n E = 2

Diskrete Strukturen WS 2005/06. Ernst W. Mayr. 27. Januar Fakultät für Informatik TU München

12. Graphen Programmieren / Algorithmen und Datenstrukturen 2 Prof. Dr. Bernhard Humm FB Informatik, Hochschule Darmstadt Wintersemester 2012 / 2013

Einheit 11 - Graphen

12. Graphen. Notation, Repräsentation, Traversieren (DFS, BFS), Topologisches Sortieren, Ottman/Widmayer, Kap ,Cormen et al, Kap.

Abgabe: (vor der Vorlesung)

Algorithmen und Datenstrukturen (für ET/IT)

9 Minimum Spanning Trees

Transkript:

Begriffe, Definitionen Routing (aus der Informatik) Wegewahl oder Verkehrslenkung bezeichnet in der Telekommunikation das Festlegen von Wegen für Nachrichtenströme bei der Nachrichtenübermittlung über vermaschte Nachrichtennetze. Insbesondere in paketvermittelten Datennetzen ist hierbei strenggenommen zwischen den beiden verschiedenen Prozessen Routing und Forwarding zu unterscheiden. Das Routing bestimmt den gesamten Weg eines Nachrichtenstroms durch das Netzwerk; das Forwarding beschreibt hingegen den Entscheidungsprozess eines einzelnen Netzknotens, über welchen seiner Nachbarn er eine vorliegende Nachricht weiterleiten soll. Häufig werden jedoch Routing und Forwarding unter dem Begriff Routing miteinander vermengt; in diesem Fall bezeichnet Routing ganz allgemein die Übermittlung von Nachrichten über vermaschte Nachrichtennetze.

Begriffe, Definitionen Graph Ein Graph ist in der Graphentheorie ein Gebilde aus Knoten (auch Ecken oder Punkte), die durch Kanten verbunden sein können. Ein Graph G ist ein geordnetes Paar zweier Mengen: G = (V,E) Dabei bezeichnet V die Menge der im Graph enthaltenen Knoten und E die Menge der Kanten des Graphen. Die Bezeichnungen der Mengen entstammen dem Englischen: V für vertex (engl. für Knoten ) und E für edge (engl. für Kante ). E V Gerichteter Graph Ein Graph G = (V,E) heißt gerichtet, wenn zu jedem e є E das durch eine definierte Abbildung Ψ zugeordnete Paar (v,v') - geordnet ist (v,v' є V). Anschaulich bedeutet ein gerichteter Graph, dass sich die Kante von einem Knoten zu einem Knoten durch einen Pfeil darstellen lässt. (Quelle: www.wikipedia.de) Prinzip von im GI Bereich uche nach einer optimalen Verbindung von einem tart- zu einem Zielpunkt unter einer bestimmten Kostenfunktion /-modell Kürzester Weg chnellste Verbindung Behindertengerechte Route Andere Ziel- / Kostenfunktionen in einem Graphen bestehend aus Knoten und Kanten, wobei die Kanten mit einem Gewicht (z.b. trecke, Zeit ) versehen sind

Routing Verfahren (Auswahl) Benannt nach seinem Erfinder Edsger W. Dijkstra tandardalgorithmus für Routing A* Algorithmus Informative uche, der Algorithmus greift auf eine Heuristik zurück Zielgerichtete uche, mit Punkten, die am wahrscheinlichsten zum Ziel führen Findet einen kürzesten Weg, nicht den kürzesten Weg Floyd Algorithmus Berechnung der kürzesten Wege zwischen allen Paaren von Punkten Geg.: Gerichteter Graph G, dessen Kanten alle mit Kosten (z.b. Entfernung, Fahrtzeit) versehen sind Kürzester Weg von A nach B in einem Graphen

Kürzester Weg von A nach B in einem Graphen Geg.: Gerichteter Graph G, dessen Kanten mit Kosten attributiert sind (z.b. trecke oder Zeit) Aufgabe: Berechnung des kürzesten Weges von einem tartknoten s zu einem Zielknoten z Einfachste Idee: alle Wege berechnen und den Kürzesten auswählen Feststellung: wenn der kürzeste Weg von s nach z über y geht, sind die Teilstücke auch immer der kürzeste Weg zwischen den beiden Punkten Dijkstra: Berechnung der kürzesten Wege von einem beliebigen tartpunkt zu allen anderen Punkten des Graphen

Beispiel: Kürzester Weg von Do nach Du tartpunkt: Do 0 Do Ha W 0 0 Du Du Beispiel: Kürzester Weg von Do nach Du tartpunkt: Do 0 Do Ha W X 0 0 Du Du Neue kürzeste Verbindung nach Du über W und Ha längerer Weg

ein Beispiel Grüne Knoten: in Arbeit /bearbeitet Rote Knoten: Rand des jeweiligen TG Grüne Kanten: Kürzeste Wege ein Beispiel Grüne Knoten: in Arbeit /bearbeitet Rote Knoten: Rand des jeweiligen TG Grüne Kanten: Kürzeste Wege

ein Beispiel Grüne Knoten: in Arbeit /bearbeitet Rote Knoten: Rand des jeweiligen TG Grüne Kanten: Kürzeste Wege ein Beispiel Grüne Knoten: in Arbeit /bearbeitet Rote Knoten: Rand des jeweiligen TG Grüne Kanten: Kürzeste Wege

ein Beispiel Grüne Knoten: in Arbeit /bearbeitet Rote Knoten: Rand des jeweiligen TG Grüne Kanten: Kürzeste Wege ein Beispiel Grüne Knoten: in Arbeit /bearbeitet Rote Knoten: Rand des jeweiligen TG Grüne Kanten: Kürzeste Wege

ein Beispiel Grüne Knoten: in Arbeit /bearbeitet Rote Knoten: Rand des jeweiligen TG Grüne Kanten: Kürzeste Wege ein Beispiel Grüne Knoten: in Arbeit /bearbeitet Rote Knoten: Rand des jeweiligen TG Grüne Kanten: Kürzeste Wege

Beschreibung des Algorithmus Bildung eines Teilgraphen TG in G, ausgehend von s TG beschreibt den erkundeten Teil von G, bestehend aus: Allen Knoten die mit s verbunden sind, dabei bedeuten: Grüne Knoten: In Arbeit / bearbeitet Rote Knoten: Rand vom TG Markierung der Kanten innerhalb des TG Grüne Kanten: Bilden kürzeste Wege Rote Kanten: längere (eliminierte) Wege In jedem Knoten wird der Abstand zu s verwaltet TG wächst, indem in jedem chritt der Randknoten mit minimalen Abstand von s ins Innere von TG übernommen wird Nachfolger übernommener Knoten werden Randknoten Kürzeste Pfade zu grünen Knoten, die erneut erreicht werden, sind ggf. zu korrigieren Knoten: Blau -> Rot (Beispiel) 0

Offene Fragen Algorithmus ist korrekt (Beweis-> Literatur) Wie finden wir schnell Alle Nachfolger eines Knoten? Aktive Knoten? Wir benötigen : Datenstrukturen für den Graphen Datenstruktur für die aktiven Knoten und verbindungen Datenstrukturen Datenstruktur für den Graphen (mit Kosten) Variante : Adjazenzmatrix Variante : Adjazenzliste Datenstruktur für die Menge der aktiven Knoten: Heap auf Heap wird in dieser Vorlesung als Datenstruktur nicht weiter eingegangen

Adjazenzmatrix Definition: Knoten, die durch eine Kante verbunden sind, heißen benachbart oder adjazent Definition: Die n x n Matrix A = {a ij } heißt Adjazenzmatrix mit a ij = true, falls v i und v j adjazent, sonst false. Adjazenzmatrix mit Kosten Bei gewichteten Graphen lassen sich die Kosten k direkt in die Adjazenzmatrix eintragen: a ij = k, falls v i und v j adjazent, sonst. Beachte: alle Diagonalelemente sind Null. Vorteil: Möglichkeit, in der Laufzeit O() festzustellen, ob eine Kante von v i nach v j existiert. Nachteil: hoher Platzbedarf O(n²)

Beispiel zur Adjazenzmatrix Do Du Ha W D K Do 0 0 0 Du 0 0 Ha 0 W 0 0 0 0 D 0 K 0 Adjazenzliste Für jeden Knoten wird eine Liste seiner (Nachfolger-) Nachbarknoten abgespeichert. Der Zugriff auf die Listen erfolgt über ein Array der Länge n (n = Anzahl der Knoten) Vorteil: geringer Platzbedarf: O(n+e) (e Anzahl der Kanten) alle m Nachfolger eines Knotens sind in der Zeit O(m) erreichbar Nachteil: Um zu prüfen, ob v i und v j benachbart sind, muss die Adjazenzliste von v i durchlaufen und nach v j gesucht werden Aber: Für Dijkstra ist eine Adjazenzliste ideal

Beispiel zur Adjazenzliste Do Du Ha W D K Do 0 0 0 Du 0 0 Ha 0 W 0 0 0 0 D 0 K 0 Do Du Ha W D K Du 0 Ha 0 Erweiterung Dijkstra zur Behandlung von realen traßennetzen Reale Netze stellen besondere Anforderungen Größe des Netzwerkes (Effizienz) Dijkstra mit Geometrie traßenverkehrsordnung (Abbiege- und Wendeverbote) Abbildung realer traßennetze auf Graphen Ansätze: Modifikation des Graphen Modifikation von Dijkstra

Dijkstra Erweiterung Dijkstra nutzt die Geometrie der Knoten/Kannten nicht aus Richtungslos: Dijkstra berücksichtigt nicht die Richtung von tartknoten zum Zielknoten Erweiterung: Dijkstra mit Geometrie Idee: kürzeste Verbindung von K nach HH gesucht Dijkstra nutzt zunächst nicht die Geo- Metrie-Information, sondern berechnet auch die Verbindung nach BN

Resümee: Dijkstra mit Geometrie Erweiterung von Dijkstra durch Einbeziehung der Richtung zum Ziel (Heuristik) Zielgerichtete uche Findet optimale Lösung, wenn Kantenkosten = Weglänge Umsetzung dieses Ansatzes = A* Algorithmus Anwendung in realen Netzen Abbiegeverbot Änderung des Algorithmus Änderung des Graphen Transformation des Graphen mit Abbiegeverbot in einen Graphen ohne Abbiegeverbot Anschließend Anwendung von tandard Dijkstra Einbahnstraßen Gleiches Prinzip wie oben tandardalgorithmus für Routing