Wyklad 3: Skonczone dziedziny wiezowe - PowerPoint PPT Presentation

1 / 63
About This Presentation
Title:

Wyklad 3: Skonczone dziedziny wiezowe

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 ... – PowerPoint PPT presentation

Number of Views:142
Avg rating:3.0/5.0
Slides: 64
Provided by: Comput299
Category:

less

Transcript and Presenter's Notes

Title: Wyklad 3: Skonczone dziedziny wiezowe


1
Wyklad 3 Skonczone dziedziny wiezowe
2
Skonczone dziedziny wiezowe
  • Problem spelnialnosci wiezów
  • Solwer nawracajacy
  • zgodnosc lukowa i wezlowa
  • zgodnosc graniczna
  • zgodnosc uogólniona
  • Optymalizacja dla arytm. csp

3
Skonczone dziedziny wiezowe
  • Wazna klasa dziedzin wiezowych
  • Uzywana do modelowania problemów zwiazanych z
    przydzialem prac, wyborem tras, planowaniem
  • Najbardziej uzyteczna dla przemyslu dziedzina
    wiezowa

4
Problem spelnialnosci wiezów
  • Problem spelnialnosci wiezów sklada sie (CSP)
  • Z wiezu C nad zmiennymi x1,..., Xn
  • Dziedziny D która przypisuje zmiennej xi zbiór
    mozliwych wartosci d(xi)
  • Rozumiemy go jako wiez jako wiez

5
Kolorowanie map
Klasycznym CSP jest problem takiego kolorowania
mapy, ze sasiadujace obszary maja rózne kolory
Czy mozna pokolorowac mape Australii 3-ma
kolorami?
6
4 hetmany
Umiesc 4 hetmany na szachownicy 4 x 4 tak, by sie
wzajemnie nie szachowaly
Cztery zmienne Q1, Q2, Q3, Q4 rzad hetmana w
kazdej kolumnie. Dziedzina kazdej zmiennej jest
1,2,3,4
Jedyne rozwiazanie! --gt
7
4 hetmany
Wiezy
Nie w jednym rzedzie Inne przekatne (góra) Inne
przekatne (dól)
8
Plecak przemytnika
Przemytnik z plecakiem o pojemnosci 9, musi
wybrac rzeczy zapewniajace zysk co najmniej 30
Jaka powinna byc dziedzina zmiennych?
9
Prosty solwer nawracajacy
  • Najprostszy sposób rozwiazania csp to przejrzec
    wszystkie mozliwe rozwiazania
  • solver nawracajacy
  • wylicza po kolei wartosci dla kazdej zmiennej
  • Sprawdza, czy jakis wiez bazowy staje sie
    falszywy
  • Zakladamy, ze satisfiable(c) zwraca false gdy
    wiez bazowy c bez zmiennych jest niespelnialny

10
Czesciowo spelnialny
  • Sprawdz, czy wiez jest niespelnialny z powodu
    wiezu bazowego bez zmiennych
  • Partial_satisfiable(c)
  • For each primitive constraint c in C
  • If vars(c) is empty
  • If satisfiable(c) false return false
  • Return true

11
Solwer nawracajacy
  • Back_solve(c,D)
  • If vars(c) is empty return partial_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(c1) then
  • If back_solve(c1,D) then return true
  • Return false

12
Solwer nawracajacy
Choose var X domain 1,2
Wybierz zm. Y dziedzina 1,2
Wybierz zm. Z dziedzina 1,2
Zmienna X dziedzina 1,2
Wybierz zm. Y dziedzina 1,2
Brak zmiennych, i false
Czesciowo speln. false
Brak zmiennych, zatem false
13
Zgodnosc wezlowa i lukowa
  • Postawowa idea znajdz CSP równowazny
    oryginalnemu, ale z mniejszymi dziedzinami
  • W danym momence analizuj 1 wiez bazowy c
  • zgodnosc wezlowa (vars(c)x) usun kazda
    wartosc z dziedziny x, która falsyfikuje c.
  • zgodnosc lukowa (vars(c)x,y) usun kazda
    wartosc z d(x) dla której nie ma wartosci w d(y)
    spelniajacej c i vice versa

