Advertisement
Guest User

enculé

a guest
Dec 13th, 2017
62
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.11 KB | None | 0 0
  1.  
  2.  
  3. f <- function(x){
  4. return( x[1]^2 + x[2]^2)
  5. }
  6.  
  7. onePlusOnesES <- function(s1,lambda,precision){
  8. m <- runif(2,min = -5, max=5)
  9. fm <- f(m)
  10. dyn = c(fm)
  11. w <- log (s1 +0.5) - log(1:s1)
  12.  
  13. while(abs(fm)>precision){
  14. children <- array(dim=c(lambda,2))
  15. fchildren <- c()
  16. for(i in 1:lambda){
  17. xprime <- m + rnorm(n=2,mean =0,sd = s1)
  18. fxprime <- f(xprime)
  19. children[1,] <- xprime
  20. fchildren <- c(fchildren,fxprime)
  21. }
  22.  
  23. ind <- order(fchildren)
  24. m <- c(0,0)
  25. for(j in 1:s1){
  26. m <- m + w[j] * children[ind[j],]
  27. }
  28. fm <- f(m)
  29. dyn <- c(dyn,fm)
  30. }
  31.  
  32. return(list(x=m, dyn=u))
  33. }
  34.  
  35. main <- function(){
  36. res <- onePlusOnesES(0.1,100,10^-3)
  37. cat(res$x,"\n")
  38. res1 <- onePlusOnesES(0.1,100,10^-8)
  39. res2 <- onePlusOnesES(0.1,100,10^-8)
  40. plot(res$dyn, log="xy", ylim=c(10^-10, 100), xlim=c(1,1000), type="l")
  41. lines(res1$dyn, col="red")
  42. lines(res2$dyn, col="blue")
  43. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement