Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Constraint Processing Version 0.95 Prof. Dr. W. Conen, FH Gelsenkirchen, WS04/05 -- Teil von INT A -- Auf Basis von Rina Dechter, Constraint Processing,

Ähnliche Präsentationen


Präsentation zum Thema: "Constraint Processing Version 0.95 Prof. Dr. W. Conen, FH Gelsenkirchen, WS04/05 -- Teil von INT A -- Auf Basis von Rina Dechter, Constraint Processing,"—  Präsentation transkript:

1 Constraint Processing Version 0.95 Prof. Dr. W. Conen, FH Gelsenkirchen, WS04/05 -- Teil von INT A -- Auf Basis von Rina Dechter, Constraint Processing, Einstieg s. Mitschrieb -- [Das (sehr nette) Buch sollten Sie nicht benötigen, alles Wichtige für die Klausur finden Sie in Folien, Mitschrieb und Übungsaufgaben] -- Sollten ihnen Fonts fehlen, dann installieren sie texpoint,texpoint das ist harmlos (LateX-Formeln/Zeichen in PowerPoint)

2 Constraint Processing, INTA, FH Gelsenkrichen, W. Conen 2 Constraint-Graphen Graphen helfen, die Struktur von Constraint-Problemen zu verstehen und die Probleme zu lösen. Primale Constraint-Graphen (oder auch einfach Constraint-Graphen):  Jeder Knoten repräsentiert eine Variable.  Kanten verbinden jeweils paarweise alle Knoten, die zum Scope eines Constraints gehören (auch bei mehr-stelligen Constraints, dann nicht sehr natürliche Repräsentation).  Gibt es zwischen einem Knotenpaar keine Kante, dann entspricht der Constraint der universellen binären Relation mit allen möglichen Wertpaaren für das betroffene Knotenpaar x1x1 x2x2 x3x3 x4x4 Q Q Q Q Lösungen: (2,4,1,3),(3,1,4,2)

3 Constraint Processing, INTA, FH Gelsenkrichen, W. Conen 3 Constraint-Graphen Kreuzworträtsel, erlaubte Wörter { HOSES, LASER, SHEET, SNAIL, STEER, ALSO, EARN, HIKE, IRON, SAME, EAT, LET, RUN, SUN, TEN, YES, BE, IT, NO, US } Repräsentation 1: Eine Variable pro Feld, Domains = Alphabet, Constraints: mögliche Wörter, z.B. R {1,2,3,4,5} = {(H,O,S,E,S), (L,A,S,E,R), (S,H,E,E,T),(S,N,A,I,L),(S,T,E,E,R)}, R {10,13} = {(B,E),(I,T),(N,O),(U,S)}, R {12,13} = R {10,13} usw. Konsistentes partielles Assignment für {x 1,x 2,x 3,x 4,x 5,x 6,x 9,x 12 }:  {1,2,3,4,5,6,9,12} = {(H,O,S,E,S,A,M,E), (L,A,S,E,R,A,M,E), (S,H,E,E,T,A,R,N), (S,N,A,I,L,L,S,O), (S,T,E,E,R,A,R,N) }

4 Constraint Processing, INTA, FH Gelsenkrichen, W. Conen 4 Constraint-Graphen Kreuzworträtsel, erlaubte Wörter { HOSES, LASER, SHEET, SNAIL, STEER, ALSO, EARN, HIKE, IRON, SAME, EAT, LET, RUN, SUN, TEN, YES, BE, IT, NO, US } Repräsentation 2: Eine Variable pro START-Feld und Richtung, x 1 für „1, horizontal“, x 2 für „3, vertikal“, x 3 für „5, vertikal“, x 4 für „8, horizontal“, x 5 für „12, horizontal“, x 6 für „10, vertikal“ Domains = mögliche Wörter (abhängig von der Länge!) Schema des Problems: {{x 1,x 2 }, {x 1,x 3 }, {x 4,x 2 }, {x 4,x 3 }, {x 5,x 2 }, {x 6,x 4 }, {x 6,x 5 } } Constraints z.B. zwischen x 1 und x 2 : R 12 = {(HOSES,SAME), (LASER,SAME), (SHEET,EARN), (SNAIL,ALSO), (STEER,EARN) } Konsistentes partielles Assignment für {x 1,x 2,x 3,x 4,x 5 }: {(SHEET, EARN, TEN, IRON, NO)} Binäre Constraints, es gibt keine Lösung SH I E A R N E O T E N

5 Constraint Processing, INTA, FH Gelsenkrichen, W. Conen 5 Constraint-Graphen Definition: Hypergraph  Ein Hypergraph ist eine Struktur H = (V,S) aus Knoten, V = {v 1,...,v n }, und Hyperkanten S = {S 1,...,S l }, S i µ V. Constraint-Hypergraphen repräsentieren mehrstellige Constraints auf natürlichere Art, Hyperkanten sind Constraints, Knoten Variablen (für binäre Constraints sind sie „normale“ Graphen) Beispiel Alldiff-Constraint: S 1 = Alldiff(x 1,x 2,x 3,x 4 ) x1x1 x2x2 x3x3 x4x4 Als binäre Constraints: Alldiff = paarweise verschieden x1x1 x2x2 x3x3 x4x4 Hyperkante als Rechteck x1x1 x2x2 x3x3 x4x4 Hyperkante als Region S1S1 S1S1       

6 Constraint Processing, INTA, FH Gelsenkrichen, W. Conen 6 Dual Constraint-Graph Dualer Constraintgraph  Jeder Constraint-Scope wird zu einem Knoten, der Knoten wird mit dem Scope beschriftet  Kanten verbinden Scopes mit gemeinsamen Variablen, der Index der gemeinsamen Variable(n) wird an die verbindende Kante geschrieben Dualer Graph der ersten Variante der Repräsentation des Kreuzworträtsel (gleiche Struktur, wie der primale Graph der zweiten Variante!) 1,2,3,4,5 5,7,11 3,6,9,12 8,9,10,11 12,13 10,

