Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Probleme mit Rand- und Nebenbedingungen. Überblick Probleme mit Rand- und Nebenbedingungen = Constraint Satisfaction Problems (CSPs) Backtracking-Suche.

Ähnliche Präsentationen


Präsentation zum Thema: "Probleme mit Rand- und Nebenbedingungen. Überblick Probleme mit Rand- und Nebenbedingungen = Constraint Satisfaction Problems (CSPs) Backtracking-Suche."—  Präsentation transkript:

1 Probleme mit Rand- und Nebenbedingungen

2 Überblick Probleme mit Rand- und Nebenbedingungen = Constraint Satisfaction Problems (CSPs) Backtracking-Suche für CSPs Lokale Suche für CSPs

3 Probleme mit Rand- und Nebenbedingungen (CSPs) Standard-Suchproblem: –Zustand ist "black box: Beliebige Daten, es sind nur Nachfolgerfunktion, Heuristikfunktion und Zieltest bekannt. CSP: –Zustand ist definiert durch Variable X 1 … X n, wobei X i Werte aus der Wertmenge (Domaine) D i annehmen kann. –Zieltest ist eine Menge von Bedingungen (Constraints) C 1 … C m. Jedes C i definiert für eine Teilmenge der Variablen Kombinationen zulässiger Werte. –Lösung ist die konsistente Zuweisung von Werten aus den Domänen C i an alle Variable X i. Konsistent bedeutet dabei mit den Contraints C i verträglich. Simples Beispiel einer formal representation language Erlaubt Gebrauch von general-purpose Algorithmen, die weiten Anwendungsbereich haben, aber dennoch leistungsfähiger als Standard-Suchalgorithmen sind.

4 Beispiel: Karte einfärben Variable: WA, NT, Q, NSW, V, SA, T Domänen D i = {rot, grün, blau} (für alle Variable) Bedingungen: Benachbarte Regionen müssen verschiedene Farben haben Z.B. WA NT Oder: (WA,NT) in {(rot, grün), (rot, blau), (grün, rot), (grün, blau), (blau, rot), (blau, grün)}

5 Beispiel: Karte einfärben Lösungen sind vollständige und konsistente Wertezuweisungen Z.B. WA = rot, NT = grün, Q = rot, NSW = grün, V = rot, SA = blau,T = grün.

6 Constraint-Graphen Binäres CSP: Jeder Bedingung setzt zwei Variable in Beziehung zueinander Constraint-Graph: –Knoten sind Variable –Kanten sind Bedingungen

7 Klassifizierung von CSPs Diskrete Variable: –Finite Domänen: n Variable, maximale Domänengröße d O(d n ) vollständige Wertezuweisungen Spezialfall Boolsche CSPs (Domäne {True, False}) –Infinite Domänen: Integer-Variable, Zeichenketten etc. Z.B. Auftrags-Scheduling, Variable sind Beginn / Ende für jeden Auftrag, Werte sind Tage Auflistung erlaubter Wertekombinationen unmöglichBeschränkungssprache erforderlich, z.B. StartJob StartJob 3 Kontinuierliche Variable –Z.B. Beginn / Ende der Nutzung einer Maschine mit kontinuierlicher Zeit –Lineare Programmierung löst Probleme mit Bedingungen in Gestalt linearer Ungleichungen (konvexer Bereich) in polynomialer Zeit in n.

8 Klassifizierung von Bedingungen Unäre Bedingungen betreffen jeweils nur eine Variable –Z.B. SA grün Binäre Bedingungen betreffen Paare von Variablen –Z.B. SA WA Bedingungen höherer Ordnung betreffen 3 oder mehr Variable –Z.B. Kryptoarithmetische Spalten-Bedingungen

9 Beispiel: Kryptoarithmetik Variable: F, T, U, W, R, O Hilfsvariable für Übertrag: X 1, X 2, X 3 Domänen: {0,1,2,3,4,5,6,7,8,9} Bedingungen: –Alldiff (F,T,U,W,R,O) (alle verschieden) –O + O = R + 10 · X 1 –X 1 + W + W = U + 10 · X 2 –X 2 + T + T = O + 10 · X 3 –X 3 = F, T 0, F 0