14
Zgodnosc wezlowa
  • Wiez bazowy c jest zgodny wezlowo z dziedzina D
    jesli vars(c) !1 lub
  • Jezeli vars(c) x wtedy dla kazdego d w d(x)
  • przypisanie d do X jest rozwiazaniem c
  • CSP jest zgodny wezlowo, jezeli kazdy wiez bazowy
    jest zgodny wezlowo

15
Przyklady na zgodnosc wezlowa
CSP nie jest zgodny wezlowo (zob. Z)
Ponizszy CSP jest zgodny wezlowo
Kolorowanie mapy i 4-hetmany to CSP zgodne
wezlowo.
16
Osiaganie zgodnosci wezlowej
  • Node_consistent(c,d)
  • For each prim. constraint c in C
  • D node_consistent_primitive(c, D)
  • Return D
  • Node_consistent_primitive(c, D)
  • If vars(c) 1 then
  • Let x vars(c)
  • Return D

17
Zgodnosc lukowa
  • Wiez bazowy c jest zgodny lukowo z dziedzina D
    jesli varsc ! 2 lub
  • Vars(c) x,y, dla kazdego d w d(x) istnieje e
    w d(y)
  • Podobnie dla y
  • Wiez jest zgodny lukowo, jezeli wszystkie jego
    wiezy bazowe sa zgodne lukowo

18
Przyklady na zgodnosc lukowa
Ten CSP jest zgodny wezlowo, ale nie lukowo
Np.wartosc 4 dla X oraz X lt Y. Nastepujace CSP
jest spójne lukowo
Kolorowanie map i 4-hetmaty to CSP spójne lukowo
19
Osiaganie spójnosci lukowej
  • Arc_consistent_primitive(c, D)
  • If vars(c) 2 then
  • Return D
  • Usun wartosci, które nie stanowia zgodnych luków
    z c

20
Osiaganie spójnosci lukowej
  • Arc_consistent(c,d)
  • Repeat
  • W d
  • For each prim. Constraint c in C
  • D arc_consistent_primitive(c,d)
  • Until W D
  • Return D

21
Uzywanie zgodnosci w. i l.
  • Mozemy zbudowac solwer wiezowy korzystajac ze
    spójnosci
  • Dwa istotne rodzaje dziedzin
  • Dziedzina ,,falszywa pewna zmienna ma pusta
    dziedzine
  • Dziedzina ,,wartosciujaca kazda zmienna ma
    jednopunktowa dziedzine
  • Rozszerzamy satisfiable do CSP z dziedzina
    wartosciujaca

22
Solwer zgodnosciowy
  • D node_consistent(C,D)
  • D arc_consistent(C,D)
  • if D is a false domain
  • return false
  • if D is a valuation domain
  • return satisfiable(C,D)
  • return unknown

23
Solwer zgodnosciowy
Kolorowanie Australii z wiezami
zgodnosc wezlowa
24
Przyklad
Kolorowanie Austalii z wiezami
zgodnosc lukowa
25
Przyklad
Kolorowanie Australii z wiezami
zgodnosc lukowa
26
Przyklad
Kolorowanie Australii z wiezami
zgodnosc lukowa
Odpowiedz unknown
27
zgodnosciowy solwer nawracajacy
  • Mozemy polaczyc zgodnosc z solwerem nawracajacym
  • Ze spójnosci korzysta sie przed uruchomieniem
    solwera i za kazdym razem gdy wybrana zostanie
    wartosc dla zmiennej.

