Pobieranie prezentacji. Proszę czekać

Pobieranie prezentacji. Proszę czekać

1 Rozdział 1: Więzy Czym są więzy i do czego służą.

Podobne prezentacje


Prezentacja na temat: "1 Rozdział 1: Więzy Czym są więzy i do czego służą."— Zapis prezentacji:

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)


Pobierz ppt "1 Rozdział 1: Więzy Czym są więzy i do czego służą."

Podobne prezentacje


Reklamy Google