Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Probleme mit Rand- und Nebenbedingungen

Ähnliche Präsentationen


Präsentation zum Thema: "Probleme mit Rand- und Nebenbedingungen"—  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 X1 … Xn , wobei Xi Werte aus der Wertmenge („Domaine“) Di annehmen kann. Zieltest ist eine Menge von Bedingungen (Constraints) C1 … Cm. Jedes Ci definiert für eine Teilmenge der Variablen Kombinationen zulässiger Werte. Lösung ist die konsistente Zuweisung von Werten aus den Domänen Ci an alle Variable Xi. Konsistent bedeutet dabei mit den Contraints Ci 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 Di = {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(dn) 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öglich  „Beschränkungssprache“ erforderlich, z.B. StartJob1 + 5 ≤ StartJob3 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: X1, X2, X3 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 · X1 X1 + W + W = U + 10 · X2 X2 + T + T = O + 10 · X3 X3 = F, T ≠ 0, F ≠ 0

10 Reale CSPs Zuweisungsprobleme Stundenplan:
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! · dn Blattknoten bei nur dn möglichen Zuweisungen !

13 Backtracking Suche: Motivation
Problem des naiven Ansatzes: n! · dn Blattknoten bei nur dn 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 Backtracking: Beispiel

17 Backtracking: Beispiel

18 Backtracking: Beispiel

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: Welche Variable erhält nächsten Wert? In welcher Reihenfolge werden Werte durchprobiert? 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 Ci 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 Constraint Propagation: Arc consistency

31 Constraint Propagation: Arc consistency

32 Constraint Propagation: Arc consistency

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

34 Kantenkonsistenz-Algorithmus AC-3
Zeitkomplexität: O(n2d3), da Schlangenlänge: n2 Kanten, jede Kante d Mal in Schlange Rm-Inconsistent-Values: O(d2)

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 (44 = 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(dk + dl) statt O(dn) !

38 Baumstruktur Constraint-Graph = Baum, d.h. jedes Paar von Variablen durch höchstens einen Pfad verbunden Algorithmus mit Aufwand O(nd2): Wurzel = bel. Variable. Ordne Variable linear, so dass stets Elternknoten vor Kindknoten  jede Variable hat genau einen Vorgänger (außer Wurzel). Benenne geordnete Variable neu X1… Xn . For j=n to 2 Kantenkonsistenz (Xi, Xj) herstellen, wobei Xj Kind von Xi. Weise X1 erlaubten Wert zu. For j=2 to n Weise Xi 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: 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 – Knoten löschen Bestimme Knotenmenge S („zyklische Schnittmenge“), nach deren Entfernung der Graph zum Baum wird. Bestimme Menge B(S) aller zulässigen Variablenbelegungen für S. 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"

Ähnliche Präsentationen


Google-Anzeigen