28
Przyklad solwer n-z
Q1
Q2
Q3
Q4
1
Zadnej mozliwej wartosci dla Q3!
Nie mozna przypisac zadnej wartosci dla Q3
Musimy zatem wybrac inna wartosc dla Q2.
2
3
4
29
Przyklad solwer n-z
Q1
Q2
Q3
Q4
1
Backtracking Find another value for Q3? No!
backtracking, Find another value of Q2? No!
nawracanie, Znajdz inna wart. dla Q2 Q22
We cannot find any possible value for Q4
in this case!
2
3
4
30
Przyklad solwer n-z
Q1
Q2
Q3
Q4
1
2
3
4
31
Przyklad solwer n-z
Q1
Q2
Q3
Q4
1
2
3
4
32
zgodnosc przyklad
Kolorowanie Australii z wiezami
Wyliczanie z nawracaniem
Wybierz zmienna z dziedzina wieksza niz 1, T
Dodaj wiez
Zastosuj zgodnosc
Answer true
33
Zgodnosc graniczna
  • A co z wiezami bazowymi z wiecej niz jedna
    zmienna?
  • zgodnosc hiperlukowa zozszerzenie spójnosci
    lukowej do dowolnej liczby zmiennech
  • Niestety problem ten jest NP-trudny
  • Jak to rozwiazac?

34
zgodnosc graniczna
  • Arytmetyczne CSP wiezy sa calkowite
  • zasieg l..u przedstawia zbiór liczb
    calkowitych l, l1, ..., u
  • pomysl uzyj zgodnosci dla liczb rzeczywistych i
    zajmuj sie jedynie koncami dziedzin kazdej
    zmiennej
  • min(D,x) definiujemy jako najmniejszy element
    dziedziny, podobnie max(D,x)

35
zgodnosc graniczna
  • Wiez bazowy c jest zgodny granicznie z dziedzina
    D jesli dla kazdej zmiennej x w vars(c)
  • istnieja rzeczywiste d1, ..., dk dla pozostalych
    zmiennych x1, ..., xk takie, ze
  • jest rozwiazaniem c
  • i podobnie dla
  • Arytmetyczne CSP jest zgodne granicznie, jezeli
    wszystkie jego wiezy sa z.g.

36
zgodnosc graniczna. Przyklad
Nie jest zgodny granicznie, gdy Z2, to
X-3Y10 Dziedzina ponizej jest spójna granicznie
Porównaj z dziedzina spójna hiperlukowo
37
Osiaganie zgodnosci granicznej
  • Dla danej biezacej dziedziny D chcemy tak
    zmodyfikowac jej punkty graniczne, by osiagnac
    zgodnosc
  • zrobia to reguly propagacji

