8. Constraints Constraintprobleme 8. Constraints Probleme der bekannten Algorithmen beim Färbungsproblem: Northern Territory Queensland Western Australia South Australia New South Wales Victoria • Tiefen- und Breitensuche nutzen die Struktur des Problems nicht aus und • A* ist ausgerichtet auf Optimierungsprobleme. Tasmania Maschinelles Lernen und unsicheres Wissen — FH Bonn-Rhein-Sieg, WS 07/08 212 8. Constraints Constraintprobleme Charakterisierung von Constraintproblemen Allgemein: Färbungsproblem: • Objekten bzw. Variablen sollen • Teilstaaten von Australien • Werte aus Wertebereichen zugeordnet werden, • Farbe aus einer Menge von Farben • so daß gewisse Nebenbedingungen erfüllt sind. • benachbarte Teilstaaten müssen unterschiedlich gefärbt sein Weitere Beispiele: n-Damen-Problem, kryptoarithmetische Rätsel Maschinelles Lernen und unsicheres Wissen — FH Bonn-Rhein-Sieg, WS 07/08 213 8. Constraints Constraintprobleme Definition 8.7. Ein Constraintproblem (constraint satisfaction problem, CSP) besteht aus • einer endlichen Menge V von Variablen, • einem Wertebereich (Domäne) D(v) für jede Variable v ∈ V und • einer endlichen Menge C von Nebenbedingungen, auch Constraints genannt, die erlaubte Variablenkombinationen definieren. Ein Constraint c ∈ C heißt n-stellig, wenn es von n Variablen abhängt. V(c) ist die Menge der Variablen zum Constraint c ∈ C. Constraintprobleme, die nur ein- oder zweistellige Constraints enthalten, heißen binäre Constraintprobleme. Maschinelles Lernen und unsicheres Wissen — FH Bonn-Rhein-Sieg, WS 07/08 214 8. Constraints Constraintprobleme Markierung und Lösung für CSP Definition 8.8. Sei V = {x1, . . . , xn} ⊆ V. Eine V-Markierung ist eine Menge {x1 ← w1, x2 ← w2, . . . , xn ← wn} mit wi ∈ D(xi) für i = 1, . . . , n. V wird weggelassen, wenn die Variablenmenge aus dem Kontext hervorgeht. Eine Lösung (konsistente Markierung) eines Constraintproblems ist eine Markierung für V, so daß man für jedes Constraint c ∈ C bei Ersetzung der Variablen xi durch wi eine wahre Bedingung erhält. Maschinelles Lernen und unsicheres Wissen — FH Bonn-Rhein-Sieg, WS 07/08 215 8. Constraints Constraintprobleme Beispiel 8.1. • Färbungsproblem für Australien: V = {WA, NT, SA, Q, NSW, V, T } D = {rot, grün, blau} C = {WA 6= NT, WA 6= SA, NT 6= SA, NT 6= Q, SA 6= Q, SA 6= NSW, SA 6= V, Q 6= NSW, NSW 6= V} Die Markierung σ = {WA ← rot, NT ← grün, Q ← rot, NSW ← grün, V ← rot, SA ← blau, T ← rot} ist eine Lösung des CSP. Maschinelles Lernen und unsicheres Wissen — FH Bonn-Rhein-Sieg, WS 07/08 216 8. Constraints Constraintprobleme • Das 4-Damen-Problem: V = {x1, x2, x3, x4} D = {1, 2, 3, 4} C = {c(xi, xj)|i, j = 1, 2, 3, 4, i < j}, mit c(xi, xj) = xi 6= xj ∧ xi − xj 6= i − j ∧ xi − xj 6= j − i Die Markierung σ = {x1 ← 2, x2 ← 4, x3 ← 1, x4 ← 3} ist eine Lösung des CSP. Maschinelles Lernen und unsicheres Wissen — FH Bonn-Rhein-Sieg, WS 07/08 217 8. Constraints Constraintprobleme • Kryptoarithmetisches Rätsel: + F T T O W W U O O R V = {T, W, O, F, U, R, X1, X2, X3} {0, 1, . . . , 9} für v ∈ {W, O, U, R} {1, . . . , 9} für v ∈ {T, F} D(v) = {0, 1} für v ∈ {X1, X2, X3} C = {2 · O = R + 10 · X1, X1 + 2 · W = U + 10 · X2, X2 + 2 · T = O + 10 · X3, X3 = F, T 6= F, T 6= W, . . . , U 6= R} Maschinelles Lernen und unsicheres Wissen — FH Bonn-Rhein-Sieg, WS 07/08 218 8. Constraints Constraintprobleme Die Markierung σ = {T ← 7, W ← 3, O ← 4, F ← 1, U ← 6, R ← 8, X1 ← 0, X2 ← 0, X3 ← 1} ist eine Lösung des CSP. Maschinelles Lernen und unsicheres Wissen — FH Bonn-Rhein-Sieg, WS 07/08 219 8. Constraints Constraintprobleme Bemerkungen: • Im Gegensatz zum Färbungsproblem und zum n-Damen-Problem handelt es sich bei dem kryptoarithmetischen Rätsel nicht um ein binäres CSP. • Weitere Anwendungen von CSP: Frequenzzuordnung in Mobilfunknetzen, Stundenplanprobleme, Scheduling • Ein aktuelles Forschungsthema ist die Kombination von Logikprogrammierung mit Verfahren zur Lösung von Constraintproblemen. ☞ Constraint Programming Maschinelles Lernen und unsicheres Wissen — FH Bonn-Rhein-Sieg, WS 07/08 220 8. Constraints Constraintprobleme Constraintnetze Beispiel 8.2. Es sei n > 0. Das folgende Gleichungssystem ist über dem Bereich D = {0, 1, . . . , n} zu lösen. x + z = 2n y + w = 2n Wir nutzen Tiefensuche und markieren die Variablen in der Reihenfolge 1. x, y, z, w 2. x, z, y, w. Maschinelles Lernen und unsicheres Wissen — FH Bonn-Rhein-Sieg, WS 07/08 221 8. Constraints Constraintprobleme Suchbaum für n = 2 und die Reihenfolge x, y, z, w: X=0 Y=0 Y=1 X=1 Y=2 Y=0 Y=1 X=2 Y=2 Y=0 Y=1 Y=2 Z=2 Z=2 Z=2 W=2 Maschinelles Lernen und unsicheres Wissen — FH Bonn-Rhein-Sieg, WS 07/08 222 8. Constraints Constraintprobleme Suchbaum für n = 2 und die Reihenfolge x, z, y, w: X=0 X=1 X=2 Z=2 Y=0 Y=1 Y=2 W=2 Maschinelles Lernen und unsicheres Wissen — FH Bonn-Rhein-Sieg, WS 07/08 223 8. Constraints Constraintprobleme Bemerkungen: • Für beliebiges n wächst die Anzahl der Knoten im ersten Suchbaum mit n2, • die Anzahl der Knoten des zweiten Suchbaums mit 2n. • Grund: Die Variablen x, z stehen mit den Variablen y, w in keiner Beziehung. • Fazit: Die Information über die Beziehungen zwischen den Variablen eines CSP kann von großem Nutzen sein. Maschinelles Lernen und unsicheres Wissen — FH Bonn-Rhein-Sieg, WS 07/08 224 8. Constraints Constraintprobleme Definition 8.9. Ein Constraintnetz (constraint net) zu einem binären Constraintproblem ist ein Graph, • dessen Knoten den Variablen eines CSP entsprechen und • dessen Kanten mit den binären Constraints markiert sind. Ein Constraintnetz heißt zusammenhängend, wenn der Graph zusammenhängend ist. Maschinelles Lernen und unsicheres Wissen — FH Bonn-Rhein-Sieg, WS 07/08 225 8. Constraints Constraintprobleme Constraintnetz für das australische Färbungsproblem: Constraintnetz für Beispiel 1.2 und n = 2: NT Q WA SA X X+Y=4 Y Z Z+W=4 W NSW V T Maschinelles Lernen und unsicheres Wissen — FH Bonn-Rhein-Sieg, WS 07/08 226 8. Constraints Constraintprobleme • Nicht zusammenhängende Teile eines Constraintnetzes können separat gelöst werden. • Die Beschränkung auf binäre CSPs stellt prinzipiell keine Einschränkung dar, da jedes CSP in ein binäres CSP transformiert werden kann. • Alternativdarstellung am Beispiel des kryptoarithmetischen Rätsels: T W O + T W O F T U W R O F O U R X3 (a) X1 X2 (b) Maschinelles Lernen und unsicheres Wissen — FH Bonn-Rhein-Sieg, WS 07/08 227 8. Constraints Constraintprobleme Umwandlung in ein binäres CSP 1. Für jede Constraint c ∈ C wird eine neue Variable eingeführt, die die ursprünglichen Variablen V(c) einschließt. 2. Der Wertebereich der einschließenden Variablen ergibt sich aus der Relation, die die zugehörige Constraint erfüllt. 3. Nachdem so alle Constraints umgewandelt worden sind, werden zwei umschließende Variablen durch eine neue Constraint verbunden, wenn die Menge der zugehörigen ursprünglichen Variablen nicht leer ist. Maschinelles Lernen und unsicheres Wissen — FH Bonn-Rhein-Sieg, WS 07/08 228 8. Constraints Constraintprobleme Beispiel 8.3. Wir betrachten folgendes Constraintproblem: V = {x, y, z} D(x) = {1, 2} D(y) = {3, 4} D(z) = {5, 6} C = {x + y = z, x < y} Für die Constraint x + y = z führen wir die umschließende Variable u ein mit D(u) = {(1, 4, 5), (2, 3, 5), (2, 4, 6)} Für die Constraint x < y führen wir die umschließende Variable v ein mit D(v) = {(1, 3), (2, 3), (1, 4), (2, 4)} Maschinelles Lernen und unsicheres Wissen — FH Bonn-Rhein-Sieg, WS 07/08 229 8. Constraints Constraintprobleme Die Funktion πi(t) stelle die Projektion eines Tupels t auf die i-te Stelle dar. Die Constraints für das binäre CSP sind dann π1(u) = π1(v) Constraintnetz: und π2(u) = π2(v) {(1, 4, 5), (2, 3, 5), (2, 4, 6)} u π1 (u) = π1 (v) π2 (u) = π2 (v) v {(1, 3), (1, 4), (2, 3), (2, 4)} Maschinelles Lernen und unsicheres Wissen — FH Bonn-Rhein-Sieg, WS 07/08 230 8. Constraints Constraintprobleme CSP und Tiefensuche Startzustand: leere Markierung {} Zustandsübergang: Markierung einer bisher nicht markierten Variablen mit einem Wert, der nicht zu einem Konflikt führt Zielzustand: vollständige (konfliktfreie) Markierung für V. Zur Lösung verwendet man üblicherweise Tiefensuche, denn • die Tiefe des Suchbaums ist endlich und • Tiefe ist im voraus bekannt. Maschinelles Lernen und unsicheres Wissen — FH Bonn-Rhein-Sieg, WS 07/08 231 8. Constraints Heuristiken für Constraintprobleme Heuristik des minimalen Konflikts Nachfolgerzustände sollten günstig für die Effizienz der Problemlösung ausgesucht werden. ✕ ✕ ✕ s1 ✕ ✕ ✕ ✕ ✕ ✕ ✕ s0 s2 ✕ ✕ ✕ Ist s1 oder s2 besser? Maschinelles Lernen und unsicheres Wissen — FH Bonn-Rhein-Sieg, WS 07/08 232 8. Constraints Heuristiken für Constraintprobleme Die Heuristik des minimalen Konflikts (least constraining value heuristics, LCV-Heuristik) lautet: ☞ Ordne die möglichen Werte für eine Variable nach der Anzahl der Konflikte, die ein Wert mit den noch zu markierenden Variablen erzeugt. ☞ Bevorzuge den Wert, der die wenigsten Konflikte erzeugt. Bemerkungen: • Der “Konfliktgrad” für einen Nachfolgerzustand kann durch eine heuristische Funktion h(s) zum Ausdruck gebracht werden. • Die Nachfolgerzustände werden dann aufsteigend sortiert gemäß h(s) in die Agenda eingefügt. Maschinelles Lernen und unsicheres Wissen — FH Bonn-Rhein-Sieg, WS 07/08 233 8. Constraints Heuristiken für Constraintprobleme Beispiel 8.4. Für das n-Damen-Problem: h(s) := Anzahl der bedrohten Felder in den noch zu besetzenden Spalten. Damit ist h(s1 ) = 7 und h(s2) = 6. Also wird zunächst s2 expandiert. Allgemein: Um h(s) für eine Markierung x ← w zu ermitteln, • bestimme für jede noch zu markierende Variable y • die Anzahl der Werte v ∈ D(y), für die die Markierung {. . . , x ← w, y ← v} ein Constraint verletzt • und summiere diese Werte auf. Maschinelles Lernen und unsicheres Wissen — FH Bonn-Rhein-Sieg, WS 07/08 234 8. Constraints Heuristiken für Constraintprobleme Heuristik der maximal eingeschränkten Variablen 1 ✕ ✕ ✕ ✕ ✕ ✕ 2 • Die zu markierende Variable sollte ebenfalls günstig für die Effizienz der Problemlösung ausgesucht werden. 3 ✕ 4 ✕ 5 ✕ • Welche Spalte soll als nächstes besetzt werden? 6 ✕ ✕ ✕ 7 ✕ ✕ ✕ ✕ ✕ ✕ f g ✕ ✕ ✕ ✕ ✕ ✕ ✕ ✕ 8 a b Maschinelles Lernen und unsicheres Wissen — FH Bonn-Rhein-Sieg, WS 07/08 c d e h 235 8. Constraints Heuristiken für Constraintprobleme Die Heuristik der maximal eingeschränkten Variablen (most constrainted variable heuristics, MCV-Heuristik) lautet: ☞ Ordne die zu markierenden Variablen nach der Anzahl der noch möglichen Werte und ☞ bevorzuge die Variable, die die wenigsten möglichen Werte besitzt. Kombination der beiden Heuristiken: • Die nächste zu markierende Variable wird mit der Heuristik der maximal eingeschränkten Variablen ermittelt. • Anschließend wird für diese Variable ein Wert mit der Heuristik des minimalen Konflikts bestimmt. Maschinelles Lernen und unsicheres Wissen — FH Bonn-Rhein-Sieg, WS 07/08 236 8. Constraints Heuristiken für Constraintprobleme Gradheuristik NT Q WA Mit welchem Knoten sollte man beim Färbungsproblem beginnen? SA NSW V T Maschinelles Lernen und unsicheres Wissen — FH Bonn-Rhein-Sieg, WS 07/08 237 8. Constraints Heuristiken für Constraintprobleme • Zunächst gibt es für jeden Knoten drei erlaubte Farben, daher ist die MCV-Heuristik nutzlos. • Ziel ist es stets, den Verzweigungsgrad des Suchbaums zu reduzieren. • Daher: Wähle einen Knoten, der einen möglichst großen Einfluß auf die verbleibenden Knoten hat (hier SA). Die Gradheuristik lautet: ☞ Wähle die Variable aus, die in den meisten Beschränkungen der noch nicht markierten Variablen enthalten ist. Maschinelles Lernen und unsicheres Wissen — FH Bonn-Rhein-Sieg, WS 07/08 238 8. Constraints Heuristiken für Constraintprobleme Bemerkungen: • Die Gradheuristik ist sinnvoll, wenn die Knoten des Constraintgraphen unterschiedliche Grade aufweisen. • Beim n-Damen-Problem hat man einen vollständigen Graphen, daher ist die Gradheuristik nutzlos. • Die MCV-Heuristik ist sinnvoll, wenn die Constraints stark einschränkend sind. • Beide Heuristiken können auch miteinander kombiniert werden, z.B. Auflösung gleichbewerteter Variablen bei der MCV-Heuristik durch die Gradheuristik. Maschinelles Lernen und unsicheres Wissen — FH Bonn-Rhein-Sieg, WS 07/08 239 8. Constraints Constraintpropagierung Vorabüberprüfung Idee: ☞ Man versucht den Suchbaum zu reduzieren, indem man Constraints frühzeitig berücksichtigt und hierdurch Wertebereiche von Variablen einschränkt. Vorabüberprüfung: • Immer wenn eine Variable x markiert wurde, betrachtet man alle noch nicht markierten Variablen y, die mit x durch ein Constraint verbunden sind. • Man löscht jeden Wert aus D(y), der mit dem Wert für x inkonsistent ist. Maschinelles Lernen und unsicheres Wissen — FH Bonn-Rhein-Sieg, WS 07/08 240 8. Constraints Constraintpropagierung Beispiel 8.5. Färbungsproblem für Australien mit Vorabüberprüfung: WA Initial domains After WA=red After Q=green After V=blue NT Q NSW V SA T R G B R G B R G B R G B R G B R G B R G B G B R G B R G B R G B R G B R G B G B R B R G B R B R G B R B G R Maschinelles Lernen und unsicheres Wissen — FH Bonn-Rhein-Sieg, WS 07/08 B R G B 241 8. Constraints Constraintpropagierung Propagierung von Constraints Beispiel 8.6. Wir betrachten das folgende CSP: V = {x, y, z, w} D = {1, 2, 3, 4} C X=1 X=2 Y=1 X=4 X=3 Y=1 Y=2 Y=1 Y=2 Y=3 = {x > y, y > z, Z=1 z > w} Z=1 Z=1 Z=2 W=1 ☞ Der Suchbaum enthält mehrere Äste, die aus demselben Grund scheitern, z.B. {y ← 1} ist unverträglich mit z. Maschinelles Lernen und unsicheres Wissen — FH Bonn-Rhein-Sieg, WS 07/08 242 8. Constraints Constraintpropagierung Idee: ☞ Versuche Äste mit unverträglichen Markierungen bereits vor der Tiefensuche abzuschneiden (pruning). ☞ Betrachte hierzu Widersprüche bei der Markierung, die sich aus Constraints ergeben. Beispiel 8.7. Mögliche Markierungen für x > y: x\y 1 2 3 4 1 ✘ ✓ ✓ ✓ 2 ✘ ✘ ✓ ✓ 3 ✘ ✘ ✘ ✓ 4 ✘ ✘ ✘ ✘ =⇒ x ← 1 ist widerpruchsvoll. =⇒ y ← 4 ist widerpruchsvoll. Maschinelles Lernen und unsicheres Wissen — FH Bonn-Rhein-Sieg, WS 07/08 243 8. Constraints Constraintpropagierung • Der Wertebereich der Variablen x und y wird entsprechend angepaßt. • Dies hat Auswirkungen auf andere mögliche Markierungen. y\z 1 2 3 1 ✘ ✓ ✓ 2 ✘ ✘ ✓ 3 ✘ ✘ ✘ 4 ✘ ✘ ✘ =⇒ z ← 3 ist widerpruchsvoll. z\w 1 2 1 ✘ ✓ 2 ✘ ✘ 3 ✘ ✘ 4 ✘ ✘ =⇒ Nur w ← 1 ist möglich. =⇒ z ← 4 ist widerpruchsvoll. =⇒ Nur z ← 2 ist möglich. Damit bleiben nur y ← 3 und x ← 4 als Möglichkeiten übrig. Maschinelles Lernen und unsicheres Wissen — FH Bonn-Rhein-Sieg, WS 07/08 244 8. Constraints Constraintpropagierung Ablauf der Constraintpropagierung: Schritt 1 2 3 4 5 6 7 8 Constraint x>y x>y y>z y>z z>w z>w y>z x>y Variable x y y z z w y x alter Bereich {1, 2, 3, 4} {1, 2, 3, 4} {1, 2, 3} {1, 2, 3, 4} {1, 2} {1, 2, 3, 4} {2, 3} {2, 3, 4} Maschinelles Lernen und unsicheres Wissen — FH Bonn-Rhein-Sieg, WS 07/08 neuer Bereich {2, 3, 4} {1, 2, 3} {2, 3} {1, 2} {2} {1} {3} {4} 245 8. Constraints Constraintpropagierung Definition 8.10. Eine Variable x heißt konsistent gdw. jede mögliche {x}-Markierung die einstelligen Constraints c mit V(c) = {x} erfüllt. Ein CSP heißt knotenkonsistent (1-konsistent) gdw. jede Variable konsistent ist. Ein zweistelliges Constraint c mit V(c) = {x, y} heißt konsistent gdw. sich jede Markierung {x ← v} zu einer Markierung {x ← v, y ← w} erweitern läßt. Ein CSP heißt kantenkonsistent gdw. es knotenkonsistent ist und wenn jedes zweistellige Constraint konsistent ist. Maschinelles Lernen und unsicheres Wissen — FH Bonn-Rhein-Sieg, WS 07/08 246 8. Constraints Constraintpropagierung Bemerkungen: • Die Propagierung von Constraints hat das Ziel, ein kantenkonsistentes CSP zu erzeugen. • Wenn kein kantenkonsistentes CSP erzeugt werden kann, so ist das CSP unlösbar. • Wenn ein kantenkonsistentes CSP erzeugt werden kann, so folgt allgemein nicht die Lösbarkeit des CSP, der Aufwand der Suche reduziert sich aber i.d.R. deutlich. • Die Kantenkonsistenz ist unter bestimmten Bedingungen an die Struktur des Constraintnetzes hinreichend, um eine Suche ohne Backtracking zu garantieren. Maschinelles Lernen und unsicheres Wissen — FH Bonn-Rhein-Sieg, WS 07/08 247 8. Constraints Constraintpropagierung Algorithmus 8.1. [AC-3] Nach Anwendung von AC-3 besteht entweder Kantenkonsistenz oder eine Variable hat einen leeren Wertebereich, d.h. das CSP ist nicht lösbar. Q ← Menge der Kanten des Constraintnetzes while Q 6= ∅ do (x, y) ← LöscheErstesElement(Q) if LöscheInkonsistenteWerte(x, y) then for each z adjazent mit x do Q ← Q + (z, x) LöscheInkonsistenteWerte(x, y) del ← false for each w ∈ D(x) do if 6 ∃v ∈ D(y) : (w, v) erfüllt Constraints zu (x, y) then D(x) ← D(x) \ {w}; del ← true return del Maschinelles Lernen und unsicheres Wissen — FH Bonn-Rhein-Sieg, WS 07/08 248 8. Constraints Constraintpropagierung Bemerkungen: • AC-3 verwendet eine Schlange, um die Kanten zu verwalten, die auf Inkonsistenz geprüft werden müssen. • Die Kanten sind prinzipiell gerichtet. • Jede Kante (x, y) wird aus der Queue entfernt und überprüft. • Müssen Werte aus D(x) entfernt werden, muß jede Kante (z, x) wieder in die Schlange eingefügt werden. Maschinelles Lernen und unsicheres Wissen — FH Bonn-Rhein-Sieg, WS 07/08 249 8. Constraints Constraintpropagierung Beispiel 8.8. Kombination von Tiefensuche und Constraintpropagierung beim 4-Damen-Problem: ✕ ✕ ✕ ✕ ✕ ✕ ✕ ✕ ✕ ✕ ✕ ✕ ✕ ✕ ✕ ✕ ✕ ✕ ✕ ✕ Maschinelles Lernen und unsicheres Wissen — FH Bonn-Rhein-Sieg, WS 07/08 250 8. Constraints Constraintpropagierung Definition 8.11. Ein CSP heißt k-konsistent gdw. eine Markierung {x1 ← w1, . . . , xk−1 ← wk−1} von k − 1 Variablen für alle Variablen y ∈ V, y ∈ / {x1, . . . , xk−1 } erweitert werden kann, so daß alle Constraints zwischen {x1, . . . , xk−1, y} erfüllt sind. Ein CSP ist streng k-konsistent gdw. es konsistent ist für 1 ≤ i ≤ k. Maschinelles Lernen und unsicheres Wissen — FH Bonn-Rhein-Sieg, WS 07/08 251 8. Constraints Min-Conflicts-Heuristik Lokale Suche für CSP: Min-Conflicts-Heuristik • Man startet mit einer V-Markierung, die keine Lösung des CSP darstellt. • In einer Iteration wählt man zufällig eine Variable aus und minimiert für diese die durch C gegebenen Konflikte. • Dies führt man solange fort, bis eine Lösung gefunden wurde oder eine maximale Anzahl an Iteration erreicht ist. Maschinelles Lernen und unsicheres Wissen — FH Bonn-Rhein-Sieg, WS 07/08 252 8. Constraints Min-Conflicts-Heuristik Beispiel 8.9. 2 3 2 3 1 2 2 3 3 1 2 2 3 0 • In jeder Iteration wird eine Dame gewählt, um sie in der Spalte neu zu positionieren. • Die Min-Conflicts-Heuristik verschiebt die Damen auf das Feld mit den wenigsten Konflikten. Maschinelles Lernen und unsicheres Wissen — FH Bonn-Rhein-Sieg, WS 07/08 253 8. Constraints Min-Conflicts-Heuristik Bemerkungen: • Für das n-Damen-Problem ist die Anzahl der Iterationen so gut wie unabhängig von der Problemgröße! • Selbst das 106-Damen-Problem kann so in durchschnittlich 50 Schritten gelöst werden. • Grund: Die Lösungen liegen im Zustandsraum dicht verteilt. • Weiterer Vorteil von Min-Conflicts: Anwendbarkeit bei einer OnlineLösung, wenn sich das Problem ändert Maschinelles Lernen und unsicheres Wissen — FH Bonn-Rhein-Sieg, WS 07/08 254 8. Constraints Min-Conflicts-Heuristik Vergleich verschiedener CSP-Algorithmen Problem USA n-Damen Zebra Zufall 1 Zufall 2 BT (> 1000K) (> 40.000K) 3.859K 415K 942K BT+MCV (> 1000K) 13.500K 1K 3K 27K Vorab 2K (> 40.000K) 35K 26K 77K Maschinelles Lernen und unsicheres Wissen — FH Bonn-Rhein-Sieg, WS 07/08 Vorab+MCV 60 817K 0.5K 2K 15K 255 Min-Conf. 64 4K 2K 8. Constraints Ausnutzung der Problemstruktur Ausnutzung der Problemstruktur • Der einfachste Fall: unabhängige Unterprobleme • erkennbar durch: Zusammenhangskomponenten im Constraintnetz • Komponenten haben c Variablen aus n Variablen. Laufzeit ist dann O(dcn/c) statt O(dn) mit d = |D|. • Beispiel: n = 80, d = 2, c = 20 280 = 4 Mrd. Jahre bei 10 Mill. Knoten / sec 4 · 220 = 0.4 Sekunden bei 10 Mill. Knoten / sec Maschinelles Lernen und unsicheres Wissen — FH Bonn-Rhein-Sieg, WS 07/08 256 8. Constraints Ausnutzung der Problemstruktur Baum-strukturierte CSPs Algorithmus 8.2. 1. Wähle eine Variable x1 als Wurzel des Baumes, ordne die Variablen x1, . . . , xn von der Wurzel zu den Blättern gemäß Tiefensuche. A E B C A D (a) B D C F E F (b) 2. Für j = n bis 1 wende man die Kantenkonsistenz auf die Kante (Vater(xj), xj) an. Maschinelles Lernen und unsicheres Wissen — FH Bonn-Rhein-Sieg, WS 07/08 257 8. Constraints Ausnutzung der Problemstruktur 3. Für j = 1 bis n weise man der Variablen xj einen Wert zu, der konsistent mit dem Vater von xj ist. Bemerkungen: • Nach 2. ist das CSP gerichtet kantenkonsistent, so daß für die Zuweisungen in 3. kein Backtracking erforderlich ist. • Durch die Anwendung der Kantenkonsistenz in umgekehrter Reihenfolge (2.) wird sichergestellt, daß entfernte Werte die Konsistenz von bereits verarbeiteten Knoten nicht gefährden können. Satz 8.1. Ist das Constraintnetz ein Baum, so kann das CSP in Zeit O(nd2) gelöst werden. Maschinelles Lernen und unsicheres Wissen — FH Bonn-Rhein-Sieg, WS 07/08 258 8. Constraints Ausnutzung der Problemstruktur Schnittmengenkonditionierung Idee: Man markiere einige wenige Variablen, so daß das restliche Constraintnetz einen Baum bildet. NT NT Q Q WA WA SA NSW V T Maschinelles Lernen und unsicheres Wissen — FH Bonn-Rhein-Sieg, WS 07/08 NSW V T 259 8. Constraints Ausnutzung der Problemstruktur Algorithmus 8.3. 1. Wähle S ⊂ V, so daß das Constraintnetz ohne S einen Baum darstellt. S wird auch als zyklische Schnittmenge bezeichnet. 2. Für alle möglichen S-Markierungen, die die Constraints auf S erfüllen: (a) entferne aus den Wertebereichen der Variablen V \ S die Werte, die inkonsistent mit der S-Markierung sind und (b) wenn es für das verbleibende CSP eine konsistente Markierung gibt, so vereinige diese mit der S-Markierung und gebe die Vereinigung als Lösung zurück. ☞ c = |S| =⇒ Laufzeit: O(dc · (n − c)d2) Maschinelles Lernen und unsicheres Wissen — FH Bonn-Rhein-Sieg, WS 07/08 260 8. Constraints Ausnutzung der Problemstruktur Baumzerlegung • Zerlege in unabhängige Teilprobleme NT NT Q WA SA SA • löse die Teilprobleme separat • Setze die Lösungen der Teilprobleme zu einer konsistenten Gesamtlösung zusammen Maschinelles Lernen und unsicheres Wissen — FH Bonn-Rhein-Sieg, WS 07/08 Q SA NSW SA NSW T V 261 8. Constraints Ausnutzung der Problemstruktur Eine Baumzerlegung muß die folgenden Bedingungen erfüllen: • Jede Variable im ursprünglichen Problem erscheint in mindestens einem Teilproblem. • Sind zwei Variablen x, y im ursprünglichen Problem durch ein Constraint c verbunden, so müssen x, y, c in mindestens einem Teilproblem auftreten. • Wenn eine Variable in zwei Teilproblem P1, P2 auftritt, muß sie in jedem Teilproblem entlang des Pfades, der P1 und P2 verbindet, auftreten. Maschinelles Lernen und unsicheres Wissen — FH Bonn-Rhein-Sieg, WS 07/08 262 8. Constraints Ausnutzung der Problemstruktur • Das Ziel bei einer Baumzerlegung ist es, die Teilprobleme so klein wie möglich zu machen. • Die Baumbreite einer Baumzerlegung ist definiert als die Größe des größten Teilproblems + 1. • Die Baumbreite des eigentlichen Graphen ist definiert als die minimal mögliche Baumbreite. • Bei Baumbreite w und wenn die entsprechende Zerlegung bekannt ist, kann das CSP in O(ndw+1 ) gelöst werden. • Die Ermittlung der Zerlegung mit minimaler Baumbreite ist N Pvollständig, aber es gibt ausreichend gut funktionierende Heuristiken. Maschinelles Lernen und unsicheres Wissen — FH Bonn-Rhein-Sieg, WS 07/08 263 8. Constraints Zusammenfassung Zusammenfassung • CSP: Problem unter Nebenbedingungen, Lösungsansatz: Tiefensuche • Vernüftige Auswahl von Variablen und Werten: MCV- und LCVHeuristik, Gradheuristik • Reduzierung des Verzweigungsgrades: Vorabüberprüfung und Constraintpropagierung • Oft erfolgreich: Lokale Suche mittels Min-Conflicts-Heuristik • Ausnutzung der Struktur: Schnittmengenkonditionierung und Baumzerlegung Maschinelles Lernen und unsicheres Wissen — FH Bonn-Rhein-Sieg, WS 07/08 264