1 / 29

Praktikum KI

Praktikum KI. Teil 3: CSP – Constraint Satisfaction Problems. Einführung. Bisherige Suchverfahren betrachten die Zustände des Suchraums als „Black Box“ Heuristiken für die informierte Suche sind auf das jeweilige Suchproblem zugeschnitten

Download Presentation

Praktikum KI

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Praktikum KI Teil 3: CSP – Constraint Satisfaction Problems

  2. Einführung • Bisherige Suchverfahren betrachten die Zustände des Suchraums als „Black Box“ • Heuristiken für die informierte Suche sind auf das jeweilige Suchproblem zugeschnitten • Constraint Satisfaction Problems (CSPs) verwenden eine standardisierte Beschreibung des Suchproblems • Ermöglicht Verwendung von allgemeingültigen Heuristiken • Formale Beschreibung des Suchproblems ermöglicht einfachere Problemzerlegung • Mächtiges „Standardwerkzeug für große Gruppe von Problemen“ Praktikum KI WiSe 2007/08

  3. Einführung • Was sind CSPs? • Probleme, bei denen nur die Lösung, nicht aber der Lösungsweg interessiert, z.B. • n-Damen-Problem • Färbung von Landkarten (hier: 3-Färbung Australiens) Praktikum KI WiSe 2007/08

  4. Einführung • Was sind CSPs? • Formell: Ein CSP besteht aus • Menge von Variablen mit Wertebereichen, z.B. • 8-Damen: {Reihe1, …, Reihe8} mit Wertebereich {1, …, 8} • Landkarte von AUS: {WA, NT, SA, Q, NSW, V, T} mit Wertebereich {rot, grün, blau} • Menge von Constraints (Beschränkungen), z.B. • 8-Damen: Alldiff(Reihe1, …, Reihe8), Reihe1+1 ≠ Reihe2, … • Landkarte: Alldiff(WA, NT, SA), Alldiff(NT, SA, Q), … • Spezielle Landkarte mit Tasmanien blau: T=blau, … Praktikum KI WiSe 2007/08

  5. Einführung • Was sind CSPs? • Terminologie: • Konsistente Belegung: Eine Zuweisung von Werten zu einer (Teil-)Menge von Variablen, so dass kein Constraint verletzt wird • Lösung: Konsistente Belegung aller Variablen • Constraint Graph (für binäre Constraints) • Knoten entsprechen den Variablen • Kanten einem Constraint, welches beide Knoten beinhaltet Praktikum KI WiSe 2007/08

  6. CSP als Suchproblem • Naiver Suchansatz • Knoten im Suchbaum entsprechen konsistenter (Teil-)Belegung der Variablen • Nachfolger entsprechen zusätzlicher konsistenter Belegung einer weiteren Variablen • Initialisiere Suchbaum mit {} {} {WA=r} {WA=g} {T=r} {T=b} {WA=b} {T=g} … {WA=r,NT=g} {WA=r,NT=b} {WA=r,SA=g} {WA=r,SA=b} {WA=r, T=r} {WA=r,T=g} {WA=r,T=b} … Praktikum KI WiSe 2007/08

  7. CSP als Suchproblem • Naiver Ansatz führt zu Suchbaum • Der Tiefe n für n = Anzahl der Variablen • Verzweigungsfaktor n*d auf Stufe 1 für d = Anzahl der möglichen Werte • Verzweigungsfaktor (n-1)*d auf Stufe 2 • … • Insgesamt n!*dn Blätter • Aber: Es gibt maximal dn verschiedene Konfigurationen • Problem des naiven Ansatzes: • Kommutativität ignoriert, d.h. für die Lösung ist es egal, ob zuerst Variable 1 einen Wert zugewiesen bekommt oder Variable 2 • Das ist der große Unterschied zu Nicht-CSP-Problemen! Praktikum KI WiSe 2007/08

  8. CSP – Backtracking Search • Allgemeiner Lösungsansatz für CSP-Probleme: • Suchbaum mit Tiefe n • Jede Schicht entspricht der Zuweisung einer weiteren Variablen (nicht immer der gleichen in einer Schicht!) • Alle Nachfolger eines Knotens haben die gleiche neue Variable zugewiesen => Suchbaum hat nur noch dn Blätter • Backtracking-Search • Depth-First-Search • Gibt es keine Nachfolger mehr und Stufe n noch nicht erreicht, gehe im Baum solange zurück (hoch), bis es einen noch nicht betrachteten Nachfolger gibt Praktikum KI WiSe 2007/08

  9. CSP – Bachtracking Search • Beispiel 3-Färbung Australiens: Praktikum KI WiSe 2007/08

  10. CSP – Bachtracking Search • Beispiel 3-Färbung Australiens: Praktikum KI WiSe 2007/08

  11. CSP – Bachtracking Search • Beispiel 3-Färbung Australiens: Praktikum KI WiSe 2007/08

  12. CSP – Bachtracking Search • Beispiel 3-Färbung Australiens: Praktikum KI WiSe 2007/08

  13. CSP – Bachtracking Search • Beispiel 3-Färbung Australiens: … … Praktikum KI WiSe 2007/08

  14. CSP - Optimierung • Die Suche kann durch intelligentes Vorgehen entscheidend positiv beeinflusst werden • Heuristiken: Welcher Wert soll einer Variablen zugeordnet werden? • Variablen-Auswahl: Welche Variable soll als nächstes betrachtet werden? (Kann / soll vom aktuellen Knoten abhängen) • Forward-Checking / Constraint-Propagation: Inkonsistente Pfade erkennen und ausschließen • Backjumping: Zu welchem Knoten soll zurückgesprungen werden? Praktikum KI WiSe 2007/08

  15. NT Q WA SA NSW V T CSP - Heuristiken • Welche Variable sollte als nächstes gewählt werden? • Die Variable mit den wenigsten verbleibenden Werten (minimum remaining values, MRV-Heuristik) • Im Beispiel bleibt nach der Wahl von WA=r, NT=g für SA nur blau übrig; würden zuerst Q, NSW und V belegt werden, führt dies u.U. zu unnötigen Fehlversuchen • Die Variable mit den meisten unbehandelten Constraints (degree heuristic) • Im Beispiel sollte Colorierung mit SA begonnen werden • Auch als Entscheidungshilfe möglich, falls MRV keinen eindeutigen Kandidaten liefert Praktikum KI WiSe 2007/08

  16. CSP - Heuristiken • Welcher Wert sollte der Variablen zugewiesen werden? • Der Wert, der für die Zukunft die wenigsten Einschränkungen bedeutet • D.h. Wert der für die angrenzenden Variablen die meisten Freiheiten lässt • „least-constraining-value“-Heuristik Praktikum KI WiSe 2007/08

  17. CSP - Heuristiken • Ergebnisse: Praktikum KI WiSe 2007/08

  18. CSP – Forward Checking • Ein Wert eines Knotens K im Constraint-Graph impliziert für alle Nachbarn eine Einschränkung ihrer Möglichkeiten • Sobald Wert für K gewählt wird, lösche inkonsistente Werte in allen Nachbarknoten • Verzweigungsgrad im nachfolgenden Suchbaumzweig sinkt ohne Lösungsmenge zu beschneiden Wertemengen zum Start: Nach der Wahl von WA=r: Nach der Wahl von NT=g: Nach der Wahl von Q=r: Praktikum KI WiSe 2007/08

  19. Wertemengen zum Start: Nach der Wahl von WA=r: Nach der Wahl von Q=g: CSP – Forward Checking • Forward Checking kann verwendet werden, um Werte für die MRV-Heuristik zu berechnen • Forward Checking beseitigt aber nicht alle Inkonsistenzen: Im Beispiel bleiben für SA und NT nur die Werte blau übrig. Aber es muss gelten SA ≠ NT. Praktikum KI WiSe 2007/08

  20. CSP – Forward Checking • Ergebnisse: Praktikum KI WiSe 2007/08

  21. CSP – Constraint Propagation • Wie kann man die Implikationen der aktuellen Belegung weiter als bis zu den aktuellen Nachbarn im Constraint Graph propagieren? • arc consistency (Kantenkonsistenz): • Für jede gerichtete Kante von P nach Q im Constraint Graph soll gelten, dass es zu jedem Wert p von P mindestens einen gültigen Wert von Q gibt • Ist dies nicht der Fall, so lösche p aus dem Wertebereich von P • Ein Graph ist kantenkonsistent, wenn jede gerichtete Kante zwischen noch nicht belegten Variablen konsistent ist • Wird ein Graph kantenkonsistent gemacht, so müssen Kanten ggf. mehrfach überprüft werden. Bsp: • Kante (P,Q) konsistent gemacht • Kante (Q,R) konsistent gemacht; Löschen eines Wertes von Q • Kante (P,Q) jetzt evtl. nicht mehr konsistent R P Q Praktikum KI WiSe 2007/08

  22. CSP – Arc Consistency • Beispiel: • Die Kante von SA nach NSW ist konsistent • Die Kante von NSW nach SA ist nicht konsistent, kann aber durch Entfernen von b aus NSW konsistent gemacht werden • Die Kante von NT nach SA ist nicht konsistent, macht man sie konsistent, so hat NT keine Werte mehr => Problem hat mit aktueller Zuordnung (WA=r, Q=g) keine Lösung => Backtracking Praktikum KI WiSe 2007/08

  23. CSP – Arc Consistency function AC-3(csp) returns the CSP, possibly with reduced domains inputs: csp, a binary CSP with variables {X1; X2; …; Xn} local variables: queue, a queue of arcs, initially all the arcs in csp while queue is not empty do (Xi; Xj) REMOVE-FIRST(queue) if REMOVE-INCONSISTENT-VALUES(Xi; Xj ) then for each Xk in NEIGHBORS[Xi] do add (Xk; Xi) to queue function REMOVE-INCONSISTENT-VALUES(Xi; Xj ) returns true iff we remove a value removed false for each x in DOMAIN[Xi] do if no value y in DOMAIN[Xj ] allows (x ,y) to satisfy the constraint between Xi and Xj then delete x from DOMAIN[Xi]; removed true return removed Praktikum KI WiSe 2007/08

  24. CSP – Arc Consistency • Eigenschaften: • Laufzeit O(n2d3) • Maximal n2 gerichtete Kanten im Constraint Graph • Jede Kante (P,Q) kann maximal d mal in die queue eingefügt werden, da maximal d Werte von Q gelöscht werden können • Das Überprüfen der Constraints zwischen P und Q hat Aufwand d2 • Die Überprüfung kann entweder nur zu Beginn der Suche oder nach jedem Schritt (im Suchbaum) vorgenommen werden • Aber: Auch Arc Consitency verhindert nicht immer das Auftreten von Inkonsitenzen: WA = r, NSW = r ist kantenkonsistent aber nicht konsistent. Praktikum KI WiSe 2007/08

  25. CSP - Backjumping • Normales CSP benutzt chronologisches Backtracking • Problem: Eventuell ist ganzer Zweig des Suchbaums inkosistent, das merkt man aber erst, nachdem man alle Blätter des Zweigs probiert hat • Lösungsidee: Springe zurück zur Variablenbelegung, die die Probleme verursacht hat • Bsp: • WA = r, NSW = r • Danach Belegung von T = r • Danach Belegung von NT, Q, V, SA • Keine Belegung von NT, Q, V, SA funktioniert • Normales CSP: T = g, T = b und alle Möglichkeiten für NT, Q, V, SA probieren • Conflict-Directed Backjumping: WA und NSW sind für die Probleme mit NT, Q, V, SA verantwortlich • Springe über T zurück zu NSW Praktikum KI WiSe 2007/08

  26. CSP - Strukturanalyse • Betrachte Zusammenhangskomponenten des Constraint-Graphen • Jede Zusammenhangskomponente kann unabhängig von allen anderen gelöst werden • Bsp: Farbe Tasmaniens hat keine Auswirkungen auf die anderen • Nach der Belegung von SA und Q zerfällt das restliche Problem in die Komponenten (WA, NT), (NSW, V) und (T) Praktikum KI WiSe 2007/08

  27. CSP - Strukturanalyse • Besonders einfaches CSP: Baumstruktur des Constraint-Graphen • Mache den Graphen kantenkonsistent, starte bei den Blättern • Dies erfordert kein wiederholtes Betrachten einer Kante • Starte die Belegung der Variablen von der Wurzel an • Aufgrund von Kantenkonsistenz keine Inkonsistenz möglich • Aufwand O(nd2) • Graphen, die keine Baumform aufweisen, können durch geschickte Belegung einzelner Variablen in einen Wald zerfallen • Bsp.: Belegung von SA • Aber: Finden dieses „cycle cutsets“ ist NP-schwer Praktikum KI WiSe 2007/08

  28. CSP – lokale Suche • Verzicht auf die Suche im Suchbaum • Verwende lokale Suchalgorithmen, um Lösung zu finden • Starte mit zufälliger Belegung • Optimierungsfunktion ist die Anzahl der verletzten Constraints • In jedem Schritt verändere eine constraint-verletzende Variable • Neuer Wert der Variablen so dass die Anzahl verletzter Constraints minimiert wird (Min-Conflicts-Algorithmus) • Geeignet für Probleme mit dichter Verteilung der Lösungen im Zustandsraum, z.B. n-Damen Praktikum KI WiSe 2007/08

  29. CSP – lokale Suche • Ergebnisse: Praktikum KI WiSe 2007/08

More Related