38
Osiaganie zgodnosci granicznej
Rozwazmy wiez bazowy X Y Z równowazny
trzem nastepujacym postaciom
Wnioskowanie o wartosciach minimalnej i
maksymalnej
Reguly propagacji dla wiezu X Y Z
39
Osiaganie zgodnosci granicznej
Powyzsze reguly wymuszaja
Zatem mozna zredukowac dziedzine do
40
Wiecej regul propagacji
Dla zadanej dziedziny poczatkowej
Otrzymujemy, ze nowa dziedzina
41
Nierównosci
Takie nierównosci daja slabe reguly propagacji,
jedynie wówczas, gdy jedna ze stron ma ustalona
wartosc równa minimalnej badz maksymalnej
wartosci tej drugiej.
42
Mnozenie
Proste, gdy wszyskie zmienne sa dodatnie
Przykladowo staje sie
Ale co ze zmiennymi, które moga byc 0 jub mniej?
43
Mnozenie
Oblicz ograniczenia na X analizujac wartosci
ekstremalne
Podobnie dla górnych ograniczen X uzywajac
maksimum Nie dziala dla Y i Z? Jesli min(D,Z) lt0
i max(D,Z)gt0 to nie mozna ograniczyc przedzialy Y
(uzywamy wartosci rzeczywistych (e.g. 4/d)
44
Mnozenie
Mozemy czekac, az do momentu gdy zasieg Z bedzie
dodatni lub ujemny i wówczas uzyc regul
division by 0
45
Algorytm zgodnosci granicznej
  • Stosuj reguly propagacji dla wiezów bazowych, az
    nie bedzie mozliwa zadna zmiana dziedziny
  • Nie musimy zajmowac sie wiezem jezeli nie
    zmienily sie dziedziny zmiennych w nim zawartych

46
zgodnosc graniczna przyklad
Problem plecakowy (nie ma whiskey)
Dalej nie ma zadnych zmian Musimy jeszcze raz
zanalizowac wiez ,,zyskowy
47
Solwer graniczny zgodnosciowy
  • D bounds_consistent(C,D)
  • if D is a false domain
  • return false
  • if D is a valuation domain
  • return satisfiable(C,D)
  • return unknown

48
Nawracajacy solwer zgodnosciowy g.
  • Zastosuj solwer zgodnosciowy g przed
    uruchomieniem solwera nawracajacego i za kazdym
    razem, gdy zmiennej nadana zostanie wartosc

49
Przyklad solwer nsg
Problem plecaka (dostepna whiskey)
Biezaca dziedzina
Poczatkowa zgodnosc graniczna
W 0
Znaleziono rozwiazanie zwracaj true
P 1
(0,1,3)
50
Przyklad solwer nsg
Problem plecakowy (dostepna whiskey)
Biezaca dziedzina
Poczatkowa zgodnosc graniczna
Backtrack
Backtrack
W 0
W 1
W 2
P 2
P 3
P 1
(1,1,1)
(2,0,0)
Brak dalszych rozw.
false
(0,1,3)
(0,3,0)
51
zgodnosc uogólniona
  • Can use any consistency method with any other
    communicating through the domain,
  • zgodnosc weslowa wiezy bazowe z 1 zm.
  • zgodnosc lukowa wiezy bazowe z 2 zm.
  • zgodnosc graniczna inne wiezy bazowe
  • czasami mozemy otrzymac wiecej uzywajacz
    zlozonych zmiennych i specjalnych metod
    zgodnosciowych

52
Alldifferent
  • alldifferent(V1,...,Vn) zachodzi gdy kazda ze
    zmiennych V1,..,Vn ma inna wartosc
  • alldifferent(X, Y, Z) jest równowazny
  • zgodny lukowo z dziedzina
  • Jednak nie ma on rozwiazania!, co moga wykryc
    metody specyficzne dla alldifferent

53
Wiez 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 lt V then return false domain
  • return D

54
Przyklad z alldifferent
DV 1,2, VX,Y,Z wykryta niespelnialnosc
DV 1,2,3,4,5, VX,Y,Z,T niewykryta niesp.
Moglaby pomóc zgodnosc bazujaca na
maks. dopasowaniu
55
Inne zlozone wiezy
  • zaplanuj n zadan o poczatkach w chwilach Si
    trwajacych Di wymagajacych Ri jednostegok
    pewnego zasobu, którego w kazdym momencie jest
    dostepnych L jednostek
  • Dostep do tablicy, jesli I i, to X Vi i jesli
    X ! Vi to I ! i

56
Optymalizacja dla CSP
  • Poniewaz dziedziny sa skonczone, mozemy uzyc
    solwera do budowy prostej procedury
    optymalizujacej
  • retry_int_opt(C, D, f, best)
  • D2 int_solv(C,D)
  • if D2 is a false domain then return best
  • let sol be the solution corresponding to D2
  • return retry_int_opt(C /\ f lt sol(f), D, f, sol)

57
Retry Optimization Example
Problem przemytniczego plecaka (optymalny zysk)
First solution found
Next solution found
Nie ma nast..rozw!
Corresponding solution
Zwraca najlepsze
58
Backtracking 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 lt
    best(f)

59
Back. Optimization Example
Problem przemytniczego plecaka (whiskey
available)
Smugglers knapsack problem (whiskey available)
Biezaca dziedzina
Initial bounds consistency
W 0
Znaleziono rozwiazanie dodaj wiez
P 1
(0,1,3)
60
Back. Optimization Example
Smugglers knapsack problem (whiskey available)
Initial bounds consistency
W 1
W 0
W 2
P 2
P 3
(1,1,1)
P 1
false
(0,1,3)
false
false
Modify constraint
Return last sol (1,1,1)
61
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.

62
Branch and Bound Example
Smugglers knapsack problem
false
false
Solution (2,0,0) 30
Solution (1,1,1) 32
false
Worse than best sol
false
false
false
63
Finite Constraint Domains Summary
  • 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
Write a Comment
User Comments (0)
About PowerShow.com