Mathe & Informatik II

Größe: px
Ab Seite anzeigen:

Download "Mathe & Informatik II"

Transkript

1 Mathe & Informatik II Sommersemester 2015 Christoph Minnameier (Work in Progress)

2 Vorlesungsinhalte Graphentheorie Algorithmen & Datenstrukturen Komplexität & Laufzeit

3 Mathe & Informatik I (Jakob) Potenzen, Wurzeln, Logarithmen Zinsrechnung (Folgen+Reihen) Wdh. Ableitungen Wdh. Grenzwerte Matrizen & Vektoren (Operatoren anwenden) Trigonometrie Binärdarstellung Logik

4 Informatik vs Mathematik Anschauliche Fragestellungen. Umgangssprachlich formuliert. Algorithmen (Dynamik) statt Gleichungen (Statik). Trotzdem präzise Notation erforderlich, z.b. G = (V, E), V Ø, E { (u,v) u,v V, u v }

5 Computer-Netz Gegeben sei ein Computer-Netz. (Ex1) Entferne möglichst viel Kabel (Gesamtlänge), ohne den Zusammenhang zu zerstören. Die Zahlen neben den Kabeln geben deren jeweilige Länge an

6 Computer-Netz Lösung Wie viele (Anzahl!) Kabel werden benutzt? Ist das Zufall? Gib einen Algorithmus an, der das Problem allgemein löst!

7 Computer-Netz Algorithmus von Prim: Markiere zunächst alle Verbindungen als unbenutzt. Wähle immer die billigste, unbenutzte Verbindung, die einen neuen Computer erschließt. - Verständlich, aber nicht sehr präzise formuliert (Graphnotation!) - Geht schnell, auch für große Graphen - Greedy Algorithmus - Beweis, dass man so eine optimale Lösung erhält? - Greedy Ansatz funktioniert nicht für alle Graphenprobleme - Problem heißt Minimum Spanning Tree

8 Nikolaus Kann man das Haus vom Nikolaus am Stück zeichnen? Gib eine möglichst allgemeine Vorschrift dafür an.

9 Königsberger Brückenproblem - Math. Fragestellung des 18. Jh., illustriert am Beispiel der Stadt Königsberg - Existiert eine Spazierroute durch die Stadt, die jede der Brücken genau einmal überquert?

10 Königsberger Brückenproblem - Lösung suchen / Algorithmus suchen - Leider gibt es keine Lösung - Analogie zum Haus vom Nikolaus? - Die gesuchte Route ist ein Eulerweg. - Gegeben sei ein zusammenhängender Graph. Er enthält genau dann einen Eulerweg wenn - er maximal zwei Knoten mit ungeradem Grad enthält. - Test einfacher/schwerer als MinSpanTree? - Beweis der Behauptung? - Abwandlung: Eulerkreis

11 Kürzester Weg Gegeben sei eine Landkarte (Ex2) mit Städten und Verbindungen. Die Zahlen an den Verbindungen geben deren Kosten (Zeit, Benzin, Geld,...) an. Finde einen kürzesten Weg von a nach z. a z b c d e f g h i j k l m n o p q r s t

12 Kürzester Weg Lösung: - Allgemeiner Algorithmus? - Was ist der längste Weg von a nach z? a z b c d e f g h i j k l m n o p q r s t

13 Hamiltonkreis Gegeben sei eine Landkarte mit Städten und Verbindungen. Existiert ein Rundweg, der jede Stadt genau einmal besucht? Lösung: Aber: Es ist kein Algorithmus bekannt, der dieses Problem effizient löst!

14 Unterschiede zw. Problemen Lösungsart: Finde einen Minimum Spanning Tree (L: Kantenmenge) Besitzt der Graph einen Eulerweg (L: Ja/Nein) Schwierigkeit: Triviale Lösungen (Eulerkreis: Knotengrade anschauen) Einfache Lösungen (MinSpanTree: greedy ) Schwerere Lösungen (Kürzester Pfad: nicht-linear) Sehr schwere Lösungen (Hamiltonkreis: exponentiell)

15 Vorbemerkungen Man kann Graphen-Probleme umgangssprachlich formulieren und lösen. Für wissenschaftliche Texte reicht das aber nicht aus. Wir brauchen also eine formale Darstellung für Graphen. Für die Speicherung im Computer sind Texte ungeeignet. Wir brauchen also Datenstruturen, die zur (effizienten) Speicherung von Graphen geeignet sind.

16 Notation Gerichteter Graph Ein Graph besteht aus Knoten (Vertices) und Kanten (Edges): G = (V, E) Name des Graphen Name der Knotenmenge E = { (München, Berlin), (München, Köln), (Düsseldorf, Hamburg) } Name der Kantenmenge Runde Klammern (keine Mengenklammern) weil die Reihenfolge relevant ist. V = { München, Berlin, Hamburg, Köln, Düsseldorf } Mengenklammern (keine runden Klammern) weil die Reihenfolge irrelevant ist. Mengenklammern: Reihenfolge der Kantennennung irrelevant Runde Klammern: Reihenfolge der Städte relevant

17 Übung - Zeichne den auf der letzten Folie gegebenen Graphen. - Notiere die Definition für den Graphen in Exercise 3 (unter

18 Notation ungerichteter Graph Im gerichteten Graphen: es gibt eine Kante von a nach b Schreibweise: (a,b) E, bzw. E = {, (a,b),...} Im ungerichteten Graphen: es gibt eine Kante zwischen a und b Schreibweise: {a,b} E, bzw. E = {, {a,b},...} Beachte: (a,b) (b,a) aber {a,b} = {b,a}

19 Übung Zeichne einen ungerichteten Graphen mit 5 Knoten und 8 Kanten. Leite aus dem Bild die formal korrekte Notation ab.

20 Wiederholung Mengen Eine Menge ist eine Sammlung von Elementen, deren Reihenfolge irrelevant ist. Beispiel: Wer ist im Zimmer? Mark, Peter und Tine. Personen = { Mark, Peter, Tine } Reihenfolge ist irrelvant: { Mark, Peter, Tine } = { Peter, Tine, Mark } Mehrfachnennungen sind nicht möglich: { Mark, Mark, Peter } = { Mark, Peter } Ø ist das Symbol für die leere Menge.

21 Tupel Ein Tupel ist eine Anordnung von Elementen aus einer Menge M. Beispiel mit M = { Tine, Peter, Mark }: In welcher Reihenfolge haben sie sich heute gemeldet? Antwort: (Tine, Peter, Mark). Reihenfolge ist relevant: (Tine, Peter, Mark) (Mark, Peter, Tine) Mehrfachnennungen sind möglich: (Tine, Tine, Peter) (Tine, Peter) Ein Tupel mit n Elementen nennt man n-tupel. Ein 2-Tupel nennt man Paar.

22 Notation gerichtet vs ungerichtet Gerichter Graph: G = (V, E), V Ø, E { (u,v) u,v V, u v } Wir verbieten Graphen ohne Knoten. Ungerichteter Graph: E ist eine Teilmenge von u und v sind aus V, aber u ist nicht gleich v Der Menge aller Paare (u,v) für die gilt.. G = (V, E), V Ø, E { {u,v} u,v V, u v }

23 Übung Was würde passieren, wenn man die letzte Bedingung in der Definition von gerichteten Graphen, nämlich, u v } weglassen würde? Definiere einen Graphen der dieser Bedingung widerspricht und zeichne ihn. Für V = {1,2,3} schreibe folgende Mengen aus: i. { (u,v) u,v V, u v } ii. { {u,v} u,v V, u v } iii. { (u,v) u,v V } iv. { {u,v} u,v V }

24 Übung Gegeben sei ein gerichteter Graph G mit n Knoten. Wie viele Kanten hat G maximal? (Achtung: Eine Kante, die in unseren Schaubildern Pfeile in beide Richtungen hatte, entspricht 2 Kanten!) Gegeben sei ein ungerichteter Graph G mit n Knoten. Wie viele Kanten hat G maximal? Kommt dir die Formel aus der vorigen Aufgabe bekannt vor? Zeichne einen ungerichteten Graphen in dem e f genau 1 Knoten ungeraden Grad hat. (Beweis?) Finde anhand des folgenden Graphen eine Vorschrift für die Konstruktion eines Eulerwegs. a b c d

