Sztuczne inteligencja i inżynieria wiedzy
Transkrypt
Sztuczne inteligencja i inżynieria wiedzy
Sztuczne inteligencja i inżynieria wiedzy laboratorium Ćwiczenie 2. Problem spełniania ograniczeń opracowanie: H. Kwaśnicka, M. Zięba , M.Paradowski Cel ćwiczenia Zapoznanie się z podstawowymi algorytmami stosowanymi do rozwiązywania problemów spełniania ograniczeń (ang. Constraint Satisfaction Problem, CSP), poprzez własnoręczną implementację i zbadanie właściwości. Realizacja ćwiczenia • Zapoznanie się z działaniem algorytmów: sprawdzenia wprzód (ang. forward checking), przeszukiwania przyrostowego z powracaniem (ang. backtracking). • Rozwiązanie dwóch problemów CSP: N hetmanów jest obowiązkowy, drugi problem do wyboru) • Sformułowanie wybranych problemów, jako problemu CSP, poprzez podanie zmiennych, ich dziedzin i ograniczeń w postaci osobnego pliku (patrz niżej). • Implementacja algorytmów sprawdzenia wprzód, oraz przeszukiwania przyrostowego z powracaniem. (Uwaga! Implementacja ma być wykonana w ten sposób, aby możliwe było przeprowadzenie symulacji dla różnych wartości parametrów reprezentujących wielkość problemu, czyli liczby hetmanów dla pierwszego problemu) • Porównanie czasów przetwarzania zaimplementowanych metod. • Prezentacja najciekawszych (zdaniem studenta) wyników. • Dyskusja otrzymanych wyników. • Przygotowanie sprawozdania zawierającego powyższe punkty (pomijając punkt związany z implementacją) Plik wejściowy z definicją CSP (obowiązkowo!) Pierwszy wiersz zawiera nazwy n zmiennych oddzielone spacjami. Nazwy zmiennych są dowolnymi napisami bez spacji. Liczba zmiennych NIE jest podana i wynika z liczby napisów. Kolejne n wierszy zawiera dziedziny kolejnych zmiennych. Każdy wiersz zawiera dziedzinę jednej zmiennej, wartości oddzielone są spacjami. Elementy dziedziny są dowolnymi napisami (lub liczbami) bez spacji. Liczba elementów dziedziny NIE jest podana i wynika z liczby napisów. Pozostałe wiersze pliku zawierają ograniczenia zapisane w odwrotnej notacji polskiej (ONP). W każdym wierszu podane jest jedno ograniczenie. Liczba ograniczeń NIE jest podana i wynika bezpośrednio z liczby wierszy w pliku. Każde sformułowane ograniczenie musi wartościować się do pojedynczej wartości boolowskiej. Prawda (true) oznacza, że ograniczenie jest spełnione. Fałsz (false) oznacza, że ograniczenie nie jest spełnione. Przykład pliku CSP A1 A2 A3 12345 123 237 A1 A2 + 6 < A1 A2 + A3 < 3 A1 A2 A3 rozne Operatory wymagane zapisie ograniczeń w ONP +, -, * =, <> >, < || [] rozne - dodawanie, odejmowanie, mnożenie (tylko dla wartości liczbowych) - równość, nierówność (dla dowolnych wartości) - operatory porównania wartości liczbowych - wartość bezwzględna (tylko wartości liczbowe), - ekstrakcja zadanego elementu z napisu (1 argument – napis, 2 argument – indeks), indeksowanie napisów od 0 (do zastosowania np. w krzyżówkach). - wszystkie różne, pierwszy argument – liczba n argumentów, potem n argumentów do porównania Inne, jeśli przydatne do rozwiązywania wybranego problemu, ale muszą to być operatory ogólne. Problem N-Hetmanów Dana jest tablica (szachownica) o wymiarach NxN. Należy ustawić N hetmanów na tablicy w ten sposób, by każdy z hetmanów nie atakował innego hetmana. Hetman atakuje inną figurę, jeżeli figura znajduje się na przekątnej, bądź na prostej, na której znajduje się hetman. Dokładny opis problemu (dla N=8) można znaleźć pod adresem: http://pl.wikipedia.org/wiki/Problem_ośmiu_hetmanów Należy zdefiniować problem N hetmanów, jako problem CSP. Rozwiązać problem wykorzystując algorytmy sprawdzenia wprzód, oraz przeszukiwania przyrostowego z powracaniem dla różnych wartości N (parametr N powinien być zadawany przez użytkownika). Należy porównać czasy przetwarzania dwóch metod dla różnych wartości parametru N. Problem kolorowania mapy (bardzo prosty problem, minus dwa punkty za jego wybór) Dana jest mapa z N państwami. Dana jest liczba kolorów m (sugeruje się przyjęcie m równego 3, bądź 4). Mapę należy zaprojektować tak, by każde państwo posiadało co najmniej dwóch i nie więcej niż m sąsiadów. Należy pokolorować mapę wykorzystując m kolorów w ten sposób, by sąsiadujące ze sobą państwa były pokolorowane różnymi kolorami. Należy zdefiniować problem N państw, jako problem CSP. Rozwiązać problem wykorzystując algorytmy sprawdzenia wprzód, oraz przeszukiwania przyrostowego z powracaniem dla różnych wartości N (parametr N powinien być zadawany przez użytkownika). Należy porównać czasy przetwarzania dwóch metod dla różnych wartości parametru N. Inne ciekawe problemy sudoku, krzyżówka, kryptarytmy Ocena ćwiczenia 2pkt Sformułowanie wybranego problemu jako problemu CSP 3pkt Implementacja algorytmów sprawdzenia wprzód i przeszukiwania przyrostowego z powracaniem dla wybranego problemu. 3pkt Przeprowadzenie badania czasów przetwarzania zaimplementowanych metod dla różnych wartości parametrów N. 2pkt Poprawna interpretacja wyników badania. 1. Notatki z wykładu i materiały do ćwiczeń. 2. Wojna A., Przeszukiwanie przestrzeni stanów — problemy z więzami http://www.mimuw.edu.pl/~awojna/SID/wyklady/przesz_z_wiezami.pdf 3. http://pl.wikipedia.org/wiki/Odwrotna_notacja_polska