Algoritmos Genéticos
• Evolução via Selecção Natural (Darwin)
- sobrevivem os mais aptos (fittest )
• Operadores Genéticos (Mendel)
- recombinação (crossover )
- mutação (mutation )
• A metáfora Biológica
Generalidades
• Algoritmos Genéticos
procura adaptativa global relativamente a
uma função objectivo
Algoritmos Genéticos Generalidades
DADOS:
• INSTÂNCIAS (I):conjunto dos indivíduos do domínio
• HIPÓTESES (H): conjunto dos indivíduos que formam uma população
• CONCEITO ALVO (C): indivíduo de qualidade máxima
• EXEMPLOS DE TREINO DO C. A. (E): população inicial
DETERMINAR:
• HIPÓTESES CONSISTENTES COM OS EXEMPLOS DE TREINO:
indivíduos de qualidade superior obtidos a partir da população inicial
Algoritmos Genéticos
• Funcionamento
Algoritmos Genéticos Generalidades
Algoritmo GA(fa,pr,pm,cp) % fa, função de adaptabilidade
% pr, probabilidade de recombinação % pm, probabilidade de mutação, pm % cp, critério de paragem
1. Definir aleatoriamente e avaliar a população
inicial, p0
2. Enquanto
não existir um indivíduo em pi que satisfaz cp
•
Selecciona
indivíduos de pi de acordo com fa•
Recombina
os indivíduos de acordo com pr•
Muta
os indivíduos de acordo com pm• Define e avalia nova população p i+1
Algoritmos Genéticos Generalidades
• Características
- Rep. Experiência: cadeias binárias (geral) - Rep. Conhecimento: cadeias binárias (geral) - Tipo aprendizagem: indutivo
- Condições do ambiente:
. não supervisionado . não incremental
Algoritmos Genéticos Generalidades
• Conceitos:
- população
- indivíduo
- cromossoma
- gene
- alelo
Algoritmos Genéticos Generalidades • Conceitos - Recombinação (crossover) A B C D A D C B
• troca de material genético
- Mutação
A
Algoritmos Genéticos Generalidades
• Exemplo (simples) de optimização - filosofia da caixa-preta (black-box)
f(x) o o 1 1o 1 1 - calcular o máximo de f(x) = 100 - | x - 50 | com x ∈ [0, 127] - representação binária x = 124 10 = 111 1100 2
Algoritmos Genéticos Generalidades população = 4 indivíduos indivíduo = 1 cromossoma cromossoma = 7 genes gene = 2 alelos alelo = 1 ou 0 • Modelização • Parâmetros adaptabilidade = valor de f(x) mutação = um gene
Algoritmos Genéticos 111 1100 26 010 0111 89 000 1011 61 100 1001 77 010 0111010 0111 010 0111 000 1011 100 1001 100 1001 010 1001 010 1001 91 100 0111 100 0111 79 010 1011 93 000 0111 57 010 10010 100 0111 010 1011 010 1011 010 1011 93 010 1101 951 100 1011 75 010 0111 89 Reprodução adaptativa Reprodução adaptativa 0 mutações recombinação 1-4, 2-3 1 mutação recombinação 1-4, 2-3 Generalidades • Simulação
Algoritmos Genéticos Generalidades
• Aplicações - Optimização
• numérica
• problemas combinatórios (escalonamento)
- Programação Automática
• programas para tarefas específicas • autómatos celulares
- Aprendizagem Computacional
• classificação e previsão (meteorologia) • pesos de redes neuronais
• regras de sistemas de classificação/ produção • robótica
- Economia
• inovação
• mercados financeiros
Algoritmos Genéticos Generalidades
- Sistemas Sociais
• colónias de insectos
• cooperação e comunicação em sistemas multi-agentes
- Biologia
• Sistema Imunológico • Ecologia
• Genética das Populações • Evolução e Aprendizagem
Algoritmos Genéticos Representação • Binária (Holland) - razões históricas - razões teóricas - comprimento fixo - ordem fixa
Algoritmos Genéticos Representação
Exemplo: regras Se_Então
Linguagem: atributos/valores + operadores
céu ={limpo, nebulado, chuva }
0 1 1
céu = [nebulado ou chuva]
céu nebulado ou com chuva e vento forte 011 10
SE vento forte Então jogar-ténis
111 10 10
Algoritmos Genéticos Representação
• Números Reais
Algoritmos Genéticos Represenção • Árvores (Koza) - comprimento variável + x sin x √ + y 2 Λ
Algoritmos Genéticos Selecção
• proporcional à adaptabilidade (roleta)
prob(hi)
=
fa(hi)
fa( j)
j
=
1
p
∑
- problema da convergência prematura
• por número de ordem (rank)
- reduz a convergência prematura - importância dos menos aptos
• elistista
Algoritmos Genéticos Selecção
• por torneio
escolhe dois indivíduos aleatóriamente. determina aleatóriamente qual dos dois passa para geração seguinte
- semelhante à selecção por número de ordem - mais eficiente computacionalmente
- paralelização
• estável (steady-state)
- retém a maior parte dos melhores
- os restantes são substituidos usando os ops. genéticos sobre os melhores
Algoritmos Genéticos Recombinação • um ponto 11101001000 00001010101 11101010101 00001001000 11101001000 00001010101 11101001000 00001010101 • dois pontos • uniforme 11001011000 00101000101 10001000100 01101011001
Algoritmos Genéticos Mutação
• mutação aleatória
- mudança de um gene num cromossoma
• mutação por troca
- dois genes do mesmo cromossoma trocam os respectivos valores
Algoritmos Genéticos Operadores Genéticos
• restrições ao acasalamento (pb. da diversidade)
- apenas os cromossomas de adaptabilidade semelhante acasalam (formação de espécies) - apenas os cromossomas de adaptabilidade diferente acasalam (proibição do incesto) - um novo cromossoma substitui o mais
Algoritmos Genéticos Resolução de Problemas
• Programação Genética (Koza)
- produzir automáticamente programas
• Representação : árvores
• Modelização:
- população = conjunto de programas - indivíduo = programa
- cromossoma = “conjunto” de genes - gene = termo
- alelos = árvores sintáticamente correctas a partir de objectos terminais e símbolos funcionais + x sin x √ + y 2 Λ
Algoritmos Genéticos Resolução de Problemas
• Parâmetros
- adaptabilidade:
• relação entre saida do programa e valor esperado para uma dada entrada
• número de casos “correctos”
- selecção: elitista
• 10% dos melhores transita • 90% restantes escolhidos
probabilisticamente função de fa
Algoritmos Genéticos Resolução de Problemas
- recombinação: um ponto de corte
+ sin x √ + y + sin x Λ + y x 2 + sin x √ + y x 2 Λ Λ + y x 2 + sin x x 2 Λ
Algoritmos Genéticos Resolução de Problemas • Empilhamento n e s r v u l a i
- dada uma configuração qualquer de blocos construir uma pilha formando a palavra
UNIVERSAL
• terminais
- CS (current stack): nome do bloco no topo da pilha (ou F se não existe)
- TB (top current block): nome do bloco alto a partir do qual a pilha está correcta - NN (next necessary): nome do bloco necessário acima de TB, para formar Universal (ou F caso não existe)
Algoritmos Genéticos Resolução de Problemas
• Funções
- (MS x) (move to Stack): desloca x da mesa para topo da pilha
- (MT x) (move to table): desloca x do topo da pilha para a mesa
- (EQ x y): T se x=y F caso contrário - (NOT x): T se x=F, F se x=T
(DU x y) (do until): executa x até y=T
• adaptabilidade: número de soluções correctas numa população de 166 casos
• população inicial: 300 programas • após 10 gerações:
(EQ (DU (MT CS) (NOT CS)) (DU (MS NN) (NOT NN)))
Algoritmos Genéticos Resolução de Problemas
• AGs e Redes Neuronais
- topologia da rede
- algoritmo de aprendizagem - pesos das ligações (treino)
Algoritmos Genéticos Resolução de Problemas
• Treino da Rede (aprendizagem dos pesos)
• Representação: números reais Rede:
Cromossoma: (0.3 -0.4 0.2 0.8 -0.3 -0.1 0.7 -0.3)
de cima para baixo da esquerda para a direita
1 2 3 4 5 6 0.3 -0.4 0.2 0.8 -0.3 -0.1 0.7 -0.3 • Modelização
Algoritmos Genéticos Resolução de Problemas
• Parâmetros
• adaptabilidade:
valor da soma dos erros quadráticos (na saida) relativo a todos os exemplos de treino (quanto menor melhor!)
• selecção:
• mutação:aleatória = soma valor real ([-1,+1])
1 2 3 4 5 6 0.3 -0.4 0.2 0.8 -0.3 -0.1 0.7 -0.3 1 2 3 4 5 6 0.3 -0.4 0.2 0.8 -0.3 -0.9 0.7 -0.3 (0.3 -0.4 0.2 0.8 -0.3 -0.1 0.7 -0.3) (0.3 -0.4 0.2 0.8 -0.3 -0.1 0.7 -0.3)
Algoritmos Genéticos Resolução de Problemas
• recombinação: uniforme, só um descendente!
1 2 3 4 5 6 0.3 -0.4 0.2 0.8 -0.3 -0.1 0.7 -0.3 1 2 3 4 5 6 0.7 -0.9 0.2 0.4 -0.3 -0.2 0.7 0.5 1 2 3 4 5 6 0.7 -0.9 0.3 0.4 0.8 -0.2 0.1 0.5 (0.3 -0.4 0.2 0.8 -0.3 -0.1 0.7 -0.3) (0.7 -0.9 0.3 0.4 0.8 -0.2 0.1 0.5) (0.7 -0.9 0.2 0.4 -0.3 -0.2 0.7 0.5)
são selecionados os pais para cada unidade
Algoritmos Genéticos
• Problema de Satisfação de Restrições (PSR) (X, D, C)
X: conjunto finito de variáveis {x1, ...,xn } D: conjunto indexado por X,
Di: discreto e finito
C: conjunto de restrições que limita o valor
das variáveis
Objectivo: uma instanciação das variáveis
x
icom valores de
D
i respeitando as restrições deC
Exemplo: coloração de um mapa
x
i:
paísD
i : conjunto de cores possíveisC: países adjacentes cores diferentes
Resolução de Problemas
Algoritmos Genéticos
• Escalonamento R: Recursos
T: Tarefas C: Restrições
• Objectivo: Atribuir recursos às tarefas respeitando as restrições
Modelização:
População: conjunto soluções potenciais Indivíduo: 1 solução = 1 cromossoma
Gene: associação tarefa/plano
Nº Genes = Nº Tarefas
Exemplo de Cromossomas
{(T1, R1:R2), (T2,R2), (T3,R1+R4),(T4,R3) }
{(T4,R1), (T1,R1+R4),(T2,R3+R4),(T3,R1+R4) } Cada recurso tem um tempo associado à tarefa
Resolução de Problemas
Algoritmos Genéticos Resolução de
Problemas
• População inicial
- permutação das tarefas
- escolha aleatória de um plano por tarefa - escolha aleatória da unidade do recurso
• Selecção: elitista
- o melhor indivíduo é sempre mantido
• Recombinação - por ordem - por posição • Mutação: troca - de tarefas - plano de recursos
Algoritmos Genéticos Resolução de Problemas • Escalonamento {(T1, R1(5):R2(4)), (T2,R2(2)), (T3,R1(4)+R4(4)),(T4,R3(2)) } • Função de adaptabilidade
(utilização dos recursos)
tempo −de −serviço(j, i) i =1 n ∑ j =1 m ∑ K * ( final − início) *100% • Critério de paragem
- número máximo de gerações
Algoritmos Genéticos Evolução e Coevolução • Dilema do Prisioneiro (Axelrod)
C O C O 3,3 0,5 5,0 1,1 (A) (B)
• Qual a melhor estratégia?
• solução humana
- dois torneios ( tipo round-robin) - 16 + 63 estratégias (programas) - vencedor: TIT FOR TAT
oferecer cooperação e corresponder à última jogada do adversário!
CB O
B
Algoritmos Genéticos Evolução e Coevolução
• Dilema do Prisioneiro: solução Genética • Representação das estratégias
- palavras (strings) sobre alfabeto T={ C,O }
• memória = último jogo
C C C O O C O O C O C O Jogo anterior Memória Estratégia ? ?
Algoritmos Genéticos Evolução e Coevolução
• memória = 3 últimos jogos
- 4 3 = 64 possibilidades C C C C C C O O O O O O O O O O O O ? ? (1) (64) passado recente memória estratégia
• estratégia = palavra de 64 + 6 = 70 símbolos
- 6 símbolos adicionais para fabricar 3 jogos para primeira jogada
Algoritmos Genéticos Evolução e Coevolução
• adaptabilidade : valor médio dos resultados
dos jogos com 8 estratégias humanas representa
tivas (sem Tit For Tat!!) • selecção:
• recombinação: • mutação:
• modelização
- população = 20 estratégias (indivíduos) - indivíduo = 1 estratégia (cromossoma) - cromossoma = 70 genes
- gene = jogada - alelo = C ou O
Algoritmos Genéticos Evolução e Coevolução
• Resultados
- gerações = 50
- analisa 20 * 50 = 1000 indivíduos (contra 270)
- desenvolveu estratégias melhores que a melhor (TIT FOR TAT) humana
- adaptabilidade estática vs. dinâmica
• ambiente fixo (8 estratégias) • ambiente dinâmico
- adaptabilidade: jogar contra os indivíduos da mesma população! --> estratégias tipo TFT
- CoEvolução
Algoritmos Genéticos Questões
• Resolução de Problemas
- controlo
optimização de processos
encaminhamento tráfego (telecomunicações) escalonamento da produção
- aprendizagem computacional
classificação e previsão (meteorologia) redes neuronais
robótica (planeamento de trajectórias)
- economia
inovação
mercados financeiros
Algoritmos Genéticos Questões
• Biologia
- interacções ecológicas
coevolução hospedeiro/parasita
- genética
diploidia, duplicação/eliminação de genes, regulação genética
- evolução e aprendizagem
Lamarck, Baldwin, Darwin
- representações dinâmicas
tamanho, hierarquização
- adaptação dinâmica dos parâmetros
Algoritmos Genéticos Questões
• Ambientes de simulação
- ECHO - GENESIS - LamBaDa