Slides:



Advertisements
Ähnliche Präsentationen
8. Termin Teil B: Wiederholung Begriffe Baum
Advertisements

Vortrag von Stephanie Weirauch Jens Pleger Peter Jancke Frank Wejmelka
Algorithmen für das Erfüllbarkeitsproblem SAT
Algorithmentheorie 08 – Dynamische Programmierung (1)
Christian Scheideler SS 2009
Grundlagen des A*-Algorithmus und Anwendung in der Routenplanung
Knapsack & Bin Packing Sebastian Stober
Definition [1]: Sei S eine endliche Menge und sei p eine Abbildung von S in die positiven reellen Zahlen Für einen Teilmenge ES von S sei p definiert.
Eine dynamische Menge, die diese Operationen unterstützt,
6. Regelbasierte Systeme
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (26-Graphenalgorithmen: Wiederholung und Übung) Prof. Th. Ottmann.
LS 2 / Informatik Datenstrukturen, Algorithmen und Programmierung 2 (DAP2)
Graphen Ein Graph ist eine Kollektion von Knoten und Kanten. Knoten sind einfache Objekte. Sie haben Namen und können Träger von Werten, Eigenschaften.
Kapitel 6: Klassifizierung von Sortiertechniken
7. Natürliche Binärbäume
Greedy-Algorithmus Greedy-Algorithmen sind mit dem dynamischen Programmieren verwandt, jedoch einfacher. Die Grundsituation ist dieselbe: Es geht um ein.
3. Kapitel: Komplexität und Komplexitätsklassen
R. Der - Vorlesung Algorithmen und Datenstrukturen (Magister)
Kapitel 3: Listen Lineare Liste: endliche Folge von Elementen eines Grundtyps (n>=0), leere Liste falls n=0 Listenelemente besitzen.
Genetische Algorithmen für die Variogrammanpassung
Problemlösen durch Suchen
Informierte Suche.
Spielbäume Richard Göbel.
Suchbäume Richard Göbel.
Sortierverfahren Richard Göbel.
FH-Hof Künstliche Intelligenz - Suchbäume Richard Göbel.
Sortierverfahren Richard Göbel.
FH-Hof Optimierungsverfahren für kombinatorische Probleme Richard Göbel.
Heuristiken Automatic Problem Solving Institut für Informatik
Algorithmentheorie 04 –Hashing
Algorithmentheorie 6 – Greedy-Verfahren
Prof.Dr.S. Albers Prof. Dr. Th. Ottmann
1 Bewegungsplanung Computational Geometry Prof. Dr. Th. Ottmann Bewegungsplanung bei unvollständiger Information Ausweg aus einem Labyrinth Finden eines.
WS Algorithmentheorie 05 - Treaps Prof. Dr. Th. Ottmann.
Prinzipien des Algorithmenentwurfs Backtracking Prof. Dr. Th. Ottmann
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (19 - Analyse natürlicher Bäume) Prof. Th. Ottmann.
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (27 – Kürzeste Wege) Prof. Th. Ottmann.
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (17 – Bäume: Grundlagen und natürliche Suchbäume) Prof. Th. Ottmann.
1 Vorlesung Informatik 2 Algorithmen und Datenstrukturen (21 – Kürzeste Wege) T. Lauer.
Union-Find-Strukturen
Algorithmen und Datenstrukturen
Genetische Algorithmen
High Performance = Innovative Computer Systems + Efficient Algorithms Friedhelm Meyer auf der Heide 1 HEINZ NIXDORF INSTITUT Universität Paderborn Algorithmen.
Algorithmen und Komplexität
Minimum Spanning Tree: MST
Teil I: Uninformierte Suche
Teil II: Informierte Suche
Khatuna Khvedelidze Teona Khizanishvili
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer Diskrete Mathematik II Vorlesung 1 SS 2001 Algorithmus von Dijkstra.
Effiziente Algorithmen
Effiziente Algorithmen
Effiziente Algorithmen Hartmut Klauck Universität Frankfurt SS
Effiziente Algorithmen
Black Box Algorithmen Hartmut Klauck Universität Frankfurt SS
Quantum Computing Hartmut Klauck Universität Frankfurt WS 05/
Quantum Computing Hartmut Klauck Universität Frankfurt WS 05/ /23.1.
Effiziente Algorithmen Hartmut Klauck Universität Frankfurt SS
Effiziente Algorithmen Hartmut Klauck Universität Frankfurt SS
Suchstrategien Tiefensuche Suchstrategien Greedy- Suche A*- Suche
Das Traveling Salesman Problem (TSP)
Analyse der Laufzeit von Algorithmen
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer Diskrete Mathematik II Vorlesung Datenstrukturen für den Algorithmus von.
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer Diskrete Mathematik II Vorlesung Suche des kürzesten Weges in einem Netz.
Wann ist eine Funktion (über den natürlichen Zahlen) berechenbar?
Der A*-Algorithmus.
Gliederung der Vorlesung
Lösungshinweise zu den Suchalgorithmen. Der Baum zum Zustandsgraphen GE OBE DUI GE D MH D OB MH DUI E DOBMH OBE DUIGED MH DGE MH EDUI D OBMH DGE MH DUIEE.
Programmiersprachen II Fortsetzung Datenstrukturen Balancierte Bäume 3 Prof. Dr. Reiner Güttler Fachbereich GIS HTW.
Dr. Wolfram Amme, Semantik funktionaler Programme, Informatik II, FSU Jena, SS Semantik funktionaler Programme.
Wiederholung TexPoint fonts used in EMF.
 Präsentation transkript:

