A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Computação Evolutiva Algoritmos Genéticos Vítor De Araújo.

Apresentações semelhantes


Apresentação em tema: "Computação Evolutiva Algoritmos Genéticos Vítor De Araújo."— Transcrição da apresentação:

1 Computação Evolutiva Algoritmos Genéticos Vítor De Araújo

2 Implementação Representação real Indivíduo:
Vetor de valores em ponto flutuante Correspondem aos parâmetros da função a otimizar Linguagem de implementação: Common Lisp

3 Funções implementadas
De Jong (defun de-jong (v) (let ((x1 (aref v 0)) (x2 (aref v 1))) (+ (* 100 (square (- (square x1) x2))) (square (- 1 x1))))) Modelo de esfera (defun sphere (v) (loop for x across v summing (square x))) Rastrigin (defun rastrigin (v) (loop for x across v summing (+ (square x) (* -10 (cos (* 2 pi x))) 10))) Função generalizada de Schwefel (defun schwefel (v) (loop for i from 0 below (length v) summing (loop for j from 0 to i summing (square (aref v j)))))

4 Operadores de mutação Mutação uniforme
Substitui um parâmetro por um valor aleatório na faixa aceitável, segundo bit aleatório (defun mutate-uniform (x) (let ((random-bit (= (random 2) 1)) (dimension (random (length x)))) (when random-bit (setf (aref x dimension) (+ *lower* (random (- *upper* *lower*)))))))

5 Operadores de mutação Δ(t, y) = y * [ 1 - r ( (1 - t/T) b) ]
Mutação não-uniforme Incrementa/decrementa segundo bit aleatório Magnitude do incremento varia com o tempo Mais próximo do final, menos mutação → convergência estável (defun mutate-delta (x) (let ((random-bit (= (random 2) 1)) (dimension (random (length x)))) (incf (aref x dimension) (if random-bit (delta *iteration* (- *upper* (aref x dimension))) (delta *iteration* (- *lower (aref x dimension))))))) Δ(t, y) = y * [ 1 - r ( (1 - t/T) b) ] (defun delta (iter y) (let ((r (random 1.0))) (* y (- 1 (expt r (expt (- 1 (/ iter *iterations*)) *delta-iteration-dependency*))))))

6 Operadores de cross-over
Cross-over dimensional Seleciona ponto de corte Troca parâmetros entre dois indivíduos a partir desse ponto (defun crossover-dimensions (x y) (let* ((dimensions (length x)) (cross-point (1+ (random (1- dimensions))))) (loop for i from cross-point below dimensions do (rotatef (aref x i) (aref y i)))))

7 Operadores de cross-over
Cross-over aritmético uniforme Média ponderada dos parâmetros de dois indivíduos a: Peso da influência de um indivíduo sobre o outro 0.5: média aritmética comum 0: nenhuma influência (não há cross-over) Valor usado: 0.25 (defun weighted-average (a x y) (values (+ (* x a) (* y (- 1 a))) (+ (* y a) (* x (- 1 a))))) (defun arithmetic-cross-single-dimension (x y i a) (multiple-value-bind (x* y*) (weighted-average (aref x i) (aref y i) a) (setf (aref x i) x*) (setf (aref y i) y*))) (defun crossover-arithmetic (x y) (let* ((dimensions (length x)) (a *arithmetic-crossover-leaning*)) (loop for i from 0 below dimensions do (arithmetic-cross-single-dimension x y i a))))

8 Operadores de cross-over
Cross-over aritmético não-uniforme Similar ao anterior, mas peso da influência varia com o tempo Mesmo cálculo usado na mutação não-uniforme (delta) (defun crossover-arithmetic-delta (x y) (let* ((dimensions (length x)) (a (delta *iteration* *arithmetic-crossover-leaning*))) (loop for i from 0 below dimensions do (arithmetic-cross-single-dimension x y i a))))

9 Fator de mutação – 50 iterações

10 Fator de mutação – 100 iterações

11 Fator de mutação – 500 iterações

12 Fator de cross-over – 50 iterações

13 Fator de cross-over – 100 iterações

14 Fator de cross-over – 500 iterações

15 Conclusões Operadores de mutação
Mutação não-uniforme tem melhor resultado para Schwefel e De Jong Ambos funcionam bem para modelo de esfera e Rastrigin Operadores de cross-over Cross-over aritmético não-uniforme tem melhor resultado para De Jong Cross-over aritmético uniforme: variabilidade grande para Schwefel Cross-over dimensional: pior para De Jong Todos funcionam bem com modelo de esfera e Rastrigin Número de iterações 500: ótima convergência Acima de 500: não melhora muito, perda de tempo Tamanho da população 10: muito variável, depende muito de fatores aleatórios 100: bons resultados Acima de 100: execução mais demorada sem ganho perceptível

16 Any questions?


Carregar ppt "Computação Evolutiva Algoritmos Genéticos Vítor De Araújo."

Apresentações semelhantes


Anúncios Google