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

Post on 12-Jan-2016

47 views 0 download

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 Presentation

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

1

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

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

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

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( ) ( )

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

( ) ( ) ( ) ( )

( ) ( ) ( )

{ , , }

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! -->

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ół)

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?

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

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

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

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

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

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

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.

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

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

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

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

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

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ą

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

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

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

25

PrzykładPrzykładKolorowanie Australii: z więzami

VNSWNSWQVSA

NSWSAQSAQNT

SANTSAWANTWA

greenNTredWA

WA NT SA Q NSW V T

zgodność

łukowa

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

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.

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.

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

30

Przykład: solwer n-zPrzykład: solwer n-zQ1 Q2 Q3 Q4

1

2

3

4

31

Przykład: solwer n-zPrzykład: solwer n-zQ1 Q2 Q3 Q4

1

2

3

4

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

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ć?

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)

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

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

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

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

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

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

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

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

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)

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

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

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’’

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

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ść

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

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.

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

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

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

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

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

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)

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

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)

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

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)

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

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

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