10 Reale CSPs Zuweisungsprobleme –Welcher Lehrer unterrichtet welche Klasse? Stundenplan: –Welche Vorlesung wann und wo? Planung von Transportaufgaben –Welcher Fahrer, welcher Lastwagen (wieviel Ladung), welche Strecke? Planung von Produktionsabläufen Viele Realweltprobleme enthalten reellwertige Variable!

11 Formulierung als Standardsuche (inkrementell) Zustände sind definiert durch bisher zugewiesene Werte. Startzustand: Leere Zuweisung { } (keine Variable hat Wert) Nachfolgerfunktion: Weise einer noch nicht belegten Variablen einen Wert zu, so dass kein Konflikt mit den schon erfolgten Zuweisungen entsteht. Falls unmöglich: Failure Pfadkosten: Konstant Zieltest: Die Zuweisung ist vollständig.

12 Eigenschaften der naiven Standardsuche für CSPs Standardisiert: Für alle CSPs gleich Für n Variable erscheint jede Lösung bei Tiefe n. Verwende Tiefensuche Pfad ist irrelevant Alternativ kann auch complete-state Formulierung verwendet werden: Zustand = Vollständige Zuweisung (egal ob Bed. erfüllt) Verwende lokale Suche Für n Variable mit d verschiedenen Werten: –b = n d bei Tiefe 0 –b(s) = (n - s)d bei Tiefe s –Daher n! · d n Blattknoten bei nur d n möglichen Zuweisungen !

13 Backtracking Suche: Motivation Problem des naiven Ansatzes: n! · d n Blattknoten bei nur d n möglichen Zuweisungen Aber: Variablen-Zuweisungen sind kommutativ, d.h. [ WA = rot, dann NT = grün ] ist dasselbe wie [ NT = grün, dann WA = rot ]. n! resultiert also aus der (noch vollständig repräsentierten) Kombinatorik Daher Breitensuche unsinnig Besser: Tiefensuche

14 Backtracking Suche Tiefensuche für CSPs heißt Backtracking Suche, wobei nur eine Zuweisung pro Knoten erfolgt b = d (bei d Werten), falls keine erlaubten Werte vorhanden: Zurück gehen. Backtracking ist Standardalgorithmus für uninformierte Suche bei CSPs Löst n-Damen bis n 25

15 Backtracking: Beispiel

16

17

18

19 Backtracking: Verbesserungen Uninformierte Suche konnte durch problemspezifische Heuristikfunktionen verbessert werden ( informierte Suche) Bei CSP steckt bereits in den Bedingungen C etwas problemspezifisches Wissen. Backtracking kann durch general-purpose (nicht problemspezifische) Methoden erheblich verbessert werden. Verbesserungsansätze, basierend auf constraints: 1.Welche Variable erhält nächsten Wert? 2.In welcher Reihenfolge werden Werte durchprobiert? 3.Kann Sackgasse vorhergesagt werden?

20 Variablenauswahl: Minimum remaining values (MRV) Heuristik der am stärksten eingeschränkten Variablen D.h. wähle Variable mit den wenigsten zulässigen Werten Dadurch ggf. frühes Abbrechen Extremfall: Wähle Variable ohne zulässige Werte Abbruch

21 Variablenauswahl: Most constraining variable Gradheuristik: Schränke Verzweigungsgrad b ein … … durch Wahl der Variablen, die in den meisten C i noch nicht zugewiesener Variabler enthalten ist. Bsp. Landkarte: Entscheidet u.a. auch welche Region als erste eingefärbt wird (im Gegensatz zu MRV)

22 Werteauswahl: Least constraining value Heuristik des geringst-einschränkenden Wertes D.h. wähle für geg. Variable den Wert, der am wenigsten Werte für die noch nicht belegten Variablen ausschließt. Kombination MRV + least constraining value: 1000-Damen möglich.