25 Beweis Behauptung: Es existiert kein ungerichteter Graph, in dem genau ein Knoten einen ungeraden Grad hat. Wir beweisen stattdessen die Aussage: Die Summe der Grade in einem ungerichteten Graphen ist stets gerade. Jede Kante e E hat erhöht den Grad ihrer zwei Endknoten um 1. Damit erhöht jede Kante die Summe der Grade aller Knoten um 2. Die Summe der Grade aller Knoten ist also 2 Anzahl der Kanten (2 E ) und damit gerade. In einem ungerichteten Graphen, in dem genau ein Knoten ungeraden Grad hat, wäre die Summe der Grad aber ungerade. Ein solcher Graph existiert also nicht.

26 Wiederholung Mengen M, genannt Betrag oder Mächtigkeit einer Menge M, bezeichnet die Anzahl der Elemente in M. M N (lies: M vereinigt mit N) ist definiert als M N = { x x M x N } M N (lies: M ist Teilmenge von N) gilt, gdw. x M x N P(M) (lies: Potenzmenge von M) ist definiert als P(M) = { N N M }

27 Übungen Beweise oder widerlege: M + N = M N Sei M = {1,2,3,4}. Notiere P(M). Gegeben sei M mit M = k. Bestimme P(M). Gegeben sei eine Knotenmenge V. Wie viele gerichtete Graphen gibt es auf V? Wie viele ungerichtete Graphen gibt es auf V?

28 Def. Kantengewichteter Graph Ein kantengewichteter Graph G ist ein Triple G = (V, E, w) mit V, E wie bisher und einer Abbildung w: E R +. Der Graph wird also ergänzt um eine Funktion w (weight), die jeder Kante e eine positive reelle Zahl zuordnet, nämlich ihr Gewicht w(e).

29 Dijkstra Schlage den Dijkstra-Algorithmus auf Wikipedia nach: Pseudocode lesen Beispiel verstehen Vollziehe den Algorithmus an Ex 2 (Shortest Paths) nach. Erstelle Distanzen und Vorgänger Gib den kürzesten Weg zum Knoten m an.

30 Dijkstra umgangssprachlich 1. Speichere für jeden Knoten 3 Werte Distanz und Vorgänger und besucht. Initialisiere die Distanz im Startknoten mit 0 und in allen anderen Knoten mit. 2. Solange es noch unbesuchte Knoten gibt, wähle darunter denjenigen mit minimaler Distanz aus und a. markiere diesen aktuellen Knoten als besucht b. für jeden seiner unbesuchten Nachbarknoten i. berechne die Summe aus dem Kantengewicht und der Distanz des aktuellen Knotens. ii. falls diese Summe kleiner ist als die dort gespeicherte Distanz, aktualisiere sie und setze den aktuellen Knoten als Vorgänger. Falls die Distanz zu einem gewissen Knoten gesucht ist, brich ab, sobald dieser der aktuelle (bei 2.) ist.

31 Graphen durchlaufen Gegeben sei G = (V,E), ungerichtet (aber nicht zwingend zusammenhängend) und zwei Knoten s, t V. a b c i j s d e k l t f g h m n Wir wollen wissen, ob ein Weg von s nach t (bzw. zwischen s und t) existiert.

32 Graphen durchlaufen Idee: Wir beginnen mit dem Knoten s. Wenn s = t ist, sind wir fertig. Wenn nicht, schauen wir uns alle Nachbarn von s an. (Falls einer davon t ist, sind wir fertig.) Wenn nicht, speichern wir uns die Nachbarn ab *. Als nächstes machen wir das oben stehende für die abgespeicherten Knoten. Teste den Algorithmus am Graphen der letzten Folie ohne gestrichelte Knoten und Kanten. Welches Problem tritt auf?

33 Graphen durchlaufen Korrektur: Wir beginnen mit dem Knoten s und markieren s als besucht. Wenn s = t ist, sind wir fertig. Wenn nicht, schauen wir uns alle Nachbarn von s an. (Falls einer davon t ist, sind wir fertig.) Wenn nicht, speichern wir uns die unbesuchten Nachbarn ab *. Als nächstes machen wir das oben stehende für die abgespeicherten Knoten. * Wie verarbeitest du die unbesuchten Nachbarn? First-in-first-out? Oder Last-in-first-out? Versuche verbal auszudrücken, wie sich die Entscheidung auswirkt.

34 LIFO vs FIFO Wenn wir die Knoten nach dem Prinzip last-in-first-out abarbeiten (wie bei einem Stapel ), dann suchen wir in die Tiefe. Wir nennen diese Art der Suche daher Tiefensuche. Wenn wir die Knoten nach dem Prinzip first-in-first-out abarbeiten (wie bei einer Warteschlange ), dann suchebn wir in die Breite. Wir nennen diese Art der Suche daher Breitensuche.

35 Minimale Kantendistanz Wir wollen nun nicht nur wissen, ob ein Weg zwischen s und t existiert, sondern auch, wie viele Kanten ein kürzester Weg benutzt. Das Einfügen eines kleinen Zwischenschritts in unseren bisherigen Algorithmus reicht aus, um diese Distanz zu ermitteln. (Sofern wir die richtige Wahl bei der Verwaltung der unbesuchten Knoten: FIFO vs LIFO treffen). Überlege, wie der Zwischenschritt aussehen könnte und welches Prinzip (FIFO vs LIFO) benutzt werden muss.

36 Minimale Kantendistanz Lösung: Wir tragen in s Distanz 0 und in alle anderen Knoten ein. Wenn s = t ist, sind wir fertig. Wenn nicht, schauen wir uns alle Nachbarn von s an. Wir ignorieren alle Nachbarn die bereits eine Distanz < haben. In alle anderen tragen wir Distanz von s + 1 ein und fügen sie hinten an die Warteschlange an. Solange die Warteschlange nicht leer ist, nimm den ersten Knoten weg und verfahre mit ihm wie mit s. Brich ab, wenn t gefunden wurde, die Distanz in t ist dann minimal.

37 Minimale Kantendistanz Bereinigt: Wir tragen in s Distanz 0 und in alle anderen Knoten ein. Wir erstellen eine Warteschlange queue und fügen s hinzu. Solange queue nicht leer ist: Entferne den ersten Knoten v aus queue Falls v = t, brich ab. Für alle Nachbarn n von v Falls Distanz(n) <, ignoriere n. Ansonsten trage Distanz(v)+1 für n ein und füge n zu queue hinzu. Wie kann man anhand der Distanzen einen kürzesten Weg ermitteln?

38 Breitensuche Schlage den Breitensuche-Algorithmus auf Wikipedia nach: Pseudocode lesen Beispiel verstehen Vollziehe den Algorithmus an Ex? () nach. Erstelle Distanzen und Vorgänger Gib den kürzesten Weg zum Knoten? an.

39 Breitensuche vs Dijkstra Dijkstra unterscheidet sich von Breitensuche in zwei Punkten: a. Wir machen uns nicht die Mühe, den Knoten mit der geringsten Distanz auszuwählen, sondern nehmen den ersten aus der Warteschlange. b. In der Breitensuche verzichten wir darauf, neue Distanzen zu vergleichen. Nur wenn die bisherige Distanz = ist, tragen wir die neue Distanz (und betrachten sie danach nie wieder). Begründe diese Unterschiede schriftlich, jeweils mit 1-2 Sätzen (und ohne Rücksprache mit Sitznachbarn).

40 Komplexität / Laufzeitanalyse Szenario: Gegeben sei ein Spiel mit Grid. (Schwarze Felder sind nicht begehbar). Ein KI-Agent sucht den Weg zum Spieler. (z.b. für einen Nahkampfangriff.) Wie lange darf der Algorithmus höchstens laufen (in Sekunden)? Was passiert, wenn wir das Board vergrößern (z.b statt Felder)? Wie reagiert ein Algorithmus auf diese (100 mal so große) Eingabe?

