Zadania laboratoryjne i projektowe - wersja β 1 Laboratorium Dwa problemy do wyboru (jeden do realizacji). 1. Water Jug Problem, 2. Wieże Hanoi. Water Jug Problem Ograniczenia dla każdej z wersji: pojemniki nie mają znaków pojemności, pojemniki są nieforemne i nieprzezroczyste, ilość wody do napełniania pojemników jest nieograniczona. Wersje zadania: 1. Dane są dwa pojemniki, cztero- o trzylitrowy. Ilość wody do napełniania pojemników jest nieograniczona. Zadanie polega na wypełnieniu pojemnika czterolitrowego dwoma litrami wody. Na początku oba pojemniki są puste. 2. Danych jest n pojemników. Zadanie polega na wypełnieniu jednego pojemnika określoną ilością wody, przy dowolnej ilości wody w pozostałych. Na początku wszystkie pojemniki są puste. 3. Danych jest n pojemników. Zadanie polega na wypełnieniu jednego pojemnika określoną ilością wody, przy pozostałych pustych. Na początku wszystkie pojemniki są puste. 1
4. Danych jest n pojemników. Zadanie polega na wypełnieniu jednego pojemnika określoną ilością wody, przy pozostałych pustych. Na początku pojemniki mogą zawierać dowolną ilość wody, różną od stanu końcowego. Należy rozważyć zadanie w jednej z czterech wersji. Program ma rozwiązywać zadanie przeszukując przestrzeń stanów z wykorzystaniem określonych metod. Jako rozwiązanie ma generować ścieżkę rozwiązania w postaci ciągu akcji, które należy wykonać, aby rozwiązać zadaną instancję problemu. Założenia 1. cztery akcje; należy zdefiniować cztery operatory; w każdym pojemność pojemnika ma być parametrem: napełnij pojemnik, jeżeli pojemnik jest pusty (pojemność = 0), opróżnij pojemnik, jeżeli nie jest pusty (pojemność 0), przelej wodę do innego pojemnika, do jego uzupełnienia (pojemnik, z którego wylewamy wodę ma być pusty po wykonaniu akcji), przelej z pojemnika do pojemnika, do jego wypełnienia (po wykonaniu akcji oba pojemniki muszą zawierać pewną ilość wody). 2. reprezentacja stanu w postaci n-ki (x 1, x 2,..., x n ) Parametrami (zmiennymi) zadania są: stan początkowy, stan końcowy, zestaw akcji, stan początkowy musi być dopuszczalny. Parametry zadania oraz rozwiązanie (kolejne akcje prowadzące do rozwiązania) mają być zapisywane w plikach tekstowych. Program powinien mieć możliwość wielokrotnej zmiany parametrów zadania w trakcie pojedynczego uruchomienia. Akcje nie mogą powodować powstawania stanów niedopuszczalnych np. dla n = 2, x 3 1 i x4 2, nie mogą wystąpić stany x 3 1 = 0, x4 2 = 1, 5 albo x3 1 = 4, x4 2 = 2. Strona 2 z 6
Wieże Hanoi Program ma rozwiązywać zadanie, czyli przeszukiwać przestrzeń stanów wykorzystując określoną metodę i generować ścieżkę rozwiązania w postaci ciągu akcji, które należy wykonać, aby rozwiązać zadaną instancję problemu. Założenia 1. w wież. 2. n elementów do przenoszenia. 3. zdefiniowana akcja (operator) przeniesienia przy określonych ograniczeniach: nie wolno kłaść elementu o średnicy większej na element o średnicy mniejszej, w każdym ruchu wolno przenieść tylko jeden element. Wersja podstawowa, czyli zadanie minimum Należy rozważyć zadanie w wersji podstawowej, z w = 3 i n > 2. Parametrami (zmiennymi) zadania są: 1. stan początkowy, 2. stan końcowy, 3. zestaw akcji, 4. stan początkowy musi być dopuszczalny. Parametry zadania oraz rozwiązanie (kolejne akcje prowadzące do rozwiązania) mają być zapisywane w plikach tekstowych. Program powinien mieć możliwość wielokrotnej zmiany parametrów zadania w trakcie pojedynczego uruchomienia. Wersja rozszerzona, czyli zadanie na coś więcej niż 3.0 Należy rozważyć zadanie z dowolną liczbą (w) wież i dowolną (n) liczbą elementów do przekładania. Pozostałe (parametry i ograniczenia) jak wyżej. Strona 3 z 6
Algorytmy Należy zaimplementować jeden z dwu zestawów algorytmów: Breadth Search i A* lub Depth Search i A*. Charakterystyka wszystkich została podana na pierwszych zajęciach laboratoryjnych. 2 Projekt Dwa problemy do wyboru (jeden do realizacji). 1. Problem plecakowy, 2. TSP. Cztery algorytmy 1. Symulowane Wyżarzanie. 2. Algorytmy Genetyczne. 3. Tabu Search. 4. Algorytm Mrówkowy. Zadanie należy zrealizować dwoma z ww. algorytmów. Problem plecakowy Dane wejściowe Dany jest ciąg n elementów S = s 1, s 2,..., s n, gdzie s to para atrybutów (w i, c i ), w i, to waga (rozmiar) elementu, c i to wartość w i. Przez B oznaczamy pojemność plecaka. Problem Znaleźć podzbiór S A S taki, że suma wartości wszystkich elementów w podzbiorze S A ( j S A c j ) max jest maksymalizowana, a suma wag elementów z podzbioru S A jest mniejsza lub równa B j S A w j B Strona 4 z 6
Wymagania dla rozwiązania Algorytmem Genetycznym Dla programu Dane wejściowe do programu mają być wprowadzane z pliku zewnętrznego (np. tekstowego w formacie liczba elementów N, wartość elementu c i i waga elementu w i (dla każdego elementu w osobnej linii), liczba iteracji). Powinna istnieć możliwość modyfikacji zawartości plików z danymi. Jeżeli dane będą pochodziły ze źródła zewnętrznego (np. strona www), wtedy możliwość modyfikacji nie jest wymagana. Wyniki gromadzone mają być w pliku tekstowym w formacie liczba elementów N, wartość elementu c i i waga elementu w i (dla każdego elementu w osobnej linii), liczba iteracji, numer iteracji i wartość najlepszego rozwiązania (każde w osobnej linii). Dla sprawozdania W sprawozdaniu należy: 1. Opisać rozwiązywany problem. 2. Określić założenia podstawowe wybrany wariant rozwiązania, użyte metoda(y) selekcji, użyte operatory genetyczne, funkcja przystosowania, sposób kodowania, warunki stopu, 3. Dla każdej próby określać: prawdopodobieństwo krzyżowania p k, prawdopodobieństwo mutacji p m, wielkość populacji, liczbę iteracji 4. Dla każdej próby narysować wykres zależności wartości ff najlepszego osobnika względem liczby iteracji. 5. Dla każdej próby narysować wykres zależności średniej wartości ff populacji względem liczby iteracji. Strona 5 z 6
6. Przeprowadzić analizę otrzymanych wyników pod kątem odpowiedzi na pytania: (a) Jaki wpływ na uzyskiwane wyniki mają: prawdopodobieństwo krzyżowania p k, prawdopodobieństwo mutacji p m, wielkość populacji, metody selekcji (dla wariantów Rozszerzonego i Ekstremalnego), metody krzyżowania (dla wariantów Rozszerzonego i Ekstremalnego)? (b) Jaki jest błąd uzyskiwanego rozwiązania dla różnych instancji problemu? (c) Jaka jest efektywność AG w przypadku problemu plecakowego? Warianty Wariant podstawowy obejmuje zaprojektowanie i implementację algorytmu genetycznego. Należy wybrać jedną metodę selekcji (np. koła ruletki), krzyżowania (np. jednopunktowe) i mutacji. Należy wykonać sprawozdanie wg. podanych wytycznych. W wariancie rozszerzonym należy wybrać co najmniej dwie metody selekcji i krzyżowania. W sprawozdaniu należy porównać efektywność wybranych metod. Wariant ekstremalny obejmuje rozwiązanie problemu z wieloma plecakami, gdzie danych jest m plecaków o pojemnościach C 1, C 2,..., C m. Podobnie jak w wariancie rozszerzonym należy wybrać co najmniej dwie metody selekcji i dwie metody krzyżowania. Literatura 1. L. Rutkowski, Metody i techniki sztucznej inteligencji, Wydawnictwo naukowe PWN, Warszawa 2006. Strona 6 z 6