Pobieranie prezentacji. Proszę czekać

Pobieranie prezentacji. Proszę czekać

1 Wykład 3: Skończone dziedziny więzowe. 2 Skończone dziedziny więzowe u Problem spełnialności więzów u Solwer nawracający u zgodność łukowa i węzłowa.

Podobne prezentacje


Prezentacja na temat: "1 Wykład 3: Skończone dziedziny więzowe. 2 Skończone dziedziny więzowe u Problem spełnialności więzów u Solwer nawracający u zgodność łukowa i węzłowa."— Zapis prezentacji:

1 1 Wykład 3: Skończone dziedziny więzowe

2 2 Skończone dziedziny więzowe u Problem spełnialności więzów u Solwer nawracający u zgodność łukowa i węzłowa u zgodność graniczna u zgodność uogólniona u Optymalizacja dla arytm. csp

3 3 Skończone dziedziny więzowe u Ważna klasa dziedzin więzowych u Używana do modelowania problemów związanych z przydziałem prac, wyborem tras, planowaniem u Najbardziej użyteczna dla przemysłu dziedzina więzowa

4 4 Problem spełnialności więzów u Problem spełnialności więzów składa się (CSP) : u Z więzu C nad zmiennymi x1,..., Xn u Dziedziny D która przypisuje zmiennej xi zbiór możliwych wartości d(xi) u Rozumiemy go jako więz jako więz

5 5 Kolorowanie map Klasycznym CSP jest problem takiego kolorowania mapy, że sąsiadujące obszary mają różne kolory Czy można pokolorować mapę Australii 3-ma kolorami?

6 6 4 hetmany Umieść 4 hetmany na szachownicy 4 x 4 tak, by się wzajemnie nie szachowały Q1Q2Q3Q 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! -->

7 7 4 hetmany Więzy: Nie w jednym rzędzie Inne przekątne (góra) Inne przekątne (dół)

8 8 Plecak przemytnika Przemytnik z plecakiem o pojemności 9, musi wybrać rzeczy zapewniające zysk co najmniej 30 Jaka powinna być dziedzina zmiennych?

9 9 Prosty solwer nawracający u Najprostszy sposób rozwiązania csp to przejrzeć wszystkie możliwe rozwiązania u solver nawracający: u wylicza po kolei wartości dla każdej zmiennej u Sprawdza, czy jakiś więz bazowy staje się fałszywy u Zakładamy, że satisfiable(c) zwraca false gdy więz bazowy c bez zmiennych jest niespełnialny

10 10 Częściowo spełnialny u Sprawdź, czy więz jest niespełnialny z powodu więzu bazowego bez zmiennych u Partial_satisfiable u Partial_satisfiable(c) u For each primitive constraint c in C u If vars(c) is empty u If satisfiable(c) = false return false u Return true