2. Problemlösen und Suche Was ist ein Problem? gegeben: gesucht: Die Menge aller von S aus durch Anwendung von beliebig vielen Operatoren erreichbaren Zustände heißt Zustandsraum Der Zustandsraum lässt sich als Baum repräsentieren, der S als Wurzel hat, und in dem N2 Nachfolger von N1 ist gdw. es einen Operator gibt, der N1 in N2 überführt. Wir gehen davon aus, dass es nur endlich viele Operatoren gibt! Anfangszustand S Menge von Operatoren, überführen Zustand in Nachfolgezustand Menge von Zielzuständen, oft definiert durch Zielprädikat Kostenfunktion für Pfade (= Folgen von Operatoren) Pfad von S zu einem Zielzustand (häufig: mit minimalen Kosten)

Beispiel: 8-Puzzle 1 3 6 1 2 3 4 8 8 4 2 7 5 7 6 5 Zustände: Operatoren: Zielzustand: Kosten: 3 x 3 Integer Array mit entsprechenden Werten blank left, right, up, down siehe oben rechts Pfadlänge

Beispiel: 8 Damen Positioniere 8 Damen so auf Schachbrett, dass keine eine andere bedroht Startzustand: Zielzustände: Operatoren: Kosten: leeres Schachbrett Schachbrett mit 8 Damen, keine bedroht Füge Dame auf freies Feld X X X X X X X X

Beispiel: Kohl etc. S: Fuchs Fluss Ziege Kohl Mensch Mensch kann in Boot immer 1 Objekt an anderes Ufer mitnehmen. Wenn Mensch an anderem Ufer ist, frisst Fuchs Ziege bzw. Ziege Kohl Ziel: Fuchs Ziege Kohl Mensch Fluss formal: Zustand: Mengenpaar (L,R), S = ({F,Z,K,M},{}), Ziel = ({},{F,Z,K,M}) Operatoren: transportiere_O mit O = {F}, {Z}, {K} oder {}, geeignet zu definieren

Partieller Suchbaum ({F,Z,K,M},{}) ({Z},{M,F}) ({F,K},{M,Z}) ({F},{M,K}) ({F},{M}) ({F,Z,K,M},{}) ({F,K,M},{Z}) ({F},{Z,K,M}) ({K},{Z,F,M}) ({F,M},{Z}) ({F,K,M},{Z}) ({F,Z,M},{K}) ({K,M},{F}) ({F,K,M},{Z}) ({K,Z,M},{F}) ({Z},{K,F,M}) ({Z,M},{K,F}) ({},{K,F,Z,M})

