Algorithmen und Datenstrukturen

Ähnliche Dokumente
Algorithmen und Datenstrukturen. Große Übung vom Christiane Schmidt

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

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

Algorithmen und Datenstrukturen

36. Algorithmus der Woche Turnier- und Sportligaplanung

Diskrete Strukturen. Hausaufgabe 1 (5 Punkte) Hausaufgabe 2 (5 Punkte) Wintersemester 2007/08 Lösungsblatt Januar 2008

Algorithmen und Datenstrukturen

Diskrete Strukturen Kapitel 4: Graphentheorie (Bäume)

Lernmodul 7 Algorithmus von Dijkstra

Algorithmen und Datenstrukturen

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

Euler und Hamiltonkreise

Übung zur Vorlesung Diskrete Mathematik (MAT.107) Blatt Beispiellösungen Abgabefrist:

HA-Lösung TA-Lösung Diskrete Strukturen Hausaufgabenblatt 8. Abgabe bis zum um 12:00

15. Elementare Graphalgorithmen

Diskrete Strukturen. Hausaufgabe 1 (5 Punkte) Wintersemester 2007/08 Lösungsblatt Januar 2008

Vorlesung Datenstrukturen

WS 2015/16 Diskrete Strukturen Kapitel 4: Graphen (Planare Graphen, Färbung)

Zentralübung zur Vorlesung Diskrete Strukturen (Prof. Mayr)

3. Übung zur Vorlesung Planare Graphen

Klausur Algorithmen und Datenstrukturen

Graphen: Darstellungen, Isomorphie, Knotenfärbung

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

Klausur Algorithmen und Datenstrukturen

Diskrete Strukturen Kapitel 4: Graphentheorie (Grundlagen)

Graphentheorie. Formale Grundlagen (WIN) 2008S, F. Binder. Vorlesung im 2008S

Algorithmen und Datenstrukturen II

Diskrete Mathematik. Hamiltonsche Graphen Teil I. Karina Arndt

Vorlesung 1: Graphentheorie. Markus Püschel David Steurer. Algorithmen und Datenstrukturen, Herbstsemester 2018, ETH Zürich

ADS: Algorithmen und Datenstrukturen 2

Zentralübung zur Vorlesung Diskrete Strukturen (Prof. Esparza)

Tutoraufgabe 1 (Starke Zusammenhangskomponenten):

Graphen und Bäume. A.1 Graphen

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

Das Problem des Handlungsreisenden

Kapitel 1: Fallstudie Bipartite Graphen Gliederung der Vorlesung

3 Klassifikation wichtiger Optimierungsprobleme

Algorithmen und Datenstrukturen

WS 2009/10. Diskrete Strukturen

Zentralübung zur Vorlesung Diskrete Strukturen

Stud.-Nummer: Datenstrukturen & Algorithmen Seite 1

Einheit 11 - Graphen

Färbungen von Graphen: Die chromatische Zahl und der Satz von Brooks

Verteilen von Bällen auf Urnen

A Berlin, 10. April 2017

Der Fünffarbensatz Proseminar: Graphentheorie Sommersemester 2006 Isa Topac, Markus Kunder, Tim Hahn

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

Übung zur Vorlesung Diskrete Strukturen I

Vorlesung Datenstrukturen

Algorithmen für Planare Graphen

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

Diskrete Mathematik 1

Effizienter Planaritätstest Vorlesung am

Das Heiratsproblem. Definition Matching

5. Bäume und Minimalgerüste

Theorie der Informatik Übersicht. Theorie der Informatik SAT Graphenprobleme Routing-Probleme. 21.

Routing A lgorithmen Algorithmen Begriffe, Definitionen Wegewahl Verkehrslenkung

Nachbarschaft, Grad, regulär, Inzidenz

Kapitel 8: Bipartite Graphen Gliederung der Vorlesung

Vorlesung Datenstrukturen

Aufgabe Zusatz.1. Aufgabe Zusatz.2. Aufgabe Zusatz.3. Aufgabe Zusatz.4. HTWK Leipzig, Fakultät IMN Prof. Dr. Sibylle Schwarz

Programmiertechnik II

Algorithmen und Datenstrukturen Tutorium Übungsaufgaben

Kapitel 4: Minimale spannende Bäume Gliederung der Vorlesung

Graphentheorie 1. Diskrete Strukturen. Sommersemester Uta Priss ZeLL, Ostfalia. Hausaufgaben Graph-Äquivalenz SetlX

Graphentheorie. Eulersche Graphen. Eulersche Graphen. Eulersche Graphen. Rainer Schrader. 14. November Gliederung.

9: Gewichtete Graphen

Übungsblatt 2 - Lösung

Routing Algorithmen. Begriffe, Definitionen

Grundbegriffe der Informatik

Algorithmen und Datenstrukturen 2

6. Übung zur Linearen Optimierung SS08

Def. 1.1: Graph, Knoten, Kanten, adjazent. Notwendige Bedingungen für Isomorphie. Das 3-Brunnen Problem, der vollständige bipartite Graph K 3,3

Algorithmen und Datenstrukturen

Vorlesungstermin 2: Graphentheorie II. Markus Püschel David Steurer. Algorithmen und Datenstrukturen, Herbstsemester 2018, ETH Zürich

Grundzüge von Algorithmen und Datenstrukturen, WS 15/16: Lösungshinweise zum 13. Übungsblatt

Naiver Algorithmus für Hamiltonkreis

Aufgaben zur Klausurvorbereitung

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

Vorlesung 3: Graphenalgorithmen. Markus Püschel David Steurer Peter Widmayer. PDF download goo.gl/ym3spq

8. Übung Algorithmen I

Datenstrukturen & Algorithmen Lösungen zu Blatt 11 FS 14

durch Einfügen von Knoten konstruiert werden kann.

Vorlesung 2: Graphentheorie

Graphentheorie: Das Hamiltonische-Kreis-Problem: Definitionen, Resultate und Anwendungen

Transkript:

Algorithmen und Datenstrukturen Große Übung vom 01.11.2012 Christiane Schmidt

Diese Folien Braucht man nicht abzuschreiben Stehen im Netz unter www.ibr.cs.tu-bs.de/ courses/ws1213/aud/index.html

Mailingliste Natürlich auf: www.ibr.cs.tu-bs.de/courses/ ws1213/aud/index.html Name + Emailadresse + Passwort eintragen und absenden Mailingliste schickt E-Mail an die angegebene Adresse E-Mail der Mailingliste per Antworten zurückschicken. Fertig!

Hausaufgaben 5 Hausaufgabenblätter + (vorher) 2 unbewertete Übungsblätter 14-tägig auf www.ibr.cs.tu-bs.de/courses/ws1213/ aud/index.html Bearbeitungszeit: 14 Tage Abgabe: Mittwochs bis 11:25 vor dem IZ

Hausaufgaben 5 Hausaufgabenblätter + (vorher) 2 unbewertete Übungsblätter 14-tägig auf www.ibr.cs.tu-bs.de/courses/ws1213/ aud/index.html Bearbeitungszeit: 14 Tage Abgabe: Mittwochs bis 11:25 vor dem IZ Rückgabe: in den kleinen Übungen 50% der Hausaufgabenpunkte sind Voraussetzung für Studienleistung

Große Übung Aufarbeitung des Vorlesungsstoffes An manchen Stellen auch Vertiefung des Stoffes Ihr könnt Themen mitbestimmen! Dazu einfach eine E-Mail an mich. Fragen stellen ausdrücklich erlaubt!

Übersicht über das Semester KW VL - Nr. (Di+Mi) Gr. UE (Do) Kl. UE (Mi+Do+Fr) HA Ausgabe (Mi abends) HA Abgabe (Mi bis 11:25 Uhr) HA Rückgabe (in kl. UE) 42 - - - 43 1, 2 44 3, 4 1 UE_0 *, UE_0B* 45 5, 6 2 1 HA_1 UE_0 * 46 7, 8 47 9, 10 3 2 HA_2 HA_1 UE_0B * 48 11, 12 4 49 13, 14 3 HA_3 HA_2 HA_1 50 15,16 5 51 17,18 6 4 HA_4 HA_3 HA_2 52 Weihnachtsferien 1 2 19, 20 5 HA_3 3 21,22 7 HA_5 HA_4 4 23,24 8 6 HA_4 5 25,26 9 7 HA_5 HA_5 *Bearbeitung in den ersten kleinen Übungen; keine Bewertung

Klausur Termin: 19.02.2013

Das Rundreise-Problem

Fortsetzung der Rundreise Problem: Finde eine Rundreise, (d.h. eine Route die jeden Ort besucht und zum Startort zurückkehrt) die möglichst kurz ist.

Fortsetzung der Rundreise

Fortsetzung der Rundreise Wie funktioniert map24.de? Man kann zwischen den Städten beliebig hin und her reisen.

Phase 1: Modellierung Zur Modellierung kann man Graphen benutzen Ein Graph G besteht aus Knoten und Kanten

Fortsetzung der Rundreise Phase 1: Modellierung Knoten: Hamburg Berlin Braunschweig Leipzig Kanten: Hamburg, Berlin BS, Berlin BS, Leipzig Typische Schreibweise

Phase 2: Datenstruktur Daten in geeigneter Form an den Computer übergeben Was sind die relevanten Daten in dem Problem? Städte Verbindungen Entfernungen

Phase 2: Datenstruktur Bald in dieser Eine anwendbare Datenstruktur sind z.b. Listen Speichere alle benachbarten Orte in einer Liste BS_Nb: (Hamburg, Leipzig, Münster, Frankfurt, ) Die Entfernungen in einer anderen: Vorlesung BS_Ent: (220, 200, 250, )

Phase 3: Algorithmen Es ist schwierig die beste Lösung zu finden Aber man kann schnell ziemlich gute finden Algorithmus: Bald in dieser Vorlesung Wähle bel. Startort Gehe zum nächstgelegenen Ort außer, dieser ist bereits besucht

Turnierplanung

Szenario n Spieler einer Mannschaft sollen nach Spielstärke aufgestellt werden Dazu: Turnier jeder gegen jeden Pro Abend spielt jeder Spieler ein Spiel Frage: wie viele Abende werden benötigt?

Anzahl Sei n=6 (wir haben 6 Spieler) Jeder Spieler muss genau einmal gegen jeder der 5 anderen Spieler antreten Damit: 6*5/2 = 15 Spiele zu absolvieren (denn: Spiel i gegen j würde für beide Spieler gezählt werden -->*1/2) Da jeder Spieler ein Spiel am Abend: 3 Spiele pro Abend 15/3=5 Abende werden benötigt

Erster Ansatz: einfach Spielen 1. Abend 2. Abend 3. Abend 1-2 1-3 1-4 3-5 2-6 2-5 4-6 4-5 3-6 Aber: restlichen 6 Spielpaarungen nicht an 2 Abenden!! (1-5 kann weder mit 1-6 noch 5-6 parallel ausgetragen werden) 4. Abend 5. Abend 6. Abend 1-5 1-6 5-6 Hier muss auch je ein 2-3 2-4 3-4 Spieler aussetzen!!

Wir modellieren das Problem mit Hilfe eines Graphen: Knoten: jeder Spieler Kanten: Spiele Für n=6: Graphen in denen jeder Knoten mit jedem verbunden ist heißen vollständig

Ansatz: Färben Wir färben die Kanten mit den Farben 1,, n-1 Jede Farbe entspricht einer Runde Färbung zulässig wenn sie zulässigem Spielplan entspricht Alle Kanten, die in gleich Knoten führen, müssen unterschiedlich gefärbt sein!!

Wie Färben? 1. Bilde aus den Knoten 1,, n-1 ein regelmäßiges (n-1)-eck und platziere den Knoten n links oben neben dem (n-1)-eck 2. Verbinden den Knoten mit der Spitze des (n-1)-ecks 3. Verbinde die übrigen Knoten jeweils mit dem gegenüberliegenden Knoten auf der gleichen Höhe im (n-1)-eck 4. Die eingefügten n/2 Kanten werden mit der ersten Farbe gefärbt

6 Wie Färben? 1 1. Bilde aus den Knoten 1,, n-1 ein regelmäßiges (n-1)-eck und 5 platziere den Knoten n links oben neben dem (n-1)-eck 2 2. Verbinden den Knoten mit der Spitze des (n-1)-ecks 3. Verbinde die übrigen Knoten 4jeweils mit 3 dem gegenüberliegenden Knoten auf der gleichen Höhe im (n-1)-eck 4. Die eingefügten n/2 Kanten werden mit der ersten Farbe gefärbt

Wie Färben? (Fortsetzung) 1. Verschiebe die Knoten 1,, n-1 des (n-1) Ecks gegen den Uhrzeigersinn zyklisch um eine Position weiter. Der Knoten n behält seinen Platz neben dem (n-1) Eck, und die in Schritten 2 und 3 eingefügten Kanten behalten ihre Positionen im (n-1) Eck. 2. Die neu resultierenden n/2 Kanten werden mit der zweiten Farbe gefärbt 3.Die Schritte 5 und 6 werden für die Farben 3,, n-1 wiederholt

Wie Färben? 6 (Fortsetzung) 6 1. Verschiebe 1 die Knoten 1,, n-1 des 2 (n-1) Ecks gegen den Uhrzeigersinn zyklisch um eine Position weiter. Der Knoten n behält 5 seinen Platz neben 2 dem (n-1) 1 Eck, und die in 3 Schritten 2 und 3 eingefügten Kanten behalten ihre Positionen im (n-1) Eck. 2. Die 4 neu resultierenden 3 n/2 Kanten 5 werden 4 mit der zweiten Farbe gefärbt usw. 3.Die Schritte 5 und 6 werden für die Farben 3,, n-1 wiederholt

Wieso funktioniert dieser Algorithmus? Beobachtung: Entfernen wir Knoten 6 und alle 5 seiner Kanten, erhalten wir 5-Eck, in dem alle 5 Kanten auf dem Rand unterschiedlich gefärbt

Wieso funktioniert dieser Algorithmus? Beobachtung 2: Betrachten wir dies als regelmäßiges 5-Eck, fällt auf, dass jede Kante im Inneren die gleiche Farbe hat, wie die parallele Kante auf Rand.

Wieso funktioniert dieser Algorithmus? Wenn immer nur parallele Kanten die gleiche Farbe haben, die ja nicht in den gleichen Knoten führen, ist unsere Zulässigkeitsbedingung erfüllt Und: an jedem der 5 Knoten werden 4 Farben verwendet dabei jeweils eine andere, die für die Verbindung zu Knoten 6 verwendet werden kann

Einfachere Formulierung Oben: wir müssten (n-1)-ecke speichern Geht das einfacher? Dazu: Modulo-Rechnung (Division mit Rest)

Division mit Rest Zwei natürliche Zahlen a und b sollen mit Rest dividiert werden, d.h., man sucht eine Darstellung: a = b*n + r Die Modulofunktion ordnet zwei Zahlen den Teilerrest zu also: a mod b = r Beispiele: 19 mod 7 = 5, denn: 19=2*7+5 37 mod 17 = 3, denn: 37= 2*17 + 3

Einfachere Formulierung 1. Für alle Farben 2. Färbe die Kante [i,n] mit der Farbe i 3. Für k=1,, n/2-1 färbe alle Kanten [(i+k) mod (n-1), (i-k) mod (n-1)] mit der Farbe i. Da unsere Knoten von 1,...,n-1 durchnummeriert sind (und nicht von 0,1,...,n-2), wird der Rest 0 als n-1 interpretiert.

Was haben wir gesehen? Es lohnt sich über Algorithmen nachzudenken ( statt (n-1)-ecke mit zyklischer Verschiebung, Modulo-Rechnung) Pseudo-Code: 1. Für alle Farben 2. Färbe die Kante [i,n] mit der Farbe i 3. Für k=1,, n/2 färbe alle Kanten [(i+k) mod (n-1), (i-k) mod (n-1)] mit der Farbe i.

Graphen v1 v2 v1 v4 v3 v4 v2 v5 v6 v3 v7 v8 v10 v7 v6 v5 v9 v10 G1 v9 v8 G2

Graphen v1 v2 v1 v4 v3 v4 v2 v5 v6 v3 v7 v8 v10 v7 v6 v5 v9 v10 G1 v9 v8 Sind G1 und G2 gleich? G2 Einbettung ist unterschiedlich! => Graph kann unterschiedlich aussehen!

Graphen v1 v3 v5 v7 v2 v4 v6 v8 Knotenmenge: V={v1,v2,v3,v4,v5,v6,v7,v8,v9,v10} n= V =10 Kantenmenge: E={e1,2; e1,4; e1,10;...} m= E =15 v9 v10 keine parallelen Kanten, keine Schleifen => einfach! G1 adjazent zu v7: v2, v6, v8, v10 inzident zu v7: e2,7; e6,7; e7,8; e7,10

Graphen v1 v3 v5 v7 v9 v2 v4 v6 v8 v10 Grad von v7: δ(v7)=4 Teilgraph: H=(V, {e1,2; e2,3; e3,6; e2,7; e3,4; e5,6; e7,8; e8,9; e9,10}) ist aufspannend Kantenfolge: v2; e2,3; v3; e3,6; v6; e6,7; v7; e7,2; v2; e2,3; v3; e3,4; v4 ist kein Weg! (e2,3 zweimal) Weg: e2,3; e3,6; e6,7; e7,2; e2,1 G1 ist kein Pfad! (v2 doppelt!) Pfad: e1,2; e2,3; e3,6; e6,5; e5,8; e8,9; e9,10 Kreis: e1,2; e2,3; e3,6; e6,5; e5,8; e8,9; e9,10; e10,1

Graphen v1 v3 v5 v7 v9 v2 v4 v6 v8 v10 Eulerweg? gibt es nicht! (max 2 Knoten unger. Grad) Eulertour? gibt es nicht! Hamiltonpfad: e1,2; e2,3; e3,4; e4,5; e5,6; e5,7; e7,8; e8,9; e9,10 Hamiltonkreis: e1,2; e2,3; e3,4; e4,5; e5,6; e5,7; e7,8; e8,9; e9,10; e10,1 G1 Graph ist zusammenhängend

nächste Übung in 1 Woche Schönes Wochenende.