PPT

Werbung
Constraint Processing
Version 1.0-alpha
Prof. Dr. W. Conen, FH Gelsenkirchen, WS05/06
-- Auf Basis von Rina Dechter, Constraint Processing, 2003
-- [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,
das ist harmlos (LateX-Formeln/Zeichen in PowerPoint)
Constraints

Rina Dechters Versuch einer Definition:
„A constraint is a restriction on a space of possibilities, it is a piece
of knowledge that narrows the scope of this space.“

„Because constraints arise naturally in most areas of human
endeavor, they are most general means for formulation regularities
that govern our computational, physical, biological and social
worlds:
 the angles of a triangle must sum to 180 degrees
 4 nucleotides that make up a DNA strand can only combine
particular sequences
 Susan cannot be married to John
They identify the impossible, narrow down the realm of possibilities,
and thus permit us to focus more effectively on the possible.
Formulating problems in terms of constraints enables a natural,
declarative formulation of WHAT must be satisfied, without having to
say how it should be satisfied.“ [Rina Dechter, Constraint Processing, 2003]
Constraint Processing, INTA, FH
Gelsenkrichen, W. Conen
2
Constraints



„As the complexity of the problem grows, we turn to computers to
help us find an acceptable solution.
Computer scientists have devised languages to model constraint
satisfaction problems (CSP) and have developed methods for
solving them. In general, the tasks posed in the language of
constraints are computationally intractable (NP-hard) which means
that you cannot expect to design an algorithm that scales effectively
with the problem size, in all cases.“
„However it is possible and desirable to identify special properties of
a problem class that can accommodate efficient solutions and to
develop general algorithms that are efficient for as many problems
as possible.“ [Rina Dechter]
 Tractable classes (of problems)
 approximation algorithms
Constraint Processing, INTA, FH
Gelsenkrichen, W. Conen
3
Probleme

Problem-Klasse, zum Beispiel Stundenplan-Planung:




Manchmal/ meistens werden die Instanzen auch Probleme genannt. Besser
wäre vermutlich die folgende Sprechweise:




Problemklasse: Stundenplan-Planung (Problem)
Unterklasse: Studenplan-Planung im FB5 an der FH GE (Subclass)
Problem: WS 04/ 05 am FB5/ FH GE (Instance Problem)
NP-hard bezieht sich auf Problem-Klassen!



Das Problem hat Instanzen, zum Beispiel WS 04/05 an FB5, FH GE
Das Problem hat Unterklassen:
Die Stundenplan-Planung an der FH GE, FB5
Eine Klasse ist bereits dann NP-hard, wenn sich ein einzelnes hartes Problem finden.
Es kann aber viele Probleme geben; die leicht zu lösen oder schnell als unlösbar zu
erkennen sind.
Wir wollen:



„leicht“ lösbare Probleme (Instanzen) effizient lösen
unlösbare Probleme möglichst schnell erkennen
„hart“ lösbare Probleme in der zur Verfügung stehenden Zeit möglichst gut annähernd
lösen.
Constraint Processing, INTA, FH
Gelsenkrichen, W. Conen
4
Einige Begriffe im Überblick







Jedes Constraint-Problem enthält Variablen: Objekte oder
„Dinge“, die eine Vielfalt von Werten annehmen können
Die Menge aller denkbaren Werte für eine gegebene Variable
nennt man Domain.
Constraints sind Regeln, die die Werte, die Variablen oder
Kombinationen von Variablen annehmen können, beschränken.
Ein Modell, das Variablen, ihre Domains und Constraints
beinhaltet, wird Constraint-Problem oder Constraint-Netzwerk
genannt.
Eine Lösung ist eine Zuweisung von einzelnen Werten aus den
jeweiligen Domains an alle Variablen, so daß kein Constraint
verletzt wird.
Ein Problem kann eine, viele oder keine Lösung haben.
Ein Problem, das eine oder mehrere Lösungen hat, wird erfüllbar
(satisfiable) oder konsistent (consistent) genannt
Constraint Processing, INTA, FH
Gelsenkrichen, W. Conen
5
Einige Begriffe zur Erinnerung:

Sie kennen:
 Mengen, [ (Vereinigung), Å
(Schnitt), - (Differenz), £
(kartesisches Produkt),
geordnete Tupel, ...
 Relationen sind Teilmengen
von kartesischen Produkten
von Mengen (also eine
„Auswahl“ aus den möglichen
Wertkombinationen)
 z.B. R µ D1 £ D2
 In einer Datenbank ist das
genauso:
D1 = { grün, schwarz }
D2 = { Tee, Kaffee }
D1 £ D2 = {
(grün, Tee), (grün,Kaffee),
(schwarz,Tee),
(schwarz, Kaffee) }
R=
Constraint Processing, INTA, FH
Gelsenkrichen, W. Conen
x1
x2
grün
Tee
schwarz
Tee
schwarz
Kaffee
6
Einige Begriffe zur Erinnerung:





In einer Datenbank benennen sie
die Spalten, hier x1 und x2
Sie vereinbaren Wertebereiche für
die Spalten, hier D1 für x1 und D2
für x2
Die Spalten sind unsere Variablen
Die Wertebereiche unsere
Domains
 Wir schreiben
Variable: Domain
um den Domain einer Variable
anzugeben
D1 = { grün, schwarz }
D2 = { Tee, Kaffee}
D1 £ D2 = {
(grün, Tee), (grün,Kaffee),
(schwarz,Tee),
(schwarz, Kaffee) }
R=
Die geordnete Liste von
Variablen (xi1,xi2,...,xik)
nennen wir Scope einer
Relation
Constraint Processing, INTA, FH
Gelsenkrichen, W. Conen
x1
x2
grün
Tee
schwarz
Tee
schwarz
Kaffee
7
Einige Begriffe zur Erinnerung:




Sie kennen die Operationen
auf Relationen.
Relation R über x1,...,xk mit
den Domains D1,...,Dk.
a1,...,ak sind Werte aus den
Domains D1,...,Dk
Selektion:  xj1=aj1,...,xjl=ajl(R)
Wähle aus R alle Tupel aus,
die für die Variablen xim den
Wert aim haben


im 2 {1,...,k}
Manchmal gibt man auch
eine Spaltennummer im
direkt an (oder als $im)
R= x1
x2
grün
Tee
schwarz
Tee
schwarz
Kaffee
x1 = schwarz(R) =
x1
x2
schwarz
Tee
schwarz
Kaffee
Constraint Processing, INTA, FH
Gelsenkrichen, W. Conen
8
Einige Begriffe zur Erinnerung:



Relation R über x1,...,xk mit
den Domains D1,...,Dk.
a1,...,ak sind Werte aus den
Domains D1,...,Dk
Projektion:  xj1,...,xjl(R)
Streiche aus R alle Spalten,
xj, die nicht in {xi_1,...,xik}
sind
R= x1
x2
grün
Tee
schwarz
Tee
schwarz
Kaffee
x1 (R) = 1(R) =
x1


im 2 {1,...,k}
Statt xim kann man auch
direkt im (also eine
Spaltennummer angeben)
Constraint Processing, INTA, FH
Gelsenkrichen, W. Conen
grün
schwarz
9
Einige Begriffe zur Erinnerung:
RT=






Relationen RS, RT mit Scope S
bzw. T
(Natural) Join: RT BC RS
Nimm nach und nach alle
Tupel t aus RT
Wähle nach und nach alle
Tupel s aus RS aus, für die gilt:
s.xj = t.xj für alle Variablen xj
aus T Å S.
Baue aus t und s ein neues
Tupel mit den Variablen aus T [
S, indem t ergänzt wird um die
Werte in S – T aus s
Ordne die Variablen in der
alten Reihenfolge in den T und
S-Teilen an
RS=
x1
x2
grün
Tee
schwarz
Tee
schwarz
Kaffee
x1
x3
grün
gesund
schwarz
lecker
x1
x2
x3
grün
Tee
gesund
schwarz
Tee
lecker
schwarz
Kaffee
lecker
Constraint Processing, INTA, FH
Gelsenkrichen, W. Conen
10
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
Q
x1
x2
x3
x4
Lösungen:
(2,4,1,3),(3,1,4,2)
Q
Q
Q
Constraint Processing, INTA, FH
Gelsenkrichen, W. Conen
11
Constraint-Graphen
1
2
3
4
5
6
8
7
9
10
12
13
2
1
3
12
13
4
5
6
9
11
7
8
11
10
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
{x1,x2,x3,x4,x5,x6,x9,x12}: {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) }
Constraint Processing, INTA, FH
Gelsenkrichen, W. Conen
12
Constraint-Graphen
1
S
2
8
H
I
3
E
6
A
9
R
12
N
4
E
10
O
13
1
2
5
3
4
6
5
T
7
E
11
N
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,
x1 für „1, horizontal“, x2 für „3, vertikal“,
x3 für „5, vertikal“, x4 für „8, horizontal“,
x5 für „12, horizontal“, x6 für „10, vertikal“

Domains = mögliche Wörter (abhängig von der
Länge!)

Schema des Problems: {{x1,x2}, {x1,x3}, {x4,x2},
{x4,x3}, {x5,x2}, {x6,x4}, {x6,x5} }

Constraints z.B. zwischen x1 und x2:
R12 = {(HOSES,SAME), (LASER,SAME),
(SHEET,EARN), (SNAIL,ALSO),
(STEER,EARN) }

Konsistentes partielles Assignment für
{x1,x2,x3,x4,x5}: {(SHEET, EARN, TEN, IRON,
NO)}

Binäre Constraints, es gibt keine Lösung
Constraint Processing, INTA, FH
Gelsenkrichen, W. Conen
13
Constraint-Graphen
Definition: Hypergraph
Ein Hypergraph ist eine Struktur H = (V,S) aus Knoten, V =
{v1,...,vn}, und Hyperkanten S = {S1,...,Sl}, Si µ 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: S1 = Alldiff(x1,x2,x3,x4)



x1
x1
x2

x3
x2
S1
S1
x3
x4
Hyperkante als
Rechteck
x1

x4
Hyperkante als
Region
Constraint Processing, INTA, FH
Gelsenkrichen, W. Conen
x3
x2





x4
Als binäre Constraints:
14
Alldiff = paarweise verschieden
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
3
5
5,7,11
3,6,9,12
12
9
11
8,9,10,11
Constraint Processing, INTA, FH
Gelsenkrichen, W. Conen
12,13
13
10
10,13
15
Duales Problem
Duale Probleme







Gegeben ist ein nicht-binäres Constraint-Netzwerk
Die Constraints werden zu Variablen, den sogenannten cVariablen
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)
Constraint Processing, INTA, FH
Gelsenkrichen, W. Conen
16
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 xi  xj und |xi-xj|  |i-j|,
d.h. Rij = {(xi,xj) | xi 2 Di, xj 2 Dj, xi  xj und |xi-xj|  |i-j| }
 Binäre Constraint zwischen zwei Variablen: Konjunktion linearer
Ungleichungen: (3xi+2xj · 3) Æ (-4xi+5xj < 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)
Constraint Processing, INTA, FH
Gelsenkrichen, W. Conen
17
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:



Aussagen:






Wenn Karsten kommt, wird auch Kai kommen
Wenn Nadja kommt, wird auch Karsten kommen
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?
[Anmerkung: 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)
Constraint Processing, INTA, FH
Gelsenkrichen, W. Conen
18
Spezielle Constraints:
Bool‘sche Constraints


 = C Æ (: A Ç B) Æ (: C Ç A) Æ : 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 RAB =
{(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!
...bzw. (bei der obigen Theorie) ist  unerfüllbar gdw. das ConstraintNetzwerk nicht konsistent ist
Constraint Processing, INTA, FH
Gelsenkrichen, W. Conen
19
Spezielle Constraints:
Bool‘sche Constraints


Der primale Constraintsgraph wird für diesen Problemtyp
auch „Interaktionsgraph“ (interaction graph) genannt
1 = {{: C}, {A,B,C}, {: A,B,E}, {: B,C,D}},
Interaktionsgraph hierzu:
B
A
E
C
D
Constraint Processing, INTA, FH
Gelsenkrichen, W. Conen
20
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!
Constraint Processing, INTA, FH
Gelsenkrichen, W. Conen
21
Eigenschaften binärer Constraint-Netze:


Beispiel zu Constraint Inference: Graph-Coloring
Zwei Lösungen 123 = {rot,blau,rot), (blau,rot,blau)}
Zwischen x1 und x3 sind zunächst
alle Wertpaare erlaubt
x2
rot,
blau
Diesen „Constraint“ verschärfen
wir: wir verbieten (hx1,roti,hx3,blaui)
und (h x1,roti,h x3,blaui)


x1
x3
rot,
blau
=
rot,
blau
Es bleiben (rot,rot) und (blau,blau),
also Gleichheit
Diesen Constraint können wir zum
Netzwerk hinzufügen.
Altes und neues Netzwerk sind äquivalent: Sie haben die gleiche Lösungsmenge!
Constraint Processing, INTA, FH
Gelsenkrichen, W. Conen
22
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 Rij 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!
Constraint Processing, INTA, FH
Gelsenkrichen, W. Conen
23
Eigenschaften binärer Constraint-Netze:

Definition Komposition:



Seien Rxy und Ryz zwei binäre Constraints.
Dann ist die Komposition Rxy ± Ryz eine binäre Relation
Rxz, die wie folgt definiert ist:
Rxz = {(a,b) | a 2 Dx, b 2 Dz, 9 c 2 Dy mit (a,c) 2 Rx,y und
(c,b) 2 Ry,z}
Alternative (schönere!) Definition:

Rxz = Rxy ± Ryz = {x,z}(Rxy BC Ryz)
Constraint Processing, INTA, FH
Gelsenkrichen, W. Conen
24
Eigenschaften binärer Constraint-Netze:


Rxy ± Ryz auch ausdrückbar mittels Matrixmultiplikation, s.
Beispiel Graph-Coloring:
R12
rot
blau
R23
rot
blau
rot
0
1
rot
0
1
blau 1
0
blau 1
0
R12 ± R23 = R13 = ( 0 1) x (0 1) = (1 0)
( 1 0)
(1 0)
(0 1)
R13
rot
blau
rot
1
0
blau 0
1
Constraint Processing, INTA, FH
Gelsenkrichen, W. Conen
25
Ausdrucksmächtigkeit binärer ConstraintNetze



Gegeben sei eine beliebige Relation R über den
Variablen X = {x1,...,xn} 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?
Constraint Processing, INTA, FH
Gelsenkrichen, W. Conen
26
Ausdrucksmächtigkeit binärer ConstraintNetze



Hilfsantworten:
 In D1 £ ... £ Dn sind k*...*k-Elemente (k taucht n-mal auf), also
Anzahl = kn
 Jede Relation über diesen Variablen und Domains ist eine
Teilmenge des Kreuzproduktes
n
 Es gibt 2Anzahl Teilmengen, also insgesamt 2k verschiedene Relation
 Jeder binäre Constraint ist eine Relation über einem zweistelligen
2
Kreuzprodukt Di £ Dj mit k2 Elementen, es gibt also 2k
verschiedene Constraints
 Es gibt maximal (n-1)+(n-2)+...+1 binäre Constraints in R, also · n2
2 2
 Es gibt also höchstens 2k n verschiedene binäre Constraint-Netze!
Das sind aber viel weniger, als es Relationen gibt!
Man kann also nicht alle Relationen als binäre ConstraintNetze mit den gleichen Variablen und Domains darstellen!
Constraint Processing, INTA, FH
Gelsenkrichen, W. Conen
[Hier war das Ende der Montagsveranstaltung vom 3.1.2005]
27
Binäre Projektionsnetzwerke




Man kann aber jede Relation mittels eines binären ConstraintNetzes approximieren:
Definition Projektions-Netzwerk: Gegeben ist eine Relation 
über X = {x1,...,xn}. Das Projektionsnetzwerk P() ist das
Netzwerk P = (X,D,P) mit D = {Di}, Di = i(), P={Pij} und Pij =
xi,xj().
P() erhält man also, in dem man die Relation  auf alle
Variablenpaare xi,xj projeziert.
Beispiel: 123 = {(1,1,2),(1,2,2),(1,2,1)}.



P() enthält die Constraints
P12 = {(1,1),(1,2)}, P13 = {(1,2),(1,1)}, P23 = {(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.
Constraint Processing, INTA, FH
Gelsenkrichen, W. Conen
28
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!
Constraint Processing, INTA, FH
Gelsenkrichen, W. Conen
29
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 µ Rij
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.
Constraint Processing, INTA, FH
Gelsenkrichen, W. Conen
30
Minimale binäre Constraint-Netze



Definition Minimales Netzwerk: Gegeben ist ein binäres Netzwerk R0,
die Lösung  = sol{R0} und die Menge {R1,...,Rl} aller zu R0 äquivalenten
binären Netzwerke. Dann ist M(R0) = i=1l Ri das minimale Netzwerk M zu
R0 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]
M_{12} = {(2,4),(3,1)}
x1
x3
x2
x4
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 Mij then 9 t 2 sol(M) mit t[i] = a und t[j] = b
31
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-VariablenLö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



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:


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.
 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!
Constraint Processing, INTA, FH
Gelsenkrichen, W. Conen
32
Consistency-Enforcing und ConstraintPropagation (neuer Abschnitt)





Lesen Sie die 3 Seiten zur Kapiteleinführung aus Rina Dechters Buch
(S.51-53)
„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.
Constraint Processing, INTA, FH
Gelsenkrichen, W. Conen
33
Constraint-Propagation

Altes Beispiel: Wir wollen Freunde zu einer Party einladen -- Karsten, Kai, Nadja.

Wir wissen:



Aussagen:



A = „Karsten kommt“, B = „Kai kommt“, C = „Nadja kommt“
(A ! B) Æ (C ! A)
Wenn Nadja kommt, kommt dann auch Kai?





Wenn Karsten kommt, wird auch Kai kommen
Wenn Nadja kommt, wird auch Karsten kommen
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“)
Constraint Processing, INTA, FH
Gelsenkrichen, W. Conen
34
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
Constraint Processing, INTA, FH
Gelsenkrichen, W. Conen
35
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!
Constraint Processing, INTA, FH
Gelsenkrichen, W. Conen
36
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.
Constraint Processing, INTA, FH
Gelsenkrichen, W. Conen
37
Constraint-Propagation
[Zur Erinnerung]
 Definition Partial Solution: Gegeben ist ein Constraint-Netz R.
 Ein Assignment â = {h x1,a1 i,..., h xj,aj i} von Werten an eine
Teilmenge der Variablen, S = {x1,...,xj} ist konsistent relativ zu R,
dann und nur dann, wenn es jeden Constraint RSi mit Si µ 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)
Constraint Processing, INTA, FH
Gelsenkrichen, W. Conen
38
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 Dx = {1,2,3}, Dy = {2,3},
Cxy: x > y
x/ ,y/
x
1
2
3
y
2
x/1 ,y/2
Constraint Processing, INTA, FH
Gelsenkrichen, W. Conen
3 2
3 2
...
x/3,y/
3
x/3,y/2 x/3,y/3
39
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 z1,z2,... 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 Dx = {1,2,3}, Dy = {2,3},
Cxy: x > y
Dx
Dy
3
3
2
1
2
Das ist ein (binäres) MatchingDiagramm, in dem alle Werte der
Domains miteinander verbunden
werden, die eine partielle Lösung bilden
Constraint Processing, INTA, FH
Gelsenkrichen, W. Conen
40
Constraint-Propagation

Definition Arc-Consistency:
Sei R = (X,D,C) ein Constraint-Netz mit Rij 2 C.
 Eine Variable xi ist genau dann arc-consistent zu einer Variable xj,
wenn zu jedem Wert ai 2 Di ein Wert aj 2 Dj existiert mit (ai,aj) 2 Rij.
 Das Teilnetz (hier: der Pfeil), das durch {xi,xj} aufgespannt wird, ist
genau dann arc-consistent, wenn xi arc-consistent zu xj und xj arcconsistent zu xi ist.

R ist arc-consistent genau dann, wenn alle in ihm enthaltenen
Pfeile arc-consistent sind.
Constraint Processing, INTA, FH
Gelsenkrichen, W. Conen
41
Constraint-Propagation


Schöner: Di à Di Å i (Rij BC Dj)
Komplexität: O(k2), hier ist k die Größe des größten Domains
Constraint Processing, INTA, FH
Gelsenkrichen, W. Conen
42
Constraint-Propagation: Arc Consistency
x,y und y,z sind arc-consistent,
aber nicht x,z
x
y


z
Das Ausgangsnetzwerk ist nicht arc-consistent
Das resultierende, äquivalente Netzwerk ist arc-consistent
Constraint Processing, INTA, FH
Gelsenkrichen, W. Conen
43
Constraint-Propagation: Arc Consistency



Brute-Force-Algo,
Komplexität O(enk3),
n = Anzahl Variablen, k = maximale Domaingröße, e = Anzahl Constraints
Wenn ein leerer Domain auftritt, dann war R nicht konsistent lösbar.
Constraint Processing, INTA, FH
Gelsenkrichen, W. Conen
44
Constraint-Propagation: Arc Consistency

Komplexität O(ek3), Beispiel s. Mitschrieb, optimal?
Constraint Processing, INTA, FH
Gelsenkrichen, W. Conen
45
Constraint-Propagation: Arc Consistency
Constraint Processing, INTA, FH
Gelsenkrichen, W. Conen
46
Constraint-Propagation: Arc Consistency

AC-4 hat eine Worst-Case-Complexität von O(ek2), 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*k2 Schritte

Ist arc-consistency bereits alles, was wir brauchen? Nein...
Constraint Processing, INTA, FH
Gelsenkrichen, W. Conen
47
Constraint-Propagation: Arc Consistency
x
y


z
Das Ausgangsnetzwerk ist arc-consistent
...aber es hat keine Lösung!
Constraint Processing, INTA, FH
Gelsenkrichen, W. Conen
48
Constraint-Propagation: Path Consistency





Definition Path Consistency:
Sei R = (X,D,C) ein Constraint-Netz mit Rij 2 C.
Eine Menge {xi,xj} aus 2 Variablen ist genau dann path-consistent zu
einer dritten Variable xk, wenn es zu jedem konsistenten Assignment (h
xi,ai i, h xj,aj i) einen Wert ak 2 Dk gibt, so dass (h xi,ai i, h xk,ak i) und (h
xk,ak i, h xj,aj i) konsistent sind.
Alternativ: Der Constraint Rij ist genau dann path-konsistent zu xk, wenn
es zu jedem Paar (ai,aj) 2 Rij ein ak 2 Dk gibt mit (ai,ak) 2 Rik und (ak,aj) 2
Rkj.
Das Teilnetz, das von xi,xj,xk aufgespannt wird, ist genau dann pathconsistent, wenn alle Mengen zweier Variablen path-consistent zu der
jeweiligen dritten Variable ist, also {xi,xj} zu xk, {xi,xk} zu xj, {xj,xk} zu xi.
R ist path-consistent genau dann, wenn jedes Rij (einschließlich der
universellen Relationen zwischen „unconstrainten“ Variablen) pathkonsistent zu jedem xk für k  i, k  j ist.
Constraint Processing, INTA, FH
Gelsenkrichen, W. Conen
49
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]
Constraint Processing, INTA, FH
Gelsenkrichen, W. Conen
50
Constraint-Propagation: Path Consistency