Travelling Salesman B 6 9 3 4 A 4 F C 5 5 E 6 4 6 4 4 D G 8 Verkäufer hat n Städte zu besuchen, jede genau 1 mal, muss dann zum Ausgangspunkt A zurück. Ziel: minimiere zurückgelegte Gesamtstrecke Zustände: Liste der bisher von A aus besuchten Städte (anfangs leer) Zielzustand: Liste, die alle Städte enthält und mit A endet, Strecke minimal Operatoren: Füge noch nicht besuchte Stadt am Ende der Liste ein

Klassifikation von Suchmethoden uninformiert informiert (heuristisch) Breitensuche Tiefensuche iteratives Vertiefen systematisch (exhaustive) A* greedy Verfahren Verbesserungsverfahren: Hill Climbing genetische Algorithmen nicht.-system. blindes Suchen Heuristik: Strategie zum schnelleren Finden einer (guten) Lösung

Uninformiertes systematisches Suchen Procedure Suchen begin QUEUE := (Startknoten); while QUEUE  ( ) do KNOTEN := First( QUEUE); QUEUE := Rest( QUEUE); if ZIEL( KNOTEN ) then return Pfad zu KNOTEN else füge alle Nachfolger von KNOTEN zu QUEUE end; print("keine Lösung") end Breitensuche: Nachfolger jeweils am Ende von QUEUE eingefügt Tiefensuche: Nachfolger jeweils am Anfang von QUEUE eingefügt

Kriterien für Suchstrategien Vollständigkeit: Zeitkomplexität: Speicherkomplexität: Optimalität: wird Lösung gefunden, wenn es eine gibt? wie lange dauert die Suche? wieviel Speicherplatz wird benötigt? wird die "beste" Lösung gefunden? Breitensuche: vollständig; optimal, wenn Kosten von Länge des Pfades bestimmt werden; exponentieller Speicher- und Zeitaufwand Tiefensuche: unvollständig; nicht optimal; geringerer Speicherbedarf, da nur ein Pfad gespeichert werden muss sowie die an ihm liegenden offenen Knoten

Iterative Deepening Tiefenbeschränkte Suche: Tiefensuche mit Tiefenbeschränkung - vermeidet möglicherweise unendliches Suchen in falschem Pfad,  - aber: Schranke kann falsch gewählt werden Iteratives Vertiefen verallgemeinert tiefenbeschränkte Suche - Idee: tiefenbeschränkte Suche mit wachsender Tiefe 0, 1, 2, 3 usw.  - verbindet Vorteile von Breiten- und Tiefensuche - Knoten zwar mehrfach überprüft, aber Speicherersparnis wiegt das auf "In general, iterative deepening is the preferred search method when there is a large search space and the depth of the solution is unknown"

Informierte Suche: A* verwendet Evaluierungsfunktion f, die für jeden Knoten n die Kosten des besten Pfades von Startknoten s über n zu einem Zielknoten schätzt es gilt: f(n) = g(n) + h(n) wobei g(n) die Kosten von s zu n sind, h(n) die geschätzten minimalen Kosten von n zu einem Zielknoten. h heißt auch heuristische Funktion. es wird jeweils ein Knoten expandiert, für den f den minimalen Wert liefert A* ist vollständig und optimal, falls gilt: geschätzte minimale Kosten h(n) von n zu Zielknoten  tatsächliche minimale Kosten, d.h., h darf Kosten unter- aber nicht überschätzen!! Beispiel: gesucht kürzester Weg von A nach B, Kosten jeweilige (Straßen-) Entfernung Wähle h(n) als die Länge der Luftlinie von n nach B.