41 Komplexität / Laufzeitanalyse Gegeben sei ein Algorithmus, der eine Eingabe der Größe n (zum Beispiel einen Graphen mit V = n) erhält: void AnalyseMe(...) { for (i = 0; i < n; i++) for (j = 0; j < n; j++) print(i*j); // << platzhalter für sinnvollen code } Wie oft wird print(...) aufgerufen?

42 Übung Gib die Anzahl der print-aufrufe (abhängig von n) für folgende Codefragemente an: a) for (int i = 0; i < n; i++) for (int j = 0; j < 30; j++) print ( a ); c) for (int i = 0; i < 50; i++) for (int j = 0; j < 50; j++) print ( c ); b) for (int i = 0; i <= n; i++) for (int j = 0; j <= n; j++) for (int k = 0; k <= n; k++) print ( d ): d) for (int i = 0; i < n; i++) for (int j = i+1; j < n; j++) print ( b ): Vergleiche alle diese Laufzeiten (und die Laufzeit n 2 der letzten Folie), einmal für n = 10 und einmal für n = 5000.

43 Fazit Für kleine Eingaben sind (fast) alle Algorithmen unproblematisch. Für große Eingaben verlieren Konstanten (selbst als Faktor) zunehmend an Bedeutung. Deshalb sprechen wir von linearen, quadratischen, etc. Laufzeiten, ohne dabei konstante Faktoren oder Summanden geringeren Grades zu erwähnen. Wir führen die O-Notation (eine der Landau-Notationen) ein, um diese Beobachtung formal eindeutig festzuhalten.

44 O-Notation Für eine Funktion f(n) definieren wir: O(f(n)) = { g(n) n 0 Ν, c R: n > n 0 g(n) c f(n) } O(f(n)) ist also eine Menge von Funktionen. Eine Funktion g(n) gehört zu dieser Menge gdw. es einen konstanten Faktor c gibt, und eine Zahl n 0, so dass für alle Werte ab n 0 der Wert von g(n) kleiner gleich c mal f(n) ist.

45 O-Notation Beispiel: Sei f(n) = 2n 2 und g(n) = n. Dann gilt sowieso grundsätzlich: g(n) f(n). Oder formaler: n Ν g(n) = n 2n 2 = f(n) Wir brauchen hier weder n 0 noch c. Es gilt aber insbesondere mit n 0 = 0 und c = 1: n > n 0 gilt g(n) c f(n). Damit gilt also g(n) O(f(n))

46 O-Notation Beispiel: Sei f(n) = 2n 2 und g(n) = 5n. Dann gilt nicht grundsätzlich: g(n) f(n): Zum Beispiel gilt für n = 2: g(n) = 10 8 = f(n). Allerdings gilt bereits für alle n > 2: g(n) f(n). Für n = 3,4,5,etc. ergibt sich 15 18, 20 32, 25 50, etc.. Den Beweis verschieben wir auf später, aber wir halten fest: Es gilt (mit n 0 = 2 und c = 1): n > n 0 g(n) c f(n), also g(n) O(f(n)).

47 O-Notation Beispiel: Sei f(n) = n 2 und g(n) = 2n 2. Dann gilt nicht grundsätzlich: g(n) f(n): Es gilt sogar niemals (außer für n = 0). Wenn wir aber c = 2 (oder größer) wählen, gilt: g(n) c f(n) und das unabhängig von n. Also für n 0 = 0 und c = 2: n > n 0 g(n) c f(n), also g(n) O(f(n)).

48 O-Notation Die O-Notation zielt darauf ab, z.b. alle quadratischen Polynome (2n 2 + 3n + 5) in die gleiche Komplexitätsklasse, nämlich O(n 2 ) fallen zu lassen.

49 O-Notation Beispiel: Sei g(n) = 2n 2 + n + 5 und f(n) = n 2. Wir wollen zeigen: g(n) O(n 2 ). Beweis: g(n) = 2n 2 + n + 5 2n 2 + n 2 + n 2 4 n 2 c f(n) für c = 4 für n > 2 Die Ungleichungskette beweist die Behauptung mit n 0 = 2 und c = 4.

50 O-Notation Überlege ob n 3 O(n 2 ) gilt. Existiert ein n 0 N und ein c R, so dass n > n 0 gilt: n 3 c n 2 Nein, denn die Terme unterscheiden sich nur in c und n wie folgt: n n 2 c n 2 Ganz egal, wie groß wir c auch wählen und egal wie wir n 0 wählen, wir finden ein (großes) n, das die Ungleichhung ungültig macht: Nämlich zum Beispiel n = max(n 0 +1, c+1). Es gilt also n 3 O(n 2 ).

51 O-Notation Die O-Notation zielt darauf ab, z.b. alle quadratischen Polynome (2n 2 + 3n + 5) in die gleiche Komplexitätsklasse, nämlich O(n 2 ) fallen zu lassen, Polynome höheren Grades jedoch nicht!

52 Übung Schreibe eine Funktion void Test(int n) die genau 2n 2 + n + 5 mal print( hallo ) aufruft. (Ohne Multiplikation oder Addition zu benutzen!) Beweise: 2n+8 O(n) Beweise: 2n+8 O(n 2 ) Beweise: 5n 3 +3n 2 +8n+3 O(n 4 ) Beweise: n 2 O(n) Gib die Laufzeit der Algorithmen aus der letzten Übung in O- Notation an.

53 Übung: Suchen im Array Gegeben: integer-array der Länge n (z.b. [8, 15, 3, 6, 9]) Gesucht: Algorithmus, der für einen Eingabewert w feststellt, an welcher Stelle im Array (Index) w steht. 1. Formuliere einen (einfachen) Algorithmus in Pseudocode. 2. Implementiere und teste ihn in Processing. 3. Ermittle die Laufzeit deines Algorithmus in O-Notation.

54 Übung: Suchen im Array int[] zahlen = { 18,5,23,3,40,9,19,65 }; void setup() { println(getindexof(zahlen, 9)); } int GetIndexOf(int[] _zahlenarray, int _eintrag) { for (int index = 0; index < _zahlenarray.length; index++) if (_zahlenarray[index] == _eintrag) return index; return -1; } Explizite Laufzeit ~ 3n. Asymptotische Laufzeit: O(n)

55 Übung: Array sortieren Gegeben: integer-array der Länge n (z.b. [8, 15, 3, 6, 9]) Gesucht: Algorithmus, der das Array aufsteigend sortiert. 1. Formuliere einen (einfachen) Algorithmus in Pseudocode. 2. Implementiere und teste ihn in Processing. 3. Ermittle die Laufzeit deines Algorithmus zuerst explizit und dann vereinfacht in O-Notation.

56 Übung: Array sortieren void sort(int[] _zahlen) { for (int links = 0; links< _zahlen.length; links++) for (int rechts = links+1; rechts < _zahlen.length; rechts++) if (_zahlen[links] > _zahlen[rechts]) { int temp = _zahlen[links]; _zahlen[links] = _zahlen[rechts]; _zahlen[rechts] = temp; } } Bubblesort! Laufzeit explizit ~4(n(n+1)/2), asymptotisch O(n²).

57 Übung: Suchen im sort. Array Wie suchst du im Telefonbuch nach dem Namen Wright? Eine einfachere Variante dieser interpolierten Suche ist die binäre Suche : Gegeben sei ein sortieres Feld der Länge n, gesucht der Index eines Wertes w. Berechne den mittleren Index i des verbleibenden Suchfelds. (Zu Beginn ist i = n/2, evtl. gerundet.) Vergleiche den Eintrag A[i] mit w. Falls A[i] == w, gib i zurück. Falls A[i] > w wähle A[0..i-1] als verbleibendes Suchfeld. Falls A[i] < w wähle A[i+1..n] als verbleibendes Suchfeld. Binäre Suche! Asymptotische Laufzeit O(log(n)). Keine einfache Analyse!

58 Binäre Suche int GetIndexOf(int[] _zahlenarray, int _eintrag) { int links = 0; int rechts = _zahlenarray.length; while (links <= rechts) { int mitte = (int)((links+rechts)/2); if (_zahlenarray[mitte] == _eintrag) return mitte; else { if (_zahlenarray[mitte] > _eintrag) rechts = mitte-1; else links = mitte+1; } } } return -1;

59 Übung Ermittle die Laufzeit von Breitensuche explizit und in O-Notation. (Als variable Eingabegröße kann V herangezogen werden.) Ermittle die Laufzeit des Algorithmus, der prüft, ob ein Graph einen Eulerweg enthält, explizit und in O-Notation.