11 11 Solwer nawracający u Back_solve u Back_solve(c,D) partial_satisfiable u If vars(c) is empty return partial_satisfiable(c) u Choose x in vars(c) u For each value d in D(x) u Let c1 be c with x replaced by d partial_satisfiable( u If partial_satisfiable(c1) then back_solve u If back_solve(c1,D) then return true u Return false

12 12 Solwer nawracający Choose var X domain {1,2} Wybierz zm. Y dziedzina {1,2} Częściowo spełn. Częściowo spełn. false Wybierz zm. Z dziedzina {1,2} Brak zmiennych, zatem false Brak zmiennych, i false Zmienna X dziedzina {1,2} Wybierz zm. Y dziedzina {1,2}

13 13 Zgodność węzłowa i łukowa u Postawowa idea: znajdź CSP równoważny oryginalnemu, ale z mniejszymi dziedzinami u W danym momence analizuj 1 więz bazowy c u zgodność węzłowa: (vars(c)={x}) usuń każdą wartość z dziedziny x, która falsyfikuje c. u 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

14 14 Zgodność węzłowa u Więz bazowy c jest zgodny węzłowo z dziedziną D jeśli |vars(c)| !=1 lub u Jeżeli vars(c) = {x} wtedy dla każdego d w d(x) u przypisanie d do X jest rozwiązaniem c u CSP jest zgodny węzłowo, jeżeli każdy więz bazowy jest zgodny węzłowo

15 15 Przykłady na zgodność węzłową CSP nie jest zgodny węzłowo (zob. Z) Poniższy CSP jest zgodny węzłowo Kolorowanie mapy i 4-hetmany to CSP zgodne węzłowo.

16 16 Osiąganie zgodności węzłowej u Node_consistent u Node_consistent(c,d) u For each prim. constraint c in C node_consistent_primitive u D := node_consistent_primitive(c, D) u Return D u Node_consistent_primitive u Node_consistent_primitive(c, D) u If |vars(c)| =1 then u Let {x} = vars(c) u Return D

17 17 Zgodność łukowa u Więz bazowy c jest zgodny łukowo z dziedziną D jeśli |vars{c}| != 2 lub u Vars(c) = {x,y}, dla każdego d w d(x) istnieje e w d(y) u Podobnie dla y u Więz jest zgodny łukowo, jeżeli wszystkie jego więzy bazowe są zgodne łukowo

18 18 Przykłady na zgodność łukową Ten CSP jest zgodny węzłowo, ale nie łukowo Np.wartość 4 dla X oraz X < Y. Następujące CSP jest spójne łukowo Kolorowanie map i 4-hetmaty to CSP spójne łukowo

19 19 Osiąganie spójności łukowej u Arc_consistent_primitive u Arc_consistent_primitive(c, D) u If |vars(c)| = 2 then u Return D u Usuń wartości, które nie stanowią zgodnych łuków z c

20 20 Osiąganie spójności łukowej u Arc_consistent u Arc_consistent(c,d) u Repeat u W := d u For each prim. Constraint c in C arc_consistent_primitive u D := arc_consistent_primitive(c,d) u Until W = D u Return D

21 21 Używanie zgodności w. i ł. u Możemy zbudować solwer więzowy korzystając ze spójności u Dwa istotne rodzaje dziedzin u Dziedzina,,fałszywa’’: pewna zmienna ma pustą dziedzinę u Dziedzina,,wartościująca’’: każda zmienna ma jednopunktową dziedzinę u Rozszerzamy satisfiable do CSP z dziedziną wartosciującą

22 22 Solwer zgodnościowy node_consistent u D := node_consistent(C,D) arc_consistent u D := arc_consistent(C,D) u if D is a false domain u return false u if D is a valuation domain u return satisfiable(C,D) u return unknown

23 23 Solwer zgodnościowy Kolorowanie Australii z więzami WA NT SA Q NSW V T zgodność węzłowa

24 24 Przykład Kolorowanie Austalii: z więzami WA NT SA Q NSW V T zgodność łukowa

25 25 Przykład Kolorowanie Australii: z więzami WA NT SA Q NSW V T zgodność łukowa

26 26 Przykład Kolorowanie Australii: z więzami WA NT SA Q NSW V T zgodność łukowa Odpowiedź: unknown

27 27 zgodnościowy solwer nawracający u Możemy połączyć zgodność z solwerem nawracającym u Ze spójności korzysta się przed uruchomieniem solwera i za każdym razem gdy wybrana zostanie wartość dla zmiennej.

28 28 Przykład: solwer n-z Żadnej możliwej wartości dla Q3! Q1Q2Q3Q Nie można przypisać żadnej wartości dla Q3 Musimy zatem wybrać inną wartość dla Q2.

29 29 Przykład: solwer n-z Q1Q2Q3Q We cannot find any possible value for Q4 in this case! Backtracking… Find another value for Q3? No! backtracking, Find another value of Q2? No! nawracanie, Znajdź inną wart. dla Q2 Q2=2

30 30 Przykład: solwer n-z Q1Q2Q3Q

31 31 Przykład: solwer n-z Q1Q2Q3Q

32 32 zgodność: przykład Kolorowanie Australii: z więzami WA NT SA Q NSW V T Wyliczanie z nawracaniem Wybierz zmienną z dziedziną większą niż 1, T Dodaj więzZastosuj zgodność Answer: true

33 33 Zgodność graniczna u A co z więzami bazowymi z więcej niż jedną zmienną? u zgodność hiperłukowa: zozszerzenie spójności łukowej do dowolnej liczby zmiennech u Niestety problem ten jest NP-trudny u Jak to rozwiązać?

34 34 zgodność graniczna u Arytmetyczne CSP: więzy są całkowite u zasięg: [l..u] przedstawia zbiór liczb całkowitych {l, l+1,..., u} u pomysł: użyj zgodności dla liczb rzeczywistych i zajmuj się jedynie końcami dziedzin każdej zmiennej u min(D,x) definiujemy jako najmniejszy element dziedziny, podobnie max(D,x)

35 35 zgodność graniczna u Więz bazowy c jest zgodny granicznie z dziedziną D jeśli dla każdej zmiennej x w vars(c) u istnieją rzeczywiste d1,..., dk dla pozostałych zmiennych x1,..., xk takie, że u jest rozwiązaniem c u i podobnie dla u Arytmetyczne CSP jest zgodne granicznie, jeżeli wszystkie jego więzy są z.g.

36 36 zgodność graniczna. Przykład Nie jest zgodny granicznie, gdy Z=2, to X-3Y=10 Dziedzina poniżej jest spójna granicznie Porównaj z dziedziną spójną hiperłukowo

37 37 Osiąganie zgodności granicznej u Dla danej bieżącej dziedziny D chcemy tak zmodyfikować jej punkty graniczne, by osiągnąć zgodność u zrobią to reguły propagacji

38 38 Osiąganie zgodności granicznej Rozważmy więz bazowy X = Y + Z równoważny trzem następującym postaciom Wnioskowanie o wartościach minimalnej i maksymalnej: Reguły propagacji dla więzu X = Y + Z

39 39 Osiąganie zgodności granicznej Powyższe reguły wymuszają: Zatem można zredukować dziedzinę do

40 40 Więcej reguł propagacji Dla zadanej dziedziny początkowej: Otrzymujemy, że nowa dziedzina:

41 41 Nieró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.

42 42 Mnożenie Proste, gdy wszyskie zmienne są dodatnie Ale co ze zmiennymi, które mogą być 0 jub mniej? Przykładowo: staje się:

43 43 Mnożenie Oblicz ograniczenia na X analizując wartości ekstremalne Podobnie dla górnych ograniczeń X używając maksimum Nie działa dla Y i Z? Jeśli min(D,Z) 0 to nie można ograniczyć przedziały Y (używamy wartości rzeczywistych (e.g. 4/d)

44 44 Mnożenie Możemy czekać, aż do momentu gdy zasięg Z będzie dodatni lub ujemny i wówczas użyć reguł division by 0:

45 45 Algorytm zgodności granicznej u Stosuj reguły propagacji dla więzów bazowych, aż nie będzie możliwa żadna zmiana dziedziny u Nie musimy zajmować się więzem jeżeli nie zmieniły się dziedziny zmiennych w nim zawartych

46 46 zgodność graniczna: przykład Problem plecakowy (nie ma whiskey) Dalej nie ma żadnych zmian Musimy jeszcze raz zanalizować więz,,zyskowy’’

47 47 Solwer graniczny zgodnościowy bounds_consistent u D := bounds_consistent(C,D) u if D is a false domain u return false u if D is a valuation domain u return satisfiable(C,D) u return unknown

48 48 Nawracający solwer zgodnościowy g. u Zastosuj solwer zgodnościowy g przed uruchomieniem solwera nawracającego i za każdym razem, gdy zmiennej nadana zostanie wartość

49 49 Przykład: solwer nsg Problem plecaka (dostępna whiskey) Bieżąca dziedzina: Początkowa zgodność graniczna W = 0 P = 1 (0,1,3) Znaleziono rozwiązanie: zwracaj true

50 50 Przykład: solwer nsg Problem plecakowy (dostępna whiskey) Bieżąca dziedzina: Początkowa zgodność granicznaBacktrack P = 2 false Backtrack P = 3 W = 0 P = 1 (0,1,3) (0,3,0) W = 1 (1,1,1) W = 2 (2,0,0) Brak dalszych rozw.

51 51 zgodność uogólniona u Can use any consistency method with any other communicating through the domain, u zgodność węsłowa : więzy bazowe z 1 zm. u zgodność łukowa: więzy bazowe z 2 zm. u zgodność graniczna: inne więzy bazowe u czasami możemy otrzymać więcej używającz złożonych zmiennych i specjalnych metod zgodnościowych

52 52 Alldifferent u alldifferent({V1,...,Vn}) zachodzi gdy każda ze zmiennych V1,..,Vn ma inną wartość u alldifferent({X, Y, Z}) jest równoważny u zgodny łukowo z dziedziną u Jednak nie ma on rozwiązania!, co mogą wykryć metody specyficzne dla alldifferent

53 53 Więz alldifferent u let c be of the form alldifferent(V) u while exists v in V where D(v) = {d} u V := V - {v} u for each v’ in V u D(v’) := D(v’) - {d} u DV := union of all D(v) for v in V u if |DV| < |V| then return false domain u return D

54 54 Przykład z alldifferent DV = {1,2}, V={X,Y,Z} wykryta niespełnialność DV = {1,2,3,4,5}, V={X,Y,Z,T} niewykryta niesp. Mogłaby pomóc zgodność bazująca na maks. dopasowaniu

55 55 Inne złożone więzy u 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 u Dostęp do tablicy, jeśli I = i, to X = Vi i jeśli X != Vi to I != i

56 56 Optymalizacja dla CSP u Ponieważ dziedziny są skończone, możemy użyć solwera do budowy prostej procedury optymalizującej u retry_int_opt u retry_int_opt(C, D, f, best) int_solv u D2 := int_solv(C,D) u if D2 is a false domain then return best u let sol be the solution corresponding to D2 retry_int_opt u return retry_int_opt(C /\ f < sol(f), D, f, sol)

57 57 Retry Optimization Example Problem przemytniczego plecaka (optymalny zysk) First solution found: Corresponding solution Next solution found:Nie ma nast..rozw! Zwraca najlepsze

58 58 Backtracking Optimization u Since the solver may use backtrack search anyway combine it with the optimization u At each step in backtracking search, if best is the best solution so far add the constraint f < best(f)

59 59 Back. Optimization Example Smugglers knapsack problem (whiskey available) Bieżąca dziedzina: Initial bounds consistency W = 0 P = 1 (0,1,3) Znaleziono rozwiązanie: dodaj więz Problem przemytniczego plecaka (whiskey available)

60 60 Back. Optimization Example Initial bounds consistency P = 2 false P = 3 false W = 1 (1,1,1) Modify constraint W = 0 P = 1 (0,1,3) Smugglers knapsack problem (whiskey available) W = 2 false Return last sol (1,1,1)

61 61 Branch and Bound Opt. u The previous methods,unlike simplex don't use the objective function to direct search u branch and bound optimization for (C,f) u use simplex to find a real optimal, u if solution is integer stop u otherwise choose a var x with non-integer opt value d and examine the problems u use the current best solution to constrain prob.

62 62 Branch and Bound Example Smugglers knapsack problem Solution (2,0,0) = 30 false Solution (1,1,1) = 32 Worse than best sol false

63 63 Finite Constraint Domains Summary u CSPs form an important class of problems u Solving of CSPs is essentially based on backtracking search u Reduce the search using consistency methods u node, arc, bound, generalized u Optimization is based on repeated solving or using a real optimizer to guide the search


Pobierz ppt "1 Wykład 3: Skończone dziedziny więzowe. 2 Skończone dziedziny więzowe u Problem spełnialności więzów u Solwer nawracający u zgodność łukowa i węzłowa."

Podobne prezentacje


Reklamy Google