7 Constraint Processing, INTA, FH Gelsenkrichen, W. Conen 7 Duales Problem Duale Probleme  Gegeben ist ein nicht-binäres Constraint-Netzwerk  Die Constraints werden zu Variablen, den sogenannten c- Variablen  Domain der Variablen sind die erlaubten Wertkombinationen  Zwischen c-Variablen mit gemeinsamen „Original“-Variablen gibt es binäre Constraints, die die Gleichheit der gemeinsamen Variablen erzwingen („equality constraints“)  Beachten Sie: die Gleichheit, die gefordert wird, erstreckt sich nur auf Teile der Werte (die ja Tupel sind), nämlich die jeweils gemeinsamen Tupelteile  Resultat ist ein binäres Netzwerk Auf diese Art kann jedes nicht-binäre Netzwerk in ein binäres Netzwerk überführt werden! (und damit dann auch jede Relation repräsentiert werden)

8 Constraint Processing, INTA, FH Gelsenkrichen, W. Conen 8 Spezielle Constraints: Numerische Constraints Explizite „extensionale“ Repräsentation von Constraints kann mühevoll (sprich: aufwändig) sein Oft helfen mathematische/logische Konventionen bei einer knapperen, „intensionalen“ Formulierung Arithmetisch-logische Ausdrücke als numerische Constraints:  4-Königinnen-Problem: es muß gelten 8 i,j x i  x j und |x i -x j |  |i-j|, d.h. R ij = {(x i,x j ) | x i 2 D i, x j 2 D j, x i  x j und |x i -x j |  |i-j| }  Binäre Constraint zwischen zwei Variablen: Konjunktion linearer Ungleichungen: (3x i +2x j · 3) Æ (-4x i +5x j < 1) Das ist ein „ganzzahliges lineares Programm“ (mit Ungleichungen mit ein oder zwei Variablen) Lineare Constraints sind wichtig bei z.B. im Scheduling, bei Temporalem und Räumlichem Schließen usw.  Beispiel: crypt-arithmetische Puzzle, z.B. TWO+TWO=FOUR oder SEND+MORE=MONEY, jeder Buchstabe steht für eine andere Zahl, keine führende 0 (beide zur Übung formulieren)

9 Constraint Processing, INTA, FH Gelsenkrichen, W. Conen 9 Spezielle Constraints: Bool‘sche Constraints Zweiwertige Domains kann man sehr gut mit Aussagenlogik modellieren. Beispiel:  Wir wollen Freunde zu einer Party einladen: Karsten, Kai, Nadja.  Wir wissen: Wenn Karsten kommt, wird auch Kai kommen Wenn Nadja kommt, wird auch Karsten kommen  Aussagen: A = „Karsten kommt“, B = „Kai kommt“, C = „Nadja kommt“ (A ! B) Æ (C ! A)  Wenn Nadja kommt, kommt dann auch Kai?  (C Æ (A ! B) Æ (C ! A)) ! B?  Alternative Frage: Ist C Æ (A ! B) Æ (C ! A) Æ B unerfüllbar?  Eine Formel der Aussagenlogik in konjunktiver Normalform (CNF) nennen wir auch „Theorie“ (Fortsetzung zum Beispiel folgt)

10 Constraint Processing, INTA, FH Gelsenkrichen, W. Conen 10 Spezielle Constraints: Bool‘sche Constraints  = (A Ç B) Æ (C Ç : B) ist eine solche CNF-Theorie Sie kann als Constraint-Netzwerk formuliert werden:  A,B,C, also die atomaren Aussagen, sind die Variablen  Domains: {0,1}  Constraints sind die Disjunktionen (oder Klauseln in unserer Mengennotation), z.B. steht A Ç B für R AB = {(0,1),(1,0),(1,1)} Das sogenannte Propositional Satisfiability Problem (SAT) fragt, ob eine gegebene CNF-Theorie erfüllbar ist...oder, alternativ, ob das Constraints-Netzwerk konsistent ist!

11 Constraint Processing, INTA, FH Gelsenkrichen, W. Conen 11 Spezielle Constraints: Bool‘sche Constraints Der primale Constraintsgraph wird für diesen Problemtyp auch „Interaktionsgraph“ (interaction graph) genannt   = {{: C}, {A,B,C}, {: A,B,E}, {: B,C,D}}, Interaktionsgraph hierzu: E D C B A

12 Constraint Processing, INTA, FH Gelsenkrichen, W. Conen 12 Eigenschaften binärer Constraint-Netze: Constraint Deduction bzw. Constraint Inference: Neue zbw. veränderte Constraints können aus einer Menge gegebener Constraints geschlossen werden.  Das kann zu Constraints zwischen bisher unverbundenen Variablen führen: x · y und y · z ) x · z  oder zu „engeren“ bzw. schärferen Constraints („tightening of constraints“) Wichtig ist natürlich, „äquivalente“ Netzwerke zu erzeugen! „Geschlossene“ (inferred) Constraints sind dann redundant (weil sie die Lösungsmenge nicht verändern) Aber für die Effizienz der Lösungsfindung können sie eine große Rolle spielen!

13 Constraint Processing, INTA, FH Gelsenkrichen, W. Conen 13 Eigenschaften binärer Constraint-Netze: Beispiel zu Constraint Inference: Graph-Coloring Zwei Lösungen  123 = {rot,blau,rot), (blau,rot,blau)} rot, blau Zwischen x 1 und x 3 sind zunächst alle Wertpaare erlaubt Diesen „Constraint“ verschärfen wir: wir verbieten (hx 1,roti,hx 3,blaui) und (h x 1,roti,h x 3,blaui) Es bleiben (rot,rot) und (blau,blau), also Gleichheit Diesen Constraint können wir zum Netzwerk hinzufügen. x1x1 x2x2 x3x3   = Altes und neues Netzwerk sind äquivalent: Sie haben die gleiche Lösungsmenge!

14 Constraint Processing, INTA, FH Gelsenkrichen, W. Conen 14 Eigenschaften binärer Constraint-Netze: Zwei Constraint-Netze sind äquivalent, wenn sie  auf der gleichen Variablenmenge definiert sind  und die gleiche Lösungsmenge repräsentieren Ein Constraint R ij ist redundant (relativ zu einem bestimmten Netz), wenn seine Entfernung die Lösungsmenge nicht ändert (das Netz mit und das Netz ohne den Constraint müssen also äquivalent sein) Achtung: Es kann mehrere redundante Constraints geben, die aber möglicherweise nicht gemeinsam entfernt werden dürfen!

15 Constraint Processing, INTA, FH Gelsenkrichen, W. Conen 15 Eigenschaften binärer Constraint-Netze: Definition Komposition:  Seien R xy und R yz zwei binäre Constraints. Dann ist die Komposition R xy ± R yz eine binäre Relation R xz, die wie folgt definiert ist:  R xz = {(a,b) | a 2 D x, b 2 D z, 9 c 2 D y mit (a,c) 2 R x,y und (c,b) 2 R y,z } Alternative (schönere!) Definition:  R xz = R xy ± R yz =  { x,z } (R xy BC R yz )

16 Constraint Processing, INTA, FH Gelsenkrichen, W. Conen 16 Eigenschaften binärer Constraint-Netze: R xy ± R yz auch ausdrückbar mittels Matrixmultiplikation, s. Beispiel Graph-Coloring: R 12 ± R 23 = R 13 = ( 0 1) x (0 1) = (1 0) ( 1 0) (1 0) (0 1) R 12 rotblau rot01 blau10 R 23 rotblau rot01 blau10 R 13 rotblau rot10 blau01

17 Constraint Processing, INTA, FH Gelsenkrichen, W. Conen 17 Ausdrucksmächtigkeit binärer Constraint- Netze Gegeben sei eine beliebige Relation R über den Variablen X = {x 1,...,x n } mit Domains der Größe k. Gibt es immer ein Constraint-Netz R mit den Variablen X und den vorgegebenen Domains, dessen Lösung R ist? Hilfsfragen:  Wieviele Relationen über n Variablen mit jeweils k möglichen Werten können wir bauen?  Wieviele verschiedene Constraint-Netzwerke über n Variablen mit jeweils k möglichen Werten können wir bauen?

18 Constraint Processing, INTA, FH Gelsenkrichen, W. Conen 18 Ausdrucksmächtigkeit binärer Constraint- Netze Hilfsantworten:  In D 1 £... £ D n sind k*...*k-Elemente (k taucht n-mal auf), also Anzahl = k n  Jede Relation über diesen Variablen und Domains ist eine Teilmenge des Kreuzproduktes  Es gibt 2 Anzahl Teilmengen, also insgesamt 2 k n verschiedene Relation  Jeder binäre Constraint ist eine Relation über einem zweistelligen Kreuzprodukt D i £ D j mit k 2 Elementen, es gibt also 2 k 2 verschiedene Constraints 2  Es gibt maximal (n-1)+(n-2) binäre Constraints in R, also · n 2  Es gibt also höchstens 2 k 2 n 2 verschiedene binäre Constraint-Netze! Das sind aber viel weniger, als es Relationen gibt! Man kann also nicht alle Relationen als binäre Constraint- Netze mit den gleichen Variablen und Domains darstellen! [Hier war das Ende der Montagsveranstaltung vom ]

19 Constraint Processing, INTA, FH Gelsenkrichen, W. Conen 19 Binäre Projektionsnetzwerke Man kann aber jede Relation mittels eines binären Constraint- Netzes approximieren: Definition Projektions-Netzwerk: Gegeben ist eine Relation  über X = {x 1,...,x n }. Das Projektionsnetzwerk P(  ) ist das Netzwerk P = (X,D,P) mit D = {D i }, D i =  i (  ), P={P ij } und P ij =  x i,x j (  ). P(  ) erhält man also, in dem man die Relation  auf alle Variablenpaare x i,x j projeziert. Beispiel:  123 = {(1,1,2),(1,2,2),(1,2,1)}.  P(  ) enthält die Constraints P 12 = {(1,1),(1,2)}, P 13 = {(1,2),(1,1)}, P 23 = {(1,2),(2,2),(2,1)}.  Lösung sol(P(  )) = {(1,1,2),(1,2,2),(1,2,1)} =  !  Das Beispiel ist günstig gewählt, die Lösung kann natürlich nicht immer mit  zusammenfallen, sonst hätten wir ja doch ein binäres Netz gefunden, dass jedes  repräsentieren kann, s. Mitschrieb.

20 Constraint Processing, INTA, FH Gelsenkrichen, W. Conen 20 Binäre Projektionsnetzwerke Theorem: Sei  eine beliebige Relation. Dann gilt:  µ sol(P(  )), d.h. in der Lösung des Projektions-Netzwerks zu  ist  immer enthalten! Mit anderen Worten: Wenn man das Projektionsnetzwerk löst (das ja „nur“ aus binären Constraints besteht), dann hat man immer auch die gesuchte Relation plus „andere Bestandteile“ gefunden. Theorem: Gegeben Relation . P(  ) ist die „engste“ obere Grenze eine binären Netzwerk-Repräsentation von , d.h. es gibt kein binäres Netzwerk C‘ mit  µ sol(C‘) ½ sol(P(  )) „Bessere“ Repräsentation mit einem binären Netz gibt es nicht!

