Sztuczne inteligencja i inżynieria wiedzy laboratorium

Transkrypt

Sztuczne inteligencja i inżynieria wiedzy laboratorium
Sztuczne inteligencja i inżynieria wiedzy
laboratorium
Ćwiczenie 2. Problem spełniania ograniczeń
opracowanie: H. Kwaśnicka, M. Zięba
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).
•
Wybór jednego z dwóch proponowanych problemów (N hetmanów, kolorowania mapy)
•
Sformułowanie wybranego problemu, jako problemu CSP, poprzez podanie zmiennych, ich
dziedzin i ograniczeń.
•
Implementacja algorytmów sprawdzenia wprzód, oraz przeszukiwania przyrostowego z
powracaniem dla wybranego problemu. (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, czy
też liczby krajów dla problemu drugiego)
•
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ą)
dla
(różnych
wielkości
problemów)
dwóch
Problem 1. Zadanie N-Hetmanów
Dana jest tablica o wymiarach NxN, dla N=6 tablica wygląda następująco:
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 2. Zadanie kolorowania mapy
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. Przykładowe pokolorowanie
mapy znajduje się poniżej:
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.
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.
Literatura
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