Badanie algorytmów genetycznych
Transkrypt
Badanie algorytmów genetycznych
Inteligencja obliczeniowa Laboratorium 3: Badanie algorytmu genetycznego Zadanie 1 (1 pkt) Przeprowadzimy wizualizację działania algorytmu genetycznego z zadania 1 z poprzednich laboratoriów. a) Jeśli nie masz dostępu do obiektu GAmodel z zadania 1 z poprzednich laboratoriów wykonaj ponownie to zadanie. b) Sprawdź co dzieje się jeśli wywołasz komendę GAmodel w konsoli. Z jakich części składa się klasa? Co to jest GAmodel$mean i GAmodel$best? W której iteracji (pokoleniu) znaleziono już najlepsze rozwiązanie? c) Chcemy zwizualizować działanie algorytmu na wykresie. Wywołaj komendę plot(GAmodel). Co przedstawia wykres? d) Niestety na wykresie pojawiają się ujemne wartości oceny chromosomów podczas gdy powinny być dodatnie. Zrób kopię modelu: GAmodel2 <- GAmodel Zmodyfikuj GAmodel2 tak aby wartości były dodatnie i przedstaw go na wykresie. e) Nad powyższym wykresem nie mieliśmy wiele kontroli. Spójrz na poniższe rozwiązanie korzystające z paczki ggplot2. Rozwiązanie to tworzy funkcję animate_plot, która rysuje wykres z legendą automatycznie zmieniając wartości fitness na dodatnie (gdzie?). Install.packages("ggplot2") library(ggplot2) iter<-100 animate_plot <- function() { for (i in seq(1, iter)) { temp <- data.frame(Iteracja = c(seq(1, i), seq(1, i)), Legenda = c(rep("Średnia", i), rep("Najlepsza", i)), WartoscFitness = c(-GAmodel$mean[1:i], -GAmodel$best[1:i])) pl <- ggplot(temp, aes(x = Iteracja, y = WartoscFitness, group = Legenda, colour = Legenda)) + geom_line() + scale_x_continuous(limits = c(0, iter)) print(pl) } } animate_plot() *f) Opcjonalnie: spróbuj zapisać wykres do pliku GIF, korzystając z paczki animation. Być może będzie konieczne doinstalowanie do linuxa/windowsa paczki ImageMagick. Install.packages("animation") library(animation) saveGIF(animate_plot(), interval = 0.1) Zadanie 2 (0,5 pkt) Korzystając z funkcji system.time() zbadaj jak długo trwało działanie algorytmu genetycznego (tzn. jak długo trwa wywołanie komendy GAmodel <- rgba.bin(...) ) Zadanie 3 (1,5 pkt) W poprzednich zadaniach badaliśmy działanie algorytmu genetycznego dla problemu plecakowego. Wykonaj treści z zadania 1 i 2 dla algorytmu genetycznego znajdującego drogę w labiryncie (patrz poprzednie laboratoria), tzn: • Pokaż prosty wykres z wizualizacją przebiegu algorytmu genetycznego. • Pokaż animowaną wersję wykresu. • Oblicz czas działania algorytmu.