21 Constraint Processing, INTA, FH Gelsenkrichen, W. Conen 21 Schnitte binärer Constraint-Netze Definition: Gegeben seien zwei binäre Netzwerke R und R‘ über der gleichen Variablenmenge X. R‘ ist dann und genau dann mindestens so eng, wie R, wenn für jedes i,j, i  j, gilt R‘ ij µ R ij Merke: Die Lösung von R‘ ist natürlich in der Lösung von R enthalten. Oft gelingt es aber sogar, engere Netze zu finden, die die gleiche Lösung haben. Definition: Der Schnitt R Å R‘ zweier binärer Netzwerke R und R‘ über den Variablen X ist das binäre Netz, dass man erhält, wenn man zu jedem Paar i,j die zugehörigen Constraints beider Netze schneidet  diese Constraints gibt es immer – wenn keiner angegeben ist, dann sind alle Kombinationen erlaubt! Übrigens sind Domains unäre Constraints, die man für i=j oben auch anschaut und schneidet!). Proposition: R und R‘ seien zwei äquivalente binäre Netzwerke. Dann ist R Å R‘ äquivalent zu R und R‘ und mindestens so eng wie R bzw. R‘ Es gibt also eine partielle Ordnung zur Tightness äquivalenter Netze. Wenn wir alle diese Netze schneiden, erhalten wir ein eindeutiges äquivalentes Netz, dass mindestens zu eng ist, wie alle anderen äquivalenten Netze.

22 22 Minimale binäre Constraint-Netze Definition Minimales Netzwerk: Gegeben ist ein binäres Netzwerk R 0, die Lösung  = sol{R 0 } und die Menge {R 1,...,R l } aller zu R 0 äquivalenten binären Netzwerke. Dann ist M(R 0 ) =  i=1 l R i das minimale Netzwerk M zu R 0 bzw. zu . Überraschung: „Finally, it is possible to show that the minimal network is identical to the projection network of the minimal network‘s set of solutions“ Theorem: Für jedes binäre Netzwerk R mit  = sol(R) gilt M(  ) = P(  ). [Beweis: Übungsaufgabe] x1x1 x2x2 x3x3 x4x4 M_{12} = {(2,4),(3,1)} M_{13} = {(2,1),(3,4)}D_1 = {2,3} M_{14} = {(2,3),(3,2)}D_2 = {1,4} M_{23} = {(1,4),(4,1)}D_3 = {1,4} M_{24} = {(1,2),(4,3)}D_4 = {2,3} M_{24} = {(1,3),(4,2)}  = {(2,4,1,3),(3,1,4,2)} Proposition: Falls (a,b) 2 M ij then 9 t 2 sol(M) mit t[i] = a und t[j] = b

23 Constraint Processing, INTA, FH Gelsenkrichen, W. Conen 23 Binär zerlegbare Relationen Achtung: Die Frage, ob  durch sein Projektionsnetzwerk repräsentiert werden kann, ist NP-hart! Sind 2-Variablen-Lösungen in einem minimalen Netzwerk immer zu 3-Variablen- Lösungen usw. erweiterbar? Nein, nur, wenn die Ausgangsrelation binär zerlegbar (binary decomposable) ist. Beispiel s. Mitschrieb. Definition binär zerlegbar: Eine Relation  ist genau dann binär zerlegbar, wenn  sie durch ein binäres Netzwerk repräsentiert werden kann  und jede ihrer projektierten (auch nicht-binären!) Relationen ebenfalls durch eine binäres Netz repräsentiert werden kann. Erläuterung: Wenn  binär zerlegbar ist, dann repräsentiert das Projektionsnetzwerk nicht nur , sondern auch alle Projektionen von , und zwar durch die entsprechenden Teilnetzwerke:   binär zerlegbar,  über X definiert, S µ X. Dann wird  S  durch das Teilnetz von P(  ) mit den Variablen aus S repräsentiert. Harter Stoff, aber sehr nützlich, wenn es ans Lösen der Netze geht!

24 Constraint Processing, INTA, FH Gelsenkrichen, W. Conen 24 Consistency-Enforcing und Constraint- Propagation (neuer Abschnitt) Lesen Sie die 3 Seiten zur Kapiteleinführung aus Rina Dechters Buch (S.51-53)3 Seiten zur Kapiteleinführung „Perhaps the most exciting and fundamental concept that drives the constraint processing area is constraint propagation. These are inference methods used by us in everyday life that can be imitated by computers to exhibit intelligent inference.“ In general, inference, as it applies to constraints, narrows the search space of possible partial solutions by creating equivalent, yet more explicit, networks. In fact, the problem may become explicit enough (by inferring additional constraints or by tightening existing ones) that the search will be directed to a solution without encountering a dead end. (kein Backtracking!) Indeed, constraint inference can be used to find a complete solution. Unfortunately, solving a complete problem by inference [only] is frequently too hard, requiring the addition of an exponential number of constraints.

