Advertisement
Guest User

para alice

a guest
Sep 23rd, 2019
96
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.21 KB | None | 0 0
  1. ==================================================================================================================================
  2.  
  3. Trabalho resetou, agora será apenas este:
  4.  
  5. Implementar GA e DE. (Algoritmo Genético e Evolução Diferencial).
  6. Vai minimizar a função de rastrigin.
  7. Fazer comparativo do GA e do DE. Testar a rastrigin com diversas quantidades de variáveis. Quanto mais comparações melhor.
  8. Testar modificações nos algoritmos. Dizer o que foi testado e o resultado delas. Quanto mais modificações melhor.
  9. E fazer um relatório.
  10. Ao final vai dizer o quanto conseguiu de melhor do DE e do GA; e qual dos algoritmos foi o melhor.
  11.  
  12. TRAB ATÉ DIA 06/10/2019.
  13. PROVA NO DIA 07/10/2019. Irá incluir até essa parte de evolução diferencial.
  14.  
  15. ==================================================================================================================================
  16.  
  17. Vamos estudar a Evolução Diferencial.
  18. Vamos usar "3 pais", invés de apenas dois.
  19.  
  20. Para cada solução chamada de P: escolher 3 outras soluções (R1, R2, R3), de forma aleatória.
  21. C sendo uma constante/coeficiente; geralmente um valor aleatório entre 0.5 e 1.5.
  22. P' = R1 + C * (R2 - R3) -> isso é uma mutação diferencial. Posiciona em R1 e anda na direção e passos definidos por C * (diferença de dois vetores/solução)
  23.  
  24. Para cada dimensão, "jogar uma moeda" (50% para cada chance).
  25. Exemplo no caso que são 02 dimensões. P: (0, 1) P': (2, 3) Moeda: (Sim, Não)
  26. Então nova posição de P' vai ser: (0, 3)
  27. Note que com P' e P (dois pontos) dá para formar um retângulo. P' vai para algum dos vértices do retângulo.
  28.  
  29. Aí chega no momento crueldade: O pai (P) mata o filho (P') ou vice-versa: ou seja, calcular fitness e escolher o melhor.
  30.  
  31. Exemplo meio pseudo-código em MATLAB (Steve vai enviar o código!):
  32. j = randperm(dim, 1)
  33.  
  34. for d = 1:dim
  35. if (rand <= 0.5) && (d ~= j) essa de d != j, é para que ao menos numa dimensão P' e P sejam diferentes, assim evitar clones.
  36. P'(d) = P(d);
  37. end
  38. end
  39.  
  40. FX' = calculafx(P')
  41.  
  42. if FX melhor que FX'
  43. selecionado = P
  44. else
  45. selecionado = P'
  46. end
  47.  
  48. Este método consegue escapar de mínimos locais e achar o global de forma mais fácil.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement