Algorithmen und Datenstrukturen (für ET/IT)
|
|
- Benedict Ursler
- vor 6 Jahren
- Abrufe
Transkript
1 Algorithmen und Datenstrukturen (für ET/IT) Sommersemester 07 Dr. Stefanie Demirci Computer Aided Medical Procedures Technische Universität München
2 Programm heute Einführung Grundlagen von Algorithmen Grundlagen von Datenstrukturen 4 Grundlagen der Korrektheit von Algorithmen 5 Grundlagen der Effizienz von Algorithmen 6 Grundlagen des Algorithmen-Entwurfs Entwurfsprinzipien Divide and Conquer Greedy-Algorithmen Backtracking Dynamisches Programmieren
3 Algorithmen-Entwurf Entwurfsprinzipien: Verfeinerung Algorithmen-Muster Algorithmen-Muster: Divide and Conquer (letzte Stunde) Greedy-Algorithmen Backtracking Dyanmisches Programmieren 4
4 Algorithmen-Muster: Greedy greedy = gierig, gefräßig Greedy Prinzip: Lösung eines Problems durch schrittweise Erweiterung der Lösung ausgehend von Startlösung in jedem Schritt wähle den bestmöglichen Schritt (ohne Berücksichtigung zukünftiger Schritte) greedy gefundene Lösung muss nicht immer optimal sein! 5
5 Algorithmen-Muster: Greedy Greedy-Muster als Pseudocode: Input: Aufgabe A Greedy(A): while (A nicht gelöst) { wähle bestmöglichen Schritt; // Greedy Strategie baue Schritt in Lösung ein; } 6
6 Greedy: Beispiel Wechselgeld I Problem: Herausgabe von Wechselgeld Voraussetzung: übliche Euro-Münzen e, e, 50c, 0c, 0c, 5c, c und c Aufgabe: Wechselgeld-Herausgabe mit möglichst wenig Münzen Beispiel: Preis e., bezahlt mit e Münze. Wechselgeld: 89c Minimum Anzahl Münzen: 6 89c = 50c +0c +0c +5c +c +c 7
7 Greedy: Beispiel Wechselgeld II Greedy-Algorithmus: Input: Betrag b Wechselgeld(b): ausgegeben = 0; while (ausgegeben < b) { wähle größte Münze s mit ausgegeben+s b; // greedy print(s); ausgegeben += s; } Achtung: Abhängig vom Geldsystem liefert dieser Algorithmus nicht immer die optimale Lösung! Beispiel: Münzen 5c, 4c, c. Betrag: 8c Greedy-Lösung: 8c = 5c + c + c + c Optimale Lösung: 8c = 4c + 4c 8
8 Von Greedy lösbare Probleme Voraussetzungen für Anwendbarkeit von Greedy: feste Menge von Eingabewerten Lösungen werden aus Eingabewerten aufgebaut Lösungen lassen sich schrittweise durch Hinzufügen von Eingabewerten aufbauen, beginnend bei leerer Lösung Bewertungsfunktion für partielle und vollständige Lösung Gesucht wird eine/die optimale Lösung 9
9 Anwendung Greedy: Glasfasernetz Problemstellung: Aufbau von möglichst billigem Glasfasernetz zwischen n Knoten K,...,K n, so daß alle Knoten miteinander verbunden sind (u.u. mit Umweg) Input: Knoten K,...,K n Kosten d ij > 0 für direkte Verbindung zwischen K i und K j für i j, i,j {,...,n} K 6 K K K K 5 8 Output: Teilmenge aller Verbindungen, so daß alle Knoten verbunden sowie minimale Kosten 0
10 Glasfasernetz: Beispiel I K 6 K K 5 8 K 5 K Knoten K,...,K 5 Kosten d ij repräsentiert als gewichteter, ungerichteter Graph (Kapitel 7)
11 Glasfasernetz: Beispiel II K 6 K 4 K K 5 K Startknoten: K beste Verbindung: zu K, Kosten andere Kosten: 7 (zu K ), 0 (zu K 4 ), 5 (zu K 5 )
12 Glasfasernetz: Beispiel III K 6 K 4 K K 5 K nächst-beste Verbindung von {K,K }: zu K, Kosten andere Kosten: 8 (zu K 4 ), (zu K 5 ), 7 (zu K )
13 Glasfasernetz: Beispiel IV K 6 K 4 K K 5 K nächst-beste Verbindung von {K,K,K }: zu K 5, Kosten andere Kosten: 6 bzw. 8 (zu K 4 ) 4
14 Glasfasernetz: Beispiel V K 6 K 4 K K 5 K nächst-beste Verbindung von {K,K,K,K 5 }: zu K 4, Kosten 6 alle Knoten behandelt, Algorithmus fertig 5
15 Glasfasernetz: Beispiel VI K 7 0 K 5 6 K 8 K K 5 K 6 K K K 5 K 4 Ergebnis: ein sog. minimaler Spannbaum (minimum spanning tree, MST) vom Graphen 6
16 Glasfasernetz: Algorithmus Input: Feld von Knoten K (Länge n), Kostenfunktion d(i, j) Output: minimaler Spannbaum B Glasfasernetz(K, d): B = {K }; // Startlösung while (B nicht Spannbaum von {K,...,K n }) { suche billigste Kante, die aus B rausgeht; // Greedy Schritt füge entsprechenden Knoten und Kante zu B hinzu; } Komplexität naiver Implementation: O(n ) geht besser, s. Kapitel 9 7
17 Programm heute Einführung Grundlagen von Algorithmen Grundlagen von Datenstrukturen 4 Grundlagen der Korrektheit von Algorithmen 5 Grundlagen der Effizienz von Algorithmen 6 Grundlagen des Algorithmen-Entwurfs Entwurfsprinzipien Divide and Conquer Greedy-Algorithmen Backtracking Dynamisches Programmieren 8
18 Algorithmen-Muster: Backtracking Backtracking: systematische Suchtechnik, um vorgegebenen Lösungsraum vollständig abzuarbeiten Paradebeispiel: Labyrinth. Wie findet Maus den Käse? 9
19 Backtracking: Labyrinth I Problem: Wie findet Maus den Käse? Lösung: systematisches Abgehen des Labyrinths Zurückgehen falls Sackgasse (daher: Backtracking) trial and error 0
20 Backtracking: Labyrinth II Mögliche Wege repräsentiert als Baum: (,) (,) (,) (,) (,) (,) (,) (,) (,)
21 Algorithmen-Muster: Backtracking Voraussetzungen: Lösungs(teil)raum repräsentiert als Konfiguration K K 0 ist Start-Konfiguration jede Konfiguration K i kann direkt erweitert werden für jede Konfiguration ist entscheidbar, ob Lösung Input: Konfiguration K Backtrack(K): if (K ist Lösung) { gib K aus; } else { for each (direkte Erweiterung K von K) { Backtrack(K ); } } initialer Aufruf mittels Backtrack(K 0 )
22 Backtracking: Konfigurationen (,) (,) (,) (,) (,) (,) (,) (,) (,) Konfiguration z.b. repräsentiert als Pfad im Baum
23 Backtracking: Eigenschaften Terminierung von Backtracking: nur wenn Lösungsraum endlich nur wenn sichergestellt daß Konfigurationen nicht wiederholt getestet werden Komplexität von Backtracking: direkt abhängig von Größe des Lösungsraums meist exponentiell, also O( n ), oder schlimmer! nur für kleine Probleme wirklich anwendbar Alternative: Begrenzung der Rekursionstiefe dann Auswahl der bis dahin besten Lösung z.b. für Schach-Programme 4
24 Backtracking Beispiel: Traveling Salesman Traveling Salesman Problem: n Städte finde kürzeste Rundreise, die alle Städte exakt einmal besucht außer Start- und Zielort (identisch) K 6 K 4 K K 5 K Lösung z.b. mit Algorithmen-Muster Backtracking 5
25 Traveling Salesman Problem: Algorithmus mit Backtracking Input: n Städte, Rundreise trip TSP(trip): if (trip besucht jede Stadt) { erweitere trip um Reise zum Startort; gebe trip und die Kosten aus; } else { for each (bislang unbesuchte Stadt s) { trip = trip erweitert um s; TSP(trip ); } } 6
26 Traveling Salesman Problem: Beispiel K 6 K K 5 8 K 5 K bei n Städten mit fixiertem Start-/Zielort gibt es (n )! Rundreisen hier: 5 Städte 4! = 4 Rundreisen Laufzeit von TSP hier ist O ( (n )! ) hier: kürzeste Rundreise hat Länge z.b. über Route K K K K 4 K 5 K 7
27 Backtracking Beispiel: Acht-Damen-Problem Acht-Damen-Problem: suche alle Konfigurationen von 8 Damen auf Schachbrett so daß keine Dame eine andere bedroht Dame auf Schachbrett: A B C D E F G H A B C D E F G H 8
28 Acht-Damen-Problem Zwei der möglichen Lösungen: A B C D E F G H H G F E D C B A A B C D E F G H H G F E D C B A Beobachtung: jeweils nur eine Dame pro Zeile/Spalte Lösung z.b. mit Algorithmen-Muster Backtracking 9
29 Acht-Damen-Problem: Algorithmus mit Backtracking Input: Zeilenindex i AchtDamen(i): for h = to 8 { // probiere alle Spalten aus if (Feld in Zeile i, Spalte h nicht bedroht) { setze Dame auf Feld (i,h); if (Brett voll) { // i == 8 gib Lösung aus; } AchtDamen(i +); nimm Dame von Feld (i,h) wieder weg; } } 0
30 Acht-Damen-Problem: Illustration
31 Acht-Damen-Problem es gibt 9 Lösungen für das Acht-Damen-Problem das Problem läßt sich auf n Damen auf einem n n Schachbrett ausweiten Anzahl Lösungen wächst stark z.b. für n = gibt es 77 Lösungen ähnliche Spiele, wie z.b. Sudoku, lassen sich entsprechend lösen
32 Programm heute Einführung Grundlagen von Algorithmen Grundlagen von Datenstrukturen 4 Grundlagen der Korrektheit von Algorithmen 5 Grundlagen der Effizienz von Algorithmen 6 Grundlagen des Algorithmen-Entwurfs Entwurfsprinzipien Divide and Conquer Greedy-Algorithmen Backtracking Dynamisches Programmieren
33 Dynamisches Programmieren Dynamisches Programmieren einsetzbar für Probleme, deren optimale Lösung sich aus optimalen Lösungen von Teilproblemen zusammensetzt (z.b. Rekursion) Optimalitätsprinzip von Bellman Prinzip: statt Rekursion berechnet man vom kleinsten Teilproblem aufwärts Zwischenergebnisse werden in Tabellen gespeichert 4
34 Fibonacci Zahlen Fibonacci Folge Die Fibonacci Folge ist eine Folge natürlicher Zahlen f,f,f,..., für die gilt f n = f n +f n für n mit Anfangswerten f =, f =. eingesetzt von Leonardo Fibonacci zur Beschreibung von Wachstum einer Kaninchenpopulation Folge lautet:,,,, 5, 8,,, 4, 55, 89,... berechenbar z.b. via Rekursion 5
35 Fibonacci Funktion Input: Index n der Fibonacci Folge Output: Wert f n fib(n): if (n == n == ) { return ; } else { return fib(n ) + fib(n ); } Aufrufstruktur für fib(5): fib(5) fib(4) fib() fib() fib() fib() fib() fib() fib() Beobachtung: Komplexität ist O( n ) gleicher Funktionswert wird mehrfach berechnet! z.b. x fib(), x fib(), x fib() dynamisches Programmieren 6
36 Fibonacci Funktion: dynamisch programmiert Prinzip dynamisches Programmieren: vom kleinsten Teilproblem aufwärts Zwischenergebnisse in Tabelle Input: Index n der Fibonacci Folge Output: Wert f n FibDyn(n): fib = leeres Feld Größe n+; // Tabelle fib[] = ; // kleinstes Teilproblem fib[] = ; // kleinstes Teilproblem for k = to n { fib[k] = fib[k-] + fib[k-]; // Rekursion aufwärts } return fib[n]; Komplexität dynamisch programmiert: O(n) 7
37 Zusammenfassung Einführung Grundlagen von Algorithmen Grundlagen von Datenstrukturen 4 Grundlagen der Korrektheit von Algorithmen 5 Grundlagen der Effizienz von Algorithmen 6 Grundlagen des Algorithmen-Entwurfs Entwurfsprinzipien Divide and Conquer Greedy-Algorithmen Backtracking Dynamisches Programmieren 8
Dynamische Programmierung. Problemlösungsstrategie der Informatik
als Problemlösungsstrategie der Informatik und ihre Anwedung in der Diskreten Mathematik und Graphentheorie Fabian Cordt Enisa Metovic Wissenschaftliche Arbeiten und Präsentationen, WS 2010/2011 Gliederung
MehrBabeș-Bolyai Universität Cluj Napoca Fakultät für Mathematik und Informatik Grundlagen der Programmierung MLG5005. Paradigmen im Algorithmenentwurf
Babeș-Bolyai Universität Cluj Napoca Fakultät für Mathematik und Informatik Grundlagen der Programmierung MLG5005 Paradigmen im Algorithmenentwurf Problemlösen Problem definieren Algorithmus entwerfen
MehrEinführung in Heuristische Suche
Einführung in Heuristische Suche Beispiele 2 Überblick Intelligente Suche Rundenbasierte Spiele 3 Grundlagen Es muss ein Rätsel / Puzzle / Problem gelöst werden Wie kann ein Computer diese Aufgabe lösen?
MehrEinstieg in die Informatik mit Java
1 / 20 Einstieg in die Informatik mit Java Rekursion Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 20 1 Überblick 2 Rekursion 3 Rekursive Sortieralgorithmen 4 Backtracking
MehrAlgorithmen und Datenstrukturen 1 Kapitel 3
Algorithmen und Datenstrukturen 1 Kapitel 3 Technische Fakultät robert@techfak.uni-bielefeld.de Vorlesung, U. Bielefeld, Winter 2005/2006 3.6 Dynamische Programmierung Die rekursive Problemzerlegung kann
MehrAlgorithmen und Datenstrukturen
Algorithmen und Datenstrukturen Werner Struckmann Wintersemester 2005/06 9. Entwurf von Algorithmen 9.1 Einführung 9.2 Teile-und-Beherrsche-Algorithmen 9.3 Gierige Algorithmen 9.4 Backtracking-Algorithmen
MehrDatenbankanwendung. Prof. Dr.-Ing. Sebastian Michel TU Kaiserslautern. Wintersemester 2014/15. smichel@cs.uni-kl.de
Datenbankanwendung Wintersemester 2014/15 Prof. Dr.-Ing. Sebastian Michel TU Kaiserslautern smichel@cs.uni-kl.de Wiederholung: Anfragegraph Anfragen dieses Typs können als Graph dargestellt werden: Der
MehrProgrammieren, Algorithmen und Datenstrukturen II 8. Allgemeine Lösungsverfahren
Programmieren, Algorithmen und Datenstrukturen II 8. Allgemeine Lösungsverfahren 1 Übersicht 1. Ziele des Kapitels 2. Bereits behandelte Lösungsstrategien 3. Backtracking 4. Branch-and-Bound 5. Weiterführende
MehrEntscheidungsbäume. Definition Entscheidungsbaum. Frage: Gibt es einen Sortieralgorithmus mit o(n log n) Vergleichen?
Entscheidungsbäume Frage: Gibt es einen Sortieralgorithmus mit o(n log n) Vergleichen? Definition Entscheidungsbaum Sei T ein Binärbaum und A = {a 1,..., a n } eine zu sortierenden Menge. T ist ein Entscheidungsbaum
Mehr4 Greedy-Algorithmen (gierige Algorithmen)
Greedy-Algorithmen (gierige Algorithmen) Greedy-Algorithmen werden oft für die exakte oder approximative Lösung von Optimierungsproblemen verwendet. Typischerweise konstruiert ein Greedy-Algorithmus eine
MehrGraphen: Datenstrukturen und Algorithmen
Graphen: Datenstrukturen und Algorithmen Ein Graph G = (V, E) wird durch die Knotenmenge V und die Kantenmenge E repräsentiert. G ist ungerichtet, wenn wir keinen Start- und Zielpunkt der Kanten auszeichnen.
MehrAlgorithmen und Datenstrukturen 2
Algorithmen und Datenstrukturen 2 Sommersemester 2006 5. Vorlesung Peter F. Stadler Universität Leipzig Institut für Informatik studla@bioinf.uni-leipzig.de Wdhlg.: Dijkstra-Algorithmus I Bestimmung der
MehrDynamisches Programmieren - Problemstruktur
Dynamisches Programmieren - Problemstruktur Optimale Substruktur: Optimale Lösung enthält optimale Lösungen von Teilproblemen. Bsp.: Kürzester Weg im Graphen, LCS (s. etwa Folie 42 der letzten Vorlesung)
MehrAlgorithmen und Datenstrukturen 2
Algorithmen und Datenstrukturen 2 Sommersemester 2006 3. Vorlesung Peter F. Stadler Universität Leipzig Institut für Informatik studla@bioinf.uni-leipzig.de Algorithmen für Graphen Fragestellungen: Suche
MehrDatenstrukturen und Algorithmen SS07
Datenstrukturen und Algorithmen SS07 Datum: 27.6.2007 Michael Belfrage mbe@student.ethz.ch belfrage.net/eth Programm von Heute Online Algorithmen Update von Listen Move to Front (MTF) Transpose Approximationen
MehrUninformierte Suche in Java Informierte Suchverfahren
Uninformierte Suche in Java Informierte Suchverfahren Stephan Schwiebert WS 2009/2010 Sprachliche Informationsverarbeitung Institut für Linguistik Universität zu Köln Suchprobleme bestehen aus Zuständen
MehrProgrammierung 2. Dynamische Programmierung. Sebastian Hack. Klaas Boesche. Sommersemester 2012. hack@cs.uni-saarland.de. boesche@cs.uni-saarland.
1 Programmierung 2 Dynamische Programmierung Sebastian Hack hack@cs.uni-saarland.de Klaas Boesche boesche@cs.uni-saarland.de Sommersemester 2012 2 Übersicht Stammt aus den Zeiten als mit Programmierung
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
MehrSuche in Spielbäumen Spielbäume Minimax Algorithmus Alpha-Beta Suche. Suche in Spielbäumen. KI SS2011: Suche in Spielbäumen 1/20
Suche in Spielbäumen Suche in Spielbäumen KI SS2011: Suche in Spielbäumen 1/20 Spiele in der KI Suche in Spielbäumen Spielbäume Minimax Algorithmus Alpha-Beta Suche Einschränkung von Spielen auf: 2 Spieler:
MehrEffiziente Algorithmen und Datenstrukturen I. Kapitel 9: Minimale Spannbäume
Effiziente Algorithmen und Datenstrukturen I Kapitel 9: Minimale Spannbäume Christian Scheideler WS 008 19.0.009 Kapitel 9 1 Minimaler Spannbaum Zentrale Frage: Welche Kanten muss ich nehmen, um mit minimalen
Mehr5.2 Das All-Pairs-Shortest-Paths-Problem (APSP-Problem) Kürzeste Wege zwischen allen Knoten. Eingabe: Gerichteter Graph G =(V, E, c)
5.2 Das All-Pairs-Shortest-Paths-Problem (APSP-Problem) Kürzeste Wege zwischen allen Knoten. Eingabe: Gerichteter Graph G =(V, E, c) mit V = {1,...,n} und E {(v, w) 1 apple v, w apple n, v 6= w}. c : E!
Mehr7. Übung zu Algorithmen und Datenstrukturen
7. Übung zu Algorithmen und Datenstrukturen Dynamisches Programmieren Greedy Algorithms Exceptions 1 Dynamische Programmierung nutzt gezielt aus, dass man bei manchen Problemen den Rechenaufwand extrem
Mehr16. All Pairs Shortest Path (ASPS)
. All Pairs Shortest Path (ASPS) All Pairs Shortest Path (APSP): Eingabe: Gewichteter Graph G=(V,E) Ausgabe: Für jedes Paar von Knoten u,v V die Distanz von u nach v sowie einen kürzesten Weg a b c d e
MehrVorlesung 4 BETWEENNESS CENTRALITY
Vorlesung 4 BETWEENNESS CENTRALITY 101 Aufgabe! Szenario: Sie arbeiten bei einem sozialen Online-Netzwerk. Aus der Netzwerk-Struktur Ihrer Benutzer sollen Sie wichtige Eigenschaften extrahieren. [http://www.fahrschule-vatterodt.de/
MehrDatenstrukturen & Algorithmen
Datenstrukturen & Algorithmen Matthias Zwicker Universität Bern Frühling 2010 Übersicht Binäre Suchbäume Einführung und Begriffe Binäre Suchbäume 2 Binäre Suchbäume Datenstruktur für dynamische Mengen
MehrS=[n] Menge von Veranstaltungen J S kompatibel mit maximaler Größe J
Greedy-Strategie Definition Paradigma Greedy Der Greedy-Ansatz verwendet die Strategie 1 Top-down Auswahl: Bestimme in jedem Schritt eine lokal optimale Lösung, so dass man eine global optimale Lösung
MehrWissensbasierte Systeme
WBS3 Slide 1 Wissensbasierte Systeme Sebastian Iwanowski FH Wedel Kap. 3: Algorithmische Grundlagen der KI WBS3 Slide 2 Suchstrategien Warum sind Suchstrategien so wichtig in Wissensbasierten Systemen?
MehrAlgorithmen und Datenstrukturen 2
Algorithmen und Datenstrukturen 2 Sommersemester 2007 4. Vorlesung Peter F. Stadler Universität Leipzig Institut für Informatik studla@bioinf.uni-leipzig.de Traversierung Durchlaufen eines Graphen, bei
Mehr23.1 Constraint-Netze
Grundlagen der Künstlichen Intelligenz 1. April 2015 2. Constraint-Satisfaction-Probleme: Constraint-Netze Grundlagen der Künstlichen Intelligenz 2. Constraint-Satisfaction-Probleme: Constraint-Netze Malte
MehrStatistische Untersuchungen zu endlichen Funktionsgraphen
C# Projekt 1 Name: Statistische Untersuchungen zu endlichen Funktionsgraphen Aufgabe: Basierend auf dem Abschnitt 2.1.6. Random mappings, Kap.2, S 54-55, in [1] sollen zunächst für eine beliebige Funktion
MehrWissensbasierte Systeme 5. Constraint Satisfaction Probleme
Wissensbasierte Systeme 5. Constraint Satisfaction Probleme Michael Beetz Vorlesung Wissensbasierte Systeme 1 Inhalt 5.1 Begriffe 5.2 Constraint Satisfaction in Linienbildern 5.3 Beispielanwendungen 5.4
MehrVorlesung 3 MINIMALE SPANNBÄUME
Vorlesung 3 MINIMALE SPANNBÄUME 72 Aufgabe! Szenario: Sie arbeiten für eine Firma, die ein Neubaugebiet ans Netz (Wasser, Strom oder Kabel oder...) anschließt! Ziel: Alle Haushalte ans Netz bringen, dabei
MehrSteinerbäume. Seminarausarbeitung Hochschule Aalen Fakultät für Elektronik und Informatik Studiengang Informatik Schwerpunkt Software Engineering
Steinerbäume Seminarausarbeitung Hochschule Aalen Fakultät für Elektronik und Informatik Studiengang Informatik Schwerpunkt Software Engineering Verfasser Flamur Kastrati Betreuer Prof. Dr. habil. Thomas
Mehr11.1 Grundlagen - Denitionen
11 Binärbäume 11.1 Grundlagen - Denitionen Denition: Ein Baum ist eine Menge, die durch eine sog. Nachfolgerrelation strukturiert ist. In einem Baum gilt: (I) (II) 1 Knoten w ohne VATER(w), das ist die
Mehrabgeschlossen unter,,,, R,
Was bisher geschah Turing-Maschinen können Sprachen L X akzeptieren entscheiden Funktionen berechnen f : X X (partiell) Menge aller Turing-akzeptierbaren Sprachen genau die Menge aller Chomsky-Typ-0-Sprachen
MehrRechnerische Komplexität
Proseminar Effiziente Algorithmen SS 2002 Rechnerische Komplexität Ulrike Krönert (34180) 0. Inhalt 1. Einführung 2. Algorithmen und Komplexität 2.1. Algorithmen 2.2. Laufzeitabschätzung 2.3. Polynomialzeit
Mehr3.1 Konstruktion von minimalen Spannbäumen Es gibt zwei Prinzipien für die Konstruktion von minimalen Spannbäumen (Tarjan): blaue Regel rote Regel
3.1 Konstruktion von minimalen Spannbäumen Es gibt zwei Prinzipien für die Konstruktion von minimalen Spannbäumen (Tarjan): blaue Regel rote Regel EADS 3.1 Konstruktion von minimalen Spannbäumen 16/36
MehrKapitel 4: Minimal spannende Bäume Gliederung der Vorlesung
Kapitel : Minimal spannende Bäume Gliederung der Vorlesung. Fallstudie Bipartite Graphen 2. Grundbegriffe. Elementare Graphalgorithmen und Anwendungen. Minimal spannende Bäume. Kürzeste Wege. Traveling
MehrKapitel 7: Flüsse in Netzwerken und Anwendungen Gliederung der Vorlesung
Gliederung der Vorlesung. Fallstudie Bipartite Graphen. Grundbegriffe. Elementare Graphalgorithmen und Anwendungen. Minimal spannende Bäume. Kürzeste Pfade. Traveling Salesman Problem. Flüsse in Netzwerken
MehrKapitel 4: Dynamische Datenstrukturen. Algorithmen und Datenstrukturen WS 2012/13. Prof. Dr. Sándor Fekete
Kapitel 4: Dynamische Datenstrukturen Algorithmen und Datenstrukturen WS 2012/13 Prof. Dr. Sándor Fekete 4.4 Binäre Suche Aufgabenstellung: Rate eine Zahl zwischen 100 und 114! Algorithmus 4.1 INPUT: OUTPUT:
MehrÜbersicht. Datenstrukturen und Algorithmen Vorlesung 5: Rekursionsgleichungen (K4) Übersicht. Binäre Suche. Joost-Pieter Katoen. 20.
Übersicht Datenstrukturen und Algorithmen Vorlesung 5: (K4) Joost-Pieter Katoen Lehrstuhl für Informatik 2 Software Modeling and Verification Group http://www-i2.informatik.rwth-aachen.de/i2/dsal12/ 20.
Mehr13 Java 4 - Entwurfsmuster am Beispiel des Rucksackproblems
13 Java 4 - Entwurfsmuster am Beispiel des Rucksackproblems 13.1 Modellierung des Rucksackproblems 13.2 Lösung mit Greedy-Algorithmus 13.3 Lösung mit Backtracking 13.4 Lösung mit Dynamischer Programmierung
MehrKostenmaße. F3 03/04 p.188/395
Kostenmaße Bei der TM nur ein Kostenmaß: Ein Schritt (Konfigurationsübergang) kostet eine Zeiteinheit; eine Bandzelle kostet eine Platzeinheit. Bei der RAM zwei Kostenmaße: uniformes Kostenmaß: (wie oben);
MehrCustomization (Zuschneiden)
Customization (Zuschneiden) Anpassen der (Graph)Datenstruktur an die Anwendung. I Ziel: schnell, kompakt. I benutze Entwurfsprinzip: make the common case fast I Listen vermeiden Mögliches Problem: Software-Engineering-Alptraum
MehrGrundlagen der Künstlichen Intelligenz
Grundlagen der Künstlichen Intelligenz 9. Klassische Suche: Baumsuche und Graphensuche Malte Helmert Universität Basel 13. März 2015 Klassische Suche: Überblick Kapitelüberblick klassische Suche: 5. 7.
MehrEinführung in die Informatik
Einführung in die Informatik Jochen Hoenicke Software Engineering Albert-Ludwigs-University Freiburg Sommersemester 2014 Jochen Hoenicke (Software Engineering) Einführung in die Informatik Sommersemester
Mehr1 topologisches Sortieren
Wolfgang Hönig / Andreas Ecke WS 09/0 topologisches Sortieren. Überblick. Solange noch Knoten vorhanden: a) Suche Knoten v, zu dem keine Kante führt (Falls nicht vorhanden keine topologische Sortierung
MehrAbschnitt: Algorithmendesign und Laufzeitanalyse
Abschnitt: Algorithmendesign und Laufzeitanalyse Definition Divide-and-Conquer Paradigma Divide-and-Conquer Algorithmen verwenden die Strategien 1 Divide: Teile das Problem rekursiv in Subproblem gleicher
MehrEinführung in die Informatik 1
Einführung in die Informatik 1 Algorithmen und algorithmische Sprachkonzepte Sven Kosub AG Algorithmik/Theorie komplexer Systeme Universität Konstanz E 202 Sven.Kosub@uni-konstanz.de Sprechstunde: Freitag,
MehrADS: Algorithmen und Datenstrukturen 2
ADS: Algorithmen und Datenstrukturen Der Tragödie IV. Theyl Peter F. Stadler & Konstantin Klemm Bioinformatics Group, Dept. of Computer Science & Interdisciplinary Center for Bioinformatics, University
MehrMinimale Anzahl von Hinweisen bei Sudoku
Minimale Anzahl von Hinweisen bei Sudoku Sascha Kurz sascha.kurz@uni-bayreuth.de (basierend auf Arbeiten von Ariane Papke und Gary McGuire et al.) Oberseminar Effizienz dezentraler Strukturen, Bayreuth,
Mehr2. Lernen von Entscheidungsbäumen
2. Lernen von Entscheidungsbäumen Entscheidungsbäume 2. Lernen von Entscheidungsbäumen Gegeben sei eine Menge von Objekten, die durch Attribut/Wert- Paare beschrieben sind. Jedes Objekt kann einer Klasse
MehrEffiziente Algorithmen I
H 10. Präsenzaufgabenblatt, Wintersemester 2015/16 Übungstunde am 18.01.2015 Aufgabe Q Ein Reiseveranstalter besitzt ein Flugzeug, das maximal p Personen aufnehmen kann. Der Veranstalter bietet einen Flug
MehrKapitel 6. Komplexität von Algorithmen. Xiaoyi Jiang Informatik I Grundlagen der Programmierung
Kapitel 6 Komplexität von Algorithmen 1 6.1 Beurteilung von Algorithmen I.d.R. existieren viele Algorithmen, um dieselbe Funktion zu realisieren. Welche Algorithmen sind die besseren? Betrachtung nicht-funktionaler
MehrAlgorithmen & Datenstrukturen 1. Klausur
Algorithmen & Datenstrukturen 1. Klausur 7. Juli 2010 Name Matrikelnummer Aufgabe mögliche Punkte erreichte Punkte 1 35 2 30 3 30 4 15 5 40 6 30 Gesamt 180 1 Seite 2 von 14 Aufgabe 1) Programm Analyse
MehrNP-Vollständigkeit. Krautgartner Martin (9920077) Markgraf Waldomir (9921041) Rattensberger Martin (9921846) Rieder Caroline (0020984)
NP-Vollständigkeit Krautgartner Martin (9920077) Markgraf Waldomir (9921041) Rattensberger Martin (9921846) Rieder Caroline (0020984) 0 Übersicht: Einleitung Einteilung in Klassen Die Klassen P und NP
Mehr14. Rot-Schwarz-Bäume
Bislang: Wörterbuchoperationen bei binären Suchbäume effizient durchführbar, falls Höhe des Baums klein. Rot-Schwarz-Bäume spezielle Suchbäume. Rot-Schwarz-Baum mit n Knoten hat Höhe höchstens 2 log(n+1).
Mehr13. Binäre Suchbäume
1. Binäre Suchbäume Binäre Suchbäume realiesieren Wörterbücher. Sie unterstützen die Operationen 1. Einfügen (Insert) 2. Entfernen (Delete). Suchen (Search) 4. Maximum/Minimum-Suche 5. Vorgänger (Predecessor),
MehrDas Briefträgerproblem
Das Briefträgerproblem Paul Tabatabai 30. Dezember 2011 Inhaltsverzeichnis 1 Problemstellung und Modellierung 2 1.1 Problem................................ 2 1.2 Modellierung.............................
Mehr3. Musterlösung. Problem 1: Boruvka MST
Universität Karlsruhe Algorithmentechnik Fakultät für Informatik WS 06/07 ITI Wagner. Musterlösung Problem : Boruvka MST pt (a) Beweis durch Widerspruch. Sei T MST von G, e die lokal minimale Kante eines
MehrAlgorithmen und Datenstrukturen (für ET/IT)
Algorithmen und Datenstrukturen (für ET/IT) Wintersemester 2012/13 Dr. Tobias Lasser Computer Aided Medical Procedures Technische Universität München Programm heute 1 Einführung 2 Mathematische Grundlagen
MehrRouting Algorithmen. Begriffe, Definitionen
Begriffe, Definitionen Routing (aus der Informatik) Wegewahl oder Verkehrslenkung bezeichnet in der Telekommunikation das Festlegen von Wegen für Nachrichtenströme bei der Nachrichtenübermittlung über
MehrHEUTE. Datenstrukturen im Computer. Datenstrukturen. Rekursion. Feedback Evaluation. abstrakte Datenstrukturen
9.2.5 HUT 9.2.5 3 atenstrukturen im omputer atenstrukturen ie beiden fundamentalen atenstrukturen in der Praxis sind rray und Liste Rekursion Feedback valuation rray Zugriff: schnell Umordnung: langsam
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
Mehr12. Rekursion Grundlagen der Programmierung 1 (Java)
12. Rekursion Grundlagen der Programmierung 1 (Java) Fachhochschule Darmstadt Haardtring 100 D-64295 Darmstadt Prof. Dr. Bernhard Humm FH Darmstadt, 24. Januar 2006 Einordnung im Kontext der Vorlesung
MehrKapiteltests zum Leitprogramm Binäre Suchbäume
Kapiteltests zum Leitprogramm Binäre Suchbäume Björn Steffen Timur Erdag überarbeitet von Christina Class Binäre Suchbäume Kapiteltests für das ETH-Leitprogramm Adressaten und Institutionen Das Leitprogramm
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. Hashing 6. Algorithmische Geometrie 4/6, Folie 1 2014 Prof. Steffen Lange - HDa/FbI
Mehr2. Repräsentationen von Graphen in Computern
2. Repräsentationen von Graphen in Computern Kapitelinhalt 2. Repräsentationen von Graphen in Computern Matrizen- und Listendarstellung von Graphen Berechnung der Anzahl der verschiedenen Kantenzüge zwischen
MehrAlgorithmen und Datenstrukturen Laufzeitabschätzung
Algorithmen und Datenstrukturen Laufzeitabschätzung Matthias Teschner Graphische Datenverarbeitung Institut für Informatik Universität Freiburg SS 12 Lernziele der Vorlesung Algorithmen Sortieren, Suchen,
MehrInformatik III. Christian Schindelhauer Wintersemester 2006/07 24. Vorlesung 26.01.2007
Informatik III Christian Schindelhauer Wintersemester 26/7 24. Vorlesung 26..27 NP-Vollständigkeit Gegeben ein unbekanntes NP-Problem X, sollte man nicht nur nach einem Algorithmus mit polynomieller Laufzeit
MehrWiederholung zu Flüssen
Universität Konstanz Methoden der Netzwerkanalyse Fachbereich Informatik & Informationswissenschaft SS 2008 Prof. Dr. Ulrik Brandes / Melanie Badent Wiederholung zu Flüssen Wir untersuchen Flüsse in Netzwerken:
MehrInformatik 11 Kapitel 2 - Rekursive Datenstrukturen
Fachschaft Informatik Informatik 11 Kapitel 2 - Rekursive Datenstrukturen Michael Steinhuber König-Karlmann-Gymnasium Altötting 15. Januar 2016 Folie 1/77 Inhaltsverzeichnis I 1 Datenstruktur Schlange
MehrAlgorithmik Funke/Bahrdt/Krumpe/Mendel/Seybold SS Übungsblatt 4
Algorithmik Funke/Bahrdt/Krumpe/Mendel/Seybold SS 2015 http://www.fmi.informatik.uni-stuttgart.de/alg Institut für Formale Methoden der Informatik Universität Stuttgart Übungsblatt 4 Punkte: 50 Problem
MehrTRIER. Das Springerproblem. ZfP-Sonderpreis der DGZfP beim Regionalwettbewerb Jugend forscht. Carolin Biwer Natalie Gdanitz
ZfP-Sonderpreis der DGZfP beim Regionalwettbewerb Jugend forscht TRIER Das Springerproblem Carolin Biwer Natalie Gdanitz Schule: Gymnasium Hermeskeil Jugend forscht 2013 Natalie Gdanitz Carolin Biwer MSS
MehrVorlesung Informatik 2 Algorithmen und Datenstrukturen. (20 Graphen) T. Lauer
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (20 Graphen) T. Lauer 1 Motivation Wie komme ich am besten von Freiburg nach Ulm? Was ist die kürzeste Rundreise durch eine gegebene Menge von Städten?
MehrAlgorithmen II Vorlesung am 15.11.2012
Algorithmen II Vorlesung am 15.11.2012 Kreisbasen, Matroide & Algorithmen INSTITUT FÜR THEORETISCHE INFORMATIK PROF. DR. DOROTHEA WAGNER KIT Universität des Landes Baden-Württemberg und Algorithmen nationales
MehrAlgorithmen und Datenstrukturen. Große Übung vom 29.10.09 Nils Schweer
Algorithmen und Datenstrukturen Große Übung vom 29.10.09 Nils Schweer Diese Folien Braucht man nicht abzuschreiben Stehen im Netz unter www.ibr.cs.tu-bs.de/courses/ws0910/aud/index.html Kleine Übungen
MehrAbstrakte Algorithmen und Sprachkonzepte
Abstrakte Algorithmen und Sprachkonzepte Thomas Röfer Begriff des Algorithmus Algorithmenaufbau Programmiersprachliche Grundkonzepte Interative und rekursive Algorithmen Rückblick Aufbau und Funktionsweise
MehrDynamische Programmierung
Dynamische Programmierung Manuel Grandeit Hallo Welt -Seminar 28.06.2011 Manuel Grandeit 1 / 40 Inhaltsübersicht Einführung Münzwechsel Was ist ein Zustand? Konstruktion einer DP-Lösung Top-Down-DP Bottom-Up-DP
MehrSeminarvortag zum Thema Virtual Private Network Design im Rahmen des Seminars Network Design an der Universität Paderborn
Seminarvortag zum Thema Virtual Private Network Design im Rahmen des Seminars Network Design an der Universität Paderborn Ein 5.55-Approximationsalgorithmus für das VPND-Problem Lars Schäfers Inhalt Einführung:
MehrInformatik II, SS 2014
Informatik II SS 2014 (Algorithmen & Datenstrukturen) Vorlesung 10 (3.6.2014) Binäre Suchbäume I Algorithmen und Komplexität Zusätzliche Dictionary Operationen Dictionary: Zusätzliche mögliche Operationen:
MehrTheoretische Informatik 1
Theoretische Informatik 1 Registermaschine David Kappel Institut für Grundlagen der Informationsverarbeitung TU Graz SS 2012 Übersicht Registermaschinen Algorithmusbegriff konkretisiert formale Beschreibung
MehrAnmerkungen zur Übergangsprüfung
DM11 Slide 1 Anmerkungen zur Übergangsprüfung Aufgabeneingrenzung Aufgaben des folgenden Typs werden wegen ihres Schwierigkeitsgrads oder wegen eines ungeeigneten fachlichen Schwerpunkts in der Übergangsprüfung
Mehr8 Diskrete Optimierung
8 Diskrete Optimierung Definition 8.1. Ein Graph G ist ein Paar (V (G), E(G)) besteh aus einer lichen Menge V (G) von Knoten (oder Ecken) und einer Menge E(G) ( ) V (G) 2 von Kanten. Die Ordnung n(g) von
MehrRekursion. Annabelle Klarl. Einführung in die Informatik Programmierung und Softwareentwicklung
Annabelle Klarl Zentralübung zur Vorlesung Einführung in die Informatik: http://www.pst.ifi.lmu.de/lehre/wise-13-14/infoeinf WS13/14 Action required now 1. Smartphone: installiere die App "socrative student"
MehrTeil 2 - Softwaretechnik. Modul: Programmierung B-PRG Grundlagen der Programmierung 1 Teil 2. Übersicht. Softwaretechnik
Grundlagen der Programmierung 1 Modul: Programmierung B-PRG Grundlagen der Programmierung 1 Teil 2 Softwaretechnik Prof. Dr. O. Drobnik Professur Architektur und Betrieb verteilter Systeme Institut für
MehrWS 2009/10. Diskrete Strukturen
WS 2009/10 Diskrete Strukturen Prof. Dr. J. Esparza Lehrstuhl für Grundlagen der Softwarezuverlässigkeit und theoretische Informatik Fakultät für Informatik Technische Universität München http://www7.in.tum.de/um/courses/ds/ws0910
MehrFlüsse, Schnitte, bipartite Graphen. Martin Oettinger
Flüsse, Schnitte, bipartite Graphen Martin Oettinger Übersicht Einführung Algorithmen für maximalen Fluss Preflow-Push Ford-Fulkerson Spezialfall: Maximaler Fluss bei minimalen Kosten Reduktionen Bipartites
MehrEine Baumstruktur sei folgendermaßen definiert. Eine Baumstruktur mit Grundtyp Element ist entweder
Programmieren in PASCAL Bäume 1 1. Baumstrukturen Eine Baumstruktur sei folgendermaßen definiert. Eine Baumstruktur mit Grundtyp Element ist entweder 1. die leere Struktur oder 2. ein Knoten vom Typ Element
MehrData Cube. Aggregation in SQL. Beispiel: Autoverkäufe. On-line Analytical Processing (OLAP) 1. Einführung. 2. Aggregation in SQL, GROUP BY
Data Cube On-line Analytical Processing (OLAP). Einführung Ziel: Auffinden interessanter Muster in großen Datenmengen 2. Aggregation in SQL, GROUP BY 3. Probleme mit GROUP BY 4. Der Cube-Operator! Formulierung
MehrTheoretische Informatik 1
Theoretische Informatik 1 Bernhard Nessler Institut für Grundlagen der Informationsverabeitung TU Graz SS 2007 Übersicht 1 Allgemein Teilgebiete der Informatik ohne Theoretische Grundlagen 2 Fragen an
MehrC++, LEDA und STL Visualisierung minimal/maximal aufspannender Bäume
Fachbereich IV, Informatik Softwarepraktikum C++, LEDA und STL Visualisierung minimal/maximal aufspannender Bäume Wintersemester 2004/2005 Dokumentation Algorithmen zur Lösung von MST - Problemen Nicolas
MehrAlgorithmen und Datenstrukturen
Prof. r. V. Linnemann Lübeck, den. Oktober 00 Universität zu Lübeck Institut für Informationssysteme lgorithmen und atenstrukturen Sommersemester 00. Klausur Lösungen Hinweis: chten Sie bei Programmieraufgaben
MehrOptimierung. Algorithmik III Algorithmen und Modelle für kontinuierliche Datenstrukturen. Vorgehen: Dynamische Programmierung
Optimierung Algorithmik III Algorithmen und Modelle für kontinuierliche Datenstrukturen Optimierung I Dynamisches Programmieren Günther Greiner Lehrstuhl für Graphische Datenverarbeitung Sommersemester
MehrGliederung. Definition Wichtige Aussagen und Sätze Algorithmen zum Finden von Starken Zusammenhangskomponenten
Gliederung Zusammenhang von Graphen Stark Zusammenhängend K-fach Zusammenhängend Brücken Definition Algorithmus zum Finden von Brücken Anwendung Zusammenhangskomponente Definition Wichtige Aussagen und
MehrProgrammieren in C. Rekursive Funktionen. Prof. Dr. Nikolaus Wulff
Programmieren in C Rekursive Funktionen Prof. Dr. Nikolaus Wulff Rekursive Funktionen Jede C Funktion besitzt ihren eigenen lokalen Satz an Variablen. Dies bietet ganze neue Möglichkeiten Funktionen zu
MehrKomplexität von Algorithmen
Komplexität von Algorithmen Prof. Dr. Christian Böhm WS 07/08 in Zusammenarbeit mit Gefei Zhang http://www.dbs.informatik.uni-muenchen.de/lehre/nfinfosw Ressourcenbedarf - Größenordnungen Prozesse verbrauchen
MehrGrundlagen der Programmierung
Grundlagen der Programmierung Dr. Tom Kamphans 1. Vorlesung 12.10.2016 1 Organisatorisches Vorlesung: Mittwochs 14:00 15:30, Raum F 201 Übung: Mittwochs 15:45 19:00, Raum F 225 Übung: alle zwei Wochen
MehrEin Dieb raubt einen Laden aus; um möglichst flexibel zu sein, hat er für die Beute nur einen Rucksack dabei
7/7/ Das Rucksack-Problem Englisch: Knapsack Problem Das Problem: "Die Qual der Wahl" Ein Dieb raubt einen Laden aus; um möglichst flexibel zu sein, hat er für die Beute nur einen Rucksack dabei Im Ladens
MehrDynamische Optimierung. Kapitel 4. Dynamische Optimierung. Peter Becker (H-BRS) Operations Research II Wintersemester 2014/15 160 / 206
Kapitel 4 Dynamische Optimierung Peter Becker (H-BRS) Operations Research II Wintersemester 2014/15 160 / 206 Inhalt Inhalt 4 Dynamische Optimierung Allgemeiner Ansatz und Beispiele Stochastische dynamische
Mehr