Advertisement
Guest User

Untitled

a guest
May 21st, 2018
79
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.16 KB | None | 0 0
  1. library(GA)
  2. min_x = -5
  3. max_x = 5
  4. pop_size = 10
  5. pc = 0.6
  6. pm = 0.1
  7. maxiter = 10
  8. seed = 1
  9. sleep = 0
  10. #funkcja optymalizowana
  11. f <- function(x) abs(x)-sin(3*x)
  12. #funkcja dopasowania
  13. fitness = function(x) - f(x)
  14. #narysowanie wykresu funkcji
  15. #im wieksza wartosc tym obiekt jest lepiej przystosowany, wiec gdyby bylo maksimum to f(x)
  16. curve(f, min_x, max_x)
  17. # funkcja monitorująca przebieg realizacji algorytmu
  18. monitor <- function(obj)
  19. {
  20. curve(f, min_x, max_x, main = paste("Pokolenie =", obj@iter))
  21. points(obj@population, f(obj@population), pch = 1, col = 2)
  22. rug(obj@population, col = 2)
  23. if (sleep<0)
  24. readline()
  25. else
  26. Sys.sleep(sleep)
  27. }
  28.  
  29. # uruchomienie algorytmu
  30. GA <- ga(
  31. type = "real-valued"
  32. ,fitness = fitness
  33. ,min = min_x
  34. ,max = max_x
  35. ,popSize = pop_size
  36. ,pcrossover = pc
  37. ,pmutation = pm
  38. ,maxiter = maxiter
  39. ,monitor = monitor
  40. ,keepBest = TRUE
  41. ,seed = seed
  42. )
  43. #wyświetlenie podsumowania
  44. summary(GA)
  45. # zaznaczenie na wykresie najlepiej dopasowanego osobnika na wykresie
  46. abline(v = GA@solution, lty = 3)
  47. #wypisanie wartości najlepszego przystosowania osiągniętego w każdej iteracji.
  48. GA@bestSol
  49. plot(GA)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement