wykład 3: skończone dziedziny więzowe
DESCRIPTION
Wykład 3: Skończone dziedziny więzowe. Skończone dziedziny więzowe. Problem spełnialności więzów Solwer nawracający zgodność łukowa i węzłowa zgodność graniczna zgodność uogólniona Optymalizacja dla arytm. csp. Skończone dziedziny więzowe. Ważna klasa dziedzin więzowych - PowerPoint PPT PresentationTRANSCRIPT
![Page 1: Wykład 3: Skończone dziedziny więzowe](https://reader035.vdocuments.net/reader035/viewer/2022070409/56814502550346895db1cc80/html5/thumbnails/1.jpg)
1
Wykład 3: Skończone dziedziny Wykład 3: Skończone dziedziny więzowewięzowe
![Page 2: Wykład 3: Skończone dziedziny więzowe](https://reader035.vdocuments.net/reader035/viewer/2022070409/56814502550346895db1cc80/html5/thumbnails/2.jpg)
2
Skończone dziedziny więzoweSkończone dziedziny więzowe
Problem spełnialności więzów Solwer nawracający zgodność łukowa i węzłowa zgodność graniczna zgodność uogólniona Optymalizacja dla arytm. csp
![Page 3: Wykład 3: Skończone dziedziny więzowe](https://reader035.vdocuments.net/reader035/viewer/2022070409/56814502550346895db1cc80/html5/thumbnails/3.jpg)
3
Skończone dziedziny więzoweSkończone dziedziny więzowe
Ważna klasa dziedzin więzowych Używana do modelowania problemów
związanych z przydziałem prac, wyborem tras, planowaniem
Najbardziej użyteczna dla przemysłu dziedzina więzowa
![Page 4: Wykład 3: Skończone dziedziny więzowe](https://reader035.vdocuments.net/reader035/viewer/2022070409/56814502550346895db1cc80/html5/thumbnails/4.jpg)
4
Problem spełnialności więzówProblem spełnialności więzów
Problem spełnialności więzów składa się (CSP) : Z więzu C nad zmiennymi x1,..., Xn Dziedziny D która przypisuje zmiennej xi zbiór
możliwych wartości d(xi) Rozumiemy go jako więz jako więz
C x D x xn D xn 1 1( ) ( )
![Page 5: Wykład 3: Skończone dziedziny więzowe](https://reader035.vdocuments.net/reader035/viewer/2022070409/56814502550346895db1cc80/html5/thumbnails/5.jpg)
5
Kolorowanie mapKolorowanie map
Klasycznym CSP jest problem takiego kolorowania mapy, że sąsiadujące obszary mają różne kolory
WA
NT
SA
Q
NSW
V
T
Czy można pokolorować mapę Australii 3-ma kolorami?
WA NT WA SA NT SA
NT Q SA Q SA NSW
SA V Q NSW NSW V
D WA D NT D SA D Q
D NSW D V D T
red yellow blue
( ) ( ) ( ) ( )
( ) ( ) ( )
{ , , }
![Page 6: Wykład 3: Skończone dziedziny więzowe](https://reader035.vdocuments.net/reader035/viewer/2022070409/56814502550346895db1cc80/html5/thumbnails/6.jpg)
6
4 hetmany4 hetmany
Umieść 4 hetmany na szachownicy 4 x 4 tak, by się wzajemnie nie szachowały
Q1 Q2 Q3 Q4
1
2
3
4
Cztery zmienne Q1, Q2, Q3, Q4 rząd hetmana w każdej kolumnie. Dziedziną każdej zmiennej jest {1,2,3,4}
Jedyne rozwiązanie! -->
![Page 7: Wykład 3: Skończone dziedziny więzowe](https://reader035.vdocuments.net/reader035/viewer/2022070409/56814502550346895db1cc80/html5/thumbnails/7.jpg)
7
4 hetmany4 hetmany
Więzy:
Q Q Q Q Q Q
Q Q Q Q Q Q
Q Q Q Q Q Q
Q Q Q Q Q Q
Q Q Q Q Q Q
Q Q Q Q Q Q
1 2 1 3 1 4
2 3 2 4 3 4
1 2 1 1 3 2 1 4 3
2 3 1 2 4 2 3 4 1
1 2 1 1 3 2 1 4 3
2 3 1 2 4 2 3 4 1
Nie w jednym rzędzie
Inne przekątne (góra)
Inne przekątne (dół)
![Page 8: Wykład 3: Skończone dziedziny więzowe](https://reader035.vdocuments.net/reader035/viewer/2022070409/56814502550346895db1cc80/html5/thumbnails/8.jpg)
8
Plecak przemytnikaPlecak przemytnika
Przemytnik z plecakiem o pojemności 9, musi wybrać rzeczy zapewniające zysk co najmniej 30
27
310
415
papierosy
perfumy
whiskey
rozmiarzyskrzecz
4 3 2 9 15 10 7 30W P C W P C
Jaka powinna być dziedzina zmiennych?
![Page 9: Wykład 3: Skończone dziedziny więzowe](https://reader035.vdocuments.net/reader035/viewer/2022070409/56814502550346895db1cc80/html5/thumbnails/9.jpg)
9
Prosty solwer nawracającyProsty solwer nawracający
Najprostszy sposób rozwiązania csp to przejrzeć wszystkie możliwe rozwiązania
solver nawracający: wylicza po kolei wartości dla każdej zmiennej Sprawdza, czy jakiś więz bazowy staje się fałszywy
Zakładamy, że satisfiable(c) zwraca false gdy więz bazowy c bez zmiennych jest niespełnialny
![Page 10: Wykład 3: Skończone dziedziny więzowe](https://reader035.vdocuments.net/reader035/viewer/2022070409/56814502550346895db1cc80/html5/thumbnails/10.jpg)
10
Częściowo spełnialnyCzęściowo spełnialny
Sprawdź, czy więz jest niespełnialny z powodu więzu bazowego bez zmiennych
Partial_satisfiablePartial_satisfiable(c) For each primitive constraint c in C
If vars(c) is empty If satisfiable(c) = false return false
Return true
![Page 11: Wykład 3: Skończone dziedziny więzowe](https://reader035.vdocuments.net/reader035/viewer/2022070409/56814502550346895db1cc80/html5/thumbnails/11.jpg)
11
Solwer nawracającySolwer nawracający
Back_solveBack_solve(c,D) If vars(c) is empty return partial_satisfiablepartial_satisfiable(c) Choose x in vars(c) For each value d in D(x)
Let c1 be c with x replaced by d If partial_satisfiable(partial_satisfiable(c1) then
If back_solveback_solve(c1,D) then return true Return false
![Page 12: Wykład 3: Skończone dziedziny więzowe](https://reader035.vdocuments.net/reader035/viewer/2022070409/56814502550346895db1cc80/html5/thumbnails/12.jpg)
12
Solwer nawracającySolwer nawracającyX Y Y Z D X D Y D Z ( ) ( ) ( ) { , }1 2
X Y Y Z
Choose var X domain {1,2}
X 1
1 Y Y ZWybierz zm. Y dziedzina {1,2}
Y 1
1 1 1 Z
Częściowo spełn.Częściowo spełn. false
Y 2
1 2 2 Z
Wybierz zm. Z dziedzina {1,2}
Z 1
1 2 2 1 Brak zmiennych, zatem false
Z 2
1 2 2 2
Brak zmiennych, i false
Zmienna X dziedzina {1,2}
X 2
2 Y Y ZWybierz zm. Y dziedzina {1,2}
2 1 1 Z 2 2 2 Z
![Page 13: Wykład 3: Skończone dziedziny więzowe](https://reader035.vdocuments.net/reader035/viewer/2022070409/56814502550346895db1cc80/html5/thumbnails/13.jpg)
13
Zgodność węzłowa i łukowaZgodność węzłowa i łukowa
Postawowa idea: znajdź CSP równoważny oryginalnemu, ale z mniejszymi dziedzinami
W danym momence analizuj 1 więz bazowy c zgodność węzłowa: (vars(c)={x}) usuń każdą
wartość z dziedziny x, która falsyfikuje c. zgodność łukowa: (vars(c)={x,y}) usuń każdą
wartość z d(x) dla której nie ma wartości w d(y) spełniającej c i vice versa
![Page 14: Wykład 3: Skończone dziedziny więzowe](https://reader035.vdocuments.net/reader035/viewer/2022070409/56814502550346895db1cc80/html5/thumbnails/14.jpg)
14
Zgodność węzłowaZgodność węzłowa
Więz bazowy c jest zgodny węzłowo z dziedziną D jeśli |vars(c)| !=1 lub Jeżeli vars(c) = {x} wtedy dla każdego d w d(x) przypisanie d do X jest rozwiązaniem c
CSP jest zgodny węzłowo, jeżeli każdy więz bazowy jest zgodny węzłowo
![Page 15: Wykład 3: Skończone dziedziny więzowe](https://reader035.vdocuments.net/reader035/viewer/2022070409/56814502550346895db1cc80/html5/thumbnails/15.jpg)
15
Przykłady na zgodność Przykłady na zgodność węzłowąwęzłową
CSP nie jest zgodny węzłowo (zob. Z)X Y Y Z Z
D X D Y D Z
2
1 2 3 4( ) ( ) ( ) { , , , }
Poniższy CSP jest zgodny węzłowo
X Y Y Z Z
D X D Y D Z
2
1 2 3 4 1 2( ) ( ) { , , , }, ( ) { , }
Kolorowanie mapy i 4-hetmany to CSP zgodne węzłowo.
![Page 16: Wykład 3: Skończone dziedziny więzowe](https://reader035.vdocuments.net/reader035/viewer/2022070409/56814502550346895db1cc80/html5/thumbnails/16.jpg)
16
Osiąganie zgodności węzłowejOsiąganie zgodności węzłowej
Node_consistentNode_consistent(c,d) For each prim. constraint c in C
D := node_consistent_primitivenode_consistent_primitive(c, D) Return D
Node_consistent_primitiveNode_consistent_primitive(c, D) If |vars(c)| =1 then
Let {x} = vars(c)
Return DD x d D x x d c( ): { ( )|{ } } is a solution of
![Page 17: Wykład 3: Skończone dziedziny więzowe](https://reader035.vdocuments.net/reader035/viewer/2022070409/56814502550346895db1cc80/html5/thumbnails/17.jpg)
17
Zgodność łukowaZgodność łukowa
Więz bazowy c jest zgodny łukowo z dziedziną D jeśli |vars{c}| != 2 lub
Vars(c) = {x,y}, dla każdego d w d(x) istnieje e w d(y) Podobnie dla y
Więz jest zgodny łukowo, jeżeli wszystkie jego więzy bazowe są zgodne łukowo
{ , }x d y e c is a solution of
![Page 18: Wykład 3: Skończone dziedziny więzowe](https://reader035.vdocuments.net/reader035/viewer/2022070409/56814502550346895db1cc80/html5/thumbnails/18.jpg)
18
Przykłady na zgodność Przykłady na zgodność łukowąłukową
Ten CSP jest zgodny węzłowo, ale nie łukowoX Y Y Z Z
D X D Y D Z
2
1 2 3 4 1 2( ) ( ) { , , , }, ( ) { , }
Np.wartość 4 dla X oraz X < Y.
Następujące CSP jest spójne łukowo
X Y Y Z Z
D X D Y D Z
2
( ) ( ) ( )
Kolorowanie map i 4-hetmaty to CSP spójne łukowo
![Page 19: Wykład 3: Skończone dziedziny więzowe](https://reader035.vdocuments.net/reader035/viewer/2022070409/56814502550346895db1cc80/html5/thumbnails/19.jpg)
19
Osiąganie spójności łukowejOsiąganie spójności łukowej
Arc_consistent_primitiveArc_consistent_primitive(c, D) If |vars(c)| = 2 then
Return D Usuń wartości, które nie stanowią zgodnych
łuków z c
D x d D x e D y
x d y e c
( ): { ( )| ( ),
{ , } }
exists
is a soln of
D y e D y d D x
x d y e c
( ): { ( )| ( ),
{ , } }
exists
is a soln of
![Page 20: Wykład 3: Skończone dziedziny więzowe](https://reader035.vdocuments.net/reader035/viewer/2022070409/56814502550346895db1cc80/html5/thumbnails/20.jpg)
20
Osiąganie spójności łukowejOsiąganie spójności łukowej
Arc_consistentArc_consistent(c,d) Repeat
W := d For each prim. Constraint c in C
D := arc_consistent_primitivearc_consistent_primitive(c,d) Until W = D Return D
![Page 21: Wykład 3: Skończone dziedziny więzowe](https://reader035.vdocuments.net/reader035/viewer/2022070409/56814502550346895db1cc80/html5/thumbnails/21.jpg)
21
Używanie zgodności w. i ł.Używanie zgodności w. i ł.
Możemy zbudować solwer więzowy korzystając ze spójności
Dwa istotne rodzaje dziedzin Dziedzina ,,fałszywa’’: pewna zmienna ma pustą
dziedzinę Dziedzina ,,wartościująca’’: każda zmienna ma
jednopunktową dziedzinę Rozszerzamy satisfiable do CSP z dziedziną
wartosciującą
![Page 22: Wykład 3: Skończone dziedziny więzowe](https://reader035.vdocuments.net/reader035/viewer/2022070409/56814502550346895db1cc80/html5/thumbnails/22.jpg)
22
Solwer zgodnościowySolwer zgodnościowy
D := node_consistentnode_consistent(C,D) D := arc_consistentarc_consistent(C,D) if D is a false domain
return false if D is a valuation domain
return satisfiable(C,D) return unknown
![Page 23: Wykład 3: Skończone dziedziny więzowe](https://reader035.vdocuments.net/reader035/viewer/2022070409/56814502550346895db1cc80/html5/thumbnails/23.jpg)
23
Solwer zgodnościowySolwer zgodnościowyKolorowanie Australii z więzami
WA NT WA SA NT SA
NT Q SA Q SA NSW
SA V Q NSW NSW V
greenNTredWA
WA NT SA Q NSW V T
zgodność
węzłowa
![Page 24: Wykład 3: Skończone dziedziny więzowe](https://reader035.vdocuments.net/reader035/viewer/2022070409/56814502550346895db1cc80/html5/thumbnails/24.jpg)
24
PrzykładPrzykładKolorowanie Austalii: z więzami
WA NT WA SA NT SA
NT Q SA Q SA NSW
SA V Q NSW NSW V
greenNTredWA
WA NT SA Q NSW V T
zgodność
łukowa
![Page 25: Wykład 3: Skończone dziedziny więzowe](https://reader035.vdocuments.net/reader035/viewer/2022070409/56814502550346895db1cc80/html5/thumbnails/25.jpg)
25
PrzykładPrzykładKolorowanie Australii: z więzami
VNSWNSWQVSA
NSWSAQSAQNT
SANTSAWANTWA
greenNTredWA
WA NT SA Q NSW V T
zgodność
łukowa
![Page 26: Wykład 3: Skończone dziedziny więzowe](https://reader035.vdocuments.net/reader035/viewer/2022070409/56814502550346895db1cc80/html5/thumbnails/26.jpg)
26
PrzykładPrzykładKolorowanie Australii: z więzami
WA NT WA SA NT SA
NT Q SA Q SA NSW
SA V Q NSW NSW V
greenNTredWA
WA NT SA Q NSW V T
zgodność
łukowa
Odpowiedź:
unknown
![Page 27: Wykład 3: Skończone dziedziny więzowe](https://reader035.vdocuments.net/reader035/viewer/2022070409/56814502550346895db1cc80/html5/thumbnails/27.jpg)
27
zgodnościowy solwer zgodnościowy solwer nawracającynawracający
Możemy połączyć zgodność z solwerem nawracającym
Ze spójności korzysta się przed uruchomieniem solwera i za każdym razem gdy wybrana zostanie wartość dla zmiennej.
![Page 28: Wykład 3: Skończone dziedziny więzowe](https://reader035.vdocuments.net/reader035/viewer/2022070409/56814502550346895db1cc80/html5/thumbnails/28.jpg)
28
Przykład: solwer n-zPrzykład: solwer n-z
Żadnej możliwej
wartości dlaQ3!
Q1 Q2 Q3 Q4
1
2
3
4
Nie możnaprzypisać
żadnej wartościdla Q3
Musimy zatem wybrać
inną wartość dla Q2.
![Page 29: Wykład 3: Skończone dziedziny więzowe](https://reader035.vdocuments.net/reader035/viewer/2022070409/56814502550346895db1cc80/html5/thumbnails/29.jpg)
29
Przykład: solwer n-zPrzykład: solwer n-zQ1 Q2 Q3 Q4
1
2
3
4
We cannot find any
possible valuefor Q4 inthis case!
Backtracking…
Find another value for Q3?
No!
backtracking,
Find anothervalue of Q2?
No!
nawracanie,
Znajdź innąwart. dla Q2
Q2=2
![Page 30: Wykład 3: Skończone dziedziny więzowe](https://reader035.vdocuments.net/reader035/viewer/2022070409/56814502550346895db1cc80/html5/thumbnails/30.jpg)
30
Przykład: solwer n-zPrzykład: solwer n-zQ1 Q2 Q3 Q4
1
2
3
4
![Page 31: Wykład 3: Skończone dziedziny więzowe](https://reader035.vdocuments.net/reader035/viewer/2022070409/56814502550346895db1cc80/html5/thumbnails/31.jpg)
31
Przykład: solwer n-zPrzykład: solwer n-zQ1 Q2 Q3 Q4
1
2
3
4
![Page 32: Wykład 3: Skończone dziedziny więzowe](https://reader035.vdocuments.net/reader035/viewer/2022070409/56814502550346895db1cc80/html5/thumbnails/32.jpg)
32
zgodność: przykładzgodność: przykładKolorowanie Australii: z więzami
greenNTredWA
WA NT SA Q NSW V T
Wyliczanie z
nawracaniem
Wybierz zmienną z dziedziną większą niż 1, T
Dodaj więz T red Zastosuj zgodność
Answer: true
![Page 33: Wykład 3: Skończone dziedziny więzowe](https://reader035.vdocuments.net/reader035/viewer/2022070409/56814502550346895db1cc80/html5/thumbnails/33.jpg)
33
Zgodność granicznaZgodność graniczna
A co z więzami bazowymi z więcej niż jedną zmienną?
zgodność hiperłukowa: zozszerzenie spójności łukowej do dowolnej liczby zmiennech
Niestety problem ten jest NP-trudny Jak to rozwiązać?
![Page 34: Wykład 3: Skończone dziedziny więzowe](https://reader035.vdocuments.net/reader035/viewer/2022070409/56814502550346895db1cc80/html5/thumbnails/34.jpg)
34
zgodność granicznazgodność graniczna
Arytmetyczne CSP: więzy są całkowite zasięg: [l..u] przedstawia zbiór liczb
całkowitych {l, l+1, ..., u} pomysł: użyj zgodności dla liczb
rzeczywistych i zajmuj się jedynie końcami dziedzin każdej zmiennej
min(D,x) definiujemy jako najmniejszy element dziedziny, podobnie max(D,x)
![Page 35: Wykład 3: Skończone dziedziny więzowe](https://reader035.vdocuments.net/reader035/viewer/2022070409/56814502550346895db1cc80/html5/thumbnails/35.jpg)
35
zgodność granicznazgodność graniczna
Więz bazowy c jest zgodny granicznie z dziedziną D jeśli dla każdej zmiennej x w vars(c) istnieją rzeczywiste d1, ..., dk dla pozostałych zmiennych
x1, ..., xk takie, że
jest rozwiązaniem c i podobnie dla
Arytmetyczne CSP jest zgodne granicznie, jeżeli wszystkie jego więzy są z.g.
{ min( , ), , }x D x x d xk dk 1 1
{ max( , )}x D x
![Page 36: Wykład 3: Skończone dziedziny więzowe](https://reader035.vdocuments.net/reader035/viewer/2022070409/56814502550346895db1cc80/html5/thumbnails/36.jpg)
36
zgodność graniczna. Przykładzgodność graniczna. Przykład
X Y Z
D X D Y D Z
3 5
2 7 0 2 1 2( ) [ .. ], ( ) [ .. ], ( ) [ .. ]
Nie jest zgodny granicznie, gdy Z=2, to X-3Y=10
Dziedzina poniżej jest spójna granicznie
D X D Y D Z( ) [ .. ], ( ) [ .. ], ( ) [ .. ] 2 7 0 2 0 1
Porównaj z dziedziną spójną hiperłukowo
D X D Y D Z( ) { , , }, ( ) { , , }, ( ) { , } 3 5 6 0 1 2 0 1
![Page 37: Wykład 3: Skończone dziedziny więzowe](https://reader035.vdocuments.net/reader035/viewer/2022070409/56814502550346895db1cc80/html5/thumbnails/37.jpg)
37
Osiąganie zgodności granicznejOsiąganie zgodności granicznej
Dla danej bieżącej dziedziny D chcemy tak zmodyfikować jej punkty graniczne, by osiągnąć zgodność
zrobią to reguły propagacji
![Page 38: Wykład 3: Skończone dziedziny więzowe](https://reader035.vdocuments.net/reader035/viewer/2022070409/56814502550346895db1cc80/html5/thumbnails/38.jpg)
38
Osiąganie zgodności granicznejOsiąganie zgodności granicznej
Rozważmy więz bazowy X = Y + Z równoważny trzem następującym postaciom
X Y Z Y X Z Z X Y
Wnioskowanie o wartościach minimalnej i maksymalnej:
X D Y D Z X D Y D Z
Y D X D Z Y D X D Z
Z D X D Y Z D X D Y
min( , ) min( , ) max( , ) max( , )
min( , ) max( , ) max( , ) min( , )
min( , ) max( , ) max( , ) min( , )
Reguły propagacji dla więzu X = Y + Z
![Page 39: Wykład 3: Skończone dziedziny więzowe](https://reader035.vdocuments.net/reader035/viewer/2022070409/56814502550346895db1cc80/html5/thumbnails/39.jpg)
39
Osiąganie zgodności granicznejOsiąganie zgodności granicznejX Y Z
D X D Y D Z
( ) [ .. ], ( ) [ .. ], ( ) [ .. ]4 8 0 3 2 2
Powyższe reguły wymuszają:
( ) ( )
( ) ( )
( ) ( )
0 2 2 5 3 2
4 2 2 6 8 2
4 3 1 8 8 0
X
Y
Z
Zatem można zredukować dziedzinę do
D X D Y D Z( ) [ .. ], ( ) [ .. ], ( ) [ .. ] 4 5 2 3 2 2
![Page 40: Wykład 3: Skończone dziedziny więzowe](https://reader035.vdocuments.net/reader035/viewer/2022070409/56814502550346895db1cc80/html5/thumbnails/40.jpg)
40
Więcej reguł propagacjiWięcej reguł propagacji4 3 2 9
9
4
3
4
2
49
3
4
3
2
39
2
4
2
3
2
W P C
W D P D C
P D W D C
C D W D P
min( , ) min( , )
min( , ) min( , )
min( , ) min( , )
Dla zadanej dziedziny początkowej:D W D P D C( ) [ .. ], ( ) [ .. ], ( ) [ .. ] 0 9 0 9 0 9
Otrzymujemy, że
nowa dziedzina:
W P C 9
4
9
3
9
2, ,
D W D P D C( ) [ .. ], ( ) [ .. ], ( ) [ .. ] 0 2 0 3 0 4
![Page 41: Wykład 3: Skończone dziedziny więzowe](https://reader035.vdocuments.net/reader035/viewer/2022070409/56814502550346895db1cc80/html5/thumbnails/41.jpg)
41
NierównościNierówności
Takie nierówności dają słabe reguły propagacji, jedynie wówczas, gdy jedna ze stron ma ustaloną wartość równą minimalnej bądź maksymalnej wartości tej drugiej.
Y Z
]2..2[)(],4..3[)( prop]2..2[)(],4..2[)(
propagacji bez]3..3[)(],4..2[)(
propagacji bez]3..2[)(],4..2[)(
ZDYDZDYD
ZDYD
ZDYD
![Page 42: Wykład 3: Skończone dziedziny więzowe](https://reader035.vdocuments.net/reader035/viewer/2022070409/56814502550346895db1cc80/html5/thumbnails/42.jpg)
42
MnożenieMnożenie X Y Z
Proste, gdy wszyskie zmienne są dodatnieX D Y D Z X D Y D Z
Y D X D Z Y D X D Z
Z D X D Y Z D X D Y
min( , ) min( , ) max( , ) max( , )
min( , ) / max( , ) max( , ) / min( , )
min( , ) / max( , ) max( , ) / min( , )
Ale co ze zmiennymi, które mogą być 0 jub mniej?
Przykładowo:
staje się:
D X D Y D Z( ) [ .. ], ( ) [ .. ], ( ) [ .. ] 4 8 1 2 1 3
D X D Y D Z( ) [ .. ], ( ) [ .. ], ( ) [ .. ] 4 6 2 2 2 3
![Page 43: Wykład 3: Skończone dziedziny więzowe](https://reader035.vdocuments.net/reader035/viewer/2022070409/56814502550346895db1cc80/html5/thumbnails/43.jpg)
43
MnożenieMnożenie X Y Z
Oblicz ograniczenia na X analizując wartości ekstremalne
X D Y D Z D Y D Z
D Y D Z D Y D Z
minimum{min( , ) min( , ), min( , ) max( , )
max( , ) min( , ), max( , ) max( , )}
Podobnie dla górnych ograniczeń X używając maksimum
Nie działa dla Y i Z? Jeśli min(D,Z) <0 i max(D,Z)>0 to nie można ograniczyć przedziały Y
X Y Z X Y d Z d { , , / } 4 4
(używamy wartości rzeczywistych (e.g. 4/d)
![Page 44: Wykład 3: Skończone dziedziny więzowe](https://reader035.vdocuments.net/reader035/viewer/2022070409/56814502550346895db1cc80/html5/thumbnails/44.jpg)
44
MnożenieMnożenie X Y Z
Możemy czekać, aż do momentu gdy zasięg Z będzie dodatni lub ujemny i wówczas użyć reguł
Y D X D Z D X D Z
D X D Z D X D Z
minimum{min( , ) / min( , ), min( , ) / max( , )
max( , ) / min( , ), max( , ) / max( , )}
division by 0:
ve ve
0 0
0
0
![Page 45: Wykład 3: Skończone dziedziny więzowe](https://reader035.vdocuments.net/reader035/viewer/2022070409/56814502550346895db1cc80/html5/thumbnails/45.jpg)
45
Algorytm zgodności granicznejAlgorytm zgodności granicznej
Stosuj reguły propagacji dla więzów bazowych, aż nie będzie możliwa żadna zmiana dziedziny
Nie musimy zajmować się więzem jeżeli nie zmieniły się dziedziny zmiennych w nim zawartych
![Page 46: Wykład 3: Skończone dziedziny więzowe](https://reader035.vdocuments.net/reader035/viewer/2022070409/56814502550346895db1cc80/html5/thumbnails/46.jpg)
46
zgodność graniczna: przykładzgodność graniczna: przykład
Problem plecakowy (nie ma whiskey)
30710159234 CPWCPW
zyskpojemnosc
D W D P D C( ) [ .. ], ( ) [ .. ], ( ) [ .. ] 0 0 0 9 0 9
W P C 102 15 12 10 60 7/ / /W P C 9 4 9 3 9 2/ / /
D W D P D C( ) [ .. ], ( ) [ .. ], ( ) [ .. ] 0 0 0 3 0 4W P C 28 15 2 10 0 7/ / /
D W D P D C( ) [ .. ], ( ) [ .. ], ( ) [ .. ] 0 0 1 3 0 4
Dalej nie ma żadnych zmian
Musimy jeszcze raz zanalizować więz ,,zyskowy’’
![Page 47: Wykład 3: Skończone dziedziny więzowe](https://reader035.vdocuments.net/reader035/viewer/2022070409/56814502550346895db1cc80/html5/thumbnails/47.jpg)
47
Solwer graniczny zgodnościowySolwer graniczny zgodnościowy
D := bounds_consistentbounds_consistent(C,D) if D is a false domain
return false if D is a valuation domain
return satisfiable(C,D) return unknown
![Page 48: Wykład 3: Skończone dziedziny więzowe](https://reader035.vdocuments.net/reader035/viewer/2022070409/56814502550346895db1cc80/html5/thumbnails/48.jpg)
48
Nawracający solwer Nawracający solwer zgodnościowy g.zgodnościowy g.
Zastosuj solwer zgodnościowy g przed uruchomieniem solwera nawracającego i za każdym razem, gdy zmiennej nadana zostanie wartość
![Page 49: Wykład 3: Skończone dziedziny więzowe](https://reader035.vdocuments.net/reader035/viewer/2022070409/56814502550346895db1cc80/html5/thumbnails/49.jpg)
49
Przykład: solwer nsgPrzykład: solwer nsg
Problem plecaka (dostępna whiskey)capacity profit
W P C W P C4 3 2 9 15 10 7 30
D W D P D C( ) [ .. ], ( ) [ .. ], ( ) [ .. ] 0 9 0 9 0 9Bieżąca dziedzina:
Początkowa zgodność graniczna
D W D P D C( ) [ .. ], ( ) [ .. ], ( ) [ .. ] 0 2 0 3 0 4
W = 0
D W D P D C( ) [ .. ], ( ) [ .. ], ( ) [ .. ] 0 0 1 3 0 4
P = 1
D W D P D C( ) [ .. ], ( ) [ .. ], ( ) [ .. ] 0 0 1 1 3 3
(0,1,3)
Znaleziono rozwiązanie: zwracaj true
![Page 50: Wykład 3: Skończone dziedziny więzowe](https://reader035.vdocuments.net/reader035/viewer/2022070409/56814502550346895db1cc80/html5/thumbnails/50.jpg)
50
Przykład: solwer nsgPrzykład: solwer nsg
Problem plecakowy (dostępna whiskey)capacity profit
W P C W P C4 3 2 9 15 10 7 30 Bieżąca dziedzina:
Początkowa zgodność granicznaBacktrack
D W D P D C( ) [ .. ], ( ) [ .. ], ( ) [ .. ] 0 0 1 3 0 4
P = 2
D W D P D C( ) , ( ) , ( )
false
Backtrack
D W D P D C( ) [ .. ], ( ) [ .. ], ( ) [ .. ] 0 0 1 3 0 4
P = 3
D W D P D C( ) { }, ( ) { }, ( ) { } 0 3 0
W = 0
P = 1
(0,1,3) (0,3,0)
W = 1
(1,1,1)
W = 2
(2,0,0)
Brak dalszych rozw.
![Page 51: Wykład 3: Skończone dziedziny więzowe](https://reader035.vdocuments.net/reader035/viewer/2022070409/56814502550346895db1cc80/html5/thumbnails/51.jpg)
51
zgodność uogólnionazgodność uogólniona
Can use any consistency method with any other communicating through the domain, zgodność węsłowa : więzy bazowe z 1 zm. zgodność łukowa: więzy bazowe z 2 zm. zgodność graniczna: inne więzy bazowe
czasami możemy otrzymać więcej używającz złożonych zmiennych i specjalnych metod zgodnościowych
![Page 52: Wykład 3: Skończone dziedziny więzowe](https://reader035.vdocuments.net/reader035/viewer/2022070409/56814502550346895db1cc80/html5/thumbnails/52.jpg)
52
AlldifferentAlldifferent
alldifferent({V1,...,Vn}) zachodzi gdy każda ze zmiennych V1,..,Vn ma inną wartość alldifferent({X, Y, Z}) jest równoważny
zgodny łukowo z dziedziną
Jednak nie ma on rozwiązania!, co mogą wykryć metody specyficzne dla alldifferent
X Y X Z Y Z
D X D Y D Z( ) { , }, ( ) { , }, ( ) { , } 1 2 1 2 1 2
![Page 53: Wykład 3: Skończone dziedziny więzowe](https://reader035.vdocuments.net/reader035/viewer/2022070409/56814502550346895db1cc80/html5/thumbnails/53.jpg)
53
Więz alldifferentWięz alldifferent
let c be of the form alldifferent(V) while exists v in V where D(v) = {d}
V := V - {v} for each v’ in V
D(v’) := D(v’) - {d} DV := union of all D(v) for v in V if |DV| < |V| then return false domain return D
![Page 54: Wykład 3: Skończone dziedziny więzowe](https://reader035.vdocuments.net/reader035/viewer/2022070409/56814502550346895db1cc80/html5/thumbnails/54.jpg)
54
Przykład z alldifferentPrzykład z alldifferentalldifferent X Y Z
D X D Y D Z
({ , , })
( ) { , }, ( ) { , }, ( ) { , } 1 2 1 2 1 2
DV = {1,2}, V={X,Y,Z} wykryta niespełnialnośćalldifferent X Y Z T
D X D Y D Z D T
({ , , , })
( ) { , }, ( ) { , }, ( ) { , }, ( ) { , , , } 1 2 1 2 1 2 2 3 4 5
DV = {1,2,3,4,5}, V={X,Y,Z,T} niewykryta niesp. Mogłaby pomóc zgodność bazująca na maks. dopasowaniuX Y Z T
1 2 3 4 5
![Page 55: Wykład 3: Skończone dziedziny więzowe](https://reader035.vdocuments.net/reader035/viewer/2022070409/56814502550346895db1cc80/html5/thumbnails/55.jpg)
55
Inne złożone więzyInne złożone więzy
zaplanuj n zadań o początkach w chwilach Si trwających Di wymagających Ri jednostegok pewnego zasobu, którego w każdym momencie jest dostępnych L jednostek
Dostęp do tablicy, jeśli I = i, to X = Vi i jeśli X != Vi to I != i
cumulative S S D D R R Ln n n([ , , ],[ , , ],[ , , ], )1 1 1
element I V V Xn( ,[ , , ], )1
![Page 56: Wykład 3: Skończone dziedziny więzowe](https://reader035.vdocuments.net/reader035/viewer/2022070409/56814502550346895db1cc80/html5/thumbnails/56.jpg)
56
Optymalizacja dla CSPOptymalizacja dla CSP
Ponieważ dziedziny są skończone, możemy użyć solwera do budowy prostej procedury optymalizującej
retry_int_optretry_int_opt(C, D, f, best) D2 := int_solvint_solv(C,D) if D2 is a false domain then return best let sol be the solution corresponding to D2 return retry_int_optretry_int_opt(C /\ f < sol(f), D, f, sol)
![Page 57: Wykład 3: Skończone dziedziny więzowe](https://reader035.vdocuments.net/reader035/viewer/2022070409/56814502550346895db1cc80/html5/thumbnails/57.jpg)
57
Retry Optimization ExampleRetry Optimization Example
Problem przemytniczego plecaka (optymalny zysk)minimize subject to
15 10 7
4 3 2 9 15 10 7 30
0 9 0 9 0 9
W P Ccapacity profit
W P C W P C
D W D P D C( ) [ .. ], ( ) [ .. ], ( ) [ .. ]
First solution found: D W D P D C( ) [ .. ], ( ) [ .. ], ( ) [ .. ] 0 0 1 1 3 3
Corresponding solution sol W P C{ , , } 0 1 3
sol f( ) 31
minimize subject to
15 10 7
4 3 2 9 15 10 7 30
15 10 7 31
0 9 0 9 0 9
W P Ccapacity profit
W P C W P C
W P C
D W D P D C( ) [ .. ], ( ) [ .. ], ( ) [ .. ]
Next solution found: D W D P D C( ) [ .. ], ( ) [ .. ], ( ) [ .. ] 1 1 1 1 1 1
sol W P C{ , , } 1 1 1
sol f( ) 32
]9..0[)(],9..0[)(],9..0[)(
32710153171015
30710159234
subject to 71015 minimize
CDPDWD
CPWCPW
CPWCPW
profitcapacityCPW
Nie ma nast..rozw!
Zwraca najlepsze
![Page 58: Wykład 3: Skończone dziedziny więzowe](https://reader035.vdocuments.net/reader035/viewer/2022070409/56814502550346895db1cc80/html5/thumbnails/58.jpg)
58
Backtracking OptimizationBacktracking Optimization
Since the solver may use backtrack search anyway combine it with the optimization
At each step in backtracking search, if best is the best solution so far add the constraint f < best(f)
![Page 59: Wykład 3: Skończone dziedziny więzowe](https://reader035.vdocuments.net/reader035/viewer/2022070409/56814502550346895db1cc80/html5/thumbnails/59.jpg)
59
Back. Optimization ExampleBack. Optimization Example
Smugglers knapsack problem (whiskey available)capacity profit
W P C W P C4 3 2 9 15 10 7 30
D W D P D C( ) [ .. ], ( ) [ .. ], ( ) [ .. ] 0 9 0 9 0 9Bieżąca dziedzina:
Initial bounds consistency
D W D P D C( ) [ .. ], ( ) [ .. ], ( ) [ .. ] 0 2 0 3 0 4
W = 0
D W D P D C( ) [ .. ], ( ) [ .. ], ( ) [ .. ] 0 0 1 3 0 4
P = 1
D W D P D C( ) [ .. ], ( ) [ .. ], ( ) [ .. ] 0 0 1 1 3 3
(0,1,3)
Znaleziono rozwiązanie: dodaj więz
Problem przemytniczego plecaka (whiskey available)capacity profit
W P C W P C
W P C
4 3 2 9 15 10 7 30
15 10 7 31
![Page 60: Wykład 3: Skończone dziedziny więzowe](https://reader035.vdocuments.net/reader035/viewer/2022070409/56814502550346895db1cc80/html5/thumbnails/60.jpg)
60
Back. Optimization ExampleBack. Optimization Example
Initial bounds consistency
capacity profit
W P C W P C
W P C
4 3 2 9 15 10 7 30
15 10 7 31
P = 2
false
P = 3
false
W = 1
(1,1,1)
Modify constraint
capacity profit
W P C W P C
W P C
4 3 2 9 15 10 7 30
15 10 7 32
W = 0
P = 1
(0,1,3)
Smugglers knapsack problem (whiskey available)
W = 2
false
Return last sol (1,1,1)
![Page 61: Wykład 3: Skończone dziedziny więzowe](https://reader035.vdocuments.net/reader035/viewer/2022070409/56814502550346895db1cc80/html5/thumbnails/61.jpg)
61
Branch and Bound Opt.Branch and Bound Opt.
The previous methods,unlike simplex don't use the objective function to direct search
branch and bound optimization for (C,f) use simplex to find a real optimal, if solution is integer stop otherwise choose a var x with non-integer opt value
d and examine the problems
use the current best solution to constrain prob. ( , ) ( , )C x d f C x d f
![Page 62: Wykład 3: Skończone dziedziny więzowe](https://reader035.vdocuments.net/reader035/viewer/2022070409/56814502550346895db1cc80/html5/thumbnails/62.jpg)
62
Branch and Bound ExampleBranch and Bound ExampleSmugglers knapsack problem
{ / , , }W P C 11 4 0 0W 2 W 3
{ , / , }W P C 2 1 3 0P 0 P 1
{ , , / }W P C 2 0 1 2C 0 C 1
{ , , }W P C 2 0 0Solution (2,0,0) = 30
{ / , , }W P C 7 4 0 1W 1 W 2
{ , , / }W P C 1 0 5 2C 2 C 3
false { / , , }W P C 3 4 0 3W 0 W 1
false false
false
{ / , , }W P C 6 4 1 0W 1 W 2
{ , / , }W P C 1 5 3 0P 1 P 2
{ , , }W P C 1 1 1Solution (1,1,1) = 32
Worse than best sol
false
false
![Page 63: Wykład 3: Skończone dziedziny więzowe](https://reader035.vdocuments.net/reader035/viewer/2022070409/56814502550346895db1cc80/html5/thumbnails/63.jpg)
63
Finite Constraint Domains Finite Constraint Domains SummarySummary
CSPs form an important class of problems Solving of CSPs is essentially based on
backtracking search Reduce the search using consistency methods
node, arc, bound, generalized Optimization is based on repeated solving or
using a real optimizer to guide the search