60 Hinweise Tatsächlich ist auch praktisch die asymptotische Komplexität relevant. Allerdings gibt es andere praktisch relevante Aspekte (ohne Anspruch auf Vollständigkeit): Werden Objekte by value übergeben oder by reference? Werden bei Rückgabewerten von Funktionen temporäre Objekte erzeugt? Werden zusammenhängende Speicherbereiche (Arrays) oder unzusammenhängende (Listen) benutzt? (Relevant wegen Caching ) Werden viele virtuelle Methoden aufgerufen? Nutze inline -Funktionen

61 Datenstrukturen für Graphen Wie können wir einen kantengewichteten, gerichteten Graphen G = (V, E, w) im Computer darstellen? Die Namen der Knoten werden als { 1,2,3,, n} angenommen, also als aufsteigende Reihe natürlicher Zahlen. Eine einfache und naheliegende Möglichkeit, die Kanten zu speichern ist ein 2-d int Array A A[i, j] gibt dabei weight(i,j) an Für (i, j) E, trage A[i, j] = -1 ein. A heißt Adjazenzmatrix

62 Adjazenmatrix Warum ist es legitim, als Knotenmenge { 1,2,3,...,n } anzunehmen? Wie würde man eine Landkarte wie im Dijkstra- Beispiel handhaben? Welche Datenstruktur verwenden wir für Graphen ohne Kantengewichte? Wie handhaben wir ungerichtete Graphen?

63 Datenstrukturen für Graphen Die gleiche Datenstruktur lässt sich auch für ungerichtete Graphen verwenden. Es ist sinnvoll, dann nur eine Hälfte der Matrix zu benutzen Für Graphen ohne Kantengewichte verwenden wir statt eines int-arrays ein 3 2 bool-array. 4

64 Speicherbedarf Eine Adjazenzmatrix, im Computer gespeichert als 2D- Array, benötigt V 2 Speichereinträge. Für Graphen mit vielen Knoten und vergleichsweise wenig Kanten (sog. lichte Graphen) ist das inperformant! Für solche Fälle wären andere Datenstrukturen zur Speicherung von Graphen vorzuziehen.

65 Zeitkomplexität Gegeben sei ein ungerichteter Graph mit V = { 1,, n }. Die Kantenmenge E sei im Computer durch eine redundante * Adjazenzmatrix A repräsentiert. Formuliere eine Funktion bool EulerwegTest (Matrix A) und analysiere ihre Laufzeit explizit und in O-Notation. Implementiere die Funktion in Processing und teste sie an einem Beispiel. Zähle die Rechenschritte im Code mit und vergleiche die Anzahl mit deiner expliziten Formel. Formuliere eine Funktion int Breitensuche(Matrix A, int startindex, int endindex) und analysiere ihre Laufzeit explizit und in O-Notation.

15. Elementare Graphalgorithmen

15. Elementare Graphalgorithmen Graphen sind eine der wichtigste Modellierungskonzepte der Informatik Graphalgorithmen bilden die Grundlage vieler Algorithmen in der Praxis Zunächst kurze Wiederholung von Graphen. Dann Darstellungen

Mehr

Ferienkurs zur algorithmischen diskreten Mathematik Kapitel 1: Grundlagen der algorithmischen Graphentheorie

Ferienkurs zur algorithmischen diskreten Mathematik Kapitel 1: Grundlagen der algorithmischen Graphentheorie Ferienkurs zur algorithmischen diskreten Mathematik Kapitel 1: Grundlagen der algorithmischen Graphentheorie Dipl-Math. Wolfgang Kinzner 2.4.2012 Kapitel 1: Grundlagen der algorithmischen Graphgentheorie

Mehr

Lernmodul 7 Algorithmus von Dijkstra

Lernmodul 7 Algorithmus von Dijkstra Folie 1 von 30 Lernmodul 7 Algorithmus von Dijkstra Quelle: http://www.map24.de Folie 2 von 30 Algorithmus von Dijkstra Übersicht Kürzester Weg von A nach B in einem Graphen Problemstellung: Suche einer

Mehr

9 Minimum Spanning Trees

9 Minimum Spanning Trees Im Folgenden wollen wir uns genauer mit dem Minimum Spanning Tree -Problem auseinandersetzen. 9.1 MST-Problem Gegeben ein ungerichteter Graph G = (V,E) und eine Gewichtsfunktion w w : E R Man berechne

Mehr

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

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

Mehr

Vorlesung Datenstrukturen

Vorlesung Datenstrukturen Vorlesung Datenstrukturen Graphen (1) Darstellung Traversierung Dr. Frank Seifert Vorlesung Datenstrukturen - Sommersemester 2016 Folie 441 Generalisierung von Bäumen Verallgemeinerung (von Listen zu Graphen)

Mehr

ADS: Algorithmen und Datenstrukturen 2

ADS: Algorithmen und Datenstrukturen 2 ADS: Algorithmen und Datenstrukturen 2 Teil 4 Prof. Dr. Gerhard Heyer Institut für Informatik Abteilung Automatische Sprachverarbeitung Universität Leipzig 02. Mai 2017 [Letzte Aktualisierung: 10/07/2018,

Mehr

Graphen KAPITEL 3. Dieses Problem wird durch folgenden Graph modelliert:

Graphen KAPITEL 3. Dieses Problem wird durch folgenden Graph modelliert: KAPITEL 3 Graphen Man kann als Ursprung der Graphentheorie ein Problem sehen, welches Euler 1736 von Studenten aus Königsberg gestellt bekam. Der Fluss Pregel wird von 7 Brücken überquert, und die Frage

Mehr

Minimal spannende Bäume

Minimal spannende Bäume http://www.uni-magdeburg.de/harbich/ Minimal spannende Fakultät für Informatik Otto-von-Guericke-Universität 2 Inhalt Definition Wege Untergraphen Kantengewichtete Graphen Minimal spannende Algorithmen

Mehr

Stud.-Nummer: Datenstrukturen & Algorithmen Seite 1

Stud.-Nummer: Datenstrukturen & Algorithmen Seite 1 Stud.-Nummer: Datenstrukturen & Algorithmen Seite 1 Aufgabe 1. / 16 P Instruktionen: 1) In dieser Aufgabe sollen Sie nur die Ergebnisse angeben. Diese können Sie direkt bei den Aufgaben notieren. 2) Sofern

Mehr

Übersicht. Bielefeld Hannover. Kamen Paderborn. Unna Wünnenberg Kassel. Ziffer wählen. abheben. auflegen. Gespräch führen

Übersicht. Bielefeld Hannover. Kamen Paderborn. Unna Wünnenberg Kassel. Ziffer wählen. abheben. auflegen. Gespräch führen Übersicht Graphen beschreiben Objekte und Beziehungen zwischen ihnen geeignet für Modellierung verschiedener Aufgaben betrachten endliche, ungerichtete und endliche, gerichtete Graphen Graphen bestehen

Mehr

Algorithmen und Datenstrukturen

Algorithmen und Datenstrukturen Universität Innsbruck Institut für Informatik Zweite Prüfung 16. Oktober 2008 Algorithmen und Datenstrukturen Name: Matrikelnr: Die Prüfung besteht aus 8 Aufgaben. Die verfügbaren Punkte für jede Aufgabe

Mehr

Algo&Komp. - Wichtige Begriffe Mattia Bergomi Woche 6 7

Algo&Komp. - Wichtige Begriffe Mattia Bergomi Woche 6 7 1 Kürzeste Pfade Woche 6 7 Hier arbeiten wir mit gewichteten Graphen, d.h. Graphen, deren Kanten mit einer Zahl gewichtet werden. Wir bezeichnen die Gewichtsfunktion mit l : E R. Wir wollen einen kürzesten

Mehr

Algorithmen und Datenstrukturen

Algorithmen und Datenstrukturen Algorithmen und Datenstrukturen Prof. Martin Lercher Institut für Informatik Heinrich-Heine-Universität Düsseldorf Teil 10 Suche in Graphen Version vom 13. Dezember 2016 1 / 2 Vorlesung 2016 / 2017 2 /

Mehr

Teil 2: Graphenalgorithmen

