Pobierz prezentację
Pobieranie prezentacji. Proszę czekać
OpublikowałKrystyn Kozik Został zmieniony 11 lat temu
1
1 Rozdział 1: Więzy Czym są więzy i do czego służą.
2
2 Więzy u Czym są więzy? u Modelowanie problemów u Rozwiązywanie więzów u Więzy drzewowe u Inne dziedziny więzowe u Własności programów rozwiązujących więzy
3
3 Więzy Zmienna: miejsce dla wartości Symbol funkcyjny: odwzorowanie wartości w wartości Symbol relacyjny: relacja pomiędzy wartościami
4
4 Więzy Więzy bazowe: relacja więzowa z argumentami Więz: koniunkcja więzów bazowych
5
5 Spełnialność Wartościowanie: przypisanie zmiennym wartości Rozwiązanie: wartościowanie spełniające więzy
6
6 Spełnialność Spełnialne: więzy mają rozwiązanie Niespełnialne: więzy nie mają rozwiązania spełnialne niespełnialne
7
7 Składnia więzów u Więzy są ciągami symboli u Nawiasy nie mają znaczenia u Kolejność ma znaczenie u Niektóre algorytmy zależą od kolejności
8
8 Więzy równoważne Dwa różne więzy mogą reprezentować tą samą informację Dwa więzy są równoważne jeżeli mają ten sam zbiór rozwiązań
9
9 Modelowanie więzami u Za pomocą więzów opisujemy wyidealizowane zachowanie obiektów z rzeczywistego świata
10
10 Modelowanie więzami Początek fundamenty ściany wewnętrzne ściany zewnętrzne komin dach drzwi kafelki okna
11
11 Spełnianie więzów u Dwa pytania dla danego więzu C u spełnialność: czy ma rozwiązanie? u rozwiązanie: daj mi rozwiązanie jeśli istnieje? u Pierwsze jest podstawowe u constraint solver rozwiązuje problem spełniania
12
12 Spełnianie więzów u Jak odpowiadamy na te pytania? u Proste podejście: wypróbuj wszystkie wartościowania.
13
13 Spełnianie więzów u Wyliczanie nie działa dla liczb rzeczywistych u Sprytniejsza wersja tej metody jest używana dla więzów w dziedzinach skończonych. u Jak rozwiązywać więzy dla liczb rzeczywistych? u Eliminacja Gaussa-Jordana (szkoła średnia?)
14
14 Eliminacja Gaussa-Jordana u Wybierz równanie c z C u Przepisz c do postaci x = e u Zastąp x wszędzie indziej w C przez e u Powtarzaj aż u wszystkie równania będą miały postać x = e u lub pewne z nich będzie d = 0 (d != 0) u Zwróc true w pierwszym przypadku false w drugim
15
15 Gauss-Jordan. Przykład Zamień X na 2Y+Z-1 zamien Y na -1 Zwróć false
16
16 Gauss-Jordan. Przykład Zamień X na 2Y+Z-1 Zamień Y na -1 Postać rozwiązana : Więzy w tej postaci są spełnialne
17
17 Postać rozwiązana u Zmienne nieparametryczne: pojawiają się po lewej stronie jednego równania u Zmienne parametryczne: pojawiają się po prawej stronie w dowolnej liczbie równań. u Rozwiązanie: wybierz wartości parametrów i określ wartości nieparametrów
18
18 Więzy drzewowe u Więzy drzewowe reprezentują dane strukturalne u Konstruktor drzew: napis u cons, node, null, widget, f u Stała: konstruktor lub liczba u Drzewo: u Stała jest drzewem u Konstruktor z listą > 0 drzew jest drzewem
19
19 Przykłady drzew order(part(77665, widget(red, moose)), quantity(17), date(3, feb, 1994)) cons(red,cons(blue,con s(red,cons(…))))
20
20 Więzy na drzewach u Wysokość drzewa: u stała ma wysokość 1 u drzewo z dziećmi t1, …, tn ma wysokość o 1 większą od maksimum wysokości t1,…,tn u Drzewo skończone: ma skończoną wysokość u Przykłady: wysokość 4 i wysokość
21
21 Termy u Term jest drzewem ze zmiennymi u Term: u Stała jest termem u Zmienna jest termem u Konstruktor z listą > 0 termów jest termem u Równanie termowe: s = t (s,t termy)
22
22 Przykłady termów order(part(77665, widget(C, moose)), Q, date(3, feb, Y)) cons(red,cons(B,cons(r ed,L)))
23
23 Riozwiązywanie węzłów na drzewach u Przypisz drzewa zmiennym aby otrzymać identyczne termy u cons(R, cons(B, nil)) = cons(red, L) u Podobna do Gaussa-Jordana u Rozpoczyna od zbioru równań C oraz od pustego zbioru równań na termach S u Kontynuuj aż do pustego C lub zwracaj false
24
24 Rozwiązywanie węzłów na drzewach u unify u unify(C) u Usuń równanie c z C u case x=x: nic u case f(s1,..,sn)=g(t1,..,tn): return false u case f(s1,..,sn)=f(t1,..,tn): u dodaj s1=t1,.., sn=tn do C u case t=x (x zmienna): dodaj x=t to C u case x=t (x zmienna): dodaj x=t to S u podstaw t za x wszędzie w C i w S
25
25 Przykład CS Tak jak w metodzie Gaussa-Jordana zmienne są parametrami i nieparametrami. Rozwiązanie otrzymamy przypisując parametrom (tu zmiennej T) dowolną wartość.
26
26 Dodatkowy przypadek u Czy istnieje rozwiązanie X = f(X) ? u NIE! (dla drzew skończonych) u jeśli wysokość X w rozwiązaniu jest n u wówczas f(X) ma wysokość n+1 u Occurs check: u przed podstawieniem t za x u sprawdź czy x nie pojawia się w t
27
27 Inne dziedziny więzowe u Jest ich wiele u Więzy boolowskie u Więzy na słowach u Świat bloków u i wiele innych, zwykle odnoszących się do dobrze znanej struktury matematycznej
28
28 Więzy boolowskie Używane do modelowania układów logicznych, etc Bramka XOR Więz boolowski opisujący bramkę xor
29
29 Więzy boolowskie Modelowanie układu ze zmiennymi,,wadliwości Więz modelujący, że tylko jedna bramka jest zepsuta Obserwowane zachowanie: Rozwiązanie:
30
30 Solwer boolowski niech m będzie liczbą więzów bazowych w C epsilon jest między 0 a 1 i określa stopień niezupełności for i := 1 to n do generuj losowe wartościowanie dla zmiennych w C if wartościowanie spełnia C then return true endif endfor return unknown
31
31 Więzy boolowskie u Coś nowego? u solver boolowski może zwrócić unknown u jest niezupełny (nie na wszystkie pytania odpowiada) u Działa w czasie wielomianowych, zupełny raczej nie (chyba, że P=NP). u Takie solwery mogą być użyteczne!
32
32 Więzy w świecie bloków Obiekty w świcie bloków leżeć mogą na podłodze lub na innych obiektach. Fizyka decyduje, które pozycje mogą być stabilne. Więzami bazowymi są np. red(X), on(X,Y), not_sphere(Y). podłoga Więzy nie muszą być matematyczne!
33
33 Więzy w świecie bloków Rozwiązaniem więzu w świecie bloków jest obrazek z podpisanymi blokami. Y X Z
34
34 Definicja solwera u Solwerem więzowym jest funkcja solv, która bierze więz C i zwraca true, false lub unknown w zależności od tego czy więz jest spełnialny czy nie u jeśli solv(C) = true to C jest spełnialne u jeśli solv(C) = false to C jest niespełnialne
35
35 Własności solwerów u Chcemy, żeby solwery miały następujące własności u dobre zachowanie: u bazujące na zbiorach: odpowiedź zależy od zbioru prymitywnych więzów u monotoniczne: jeżeli solwer zawodzi dla C1 to zawodzi również dla C1 /\ C2 u niezależne od nazw zmiennych
36
36 Właściwości solwera u Najbardziej restykcyjna własność solwera u zupełny: solwer jest zupełny, jeżeli zawsze odpowiada true lub false. (nigdy unknown)
37
37 Więzy Summary u Więzy are pieces of syntax used to model real world behaviour u A constraint solver determines if a constraint has a solution u Real arithmetic and tree Więzy u Properties of solver we expect (well- behavedness)
Podobne prezentacje
© 2024 SlidePlayer.pl Inc.
All rights reserved.