23 Sackgasse vorhersagen: Forward Checking Vorabüberprüfung Idee: –Beobachte Wertevorrat für noch nicht belegte Variable. –Beende Suche, wenn eine Variable keine zulässigen Werte mehr hat.

24 Sackgasse vorhersagen: Forward Checking Vorabüberprüfung Idee: –Beobachte Wertevorrat für noch nicht belegte Variable. –Beende Suche, wenn eine Variable keine zulässigen Werte mehr hat.

25 Sackgasse vorhersagen: Forward Checking Vorabüberprüfung Idee: –Beobachte Wertevorrat für noch nicht belegte Variable. –Beende Suche, wenn eine Variable keine zulässigen Werte mehr hat.

26 Sackgasse vorhersagen: Forward Checking Vorabüberprüfung Idee: –Beobachte Wertevorrat für noch nicht belegte Variable. –Beende Suche, wenn eine Variable keine zulässigen Werte mehr hat.

27 Sackgasse vorhersagen: Constraint Propagation Beschränkungsweitergabe Forward checking nutzt Information aus erfolgten Zuweisungen um noch nicht zugewiesene Variable zu checken. Aber nicht alle Sackgassen werden früh erkannt: NT und SA können nicht beide blau sein! Idee: Folgen der Beschränkungen einer Variablen noch weiter in die Zukunft propagieren Constraint Propagation erzwingt wiederholt Bedingungen lokal Algorithmen für Constraint Propagation ?

28 Constraint Propagation: Arc consistency Einfachste Form der Constraint Propagation: Kantenkonsistenz Gerichtete Kante X Y ist konsistent, wenn es für jeden Wert x aus X ein zulässiges y aus Y gibt, das mit x verträglich ist. Konsistenz von X Y kann hergestellt werden, indem alle Werte aus X entfernt werden, für die es kein zulässiges y aus Y gibt, das mit x verträglich ist. Idee: Beschränke Wertevorrat durch Herstellung von Kantenkonsistenz! Wenn X einen Wert verliert, müssen die Nachbarn von X wieder überprüft werden. Arc consistency erkennt Sackgassen früher als forward checking.

29 Constraint Propagation: Arc consistency

30

31

32

33 Stellt Kantenkonsistenz her Rm-Inconsistent-ValuesFunktion Rm-Inconsistent-Values (X i, X j ) : –Checkt ob für jedes x in X i passendes y in X j –Falls nicht, entferne x aus X i –Falls ein x aus X i entfernt wurde, return True, sonst False AC-3Funktion AC-3(csp) : –Lege Schlange von Kanten (X i, X j ) an Rm-Inconsistent-Values –Arbeite Schlange ab mit Rm-Inconsistent-Values Rm-Inconsistent-Values –Falls dabei Rm-Inconsistent-Values True zurückgibt: Reihe alle Nachbarn in Schlange ein Kantenkonsistenz-Algorithmus AC-3

34 Zeitkomplexität: O(n 2 d 3 ), da Schlangenlänge: n 2 Kanten, jede Kante d Mal in Schlange Rm-Inconsistent-Values:Rm-Inconsistent-Values: O(d 2 )

35 Lokale Suche für CSPs Hill-Climbing und simulated annealing bearbeiten meist vollständige Zustände, d.h. alle Variablen sind zugewiesen. Anwendung auf CSPs: –Erlaube Zustände mit nicht erfüllten Bedingungen –Operatoren verändern Werte Variablenauswahl: Zufällige Wahl aus Menge der Variablen mit Konflikten. Wertauswahl durch Heuristik minimaler Konflikte (Min-Conflicts) : –Wähle den Wert, der am wenigsten Bedingungen verletzt –D.h. Hill-Climbing mit h(n) = Gesamtzahl verletzter Bedingungen

