Mathe & Informatik II
|
|
- Monika Kaufman
- vor 7 Jahren
- Abrufe
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
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
MehrFerienkurs 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
MehrLernmodul 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
Mehr9 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
Mehr12. 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
MehrVorlesung 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)
MehrADS: 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,
MehrGraphen 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
MehrMinimal 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
MehrStud.-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 Graphen beschreiben Objekte und Beziehungen zwischen ihnen geeignet für Modellierung verschiedener Aufgaben betrachten endliche, ungerichtete und endliche, gerichtete Graphen Graphen bestehen
MehrAlgorithmen 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
MehrAlgo&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
MehrAlgorithmen 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 /
MehrTeil 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
MehrAlgorithmen 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-
MehrGraphdurchmusterung, 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,
MehrDatenstrukturen (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:
MehrEin 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
MehrGraphenalgorithmen 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
MehrKlausur 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
MehrGraphentheorie. 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
MehrGraphentheorie. 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
MehrProgramm 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
MehrTechnische 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
MehrADS: 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
MehrAlgorithmen & 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
MehrAlgorithmische 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
MehrAlgorithmen 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
MehrKarlsruher 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
MehrGraphentheorie 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,
MehrProgrammierkurs 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
MehrVorlesung 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!
MehrKlausur 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
MehrAlgorithmen & 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
Mehr10. Ü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
MehrAufgaben 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
Mehr3. 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
Mehr12. 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
MehrVorlesung 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
MehrInformatik 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
MehrStud.-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
MehrDatenstrukturen 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
Mehr2. 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
Mehr2. 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
MehrKlausur 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
MehrProseminar 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
MehrAlgorithmen 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:
MehrInformatik 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.
MehrQuicksort 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.
MehrAlgorithmische 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
Mehr1. 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
MehrBemerkung: 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
MehrVorlesung 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:
MehrADS: 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,
MehrKarlsruher 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
MehrAlgorithmen & 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
MehrVorkurs 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
MehrVorkurs 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
MehrInformatik 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
MehrAm 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
MehrName:... 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:.....................................
MehrDatenstrukturen 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
MehrGraphalgorithmen 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
MehrDatenstrukturen 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/
MehrGrundbegriffe 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
MehrAbgabe: (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,
MehrInformatik 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:...........................................................
MehrGraphen. 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
MehrKapitel 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:
MehrDatenstrukturen. 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,
MehrInformatik 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 =
MehrGrundlagen: 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
MehrDiskrete 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
MehrAlgorithmen 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
MehrWie 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
MehrDatenstrukturen 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
MehrInformatik 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,
MehrADS: 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,
MehrGrundbegriffe 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
MehrInformatik 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
MehrKlausur 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
MehrAlgorithmen 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
Mehr3.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
Mehr1.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
MehrBetriebliche 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
MehrLö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
MehrDatenstrukturen 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:...................................................
MehrProgrammierkurs 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
MehrAlgorithmen 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
MehrSeminar: 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
MehrFreie 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
MehrInformatik 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
MehrDiskrete 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
MehrGraphenalgorithmen 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
MehrBetriebswirtschaftliche 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
MehrAlgorithmen 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
MehrDatenstrukturen & 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