Schöner: Rxy à Rxy Å xy (Rxz BC Dz

Komplexität: O(k3) bzw. O(t*k)
BC Rzy)
Constraint Processing, INTA, FH
Gelsenkrichen, W. Conen
51
Constraint-Propagation: Path Consistency

Komplexität: O(n5*k5) bzw. O(n5*t2*k)
Constraint Processing, INTA, FH
Gelsenkrichen, W. Conen
52
Constraint-Propagation: Path Consistency
PC-2
2 (PC-2)

Komplexität: O(n3*k5) bzw. O(n3*t2*k)
Constraint Processing, INTA, FH
Gelsenkrichen, W. Conen
53
Constraint-Propagation: Path Consistency
Constraint Processing, INTA, FH
Gelsenkrichen, W. Conen
54
Constraint-Propagation: i-Consistency





Definition i-consistent:
Sei R = (X,D,C) ein Constraint-Netz mit Rij 2 C, S ½ X, |S| = i-1.
Eine Relation RS ist genau dann i-consistent zu einer Variable y,
die nicht in S ist, wenn zu jedem t 2 RS ein a 2 Dy 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)
Constraint Processing, INTA, FH
Gelsenkrichen, W. Conen
55
Constraint-Propagation: i-Consistency

Komplexität: Zeit O(ki) für binäre Constraints, O((2k)i) für allgemeine Constraints
Constraint Processing, INTA, FH
Gelsenkrichen, W. Conen
56
Constraint-Propagation: i-Consistency

Komplexität: Zeit O(2i(nk)2i), Space O(ni,ki), lower bound (ni,ki)
Constraint Processing, INTA, FH
Gelsenkrichen, W. Conen
57
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) Dx à Dx Å x(RS BC DS-{x})
 (Relational Arc Consistency) RS-{x} Ã S-{x}(RS BC Dx)
 Meist aber in (domain-)spezifischen Implementierungen realisiert,
z.B. Domain-Reduktion mittels Matching für Alldiff zu Kosten von
O(k*n1.5)
Constraint Processing, INTA, FH
Gelsenkrichen, W. Conen
58
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 Dx ist
bound-consistent zu C, wenn die Werte min{Dx} bzw. max{Dx}
jeweils einem vollständigen Tupel t in C erweitert werden können
(wir sagen: t „unterstützt“ min{Dx} bzw. max{Dx}).
C ist bounds-consistent, wenn alle x \in S bounds-consistent sind.
Constraint Processing, INTA, FH
Gelsenkrichen, W. Conen
59
Beispiel zu Bounds-Consistency








Variablen x1,...,x6
Domains {1,...,6}
Constraints:
 C1: x4 ¸ x1 + 3
 C2: x4 ¸ x2 + 3
 C3: x5 ¸ x3 + 3
 C4: x5 ¸ x4 + 1
 C5: Alldiff(x1,x2,x3,x4,x5)
Minimum 1 in D4 hat keine Unterstützung in C1
Erzwingen von Bounds-Consistency mit C1,...,C4 führt zu
D1= {1,2}, D2= {1,2}, D3= {1,2,3}, D4= {4,5}, D5= {5,6}
Bounds-Consistency mit C5 führt zu D3= {3}
C3 problematisch, D5= {6} heilt das Problem
Ist das Ergebnis arc-consistent?
Constraint Processing, INTA, FH
Gelsenkrichen, W. Conen
60
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 xi aus X aus, /* Variablenwahl!
falls X leer ist, setze L auf A und gib „true“ zurück
 Entferne xi aus X
 Solange noch Werte in Di sind
 Wähle einen Wert v aus Di aus /* Wertwahl!
 Falls A sich mit v für xi zu einer konsistenten Teillösung
ergänzen läßt, dann
 Erweitere A um v für xi
 Falls Solve(X,D,C,A,L) = true return true // L ist die Lösung von R
 Entferne v für xi aus A // Es gab keine konsistente Vervollständigung
 return false // Es gab keine konsistente Vervollständigung
Constraint Processing, INTA, FH
Gelsenkrichen, W. Conen
61
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
Constraint Processing, INTA, FH
Gelsenkrichen, W. Conen
62
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.
Constraint Processing, INTA, FH
Gelsenkrichen, W. Conen
63
Lösen von Constraintsnetzen – Backtracking
z
2,3,5
Constraints: z teilt xi ohne Rest
2,3,4
2,3,4
2,5,6
x2
x3
x1
Wurzel
2
z
2
x1
2
3
3
4
x2
2 5 6
x3
2 5 6
5
3
4
2
3
4
2 5 6 2 5
2
3
2
3
4
6 2
5
6
Constraint Processing, INTA, FH
Gelsenkrichen, W. Conen
4 2
3
4
64
Lösen von Constraintsnetzen – Backtracking
z
2,3,5
Constraints: z teilt xi ohne Rest
2,3,4
x1
2,3,4
2,5,6
x2
x3
2
x1
2
x2
x3
2
5
3
6
2
4
3
5
2
4
6
2
3
5
4 2
6
3
4
praktisch
gleiche
Struktur
z
2 3 52 3 5 2 3 5 2 3 52 3 5 2 3 5 2 3 52 3 5 2 3 5
65
Lösen von Constraintsnetzen – Backtracking
z
2,3,5
Constraints: z teilt xi ohne Rest
2,3,4
2,3,4
2,5,6
x2
x3
x1
Arc-Consistency anwenden:
Löschen von 5 aus Dz
Löschen von 5 aus Dx3
2
3
z
2
x1
3
2
3
4
4
2
x2
2
6
2
6
2
3
6 2
4
2
3
2
3
6 2
4
4
6
x3
Constraint Processing, INTA, FH
Gelsenkrichen, W. Conen
66
Lösen von Constraintsnetzen – Backtracking
z
2,3,5
2,3,4
Constraints: z teilt xi ohne Rest
Path-Consistency
2,5,6
anwenden, Mitschrieb
2,3,4
x1
x2
x3
2
x1
2
x2
x3
2
5
3
6
4
3
2
4
2
3
5
4 2
6
3
4
praktisch
gleiche
Struktur
z
2 3 52 3 5 2 3 5 2 3 52 3 5 2 3 5 2 3 52 3 5 2 3 5
67
Lösen von Constraintnetzen
x1:rot,blau,grün
x7:rot,blau
x2:blau,grün
x6:rot,grün,tee
x3:rot,blau
x5:blau,grün
x4:rot,blau
Suche mit Backtracking für d1 = x1,x2,...,x7 (a) und
d2 = x1,x7,x4,x5,x6,x3,x2 (b) s. Mitschrieb
Constraint Processing, INTA, FH
Gelsenkrichen, W. Conen
68
Lösen von Constraintnetzen
1
g
2
b
b
3
4
5
12
b
6g
r
7 8 9 1011 r
18
Constraint Processing, INTA, FH
Gelsenkrichen, W. Conen
69
Lösen von Constraintnetzen
Constraint Processing, INTA, FH
Gelsenkrichen, W. Conen
70
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 · kr),
e = Anzahl Constraints, n = Anzahl Variablen
 Consistence-Check: O(e log t)
 Select-Value: O(k e log t), binär O(n*k)
Constraint Processing, INTA, FH
Gelsenkrichen, W. Conen
71
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)
Constraint Processing, INTA, FH
Gelsenkrichen, W. Conen
72
Lösen von Constraintnetzen
Constraint Processing, INTA, FH
Gelsenkrichen, W. Conen
73
Lösen von Constraintnetzen
Constraint Processing, INTA, FH
Gelsenkrichen, W. Conen
74
Lösen von Constraintnetzen
Constraint Processing, INTA, FH
Gelsenkrichen, W. Conen
75
Lösen von Constraintnetzen
Constraint Processing, INTA, FH
Gelsenkrichen, W. Conen
76
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)
 ...
Constraint Processing, INTA, FH
Gelsenkrichen, W. Conen
77
Lösen von Constraintnetzen – Dynamic
Look-Ahead Value Orderings
...
 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 „später“ verworfen
wurden (und zu denen man noch partielle konsistente TeilAssignments kennt) merken (und wiederverwenden).
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.


Constraint Processing, INTA, FH
Gelsenkrichen, W. Conen
78
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
Constraint Processing, INTA, FH
Gelsenkrichen, W. Conen
79
Variable Ordering
(Fehler im Buch)
Constraint Processing, INTA, FH
Gelsenkrichen, W. Conen
80
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!
Constraint Processing, INTA, FH
Gelsenkrichen, W. Conen
81
Herunterladen