algoritmos genéticos - udesc

Propaganda
ALGORITMOS GENÉTICOS
Sandro Menezes
[email protected]
Universidade do Estado de Santa Catarina - UDESC/CCT
Departamento de Ciência da Computação ̃ - DCC
Programa de Pós-Graduaçao em Computação Aplicada PPGCA
1/39
TEORIA DA EVOLUÇÃO
• Charles Darwin
• Seleção Natural - Mais bem adaptados ao meio possuem
mais chances de sobrevivência, produzindo mais
descendentes.
2/39
SELEÇÃO NATURAL
3/39
SELEÇÃO NATURAL
•
Vídeo (01:58)
4/39
GENÉTICA
• Gregor Mendel (Sec. XIX)
○
Transmissão hereditária de
características
• Operadores Genéticos
○
○
Recombinação (crossover)
Mutação
5/39
GENÉTICA
• Estruturas Básicas
6/39
GENÉTICA
7/39
GENÉTICA
• Genótipo => Contituição genética do indivíduo, ou
seja, aos genes que ele possui(Cromossomos).
• Fenótipo => Expressão física do genótipo com
influencia do meio que o indivíduo vive.
8/39
ALGORITMOS GENÉTICOS
•
•
•
•
John Holland, anos 60
Inspirado na Evolução Natural e Genética
Um dos algoritmos mais populares
Um dos primeiros algoritmos a utilizar uma
população de soluções candidatas
9/39
ALGORITMOS GENÉTICOS
• Relação de terminologia do AG com a biologia
10/39
AG - FLUXOGRAMA
11/39
AG - INDIVÍDUO
• Codificação dos indivíduos (soluções candidatas)
○
○
○
○
Definir modelo de codificação (binário, discreto, contínuo)
Tamanho fixo
Definir a faixa de valores que as soluções podem assumir
Ponto crítico do algoritmo, codificação mal feita afeta
diretamente a performance da otimização
12/39
AG - CODIFICAÇÃO BINÁRIA
●
É a codificação mais popular em AG, sendo possível
transformar os valores binários para qualquer outra
representação.
Valores inteiros
●
Valores reais (quantidade de bits para precisão)
●
13/39
AG - CODIFICAÇÃO BINÁRIA
●
Exercício
○ Definir tamanho da string de bits necessários
para representar os valores inteiros que varia
de [-5,5].
○ Definir a string para valores [-5,5] com uma
precisão de 2 casas decimais (0,01 ou 10^-2)
14/39
AG - CODIFICAÇÃO BINÁRIA
●
Exercício
○ Definir tamanho da string de bits necessários
para representar os valores inteiros que varia
de [-5,5]. Resposta = 4 bits.
Xmax - Xmin => -5- (-5) = 10 = 2^3,16
L-1 < 3,16 < L
logo L = 4.
15/39
AG - CODIFICAÇÃO BINÁRIA
●
Exercício
○ Definir a string para valores [-5,5] com uma
precisão de 2 casas decimais (0,01 ou 10^-2).
(Xmax - Xmin)/precisao = -5- (-5)/0,01 = 100 =
2^9,...
L-1 < 9,16 < L,
logo L = 10. Resposta = 10 bits.
16/39
AG - CODIFICAÇÃO BINÁRIA
●
Ajuste de escala
○
Considerando a faixa de valores de [-5,5] (10 valores
possíveis) é necessário utilizar 4 bits, ou seja, 2^4 = 16
opções. Assim 0000 → -5 , 1111 → 5
●
Mapeamento b → d → x
●
Exercício
○
Mapear os valores 0100, 1001, 0111 considerando a faixa
de valores inteiros [−5, 5]
17/39
AG - CODIFICAÇÃO BINÁRIA
●
Exercício
○
○
Mapear os valores 0100, 1001, 0111 considerando a faixa
de valores inteiros [−5, 5].
Resposta Mapeamento b → d → x
0100 = 4 =-2
= -5 + (5 - (-5))/15* 4
= -5 + 2,66
= -2,33 = -2
■ 1001 = 9 = 1
■ 0111 = 7 = 0
■
18/39
AG - CODIFICAÇÃO BINÁRIA
●
Exercício
○
○
Mapear os valores 0100, 1001, 0111 considerando a faixa
de valores inteiros [−5, 5].
Resposta Mapeamento b → d → x
0100 = 4 =-2
■ 1001 = 9 = 1
= -5 + (5 - (-5))/15* 9
= -5 + 6
= -1
■ 0111 = 7 = 0
■
19/39
AG - CODIFICAÇÃO BINÁRIA
●
Exercício
○
○
Mapear os valores 0100, 1001, 0111 considerando a faixa
de valores inteiros [−5, 5].
Resposta Mapeamento b → d → x
0100 = 4 =-2
■ 1001 = 9 = 1
■ 0111 = 7 = 0
= -5 + (5 - (-5))/15* 7
= -5 + 4,66
= -0,33 = 0
■
20/39
AG - FLUXOGRAMA
21/39
AG - FUNÇÃO FITNESS
• Função Objetivo - Essa função que reflete os
objetivos a serem alcancados na resolução do problema.
• Função Fistness
○
○
○
○
O ponto mais crítico do algoritmo.
Determina a qualidade de um indivíduo como
solução
Representa a adaptação do indivíduo no ambiente e
a sua chance de sobrevivência e de reprodução
Não existe fitness negativo e preferível que seja
normalizada
22/39
AG - FLUXOGRAMA
23/39
AG - CRITÉRIO DE PARADA
• Número máximo de gerações/iterações
• Quantidade de Avaliações
• Estagnação
24/39
AG - FLUXOGRAMA
25/39
AG - SELEÇÃO
• Roleta
• Torneio
○
○
Seleciona T indivíduos aleatoriamente
Vence aquele que tiver o maior fitness
26/39
AG - FLUXOGRAMA
27/39
AG - OPERADORES GENÉTICOS
• Crossover uniforme
28/39
AG - OPERADORES GENÉTICOS
• Crossover de um ponto
29/39
AG - OPERADORES GENÉTICOS
• Crossover de dois pontos
30/39
AG - OPERADORES GENÉTICOS
• Mutação
31/39
AG - FLUXOGRAMA
32/39
AG - NOVA GERAÇÃO
• Os filhos produzidos são colocados em uma nova
população (t + 1)
• Quando se completa a nova população (t + 1), ela
substitui a população atual (t)
• Para evitar a perca do melhor indivduo, pode-se
utilizar o elitismo
• Elitismo - O melhor indivíduo da população atual e
colocada diretamente na proxima geração (t + 1)
sem sofrer modicações
33/39
AG - FLUXOGRAMA
34/39
AG - PARÂMETROS
• Tamanho da população
• Probabilidade de aplicar o crossover
• Probabilidade de aplicar a mutação
• O tamanho do torneio
35/39
AG - APLICAÇÃO
•
•
•
•
•
•
Otimização de funções
Mineração de dados
Controle de processos
Robótica
Máquinas de estados finitos para jogos
Modelo econômico
○ Modelo de processo Inovação
○ Estratégia de concorrencia.
36/39
REFERÊNCIAS
- Lawrence Davis et al. “Handbook of genetic algorithms”, volume
115. Van Nostrand Reinhold New York, 1991.
- Alexandre Ferreira de Pinho, José Arnaldo Barra, Fernando
Augusto Silva Marins, and Rafael de Carvalho Miranda. ‘Algoritmos
genéticos: Fundamentos e aplicações.
- Ricardo Linden. “Algoritmos Geneticos” (2a edicao).Brasport,
2008.
37/39
REFERÊNCIAS
- Melanie Mitchell. “An introduction to genetic algorithms.” MIT
press, 1998.
-
TANOMARU, Julio. Motivação, fundamentos e aplicações de
algoritmos genéticos. In: II Congresso Brasileiro de Redes Neurais.
1995. p. 373-403.
38/39
ALGORITMOS GENÉTICOS
Sandro Menezes
Universidade do Estado de Santa Catarina - UDESC/CCT
Departamento de Ciência da Computação - DCC
Programa de Pós-Graduação em Computação Aplicada PPGCA
[email protected]
39/39
Download