36 Beispiel: 4-Damen Zustände: 4 Damen in 4 Spalten (4 4 = 256 Zustände) Aktionen: Bewege Dame in Spalte Zieltest: Keine Bedrohung Evaluationsfunktion: h(n) = # Bedrohungen Kann aus zufälligem Anfangszustand n-Damen in nahezu konstanter Zeit für bel. n mit hoher Wahrscheinlichkeit lösen (z.B. n = 10,000,000)

37 Problemstruktur Idee: Nutze Problemstruktur (repräsentiert in Constraint-Graph) zur Beschleunigung. Welche Eigenschaften des Constraint-Graphen sind nützlich? Bsp.: Tasmanien unverbunden! Suche nach unverbundenen (=unabhängigen) Unterproblemen! Bsp.: –n Variable, Domänengröße d –Zwei Teilprobleme der Größe k + l = n –Aufwand O(d k + d l ) statt O(d n ) !

38 Baumstruktur Constraint-Graph = Baum, d.h. jedes Paar von Variablen durch höchstens einen Pfad verbunden Algorithmus mit Aufwand O(nd 2 ): 1.Wurzel = bel. Variable. 2.Ordne Variable linear, so dass stets Elternknoten vor Kindknoten jede Variable hat genau einen Vorgänger (außer Wurzel). 3.Benenne geordnete Variable neu X 1 … X n. 4.For j=n to 2 Kantenkonsistenz (X i, X j ) herstellen, wobei X j Kind von X i. 5.Weise X 1 erlaubten Wert zu. 6.For j=2 to n Weise X i einen mit dem Elternknoten verträglichen Wert zu.

39 Baumstruktur

40 Graph-Reduktion auf Baum Kann allg. Constraint-Graph auf Baum reduziert werden? Zwei Ansätze: 1.Knoten löschen: Belege einige Knoten mit Werten, so dass restliche Knoten Baum bilden 2. Knoten zusammenlegen: Zerlege Constraint-Graph in verbundene Unterprobleme

41 1 – Knoten löschen

42 1.Bestimme Knotenmenge S (zyklische Schnittmenge), nach deren Entfernung der Graph zum Baum wird. 2.Bestimme Menge B(S) aller zulässigen Variablenbelegungen für S. 3.For all b in B(S) : Konsistenz aller anderen (d.h. nicht in S enthaltenen) Domänen mit b herstellen. Baum-Algorithmus auf Restproblem anwenden Falls Lösung: Fertig.

43 2 - Baumzerlegung Zerlege Constraint-Graph in Baum aus Unterproblemen, so dass –Jede Variable auftritt –Jede Bedingung auftritt –Variable, die in mehreren Unterproblemen auftreten, dort den gleichen Wert haben

44 2 - Baumzerlegung Lösung finden: –Löse Unterprobleme (falls eins unlösbar Ende) –Unterproblem wird Megavariable dessen Domäne Lösungsmenge des Unterproblems ist –Baum-Algorithmus anwenden

45 Zusammenfassung CSPs sind spezielles Suchproblem: –Zustände sind Werte einer Variablenmenge –Zieltest ist Menge von Bedingungen für Werte der Variablen Backtracking = Tiefensuche mit einer Wertzuweisung pro Knoten General-purpose Heuristiken zur Variablen- und Wertauswahl sehr effektiv Forward Checking verhindert Zuweisungen die garantiert in Sackgasse führen Constraint Propagation (z.B. Kantenkonsistenz) hilft Wertauswahl zu beschränken und Inkonsistenzen zu erkennen Komplexität des Constraint-Graphen bestimmt Lösungskomplexität. Falls (teilweise) Reduktion auf Baum möglich, erhebliche Vereinfachung Lokale Suche mit Min-Conflicts ist in der Praxis hocheffektiv


Herunterladen ppt "Probleme mit Rand- und Nebenbedingungen. Überblick Probleme mit Rand- und Nebenbedingungen = Constraint Satisfaction Problems (CSPs) Backtracking-Suche."

Ähnliche Präsentationen


Google-Anzeigen