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.