Teil 2: Graphenalgorithmen Teil : Graphenalgorithmen Anwendungen Definitionen Datenstrukturen für Graphen Elementare Algorithmen Topologisches Sortieren Kürzeste Wege Minimal aufspannende Bäume Problemstellung Algorithmus von Prim

Mehr

Algorithmen und Datenstrukturen Übung #4 BFS/DFS, Wachstum von Funktionen

Algorithmen und Datenstrukturen Übung #4 BFS/DFS, Wachstum von Funktionen Platzhalter für Bild, Bild auf Titelfolie hinter das Logo einsetzen Algorithmen und Datenstrukturen Übung #4 BFS/DFS, Wachstum von Funktionen Christian Rieck, Arne Schmidt 22.11.2018 Heute 12 Breiten-

Mehr

Graphdurchmusterung, Breiten- und Tiefensuche

Graphdurchmusterung, Breiten- und Tiefensuche Prof. Thomas Richter 18. Mai 2017 Institut für Analysis und Numerik Otto-von-Guericke-Universität Magdeburg thomas.richter@ovgu.de Material zur Vorlesung Algorithmische Mathematik II am 18.05.2017 Graphdurchmusterung,

Mehr

Datenstrukturen (SoSe 12) Klausur (Modulabschlussprüfung)

Datenstrukturen (SoSe 12) Klausur (Modulabschlussprüfung) Goethe-Universität Frankfurt am Main 27. Juli 2012 Institut für Informatik Theorie komplexer Systeme Dr. Mariano Zelke Datenstrukturen (SoSe 12) Klausur (Modulabschlussprüfung) Name: Vorname: Studiengang:

Mehr

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.

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. Graphen Definition: 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. Begriffe: Gerichteter Graph: Alle Kanten haben eine Richtung vom Anfangsknoten

Mehr

Graphenalgorithmen I. Geschickt Programmieren für den ICPC- Wettbewerb. Felix Weissenberger

Graphenalgorithmen I. Geschickt Programmieren für den ICPC- Wettbewerb. Felix Weissenberger Graphenalgorithmen I Geschickt Programmieren für den ICPC- Wettbewerb Felix Weissenberger Inhalt Grundlagen zu Graphen Begriffe Darstellung von Graphen Graphenalgorithmen Breitensuche Tiefensuche Topologisches

Mehr

Klausur Algorithmen und Datenstrukturen

Klausur Algorithmen und Datenstrukturen Technische Universität Braunschweig Sommersemester 2018 Institut für Betriebssysteme und Rechnerverbund Abteilung Algorithmik Prof. Dr. Sándor P. Fekete Christian Rieck Arne Schmidt Klausur Algorithmen

Mehr

Graphentheorie. Yichuan Shen. 10. Oktober 2013

Graphentheorie. Yichuan Shen. 10. Oktober 2013 Graphentheorie Yichuan Shen 0. Oktober 203 Was ist ein Graph? Ein Graph ist eine kombinatorische Struktur, die bei der Modellierung zahlreicher Probleme Verwendung findet. Er besteht ganz allgemein aus

Mehr

Graphentheorie. Vorkurs Informatik WS 2016/2017. Dennis Aumiller

Graphentheorie. Vorkurs Informatik WS 2016/2017. Dennis Aumiller Vorkurs Informatik WS 2016/2017 Dennis Aumiller Aumiller@stud.uni-heidelberg.de 14.10.2016 Über das Thema Wo alles begann Leider keine gesonderte Vorlesung dafür oft als Teilthema in anderen Vorlesungen

Mehr

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

Programm heute. Algorithmen und Datenstrukturen (für ET/IT) Übersicht: Graphen. Definition: Ungerichteter Graph. Definition: Ungerichteter Graph Programm heute Algorithmen und Datenstrukturen (für ET/IT) Sommersemester 07 Dr. Stefanie Demirci Computer Aided Medical Procedures Technische Universität München 7 Fortgeschrittene Datenstrukturen Graphen

Mehr

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

Technische Universität Wien Institut für Computergraphik und Algorithmen Arbeitsbereich für Algorithmen und Datenstrukturen Technische Universität Wien Institut für Computergraphik und Algorithmen Arbeitsbereich für Algorithmen und Datenstrukturen 186.172 Algorithmen und Datenstrukturen 1 VL 4.0 Übungsblatt 4 für die Übung

Mehr

ADS: Algorithmen und Datenstrukturen 2

ADS: Algorithmen und Datenstrukturen 2 ADS: Algorithmen und Datenstrukturen 2 Teil 4 Prof. Peter F. Stadler & Dr. Christian Höner zu Siederdissen Bioinformatik/IZBI Institut für Informatik & Interdisziplinäres Zentrum für Bioinformatik Universität

Mehr

Algorithmen & Komplexität

Algorithmen & Komplexität Algorithmen & Komplexität Angelika Steger Institut für Theoretische Informatik steger@inf.ethz.ch Breitensuche, Tiefensuche Wir besprechen nun zwei grundlegende Verfahren, alle Knoten eines Graphen zu

Mehr

Algorithmische Graphentheorie

Algorithmische Graphentheorie Algorithmische Graphentheorie Vorlesung 4: Suchstrategien Babeş-Bolyai Universität, Department für Informatik, Cluj-Napoca csacarea@cs.ubbcluj.ro 14. April 2017 HALBORDNUNG TOPOLOGISCHE ORDNUNG TOPOLOGISCHES

Mehr

Algorithmen und Datenstrukturen 2-1. Seminar -

Algorithmen und Datenstrukturen 2-1. Seminar - Algorithmen und Datenstrukturen 2-1. Seminar - Dominic Rose Bioinformatics Group, University of Leipzig Sommersemster 2010 Outline 1. Übungsserie: 3 Aufgaben, insgesamt 30 28 Punkte A1 Spannbäume (10 8

Mehr

Karlsruher Institut für Technologie. Klausur Algorithmen I

Karlsruher Institut für Technologie. Klausur Algorithmen I Klausur-ID: Vorname: Matrikelnummer: Karlsruher Institut für Technologie Institut für Theoretische Informatik Prof. Jörn Müller-Quade 11. April 2018 Klausur Algorithmen I Aufgabe 1. Kleinaufgaben 15 Punkte

Mehr

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

Graphentheorie Graphentheorie. Grundlagen Bäume Eigenschaften von Graphen Graphen-Algorithmen Matchings und Netzwerke Graphen Graphentheorie Graphentheorie Grundlagen Bäume Eigenschaften von Graphen Graphen-Algorithmen Matchings und Netzwerke 2 Was ist ein Graph? Ein Graph ist in der Graphentheorie eine abstrakte Struktur,

Mehr

Programmierkurs Python II

Programmierkurs Python II Programmierkurs Python II Stefan Thater & Michaela Regneri Universität des Saarlandes FR 4.7 Allgemeine Linguistik (Computerlinguistik) Übersicht Topologische Sortierung (einfach) Kürzeste Wege finden

Mehr

Vorlesung 2 KÜRZESTE WEGE

Vorlesung 2 KÜRZESTE WEGE Vorlesung 2 KÜRZESTE WEGE 34 Kürzeste Wege im Graphen Motivation! Heute:! Kürzeste Wege von einem Knoten (SSSP)! Kürzeste Wege zwischen allen Knotenpaaren (APSP)! Viele Anwendungen:! Navigationssysteme!

Mehr

Klausur Algorithmen und Datenstrukturen

Klausur Algorithmen und Datenstrukturen Technische Universität Braunschweig Wintersemester 2017/2018 Institut für Betriebssysteme und Rechnerverbund Abteilung Algorithmik Prof. Dr. Sándor P. Fekete Christian Rieck Arne Schmidt Klausur Algorithmen

Mehr

Algorithmen & Komplexität

Algorithmen & Komplexität Algorithmen & Komplexität Angelika Steger Institut für Theoretische Informatik steger@inf.ethz.ch Kürzeste Pfade Problem Gegeben Netzwerk: Graph G = (V, E), Gewichtsfunktion w: E N Zwei Knoten: s, t Kantenzug/Weg

Mehr

10. Übungsblatt zu Algorithmen I im SS 2010

10. Übungsblatt zu Algorithmen I im SS 2010 Karlsruher Institut für Technologie Institut für Theoretische Informatik Prof. Dr. Peter Sanders G.V. Batz, C. Schulz, J. Speck 0. Übungsblatt zu Algorithmen I im SS 00 http//algo.iti.kit.edu/algorithmeni.php

Mehr

Aufgaben zur Klausurvorbereitung

Aufgaben zur Klausurvorbereitung Vorlesung Graphen und Optimierung Sommersemester 2013/14 Prof. S. Lange Aufgaben zur Klausurvorbereitung Hier finden Sie eine Reihe von Übungsaufgaben, die wir an den beiden Vorlesungsterminen am 29.01.2014

Mehr

3. Die Datenstruktur Graph

3. Die Datenstruktur Graph 3. Die Datenstruktur Graph 3.1 Einleitung: Das Königsberger Brückenproblem Das Königsberger Brückenproblem ist eine mathematische Fragestellung des frühen 18. Jahrhunderts, die anhand von sieben Brücken

Mehr

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

12. Graphen. Notation, Repräsentation, Traversieren (DFS, BFS), Topologisches Sortieren, Ottman/Widmayer, Kap ,Cormen et al, Kap. 254 12. Graphen Notation, Repräsentation, Traversieren (DFS, BFS), Topologisches Sortieren, Ottman/Widmayer, Kap. 9.1-9.4,Cormen et al, Kap. 22 Königsberg 1736 255 Königsberg 1736 255 Königsberg 1736 255

Mehr

Vorlesung Datenstrukturen

Vorlesung Datenstrukturen Vorlesung Datenstrukturen Graphen (2) Spannbäume Kürzeste Wege Dr. Frank Seifert Vorlesung Datenstrukturen - Sommersemester 2016 Folie 455 Wiederholung Traversierung eines Graphen via Tiefendurchlaufs

Mehr

Informatik II, SS 2016

Informatik II, SS 2016 Informatik II - SS 2016 (Algorithmen & Datenstrukturen) Vorlesung 13 (8.6.2016) Graphenalgorithmen I Algorithmen und Komplexität Graphen Knotenmenge V, typischerweise n V Kantenmenge E, typischerweise

Mehr

Stud.-Nummer: Datenstrukturen & Algorithmen Seite 1

Stud.-Nummer: Datenstrukturen & Algorithmen Seite 1 Stud.-Nummer: Datenstrukturen & Algorithmen Seite 1 Aufgabe 1. / 15 P Hinweise: 1) In dieser Aufgabe sollen Sie nur die Ergebnisse angeben. Diese können Sie direkt bei den Aufgaben notieren. 2) Sofern