Beweis der Optimalität von A* Sei G ein optimaler Zielknoten mit Pfadkosten f*, G' ein suboptimaler Zielknoten mit f(G') = g(G') > f* (da G' Zielknoten ist, ist h(G') = 0). Angenommen, A* würde den Pfad zu G' als Lösung liefern. Dann muss G' im letzten Schritt aus der Queue geholt worden sein. Sei n ein Blattknoten auf einem optimalen Pfad zu G, es gilt f*  f(n) Da n nicht zur Expansion ausgewählt wurde, gilt auch f(n)  f(G') und damit f*  f(G'). Daraus folgt f*  g(G'), im Widerspruch zur Annahme. Hinweis: für Vollständigkeit muss gelten: Es gibt positive Konstante d, so dass jeder Operator mindestens d kostet.

Heuristiken am Beispiel 8-Puzzle Anzahl der Plättchen in falscher Position Summe der Entfernungen aller Plättchen von ihrer Zielposition gemessen in notwendigen Operationen (Manhattan distance) 1 3 6 4 8 2 7 5 h1(n) = 6 h2(n) = 0 + 3 + 1 + 1 + 0 + 3 + 1 + 2 = 11 h2 ist näher am aktuellen Wert und führt schneller zum Ziel

Greedy Verfahren Lösen von Optimierungsproblemen: Gegeben: Gütefunktion w für (Teil-) Lösungen Optimale Lösung konstruiert durch schrittweises Erweitern einer Teillösung (beginnend mit leerer Lösung) Aus Erweiterungsmöglichkeiten die gewählt, die zu größtem w-Wert führt (greedy = gefräßig, der größte Bissen wird geschluckt) Kanonischer Algorithmus: Ordne Lösungskomponenten, so dass : w(e1)  w(e2)  …  w(ek); A := ; For i = 1 to k do if A  {ei} zulässige Teillösung then A := A  {ei}; Output A.

Wann funktioniert das? Sei E endliche Menge, U Menge von Teilmengen von E. (E,U) heißt Teilmengensystem falls gilt: 1.   U, 2. A  B und B  U impliziert A  U. Ein Teilmengensystem heißt Matroid, falls gilt: X, Y  U, |X| < |Y| impliziert x  Y \ X: X  {x}  U. Theorem: Sei (E,U) Teilmengensystem, w: E  R Wertefunktion. Der kanonische Greedy-Algorithmus liefert eine optimale Lösung für das zugehörige Optimierungsproblem (finde X  U mit maximalem Gewicht) gdw. (E,U) ein Matroid ist. Anmerkung: Wert von X ist die Summe der Werte der Elemente von X.

Hill Climbing Verfahren Operieren im Raum vollständiger (auch suboptimaler) Lösungen Modifizieren (zufällig) aktuelle Lösung und ersetzen sie durch neue, wenn dadurch bessere Qualität erreicht wird Terminierung, falls längere Zeit keine Verbesserung Vorteil: geringer Speicherbedarf (nur jeweils aktuelle Lösung) Probleme: lokale Maxima, alle erreichbaren Zustände schlechter, aber keine optimale Lösung gefunden Plateaus, Nachbarzustände alle gleichwertig, zielloses Hin- und Her- springen Lösung: random restart, wenn keine merkliche Verbesserung mehr eintritt, wird zufällig neuer Startpunkt ausgewählt. Jeweils beste bisher erreichte Lösung gespeichert.

Beispiel GSAT gegeben: aussagenlogische Formel F in Klausenform gesucht: aussagenlogische Formel F in Klausenform Wahrheitsbelegung, die F wahr macht (P  Q  ¬S)  (¬P  Q  R)  (¬P  ¬R  ¬S)  (P  ¬S  T) GSAT ist random restart hill climbing Verfahren startet mit zufällig erzeugter Wahrheitsbelegung Operatoren ändern den Wahrheitswert genau einer Aussagenvariable Qualität einer Wahrheitsbelegung ist die Anzahl der Klausen, die sie wahr macht. als Parameter werden maximale Anzahl der Schritte pro climbing und Anzahl der restarts vorgegeben Verfahren stoppt, wenn alle Klausen erfüllt oder vorgegebene Schranken überschritten sind

Genetische Algorithmen Versuch, natürliche Evolutionsprozesse nachzubilden Nicht einzelne Lösung verbessert, sondern Population von Lösungen Sowohl zufällige Änderungen (Mutationen) als auch Kreuzungen (Cross-over) Lösungen mit besten Bewertungen (Fitness) überleben Kanonischer Algorithmus Erzeuge zufällige Anfangspopulation von Lösungen P = {a1, …, am}; Repeat erzeuge bestimmte Anzahl zufälliger Mutationen der Lösungen in P; erzeuge bestimmte Anzahl zufälliger Kreuzungen von Paaren in P; wähle die m besten Lösungen aus und weise sie P zu Until keine weitere Verbesserung der Fitness; Gib die beste Lösung in P aus.