25 Constraint Processing, INTA, FH Gelsenkrichen, W. Conen 25 Constraint-Propagation Altes Beispiel: Wir wollen Freunde zu einer Party einladen -- Karsten, Kai, Nadja.  Wir wissen: Wenn Karsten kommt, wird auch Kai kommen Wenn Nadja kommt, wird auch Karsten kommen  Aussagen: A = „Karsten kommt“, B = „Kai kommt“, C = „Nadja kommt“ (A ! B) Æ (C ! A)  Wenn Nadja kommt, kommt dann auch Kai? Also: C Æ (C ! A) ` A Und dann: A Æ (A ! B) ` B Also kommt Kai auch, wenn Nadja kommt (weil dann auch Karsten kommt) ` steht für: ist herleitbar, beweisbar, ableitbar  Jeder Herleitungsschritt ergibt sich aus einer Wertzuweisung an eine Variable (C = „true“) und der Propagierung der Konsequenz dieser Wertzuweisung für eine andere Variable durch einen Constraint (C = „true“ und Constraint C ! A, daraus folgt A = „true“)

26 Constraint Processing, INTA, FH Gelsenkrichen, W. Conen 26 Constraint-Propagation Beispiel: Variablen x,y,z, Constraints (1) x=y, (2) y=z, (3) x  z  Aus (1) und (2) folgt aus rein logischen Gründen (Also unabhängig vom Domain) (4) x = z  (4) steht (wieder aus rein logischen Gründen) im Widerspruch zu (3)!  Also hat ein beliebiges Constraintsnetz mit 3 solchen Variablen und Constraints keine Lösung  Dies haben wir ohne Betrachtung der Domains erkennen können durch rein logische Überlegungen

27 Constraint Processing, INTA, FH Gelsenkrichen, W. Conen 27 Constraint-Propagation Ein anderes Beispiel findet sich auf Folie 13 mit Variablen x,y,z, Constraints R = {x  y, y  z}, Domains jeweils {rot, blau}  Man kann auf R‘ = {x  y, y  z, x = z} schließen – jetzt allerdings nur unter Beachtung der Domains (genauer: der Domaingröße!)  Durch die Explizierung (Sichtbarmachung) dieses Constraints vermeiden wir Wertzuweisungen, die sich als inkonsistent herausstellen würden: z.B. x = rot, z = blau (in R würde dies erst beim Versuch einer Zuweisung an y als inkonsistent erkannt!)  Das kann zu deutlichen Ersparnissen führen: wenn x,y,z und die Constraints Teil eines großen Netzes sind, könnten noch sehr viele Wertzuweisungen und Suchschritte stattfinden, bevor y ausprobiert würde!

28 Constraint Processing, INTA, FH Gelsenkrichen, W. Conen 28 Constraint-Propagation Algorithmen zum Consistency-Enforcement sollen die Suche unterstützen Sie stellen meist sich, dass eine partielles konsistentes Assignment für i-1 beliebige Variablen zu einem Assignment für diese i-1 Variablen plus eine weitere Variable erweitert werden kann:  Arc consistency stellt sich, dass dies für Paar von Variablen gilt  Path consistency stellt sicher, dass dies für beliebige Gruppen von 3 Variablen gilt  i-consistency stellt sicher, dass jede konsistente Instantiierung von i-1 Variablen zu einer konsistenten Instantiierung für jede beliebige i-te Variable erweitert werden kann Falls ein Netzwerk für alle i i-consistent ist, dann ist es global konsistent.

29 Constraint Processing, INTA, FH Gelsenkrichen, W. Conen 29 Constraint-Propagation [Zur Erinnerung] Definition Partial Solution: Gegeben ist ein Constraint-Netz R.  Ein Assignment â = {h x 1,a 1 i,..., h x j,a j i} von Werten an eine Teilmenge der Variablen, S = {x 1,...,x j } ist konsistent relativ zu R, dann und nur dann, wenn es jeden Constraint R S i mit S i µ S erfüllt.  Das Assignment â wird auch partielle Lösung von R genannt. (nicht ganz schön, denn es ist nur Teil einer möglichen Lösung, aber nun gut).  Die Menge aller partiellen Lösungen zu einer Teilmenge der Variablen S bezeichnen wir mit  S oder  (S)

30 Constraint Processing, INTA, FH Gelsenkrichen, W. Conen 30 Constraint-Propagation Lösen können wir ein Constraint-Netz z.B. wie folgt:  Wir weisen den Variablen in einer bestimmten Reihenfolge Werte zu – und zwar so, dass wir jeweils partielle Lösungen erhalten.  Wenn das auf einer Stufe i nicht geht (wir also die bisherige partielle Lösung nicht erweitern können), dann müssen wir zurück und frühere Wertzuweisungen ändern (backtracking)  Wenn wir das systematisch tun, dann tun wir dies solange, bis wir entweder eine Lösung gefunden haben oder wir bewíesen haben (durch aufzählendes Ausprobieren), dass es keine Lösung gibt Variablen x,y, Domains D x = {1,2,3}, D y = {2,3}, C xy : x > y x y x/,y/ x/3,y/ x/3,y/3 x/1,y/2... x/3,y/2

31 Constraint Processing, INTA, FH Gelsenkrichen, W. Conen 31 Constraint-Propagation Statt unnötig Wertzuweisungen auszuprobieren, können wir auch erst die Domains verkleinern... Wir entfernen alle Werte aus BEIDEN Domains, die wir nicht zu einer konsistenten Lösung ergänzen können Um das tun zu können, müssen wir natürlich die gleichen Überlegungen anstellen, wie eben......interessant wir das aber, wenn wir noch z_1,z_2,... zwischen x und y mit Werten versorgen würden... Dann probieren wir mir verkleinerten Domains möglicherweise viel weniger aus, als mit den „ungeprüften“ Domains! Variablen x,y, Domains D x = {1,2,3}, D y = {2,3}, C xy : x > y Das ist ein (binäres) Matching- Diagramm, in dem alle Werte der Domains miteinander verbunden werden, die eine partielle Lösung bilden DxDx DyDy

32 Constraint Processing, INTA, FH Gelsenkrichen, W. Conen 32 Constraint-Propagation Definition Arc-Consistency: Sei R = (X,D,C) ein Constraint-Netz mit R ij 2 C.  Eine Variable x i ist genau dann arc-consistent zu einer Variable x j, wenn zu jedem Wert a i 2 D i ein Wert a j 2 D j existiert mit (a i,a j ) 2 R ij.  Das Teilnetz (hier: der Pfeil), das durch {x i,x j } aufgespannt wird, ist genau dann arc-consistent, wenn x i arc-consistent zu x j und x j arc- consistent zu x i ist.  R ist arc-consistent genau dann, wenn alle in ihm enthaltenen Pfeile arc-consistent sind.

33 Constraint Processing, INTA, FH Gelsenkrichen, W. Conen 33 Constraint-Propagation Schöner: D i à D i Å  i (R ij BC D j ) Komplexität: O(k^2), hier ist k die Größe des größten Domains

34 Constraint Processing, INTA, FH Gelsenkrichen, W. Conen 34 Constraint-Propagation: Arc Consistency x yz Das Ausgangsnetzwerk ist nicht arc-consistent Das resultierende, äquivalente Netzwerk ist arc-consistent x,y und y,z sind arc-consistent, aber nicht x,z

35 Constraint Processing, INTA, FH Gelsenkrichen, W. Conen 35 Constraint-Propagation: Arc Consistency Brute-Force-Algo, Komplexität O(enk 3 ), n = Anzahl Variablen, k = maximale Domaingröße, e = Anzahl Constraints Wenn ein leerer Domain auftritt, dann war R nicht konsistent lösbar.

36 Constraint Processing, INTA, FH Gelsenkrichen, W. Conen 36 Constraint-Propagation: Arc Consistency Komplexität O(ek 3 ), Beispiel s. Mitschrieb, optimal?

37 Constraint Processing, INTA, FH Gelsenkrichen, W. Conen 37 Constraint-Propagation: Arc Consistency

38 Constraint Processing, INTA, FH Gelsenkrichen, W. Conen 38 Constraint-Propagation: Arc Consistency AC-4 hat eine Worst-Case-Complexität von O(ek 2 ), besser geht es nicht! (Warum?) Wir können die Komplexität auch mit einem Tightness-Parameter t ausdrücken, der die maximale Anzahl von Tupeln, die in den einzelnen binären Constraints auftreten können:  Komplexität AC-1:O(n*k*e*t), AC-3:O(e*k*t), AC-4:O(e*t) Ist AC-4 wirklich so gut? Nicht im Best-Case:  Wenn das Netz bereits arc-consistent ist, dann kosten AC-1 und AC-3 e*k Schritte.  Aber AC-4 benötigt weiterhin e*k 2 Schritte Ist arc-consistency bereits alles, was wir brauchen? Nein...

39 Constraint Processing, INTA, FH Gelsenkrichen, W. Conen 39 Constraint-Propagation: Arc Consistency x yz Das Ausgangsnetzwerk ist arc-consistent...aber es hat keine Lösung!

40 Constraint Processing, INTA, FH Gelsenkrichen, W. Conen 40 Constraint-Propagation: Path Consistency Definition Path Consistency: Sei R = (X,D,C) ein Constraint-Netz mit R ij 2 C. Eine Menge {x i,x j } aus 2 Variablen ist genau dann path-consistent zu einer dritten Variable x k, wenn es zu jedem konsistenten Assignment (h x i,a i i, h x j,a j i) einen Wert a k 2 D k gibt, so dass (h x i,a i i, h x k,a k i) und (h x k,a k i, h x j,a j i) konsistent sind. Alternativ: Der Constraint R ij ist genau dann path-konsistent zu x k, wenn es zu jedem Paar (a i,a j ) 2 R ij ein a k 2 D k gibt mit (a i,a k ) 2 R ik und (a k,a j ) 2 R kj. Das Teilnetz, das von x i,x j,x k aufgespannt wird, ist genau dann path- consistent, wenn alle Mengen zweier Variablen path-consistent zu der jeweiligen dritten Variable ist, also {x i,x j } zu x k, {x i,x k } zu x j, {x j,x k } zu x i. R ist path-consistent genau dann, wenn jedes R ij (einschließlich der universellen Relationen zwischen „unconstrainten“ Variablen) path- konsistent zu jedem x k für k  i, k  j ist.

41 Constraint Processing, INTA, FH Gelsenkrichen, W. Conen 41 Constraint-Propagation: Path Consistency Für path-consistency muß sich jedes verbundene Paar von Constraintinstanzen zu einem Dreieck ergänzen lassen Im Bild oben würde der Versuch, Wertpaare aus den Constraints zu löschen, um path-consistenty herbeizuführen, zur Feststellung der Inkonsistenz des Netzwerks führen. [Weiteres Beispiel: Schliessen des =-Constraints auf Folie 13]

42 Constraint Processing, INTA, FH Gelsenkrichen, W. Conen 42 Constraint-Propagation: Path Consistency Schöner: R xy à R xy Å  xy (R xz BC D z BC R zy ) Komplexität: O(k 3 ) bzw. O(t*k)

43 Constraint Processing, INTA, FH Gelsenkrichen, W. Conen 43 Constraint-Propagation: Path Consistency Komplexität: O(n 5 *k 5 ) bzw. O(n 5 *t 2 *k)

44 Constraint Processing, INTA, FH Gelsenkrichen, W. Conen 44 Constraint-Propagation: Path Consistency Komplexität: O(n 3 *k 5 ) bzw. O(n 3 *t 2 *k) PC-2 2 (PC-2)

45 Constraint Processing, INTA, FH Gelsenkrichen, W. Conen 45 Constraint-Propagation: Path Consistency

46 Constraint Processing, INTA, FH Gelsenkrichen, W. Conen 46 Constraint-Propagation: i-Consistency Definition i-consistent: Sei R = (X,D,C) ein Constraint-Netz mit R ij 2 C, S ½ X, |S| = i-1. Eine Relation R S ist genau dann i-consistent zu einer Variable y, die nicht in S ist, wenn zu jedem t 2 R S ein a 2 D y existiert, so daß (t,a) konsistent ist. R ist genau dann i-consistent, wenn es zu jeder konsistenten Instantiierung von i-1 verschiedenen Variablen eine Instantiierung einer weiteren Variablen gibt, so dass die i Werte gemeinsam alle Constraints zwischen den i Variablen erfüllen. R ist genau dann strongly i-consistent, wenn es j-consistent ist für jedes j · i. Ist R strongly n-consistent (n = Anzahl Variablen in R), dann nennen wir es auch global konsistent (globally consistent)

47 Constraint Processing, INTA, FH Gelsenkrichen, W. Conen 47 Constraint-Propagation: i-Consistency Komplexität: Zeit O(k i ) für binäre Constraints, O((2k) i ) für allgemeine Constraints

48 Constraint Processing, INTA, FH Gelsenkrichen, W. Conen 48 Constraint-Propagation: i-Consistency Komplexität: Zeit O(2 i (nk) 2i ), Space O(n i,k i ), lower bound  (n i,k i )

49 Constraint Processing, INTA, FH Gelsenkrichen, W. Conen 49 Spezielle Constraints: Globale Constraints Manchmal ist es sinnvoll, bestimmte Constraint-Typen speziell zu behandeln Klassisches Beispiel ist der alldiff-Constraint (s. crypt-arithmetisches Puzzle): Alle Variablen müssen paarweise verschieden sein Das kann man als Netzwerk von binären  -Constraints darstellen – darin ist z.B. arc-Consistenz nicht hilfreich (nur, wenn Domains nur noch einen Wert haben) Helfen kann generalized arc consistency:  (Domain-Reduktion-Revise) D x à D x Å  x (R S BC D S- { x } )  (Relational Arc Consistency) R S- { x } à  S- { x } (R S BC D x )  Meist aber in (domain-)spezifischen Implementierungen realisiert, z.B. Domain-Reduktion mittels Matching für Alldiff zu Kosten von O(k*n 1.5 )

50 Constraint Processing, INTA, FH Gelsenkrichen, W. Conen 50 Wenn Arc-Consistency zu teuer wird... Viele Werte oder spezielle Constraints können Arc-consistency teuer machen... „Schwächeres“ Konsistenzkonzept: Bounds-Consistency.  Jedes Domain wird durch ein Intervall beschränkt  Nur die Arc-Consistency der Endpunkt wird sichergestellt Definition:  Sei C ein Constraint über dem Scope S mit zugehörigen Domainconstraints. Die Variable x 2 S mit einem wohlgeordneten Domain D x ist bound-consistent zu C, wenn die Werte min{D x } bzw. max{D x } jeweils einem vollständigen Tupel t in C erweitert werden können (wir sagen: t „unterstützt“ min{D x } bzw. max{D x }).  C ist bounds-consistent, wenn alle x \in S bounds-consistent sind.

51 Constraint Processing, INTA, FH Gelsenkrichen, W. Conen 51 Beispiel zu Bounds-Consistency Variablen x 1,...,x 6 Domains {1,...,6} Constraints:  C 1 : x 4 ¸ x  C 2 : x 4 ¸ x  C 3 : x 5 ¸ x  C 4 : x 5 ¸ x  C 5 : Alldiff(x 1,x 2,x 3,x 4,x 5 ) Minimum 1 in D 4 hat keine Unterstützung in C 1 Erzwingen von Bounds-Consistency mit C 1,...,C 4 führt zu D 1 = {1,2}, D 2 = {1,2}, D 3 = {1,2,3}, D 4 = {4,5}, D 5 = {5,6} Bounds-Consistency mit C 5 führt zu D 3 = {3} C 3 problematisch, D 5 = {6} heilt das Problem Ist das Ergebnis arc-consistent?

52 Constraint Processing, INTA, FH Gelsenkrichen, W. Conen 52 Lösen von Constraintsnetzen – Backtracking Gegeben ist ein Constraintnetz R = (X,D,C), Idee: Solve(X,D,C,A,L) /* A ist eine partielle Lösung, zu Beginn {}, L = Lösung zu Beginn leer {}  Wähle eine Variable x i aus X aus, /* Variablenwahl! falls X leer ist, setze L auf A und gib „true“ zurück  Entferne x i aus X  Solange noch Werte in D i sind Wähle einen Wert v aus D i aus /* Wertwahl! Falls A sich mit v für x i zu einer konsistenten Teillösung ergänzen läßt, dann  Erweitere A um v für x i  Falls Solve(X,D,C,A,L) = true return true // L ist die Lösung von R  Entferne v für x i aus A // Es gab keine konsistente Vervollständigung  return false // Es gab keine konsistente Vervollständigung

53 Constraint Processing, INTA, FH Gelsenkrichen, W. Conen 53 Lösen von Constraintsnetzen – Backtracking Arbeitet auf einer fixen Ordnung der Variablen Rekursiv wäre es leichter zu verstehen... Hier kann i mehrfach hintereinander runtergezählt werden

54 Constraint Processing, INTA, FH Gelsenkrichen, W. Conen 54 Lösen von Constraintsnetzen – Backtracking Wie kann man das verbessern? 1. Idee: Man kann zwischendurch Domains oder Constraints verkleinern (Consistency checken oder ähnliches) ...das kann man auch vor der ersten Runde machen 2. Idee: Man kann versuchen, Variablen und Werte auf eine halbwegs schlaue Art auszuwählen  für die LÖSBARKEIT spielt die Reihenfolge keine Rolle  für die EFFIZIENZ der Lösungsfindung aber sehr wohl 3. Manchmal kann man den Graph auch schlau zerhacken, „günstige“ Teilprobleme lösen und dann die Lösungen zusammenbauen.

55 Constraint Processing, INTA, FH Gelsenkrichen, W. Conen 55 Lösen von Constraintsnetzen – Backtracking 2,3,5 2,3,4 2,5,6 x1x1 x2x2 x3x3 z Constraints: z teilt x i ohne Rest zx1x2x3zx1x2x Wurzel

56 56 Lösen von Constraintsnetzen – Backtracking 2,3,5 2,3,4 2,5,6 x1x1 x2x2 x3x3 z Constraints: z teilt x i ohne Rest x1x2x3zx1x2x3z praktisch gleiche Struktur 34

57 Constraint Processing, INTA, FH Gelsenkrichen, W. Conen 57 Lösen von Constraintsnetzen – Backtracking 2,3,5 2,3,4 2,5,6 x1x1 x2x2 x3x3 z Constraints: z teilt x i ohne Rest zx1x2x3zx1x2x Arc-Consistency anwenden: Löschen von 5 aus D z 3 Löschen von 5 aus D x3

58 58 Lösen von Constraintsnetzen – Backtracking 2,3,5 2,3,4 2,5,6 x1x1 x2x2 x3x3 z Constraints: z teilt x i ohne Rest Path-Consistency anwenden, Mitschrieb x1x2x3zx1x2x3z praktisch gleiche Struktur 34

59 Constraint Processing, INTA, FH Gelsenkrichen, W. Conen 59 Lösen von Constraintnetzen x 1 :rot,blau,grünx 7 :rot,blau Suche mit Backtracking für d1 = x1,x2,...,x7 (a) und d2 = x1,x7,x4,x5,x6,x3,x2 (b) s. Mitschrieb x 3 :rot,blaux 5 :blau,grün x 2 :blau,grünx 6 :rot,grün,tee x 4 :rot,blau

60 Constraint Processing, INTA, FH Gelsenkrichen, W. Conen 60 Lösen von Constraintnetzen g b b b g r r

61 Constraint Processing, INTA, FH Gelsenkrichen, W. Conen 61 Lösen von Constraintnetzen

62 Constraint Processing, INTA, FH Gelsenkrichen, W. Conen 62 Lösen von Constraintnetzen Definition: Ein Netzwerk R ist backtrack-frei relativ zu einer festen Variablenreihenfolge d, falls jeder Blattknoten im Suchgraphen eine Lösung repräsentiert. Kosten für Backtracking  k = maximale Domaingröße, t = maximale Anzahl Tuple in einem Constraint, r = maximale Stelligkeit (t · k r ), e = Anzahl Constraints, n = Anzahl Variablen  Consistence-Check: O(e log t)  Select-Value: O(k e log t), binär O(n*k)

63 Constraint Processing, INTA, FH Gelsenkrichen, W. Conen 63 Lösen von Constraintnetzen Verbesserung durch Pre-Processing: Consistency-Enforcing Verbesserung des Ablaufs (der Kontroll-Strategie für das Backtracking)  Look-Ahead-Schemata: Limitierte Constraint-Propagation, dann entscheiden, welche Variable gewählt wird. Es ist generell von Vorteil, die Variable zu wählen, die die stärksten Zwänge auf den verbleibenden Suchraum ausübt entscheiden, welcher Wert dieser Variable zugewiesen wird, wenn nur eine Lösung gesucht wird, dann versuchen wir, den Wert zu wählen, der die besten Möglichkeiten für erfolgreiches Vervollständigen des Assignments offen läßt  Look-Back-Schema: Wie weit soll das Backtracking führen? Wo lag die eigentliche Ursache für das Dead-End? Mittel der Wahl: Backjumping Gründe für ein Scheitern als neue Constraints aufzeichnen, um ein Entstehen der gleichen Konflikte später zu vermeiden (Constraint recording and learning)

64 Constraint Processing, INTA, FH Gelsenkrichen, W. Conen 64 Lösen von Constraintnetzen

65 Constraint Processing, INTA, FH Gelsenkrichen, W. Conen 65 Lösen von Constraintnetzen

66 Constraint Processing, INTA, FH Gelsenkrichen, W. Conen 66 Lösen von Constraintnetzen

67 Constraint Processing, INTA, FH Gelsenkrichen, W. Conen 67 Lösen von Constraintnetzen

68 Constraint Processing, INTA, FH Gelsenkrichen, W. Conen 68 Lösen von Constraintnetzen – Dynamic Look-Ahead Value Orderings LVO: Look-ahead value ordering: schätzen der „likelihood“, dass die Werte zu einer Lösung führen, Wahl des vielversprechensten Wertes LVO wendet testweise FC oder AC o.ä. an, wichtig auch die Bewertungsheuristik für die erhaltenen Resultate, z.B.  Min-Conflicts (MC): Wähle den Wert, der zum Entfernen der wenigsten Werte in den Domains zukünftiger Variablen führt (genauer: die mit dem betrachteten Wert konfligieren, aber konsistent mit dem momentanen partiellen Assignment sind)  Max-Domain-Size (MD): Wähle den Wert, der zum größten „kleinsten“ Domain zukünftiger Variablen führt (Details wie eben)  Estimate Solutions (ES): Wähle Wert, der zur größten Anzahl möglicher Lösung führt: multipliziere die Domains zukünftiger Variablen nach entfernen zum betrachteten Wert inkonsister Werte aus diesen Domains  Auch gut: Werte, die bereits verwendet und verworfen wurden (und zu denen man noch partielle konsistente Teil-Assignments kennt) Lohnt sich generell nicht für kleine oder mittlere Probleme, scheint aber experimentell für große und harte KONSISTENTE Probleme sinnvoll, in Experimenten am besten: MC.

69 Constraint Processing, INTA, FH Gelsenkrichen, W. Conen 69 Variable Ordering Erweitern des normalen Ablaufs um eine dynamische Auswahl der nächsten Variable – das kann sehr wesentlich für die Effizienz der Suche sein! Häufig ist das Ziel, eine „fail-first“-Variable auszuwählen, die den Suchraum effektiv beschränkt. Als empirisch gut hat sich das relativ unaufwändige Verwenden von Forward-Checking erwiesen

70 Constraint Processing, INTA, FH Gelsenkrichen, W. Conen 70 Variable Ordering

71 Constraint Processing, INTA, FH Gelsenkrichen, W. Conen 71 Vergleich FC = Forward Checking+DVO, AC=Arc consistency nach der Wertwahl. Uns fehlen noch viele weiterführende Details, aber FC+AC ist schon nicht so schlecht für die aufgeführten Benchmarkprobleme!


Herunterladen ppt "Constraint Processing Version 0.95 Prof. Dr. W. Conen, FH Gelsenkirchen, WS04/05 -- Teil von INT A -- Auf Basis von Rina Dechter, Constraint Processing,"

Ähnliche Präsentationen


Google-Anzeigen