Mehr

Datenstrukturen und Algorithmen. Christian Sohler FG Algorithmen & Komplexität

Datenstrukturen und Algorithmen. Christian Sohler FG Algorithmen & Komplexität Datenstrukturen und Algorithmen Christian Sohler FG Algorithmen & Komplexität 1 Klausur Wichtige Hinweise: 2.7.07, Beginn 9 Uhr Bitte spätestens 8:4 Uhr vor Ort sein Sporthalle + Audimax Informationen

Mehr

2. November Gradfolgen Zusammenhang Kürzeste Wege. H. Meyerhenke: Algorithmische Methoden zur Netzwerkanalyse 37

2. November Gradfolgen Zusammenhang Kürzeste Wege. H. Meyerhenke: Algorithmische Methoden zur Netzwerkanalyse 37 2. November 2011 Gradfolgen Zusammenhang Kürzeste Wege H. Meyerhenke: Algorithmische Methoden zur Netzwerkanalyse 37 Satz von Erdős und Gallai Eine Partition einer natürlichen Zahl ist genau dann die Gradfolge

Mehr

2. Klausur Datenstrukturen und Algorithmen SS 2014

2. Klausur Datenstrukturen und Algorithmen SS 2014 Prof. aa Dr. E. Ábrahám F. Corzilius, S. Schupp, T. Ströder 2. Klausur Datenstrukturen und Algorithmen SS 2014 Vorname: Nachname: Studiengang (bitte genau einen markieren): Informatik Bachelor Informatik

Mehr

Klausur Algorithmen und Datenstrukturen

Klausur Algorithmen und Datenstrukturen Technische Universität Braunschweig Wintersemester 2013/2014 Institut für Betriebssysteme und Rechnerverbund Abteilung Algorithmik Prof. Dr. Sándor P. Fekete Stephan Friedrichs Klausur Algorithmen und

Mehr

Proseminar Online Algorithmen, Prof. Dr. Rolf Klein

Proseminar Online Algorithmen, Prof. Dr. Rolf Klein Proseminar Online Algorithmen, Prof. Dr. Rolf Klein Vortrag von Michael Daumen am 13.12.2000 Thema : Minimum Spanning Tree und 2-Approximation der TSP-Tour Inhalt des Vortrags : 1. genaue Vorstellung des

Mehr

Algorithmen und Datenstrukturen Tafelübung 14. Jens Wetzl 8. Februar 2012

Algorithmen und Datenstrukturen Tafelübung 14. Jens Wetzl 8. Februar 2012 Algorithmen und Datenstrukturen Tafelübung 14 Jens Wetzl 8. Februar 2012 Folien Keine Garantie für Vollständigkeit und/oder Richtigkeit Keine offizielle Informationsquelle LS2-Webseite Abrufbar unter:

Mehr

Informatik B Sommersemester Musterlösung zur Klausur am

Informatik B Sommersemester Musterlösung zur Klausur am Informatik B Sommersemester 01 Musterlösung zur Klausur am 1.0.01 Leider wurde der Hinweis, dass alle Lösungen kurz (stichpunktartig), aber inhaltlich ausreichend zu kommentieren sind, nicht immer beachtet.

Mehr

Quicksort ist ein Divide-and-Conquer-Verfahren.

Quicksort ist ein Divide-and-Conquer-Verfahren. . Quicksort Wie bei vielen anderen Sortierverfahren (Bubblesort, Mergesort, usw.) ist auch bei Quicksort die Aufgabe, die Elemente eines Array a[..n] zu sortieren. Quicksort ist ein Divide-and-Conquer-Verfahren.

Mehr

Algorithmische Graphentheorie

Algorithmische Graphentheorie Algorithmische Graphentheorie Vorlesung 7 und 8: Euler- und Hamilton-Graphen Babeş-Bolyai Universität, Department für Informatik, Cluj-Napoca csacarea@cs.ubbcluj.ro 17. April 2018 1/96 WIEDERHOLUNG Eulersche

Mehr

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

1. Motivation / Grundlagen 2. Sortierverfahren 3. Elementare Datenstrukturen / Anwendungen 4. Bäume / Graphen 5. Hashing 6. Algorithmische Geometrie Gliederung 1. Motivation / Grundlagen 2. Sortierverfahren 3. Elementare Datenstrukturen / Anwendungen 4. äume / Graphen 5. Hashing 6. Algorithmische Geometrie 4/5, olie 1 2014 Prof. Steffen Lange - HDa/bI

Mehr

Bemerkung: Der vollständige Graph K n hat n(n 1)

Bemerkung: Der vollständige Graph K n hat n(n 1) Bemerkung: Der vollständige Graph K n hat n(n 1) 2 Kanten. Bew: Abzählen! Definition 111. Graphen mit n paarweise zyklisch verbundenen Kanten heißen Kreise (vom Grad n) und werden mit C n bezeichnet. Beispiel

Mehr

Vorlesung Datenstrukturen

Vorlesung Datenstrukturen Vorlesung Datenstrukturen Minimale Spannbäume Maike Buchin 18.7., 20.7.2017 Einführung Motivation: Verbinde Inseln mit Fähren oder Städte mit Schienen und verbrauche dabei möglichst wenig Länge. Problem:

Mehr

ADS: Algorithmen und Datenstrukturen 2

