Progrmowie z więzmi (CLP) mjąc w PROLOGu: p(x) :- X < 0. p(x) :- X > 0. i pytjąc :- p(x). dostiemy Abort chcelibyśmy..9 CLP rozrzeszeie progrmowi w logice o kocepcję spełii ogriczeń rozwiązie = logik + sterowie sterowie = wioskowie + przeszukiwie K.. Ocetkiewicz, 008 WETI, PG K.. Ocetkiewicz, 008 WETI, PG CLP logik = kostrukcj modelu problemu wioskowie = wybór sprytej metody propgcji ogriczeń, tk by zmiimlizowć rozmir przestrzei, którą trzeb przeszukć CLP przeszukiwie = wybór strtegii i heurystyki by szybko zleźć rozwiązie w pozostłej przestrzei K.. Ocetkiewicz, 008 WETI, PG 3 K.. Ocetkiewicz, 008 WETI, PG 4 CLP dziedziy zmieych ogriczei cel by wykorzystć progrmowie z więzmi leży złdowć bibliotekę ic: % początku progrmu % lub w query etry :- lib(ic). % w mirę potrzeby tkże ie, p. :- lib(ic_globl). K.. Ocetkiewicz, 008 WETI, PG 5 K.. Ocetkiewicz, 008 WETI, PG 6
Dziedzi zkres wrtości, które może przyjmowć zmie p. X C Y {, 3, 5, 7, } Z R V <-.0, 3.4> K.. Ocetkiewicz, 008 WETI, PG 7 do dwi dziedzi zmieym służy predykt ::/, p.: X :: 0..9 Y :: [, 3, 5, ] Z :: -if.. +if T :: -.0.. 3.4 typ dziedziy (cłk. / rzecz.) zleży od typu wrtości K.. Ocetkiewicz, 008 WETI, PG 8 predykt $::/ służy do dwi dziedzi rzeczywistych predykt #::/ służy do dziedzi cłkowitych po lewej stroie może być jed zmie lub ich list (lub list list...) rels(vrs) jest rówowże Vrs :: -if.. +if itegers(vrs) wymusz cłkowitość zmieych K.. Ocetkiewicz, 008 WETI, PG 9 K.. Ocetkiewicz, 008 WETI, PG 0 Ogriczei model problemu rzuc ogriczei wrtości zmieych p. X = Y + Z 0.5K < T <.5K A, B,... H są prmi róże ogriczei zpisujemy tk, jk wyrżei, przy czym opertory porówi poprzedzmy zkiem # (dl wyrżeń cłkowitych) lub $ (dl wyrżeń rzeczywistych), p.: X #= Y + Z 0.5*K $< T, T $<.5*K K.. Ocetkiewicz, 008 WETI, PG K.. Ocetkiewicz, 008 WETI, PG
c_eq(x, Y, C) implemetcj X #= Y + C umożliwijąc efektywiejsze propgowie ogriczeń lldifferet(list) ordered(relcj, List) (relcj to =, >, <, itp.)... skłdie ogriczeń d iloczy logiczy or sum logicz eg egcj => implikcj K.. Ocetkiewicz, 008 WETI, PG 3 K.. Ocetkiewicz, 008 WETI, PG 4 Cel szukmy tkiego przypisi zmieym wrtości z ich dziedzi, by spełioe były wszystkie ogriczei optymlizujemy fukcję celu przy spełieiu ogriczeń (p. szukmy jmiejszego rozwiązi) lbelig(list) zlezieie (cłkowitoliczbowe) wrtości zmieych z listy locte(list, dokłdość) zlezieie rzeczywistych wrtości zmieych z Listy K.. Ocetkiewicz, 008 WETI, PG 5 K.. Ocetkiewicz, 008 WETI, PG 6 Przykłd Wioskowie S E N D + O R E = O N E Y Vrs = [S,E,N,D,,O,R,Y], Vrs :: 0..9, lldifferet(vrs), S #\= 0, #\= 0, 000*S+00*E+0*N+D+ 000*+00*O+0*R+E #= 0000*+000*O+00*N+0*E+Y, lbelig(vrs). > Vrs = [...] > Yes propgcj ogriczeń rozwiązywie ukłdów rówń rozwiązywie ukłdów ierówości ogriczei odłożoe K.. Ocetkiewicz, 008 WETI, PG 7 K.. Ocetkiewicz, 008 WETI, PG 8
Propgcj ogriczeń Propgcj ogriczeń p. X [,, 3, 4, 5] Y [,, 3, 4, 5, 6] X > Y + K.. Ocetkiewicz, 008 WETI, PG 9 i X=, i X= dl żdej dopuszczlej wrtości Y ie spełią wyrżei, możemy ztem ogriczyć dziedzię X: X [3, 4, 5] logiczie, dl X = 4, 5, 6 ie zjdziemy tkiego X, by ogriczeie było spełioe, ztem ogriczmy Y: Y [,, 3] K.. Ocetkiewicz, 008 WETI, PG 0 Propgcj ogriczeń ie wszystkie ogriczei d się jedk od rzu zstosowć p. X + Y = 6 ie ogriczy w szym przypdku dziedziy żdej zmieej tkie ogriczei trzeb odłożyć późiej Rozwiązywie ukłdów rówń zestw ogriczeń w postci rówń liiowych możemy ułożyć w ukłd rówń... p. X + Y = Z X + Y - Z = 0 Y + Z = => Y + Z = X + Z = Y - 7 X - Y + Z = -7 K.. Ocetkiewicz, 008 WETI, PG K.. Ocetkiewicz, 008 WETI, PG Rozwiązywie ukłdów rówń...i rozwiązć jedą ze zych metod rozwiązywi ukłdów rówń liiowych p. metodą elimicji Guss etod elimicji Guss etpy: postępowie proste postępowie odwrote K.. Ocetkiewicz, 008 WETI, PG 3 K.. Ocetkiewicz, 008 WETI, PG 4
Postępowie proste Postępowie proste ukłd rówń sprowdzmy do postci + K.. Ocetkiewicz, 008 WETI, PG 5 + 0 + + ( ) + ( ) ( ) ( ), 0 0 ( ) 0 ( ) 0 ( ),0 ( ) 0 pierwszy wiersz dzielimy przez od pozostłych wierszy odejmujemy otrzymy pierwszy wiersz przemożoy przez i K.. Ocetkiewicz, 008 WETI, PG 6 Postępowie proste otrzymujemy + 0 0 0 Postępowie proste procedurę powtrzmy dl pomiejszoego o jedą zmieą ukłdu: 3 3 0 30 0 K.. Ocetkiewicz, 008 WETI, PG 7 K.. Ocetkiewicz, 008 WETI, PG 8 Postępowie proste Postępowie odwrote może się zdżyć, że w k-tym kroku w miejscu (k) kk będziemy mieli 0 wówczs wybiermy (k) pq = m (k) ij dl k i, j zmieimy miejscmi kolumy q i k orz wiersze p i k (rzem z elemetmi w kolumie wyrzów wolych) K.. Ocetkiewicz, 008 WETI, PG 9 mjąc ukłd w postci + +,,0 K.. Ocetkiewicz, 008 WETI, PG 30 0 0 0
Postępowie odwrote podstwimy do --szego rówi wyzczmy - powtrzmy postępowie dl pozostłych wierszy jeżeli przestwiliśmy jkieś kolumy, musimy przywrócić kolejość zmieym Rozwiązywe ukłdów ierówości podobie możemy postąpić z ierówościmi metody rozwiązywi powstłych ukłdów są jedk brdziej skomplikowe... K.. Ocetkiewicz, 008 WETI, PG 3 K.. Ocetkiewicz, 008 WETI, PG 3 Ogriczei odłożoe ogriczei, których ie jesteśmy w stie wykorzystć, odkłdmy późiej Przeszukiwie smo wioskowie rzdko dje rozwiąze musimy przeszukć pozostłą przestrzeń K.. Ocetkiewicz, 008 WETI, PG 33 K.. Ocetkiewicz, 008 WETI, PG 34 Przeszukiwie wprowdzmy dodtkowe ogriczeie, p. przypisując jedej ze zmieych wybrą wrtość z jej dziedziy to dodtkowe ogriczeie może umożliwić wyciągięcie dodtkowych wiosków z pozostłych ogriczczeń Przeszukiwie p. złożeie X = z ogriczei X + Y = 6 dje Y = 5 K.. Ocetkiewicz, 008 WETI, PG 35 K.. Ocetkiewicz, 008 WETI, PG 36
Przeszukiwie w efekcie, jeżeli: ruszymy ogriczei wykoujemy wrót i próbujemy iego przypisi zjdziemy rozwiązie (dziedzi kżdej zmieej zostie ogriczo do jedego elemetu) sukces Przeszukiwie (c.d.) ie otrzymmy jedozczego rozwiązi musimy przyjąć koleje ogriczeie (p. ustlmy wrtość stępej zmieej) K.. Ocetkiewicz, 008 WETI, PG 37 K.. Ocetkiewicz, 008 WETI, PG 38 Przeszukiwie Przeszukiwie p. X [,, 3] Y [,, 3] ogriczei: X + Y = 5 ogriczei: X + Y = 5 X = X [,, 3] Y [,, 3] (sprzeczość z ogriczeiem) K.. Ocetkiewicz, 008 WETI, PG 39 K.. Ocetkiewicz, 008 WETI, PG 40 Przeszukiwie Przeszukiwie ogriczei: X + Y = 5 X = X [,, 3] Y [,, 3] ogriczei: X + Y = 5 X = X [,, 3] Y [,, 3] X X [, 3] Y [, 3] (sprzeczość z ogriczeiem) (sprzeczość z ogriczeiem) K.. Ocetkiewicz, 008 WETI, PG 4 K.. Ocetkiewicz, 008 WETI, PG 4
Przeszukiwie Przeszukiwie ogriczei: X + Y = 5 X = X [,, 3] Y [,, 3] X ogriczei: X + Y = 5 X = X [,, 3] Y [,, 3] X X [, 3] Y [, 3] X [, 3] Y [, 3] (sprzeczość z ogriczeiem) X = (sprzeczość z ogriczeiem) X = X X [] Y [3] sukces X [] Y [3] sukces X [3] Y [] sukces K.. Ocetkiewicz, 008 WETI, PG 43 K.. Ocetkiewicz, 008 WETI, PG 44 Strtegie przeszukiwi przeszukiwie cłego drzew brch-d-boud tbu-serch symulowe wyżrzie wiele iych K.. Ocetkiewicz, 008 WETI, PG 45