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