ADS: Algorithmen und Datenstrukturen 2 ADS: Algorithmen und Datenstrukturen 2 Teil 4 Prof. Dr. Gerhard Heyer Institut für Informatik Abteilung Automatische Sprachverarbeitung Universität Leipzig 24. April 2019 [Letzte Aktualisierung: 24/04/2019,

Mehr

Karlsruher Institut für Technologie Institut für Theoretische Informatik. Klausur Algorithmen I

Karlsruher Institut für Technologie Institut für Theoretische Informatik. Klausur Algorithmen I Vorname: Matrikelnummer: Karlsruher Institut für Technologie Institut für Theoretische Informatik Prof. Jörn Müller-Quade 4. September 2017 Klausur Algorithmen I Aufgabe 1. Kleinaufgaben 15 Punkte Aufgabe

Mehr

Algorithmen & Komplexität

Algorithmen & Komplexität Algorithmen & Komplexität Angelika Steger Institut für Theoretische Informatik steger@inf.ethz.ch Breitensuche, Tiefensuche Wir besprechen nun zwei grundlegende Verfahren, alle Knoten eines Graphen zu

Mehr

Vorkurs Informatik WiSe 16/17

Vorkurs Informatik WiSe 16/17 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

Mehr

Vorkurs Informatik WiSe 15/16

Vorkurs Informatik WiSe 15/16 Konzepte der Informatik Dr. Werner Struckmann / Stephan Mielke, Jakob Garbe, 20.10.2015 Technische Universität Braunschweig, IPS Inhaltsverzeichnis Schilda-Rallye Was steckt dahinter? Darstellung von Graphen

Mehr

Informatik II Prüfungsvorbereitungskurs

Informatik II Prüfungsvorbereitungskurs Informatik II Prüfungsvorbereitungskurs Tag 4, 23.6.2016 Giuseppe Accaputo g@accaputo.ch 1 Programm für heute Repetition Datenstrukturen Unter anderem Fragen von gestern Point-in-Polygon Algorithmus Shortest

Mehr

Am Dienstag, den 16. Dezember, ist Eulenfest. 1/45

Am Dienstag, den 16. Dezember, ist Eulenfest. 1/45 Am Dienstag, den 16. Dezember, ist Eulenfest. 1/45 Grundbegriffe der Informatik Einheit 12: Erste Algorithmen in Graphen Thomas Worsch Universität Karlsruhe, Fakultät für Informatik Wintersemester 2008/2009

Mehr

Name:... Vorname:... Matr.-Nr.:... Studiengang:...

Name:... Vorname:... Matr.-Nr.:... Studiengang:... Technische Universität Braunschweig Sommersemester 2011 IBR - Abteilung Algorithmik Prof. Dr. Sándor Fekete Christiane Schmidt Klausur Algorithmen und Datenstrukturen 01.09.2011 Name:.....................................

Mehr

Datenstrukturen und Algorithmen (SS 2013)

Datenstrukturen und Algorithmen (SS 2013) Datenstrukturen und Algorithmen (SS 2013) Übungsblatt 10 Abgabe: Montag, 08.07.2013, 14:00 Uhr Die Übungen sollen in Gruppen von zwei bis drei Personen bearbeitet werden. Schreiben Sie die Namen jedes

Mehr

Graphalgorithmen 2. Dominik Paulus Dominik Paulus Graphalgorithmen / 47

Graphalgorithmen 2. Dominik Paulus Dominik Paulus Graphalgorithmen / 47 Graphalgorithmen Dominik Paulus.0.01 Dominik Paulus Graphalgorithmen.0.01 1 / 7 1 Spannbäume Kruskal Prim Edmonds/Chu-Liu Datenstrukturen Fibonacci-Heap Union/Find Kürzeste Pfade Dijkstra Bellman-Ford

Mehr

Datenstrukturen und Algorithmen

Datenstrukturen und Algorithmen Prof. Dr. Erika Ábrahám Datenstrukturen und Algorithmen 1/1 Datenstrukturen und Algorithmen Vorlesung 14: Prof. Dr. Erika Ábrahám Theorie Hybrider Systeme Informatik 2 http://ths.rwth-aachen.de/teaching/ss-14/

Mehr

Grundbegriffe der Informatik

Grundbegriffe der Informatik Grundbegriffe der Informatik Einheit 11: Graphen Thomas Worsch Karlsruher Institut für Technologie, Fakultät für Informatik Wintersemester 2010/2011 1/59 Graphische Darstellung von Zusammenhängen schon

Mehr

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

Abgabe: (vor der Vorlesung) Aufgabe 2.1 (P) O-Notation Beweisen Sie die folgenden Aussagen für positive Funktionen f und g: TECHNISCHE UNIVERSITÄT MÜNCHEN FAKULTÄT FÜR INFORMATIK Lehrstuhl für Sprachen und Beschreibungsstrukturen SS 2009 Grundlagen: Algorithmen und Datenstrukturen Übungsblatt 2 Prof. Dr. Helmut Seidl, S. Pott,

Mehr

Informatik II: Algorithmen & Datenstrukturen. Blättern Sie nicht um bevor Sie dazu aufgefordert werden!

Informatik II: Algorithmen & Datenstrukturen. Blättern Sie nicht um bevor Sie dazu aufgefordert werden! Albert-Ludwigs-Universität Institut für Informatik Prof. Dr. F. Kuhn Informatik II: Algorithmen & Datenstrukturen Montag, 29. August, 2014, 14:00 17:00 Name:...........................................................

Mehr

Graphen. Definitionen

Graphen. Definitionen Graphen Graphen werden häufig als Modell für das Lösen eines Problems aus der Praxis verwendet, wie wir im Kapitel 1 gesehen haben. Der Schweizer Mathematiker Euler hat als erster Graphen verwendet, um

Mehr

Kapitel 10. Komplexität von Algorithmen und Sortieralgorithmen

Kapitel 10. Komplexität von Algorithmen und Sortieralgorithmen Kapitel 10 Komplexität von Algorithmen und Sortieralgorithmen Arrays 1 Ziele Komplexität von Algorithmen bestimmen können (in Bezug auf Laufzeit und auf Speicherplatzbedarf) Sortieralgorithmen kennenlernen:

Mehr

Datenstrukturen. Mariano Zelke. Sommersemester 2012

Datenstrukturen. Mariano Zelke. Sommersemester 2012 Datenstrukturen Mariano Zelke Sommersemester 2012 Tiefensuche: Die globale Struktur Der gerichtete oder ungerichtete Graph G werde durch seine Adjazenzliste A repräsentiert. Im Array besucht wird vermerkt,

Mehr

Informatik B Sommersemester Musterlösung zur Klausur vom

Informatik B Sommersemester Musterlösung zur Klausur vom Informatik B Sommersemester 007 Musterlösung zur Klausur vom 0.07.007 Aufgabe : Graphen und Graphalgorithmen + + + () Punkte Für eine beliebige positive, ganze Zahl n definieren wir einen Graphen G n =

Mehr

Grundlagen: Algorithmen und Datenstrukturen

Grundlagen: Algorithmen und Datenstrukturen Grundlagen: Algorithmen und Datenstrukturen Prof. Dr. Hanjo Täubig Lehrstuhl für Effiziente Algorithmen (Prof. Dr. Ernst W. Mayr) Institut für Informatik Technische Universität München Sommersemester 00

Mehr

Diskrete Strukturen Kapitel 4: Graphentheorie (Bäume)

Diskrete Strukturen Kapitel 4: Graphentheorie (Bäume) WS 2016/17 Diskrete Strukturen Kapitel 4: Graphentheorie (Bäume) Hans-Joachim Bungartz Lehrstuhl für wissenschaftliches Rechnen Fakultät für Informatik Technische Universität München http://www5.in.tum.de/wiki/index.php/diskrete_strukturen_-_winter_16

Mehr

Algorithmen und Datenstrukturen (für ET/IT)

Algorithmen und Datenstrukturen (für ET/IT) Algorithmen und Datenstrukturen (für ET/IT) Sommersemester 05 Dr. Tobias Lasser Computer Aided Medical Procedures Technische Universität München Programm heute Einführung Grundlagen von Algorithmen Grundlagen

Mehr

Wie wird ein Graph dargestellt?

Wie wird ein Graph dargestellt? Wie wird ein Graph dargestellt? Für einen Graphen G = (V, E), ob gerichtet oder ungerichtet, verwende eine Adjazenzliste A G : A G [i] zeigt auf eine Liste aller Nachbarn von Knoten i, wenn G ungerichtet

Mehr

Datenstrukturen und Algorithmen SS07

Datenstrukturen und Algorithmen SS07 Datenstrukturen und Algorithmen SS0 Datum:.6.200 Michael Belfrage mbe@student.ethz.ch belfrage.net/eth Programm von Heute Minimaler Spannbaum (MST) Challenge der Woche Fibonacci Heap Minimaler Spannbaum

Mehr

Informatik II, SS 2016

Informatik II, SS 2016 Informatik II - SS 208 (Algorithmen & Datenstrukturen) Vorlesung 4 (..208) Graphenalgorithmen III Algorithmen und Komplexität Bäume Gegeben: Zusammenhängender, ungerichteter Graph G = V, E Baum: Zusammenhängender,

Mehr

ADS: Algorithmen und Datenstrukturen 2

ADS: Algorithmen und Datenstrukturen 2 ADS: Algorithmen und Datenstrukturen 2 Teil 6 Prof. Dr. Gerhard Heyer Institut für Informatik Abteilung Automatische Sprachverarbeitung Universität Leipzig 16. Mai 2018 [Letzte Aktualisierung: 18/05/2018,

Mehr

Grundbegriffe der Informatik

Grundbegriffe der Informatik Grundbegriffe der Informatik Einheit 11: Graphen Thomas Worsch Universität Karlsruhe, Fakultät für Informatik Wintersemester 2008/2009 1/42 Graphische Darstellung von Zusammenhängen schon an vielen Stellen

Mehr

Informatik II, SS 2016

Informatik II, SS 2016 Informatik II - SS 2018 (Algorithmen & Datenstrukturen) Vorlesung 12 (4.6.2018) Graphenalgorithmen I Yannic Maus Algorithmen und Komplexität Graphen Knotenmenge V, typischerweise n V Kantenmenge E, typischerweise

Mehr

Klausur Algorithmen und Datenstrukturen

Klausur Algorithmen und Datenstrukturen Technische Universität Braunschweig Sommersemester 2013 IBR - Abteilung Algorithmik Prof. Dr. Sándor Fekete Dr. Christiane Schmidt Stephan Friedrichs Klausur Algorithmen und Datenstrukturen 22.08.2013

Mehr

Algorithmen und Datenstrukturen I. Grundlagen. Prof. Dr. Oliver Braun. Fakultät für Informatik und Mathematik Hochschule München

Algorithmen und Datenstrukturen I. Grundlagen. Prof. Dr. Oliver Braun. Fakultät für Informatik und Mathematik Hochschule München Algorithmen und Datenstrukturen I Fakultät für Informatik und Mathematik Hochschule München Letzte Änderung: 18.03.2018 18:16 Inhaltsverzeichnis Algorithmus..................................... 2 Problem

Mehr

3.2 Generischer minimaler Spannbaum-Algorithmus

3.2 Generischer minimaler Spannbaum-Algorithmus 3.2 Generischer minimaler Spannbaum-Algorithmus Initialisiere Wald F von Bäumen, jeder Baum ist ein singulärer Knoten (jedes v V bildet einen Baum) while Wald F mehr als einen Baum enthält do wähle einen

Mehr

1.Aufgabe: Minimal aufspannender Baum

1.Aufgabe: Minimal aufspannender Baum 1.Aufgabe: Minimal aufspannender Baum 11+4+8 Punkte v 1 v 2 1 3 4 9 v 3 v 4 v 5 v 7 7 4 3 5 8 1 4 v 7 v 8 v 9 3 2 7 v 10 Abbildung 1: Der Graph G mit Kantengewichten (a) Bestimme mit Hilfe des Algorithmus

Mehr

Betriebliche Optimierung

Betriebliche Optimierung Betriebliche Optimierung Joachim Schauer Institut für Statistik und OR Uni Graz Joachim Schauer ( Institut für Statistik und OR Uni Graz Betriebliche ) Optimierung 1 / 21 1 Approximationsalgorithmen auf

Mehr

Lösungen zu Kapitel 5

Lösungen zu Kapitel 5 Lösungen zu Kapitel 5 Lösung zu Aufgabe : (a) Es gibt derartige Graphen: (b) Offensichtlich besitzen 0 der Graphen einen solchen Teilgraphen. Lösung zu Aufgabe : Es sei G = (V, E) zusammenhängend und V

Mehr

Datenstrukturen und Algorithmen 2. Klausur SS 2001

Datenstrukturen und Algorithmen 2. Klausur SS 2001 UNIVERSITÄT PADERBORN FACHBEREICH 7 (MATHEMATIK INFORMATIK) Datenstrukturen und Algorithmen 2. Klausur SS 200 Lösungsansätze Dienstag, 8. September 200 Name, Vorname:...................................................

Mehr

Programmierkurs Python II

Programmierkurs Python II Programmierkurs Python II Stefan Thater & Michaela Regneri FR.7 Allgemeine Linguistik (Computerlinguistik) Universität des Saarlandes Sommersemester 011 Heute Ein wenig Graph-Theorie (in aller Kürze) Datenstrukturen

Mehr

Algorithmen und Datenstrukturen I Grundlagen

Algorithmen und Datenstrukturen I Grundlagen Algorithmen und Datenstrukturen I Grundlagen Prof. Dr. Oliver Braun Letzte Änderung: 01.11.2017 14:15 Algorithmen und Datenstrukturen I, Grundlagen 1/24 Algorithmus es gibt keine präzise Definition Handlungsvorschrift

Mehr

Seminar: Einladung in die Mathematik

Seminar: Einladung in die Mathematik Seminar: Einladung in die Mathematik Marius Kling 11.11.2013 Übersicht 1. Königsberger Brückenproblem 2. Diskrete Optimierung 3. Graphentheorie in der Informatik 4. Zufällige Graphen 5. Anwendungen von

Mehr

Freie Bäume und Wälder

Freie Bäume und Wälder (Martin Dietzfelbinger, Stand 4.6.2011) Freie Bäume und Wälder In dieser Notiz geht es um eine besondere Sorte von (ungerichteten) Graphen, nämlich Bäume. Im Gegensatz zu gerichteten Bäumen nennt man diese

Mehr

Informatik II, SS 2014

Informatik II, SS 2014 Informatik II SS 2014 (Algorithmen & Datenstrukturen) Vorlesung 16 (2.7.2014) Graphtraversierung II, Minimale Spannbäume I Algorithmen und Komplexität Tiefensuche: Pseusocode DFS Traversal: for all u in

Mehr

Diskrete Strukturen Kapitel 4: Graphentheorie (Grundlagen)

Diskrete Strukturen Kapitel 4: Graphentheorie (Grundlagen) WS 2015/16 Diskrete Strukturen Kapitel 4: Graphentheorie (Grundlagen) Hans-Joachim Bungartz Lehrstuhl für wissenschaftliches Rechnen Fakultät für Informatik Technische Universität München http://www5.in.tum.de/wiki/index.php/diskrete_strukturen_-_winter_15

Mehr

Graphenalgorithmen I

Graphenalgorithmen I Graphenalgorithmen I Vortrag im Seminar Hallo Welt! für Fortgeschrittene 7. Juni 211 Graphenalgorithmen I 1/33 Motivation Problem Wie komme ich am schnellsten ins Kanapee? Problem Wie kommt ein Datenpaket

Mehr

Betriebswirtschaftliche Optimierung

Betriebswirtschaftliche Optimierung Institut für Statistik und OR Uni Graz 1 Approximationsalgorithmen auf metrischen Instanzen Minimum Spanning Tree Definition (Spannbaum) Ein Spannbaum in einem Graphen G = (V,E) ist ein kreisfreier Teilgraph

Mehr

Algorithmen und Datenstrukturen

Algorithmen und Datenstrukturen Technische Universität München SoSe 2017 Fakultät für Informatik, I-16 Lösungsblatt 4 Dr. Stefanie Demirci 31. Mai 2017 Rüdiger Göbl, Mai Bui Algorithmen und Datenstrukturen Aufgabe 1 Komplexität Berechnung

Mehr

Datenstrukturen & Algorithmen Lösungen zu Blatt 11 FS 14

Datenstrukturen & Algorithmen Lösungen zu Blatt 11 FS 14 Eidgenössische Technische Hochschule Zürich Ecole polytechnique fédérale de Zurich Politecnico federale di Zurigo Federal Institute of Technology at Zurich Institut für Theoretische Informatik 14. Mai

Mehr