You are on page 1of 108

Algoritmos Genéticos

Augusto Afonso Borges Branquinho

.com
Se gostarem
Blog: http://wpattern.com

Sigam o canal do Youtube (Joinha no vídeo):


http://www.youtube.com/user/augustobranquinho

Curtam a página do Facebook:


https://www.facebook.com/pages/WPattern/120542164731714
Sumário
1. Introdução
2. Algoritmos Genéticos
3. Aplicação 1
4. Aplicação 2
5. Conclusão
Referências Bibliográficas
1. Introdução
• Algoritmos Genéticos (AG)
• Objetivos
▫ Apresentar os conceitos básicos
▫ Exemplo de um AG para Criptoaritmética
▫ Exemplo de um AG para Data Mining
• Não tem como objetivo entrar na parte
matemática dos AGs
• Skydrive: http://sdrv.ms/1fcXuNW
1. Introdução
1. Introdução
1. Introdução
1. Introdução
• Reconhecimento de Padrões 1
▫ Não será explicado, apenas um exemplo
1. Introdução
• Reconhecimento de Padrões 2
▫ Não será explicado, apenas um exemplo
leafs.arrf

Attributes (1-76) Attributes (1-38) Attributes (39-76)

Filter (-) Filter (standardize) Filter (PCA)

Cross-validation
Cross-validation (5) Cross-validation (10)
(2)

k-NN
(1) MLP
k-NN Naive
(5) Bayes
k-NN
SVM
(9)
Random
J48
Forest
1. Introdução
• Reconhecimento de Padrões 2
▫ Não será explicado, apenas um exemplo
▫ Usada a biblioteca ECJ
▫ https://code.google.com/p/pgc204/
192.168.2.6
Master

192.168.2.8 192.168.2.9 192.168.2.7 192.168.2.8


Slave 1 Slave 2 Slave 3 Slave 4
2. Algoritmos Genéticos
• Resolução de problemas
▫ Busca no espaço de soluções potenciais

• Busca não determinística


▫ Baseado na aleatoriedade
▫ Baseado em probabilidade
2. Algoritmos Genéticos
• Baseado na biologia
▫ Teoria evolucionista de Charlies
Darwin
 Seleção natural
▫ Sobrevivência é medida de
desempenho Será que esse maldito vai
ficar só falando coisas
teóricas???
2. Algoritmos Genéticos
• Características
▫ População
 Indivíduo
 Solução
 Aptidão
▫ Crossover
▫ Mutação
▫ Seleção Natural
2. Algoritmos Genéticos
Início

1. Gera-se a População Inicial com Tp indivíduos

Fim
2. Avaliam-se os indivíduos da População Inicial

4/9. Melhor indivíduo da


3. População atingiu o sim população é apresentado
critério de término?
N como a solução
não
4. Selecionam-se psel indivíduos que formarão os pares de crossover

5. Para cada par, sorteia-se um Ponto de crossover e 2 novos indivíduos são gerados por crossover

6. Submetem-se os novos indivíduos a uma mutação com probabilidade pmut

7. Avalia-se o desempenho dos novos indivíduos formados após os processos de crossover e mutação

8. Selecionam-se os Tp melhores indivíduos dentre a população original e os novos indivíduos


2. Algoritmos Genéticos
• 1. Gerar a população inicial
i1 i6

i2 i7

i3 i8 Tp = 10
i4 i9

i5 i10
2. Algoritmos Genéticos
• 2. Avaliar (aptidão) os indivíduos da população
inicial
f1 i1 i6 f6
f1 = 3
f2 = 1
f2 i2 i7 f7
f3 = 5
f4 = 4
f3 i3 i8 f8
f5 = 5
f6 = 2
f7 = 6
f4 i4 i9 f9
f8 = 0
f9 = 6
f5 i5 i10 f10
f10 = 4
2. Algoritmos Genéticos
• 3. Critério de término (fi = 10 ou 40 evoluções)
satisfeito?
f1 i1 i6 f6
f1 = 3
f2 = 1
f2 i2 i7 f7
f3 = 5
f4 = 4
f3 i3 i8 f8
f5 = 5 Não foi satisfeito o
f6 = 2 critério de término.

f7 = 6
f4 i4 i9 f9
f8 = 0
f9 = 6
f5 i5 i10 f10
f10 = 4
2. Algoritmos Genéticos
• 4. Seleção de psel = 6 indivíduos para o crossover

f1 i1 i6 f6
f1 = 3
f2 = 1
f2 i2 i7 f7
f3 = 5
f4 = 4
f3 i3 i8 f8
f5 = 5
f6 = 2
f7 = 6
f4 i4 i9 f9
f8 = 0
f9 = 6
f5 i5 i10 f10
f10 = 4
2. Algoritmos Genéticos
• 4. Seleção de psel = 6 indivíduos para o crossover

i1 i6

i2 i7

i3 i8

i4 i9

i5 i10
2. Algoritmos Genéticos
• 5. É realizado o crossover para os indivíduos
selecionados
i2 i11
i1 i6
i4 i12

i5 i13
i8

i7 i14
i9

i3 i15

i10 i16
2. Algoritmos Genéticos
• 6. Realizado mutação (probabilidade pmut) nos
indivíduos gerados
i2 i11
i1 i6
i4 i12

i5 i13
i8

i7 i14
i9

i3 i15

i10 i16
2. Algoritmos Genéticos

• 7. Os novos indivíduos são avaliados


i1 i6 i11 i16
f11 = 2
i2 i7 i12
f12 = 4
i3 i8 i13
f13 = 10
f14 = 0
i4 i9 i14 f15 = 9
f16 = 8
i5 i10 i15
2. Algoritmos Genéticos
• 8. Seleção dos Tp melhores indivíduos da
nova população
i1 i6 i11 i16 f1 = 3 f9 = 6
f2 = 1 f10 = 4
i2 i7 i12
f3 = 5 f11 = 2
f4 = 4 f12 = 4
i3 i8 i13
f5 = 5 f13 = 10
i4 i9 i14 f6 = 2 f14 = 0
f7 = 6 f15 = 9
i5 i10 i15 f8 = 0 f16 = 8
2. Algoritmos Genéticos
• 8. Nova população
f3 = 5
i3 i10 f4 = 4
f5 = 5
i4 i11
f7 = 6
i5 i12
f9 = 6
f10 = 4
i7 i13 f12 = 4
f13 = 10
i9 i14 f15 = 9
f16 = 8
2. Algoritmos Genéticos
• 3/9. Critério de término (fi = 10 ou 40
evoluções) satisfeito?
f3 = 5
i3 i10 f4 = 4
f5 = 5
i4 i11
f7 = 6
i5 i12
f9 = 6 Foi satisfeito o
f10 = 4 critério de término
(f13 = 10).
i7 i13 f12 = 4
f13 = 10
i9 i14 f15 = 9
f16 = 8
2. Algoritmos Genéticos

• Fim. A solução corresponde ao


indivíduo 13

Solução i13 f13 = 10


2.1. Indivíduos

• Componentes
▫ Aptidão (fitness)
▫ Cromossomo
 Conjunto de Genes
 Estrutura
Estática
Dinâmica
2.1. Indivíduos
• Representação de indivíduos (estático)
Cromossomo Gene

Binário: 0 0 0 0 1 1 0 1 1 1

Fracionário: 5,61 0,90 3,70 2,54 1,00 7,76 1,45 5,45 3,00 8,52

Inteiro: 5 2 5 2 3 7 3 1 3 4

Símbolos: D A C A A B D D A D

Misto: 0 1 6 1 5,55 2,74 0,21 D A D


2.1. Indivíduos
• Representação de indivíduos (dinâmico)

Dinâmico em estrutura de vetor

Indivíduo 1: 1 0 1 0 0 0 1 0 0 1

Indivíduo 2: 0 0 0 0 1 1

Indivíduo 3: 0 1 1 0 1 0 0 1
2.1. Indivíduos
• Representação de indivíduos (dinâmico)

5,12 Dinâmico em estrutura de árvore

0,61 3,41

2,55 1,90
2.1. Indivíduos
• Exemplo de representação da Megan Fox
Cor do Riqueza
Cor dos Idade Beleza
Cabelo
Olhos

2 1 9 F 26,5 2,74 9,21 B A C

Inteligência
Número Sexo Charme
de Filmes Carisma

Aptidão = 77,26
min = 0,00
max = 100,00
2.2. População Inicial
• Conjunto de indivíduos
• Gerados aleatoriamente
▫ Podem ser criados com certas
características de acordo com o
problema
2.2. População Inicial

População Inicial
4
1

3
2
2.3. Métodos de Seleção
• Usado para selecionar os indivíduos
para a reprodução
• Métodos
▫ Sorteio
 Escolha aleatório do indivíduo
▫ Roleta
▫ Torneio (3)
2.3. Métodos de Seleção

• Seleção: Método da roleta

1 f(1) = 8,25 = 18,25%


4 f(2) = 19,25 = 43,75%
f(3) = 5,50 = 12,50%
3 f(4) = 11,00 = 25,00%
2
Total = 44,00 = 100,00%
2.3. Métodos de Seleção
• Seleção: Método da roleta
▫ Realizado um sorteio entre 0% e 100%
▫ A posição na roleta corresponde ao indivíduo
selecionado

1
4

3 2
2.3. Métodos de Seleção
• Torneio
▫ A cada torneio um subgrupo de N
indivíduos é selecionado
▫ O melhor indivíduo do subgrupo é
selecionado
 Torneio 3: a seleção do subgrupo é feita
sem considerar a aptidão relativa
 Estocástico: a seleção do subgrupo é feita
através do Método da Roleta
2.3. Métodos de Seleção
• Exemplo de Torneio (3)
Indivídu Aptidão
o
1 3 Subgrupo: Através de
Torneio 3 (Sorteio) ou
2 1 Estocástico (Roleta) 3
3 5 indivíduos são
4 4 selecionados.
5 5
6 2 Indivíduo
7 6 Selecionado: melhor
8 0 aptidão do indivíduo do
subgrupo.
9 6
10 4
2.3. Métodos de Seleção

População Inicial
4
1
Indivíduos
Selecionados para o
Crossover

3
2
2.4. Crossover

Ponto de Crossover

Pai 1: 0 0 0 0 1 1 0 1 1 1

X
Pai 2: 1 1 0 0 0 0 0 0 1 0

Filho 1: 1 1 0 0 1 1 0 1 1 1

X
Filho 2: 0 0 0 0 0 0 0 0 1 0
2.4. Crossover

Crossover
2.5. Mutação

• Mutação
Pai: 1 1 0 0 0 0 0 0 1 0

Mutação

Filho: 1 1 1 0 0 0 0 0 1 0
2.5. Mutação

• Mutação (permutação)

Pai: 5 2 7 0 2 4 2 6 1 5

Filho: 5 2 7 0 2 1 2 6 4 5
2.5. Mutação

Apenas um
Indivíduo sofrera
a Mutação
(Cameron Dias)
2.5. Mutação
Mutação

ou

Mutação
2.5. Mutação
Crossover
Espaço de Estados (Soluções)
(“pode” ficar Mutação (“explorar” o
preso em espaço de estados)
um espaço
de estados)
2.5. Mutação
• Otimização da aptidão (minimizar ou
maximizar)

Aptidão

θ0
θ1
2.6. Seleção Natural
• Seleção Natural
▫ Os melhores indivíduos são selecionados
para a nova população
▫ Os piores indivíduos são eliminados
• Exemplo de seleção natural
▫ Da população de 8 indivíduos apenas 6
serão selecionados
2.6. Seleção Natural
• Google desenvolveu o método de seleção
http://research.google.com/archive/unsupervised_icml2012.html
Exibido Gatinha Fez Titanic Gatinho

Carismática
Engraçado Gênio Bonita
2.7. Pseudocódigo
3. Aplicação 1
• Problema de criptoaritmética
▫ Associar um dígito a cada letra de uma
operação
▫ Letras repetidas nas operações sempre
estão associadas ao mesmo dígito
▫ Duas letras não podem estar associadas ao
mesmo dígito
SEND EAT CROSS COCA DONALD
+ MORE + THAT + ROADS + COLA + GERALD
= MONEY = APPLE = DANGER = OASIS = ROBERT
3. Aplicação 1
• Exemplo de Soluções
SEND 7531 COCA 8186
+ MORE + 0825 + COLA + 8106
= MONEY = 08356 = OASIS = 16292

EAT 819 DONALD 526485


+ THAT + 9219 + GERALD + 197485
= APPLE = 10038 = ROBERT = 723970

CROSS 96233
+ ROADS + 62513
= DANGER = 158746
3. Aplicação 1
• Representação dos Indivíduos
SEND + MORE = MONEY

S E N D M O R Y

d1 d2 d3 d4 d5 d6 d7 d8 d9 d10

S E N D M O R Y

4 8 6 7 0 5 2 1 3 9
3. Aplicação 1
• População de tamanho Tp
População

i1 i2 ip – 1 ip
S E N D M O R Y S E N D M O R Y
.................
4 8 6 7 0 5 2 1 3 9 5 9 6 2 3 8 0 4 1 7

Usado para mutação e crossover


3. Aplicação 1
• Cálculo da aptidão: fi
▫ Módulo (Diferença entre a soma desejada
e a soma real no valor total)
ii
SEND 3928
S E N D M O R Y
+ MORE + 0459
3 9 2 8 0 4 5 7 6 1
= MONEY = 04297

fi = |(3928 + 0459) – 04297| = 90

▫ Aptidão do indivíduo fi igual a 90


3. Aplicação 1
• Cálculo da aptidão: fi
▫ Soma (Soma das diferenças entre a soma
desejada e a soma real dígito a dígito)
ii
SEND 04096
S E N D M O R Y
+ MORE + 02710
4 0 9 6 2 7 1 8 3 5
= MONEY = 27908
Cálculo 1: |(6 + 0 + 0) % 10 – 8| = 2
Cálculo 2: |(9 + 1 + 0) % 10 – 0| = 0
Cálculo 3: |(0 + 7 + 1) % 10 – 9| = 1
Cálculo 4: |(4 + 2 + 0) % 10 – 7| = 1
Cálculo 5: |(0 + 0 + 0) % 10 – 2| = 2
fi = 6

▫ Aptidão do indivíduo fi igual a 6


3. Aplicação 1
• Cálculo da aptidão: fi
▫ Soma (Soma das diferenças entre a soma
desejada e a soma real dígito a dígito)
ii
SEND 07531
S E N D M O R Y
+ MORE + 00825
7 5 3 1 0 8 2 6 9 4
= MONEY = 08356
Cálculo 1: |(1 + 5 + 0) % 10 – 6| = 0
Cálculo 2: |(3 + 2 + 0) % 10 – 5| = 0
Cálculo 3: |(5 + 8 + 0) % 10 – 3| = 0
Cálculo 4: |(7 + 0 + 1) % 10 – 8| = 0
Cálculo 5: |(0 + 0 + 0) % 10 – 0| = 0
fi = 0

▫ Aptidão do indivíduo fi igual a 0, ou seja,


solução do problema
3. Aplicação 1
• Cálculo da aptidão: fi
▫ Múltiplo (Produto das diferenças entre a soma
desejada e a soma real dígito a dígito)
ii
SEND 04195
S E N D M O R Y
+ MORE + 02761
4 1 9 5 2 7 6 3 0 6
= MONEY = 27913
Cálculo 1: |(5 + 1 + 0) % 10 – 3| = 3
Cálculo 2: |(9 + 6 + 0) % 10 – 1| = 4
Cálculo 3: |(1 + 7 + 1) % 10 – 9| = 0
Cálculo 4: |(4 + 2 + 0) % 10 – 7| = 1
Cálculo 5: |(0 + 0 + 0) % 10 – 2| = 2
fi = 3 * 4 * 1 * 2 = 24

▫ Aptidão do indivíduo fi igual a 24


3. Aplicação 1
• Cálculo da aptidão: fi
▫ Múltiplo (Produto das diferenças entre a soma
desejada e a soma real dígito a dígito)
ii
SEND 08469
S E N D M O R Y
+ MORE + 02174
8 4 6 9 2 1 7 3 0 5
= MONEY = 21643
Cálculo 1: |(9 + 4 + 0) % 10 – 3| = 0
Cálculo 2: |(6 + 7 + 1) % 10 – 4| = 0
Cálculo 3: |(4 + 1 + 1) % 10 – 6| = 0
Cálculo 4: |(8 + 2 + 0) % 10 – 1| = 1
Cálculo 5: |(0 + 0 + 1) % 10 – 2| = 1
fi = 1 * 1 = 1

▫ Aptidão do indivíduo fi igual a 1


3. Aplicação 1
• Cálculo da aptidão: fi
▫ Múltiplo (Produto das diferenças entre a soma
desejada e a soma real dígito a dígito)
ii
SEND 07531
S E N D M O R Y
+ MORE + 00825
7 5 3 1 0 8 2 6 9 4
= MONEY = 08356
Cálculo 1: |(1 + 5 + 0) % 10 – 6| = 0
Cálculo 2: |(3 + 2 + 0) % 10 – 5| = 0
Cálculo 3: |(5 + 8 + 0) % 10 – 3| = 0
Cálculo 4: |(7 + 0 + 1) % 10 – 8| = 0
Cálculo 5: |(0 + 0 + 0) % 10 – 0| = 0
fi = 0
▫ Aptidão do indivíduo fi igual a 0, ou seja,
solução do problema
3. Aplicação 1
• Critério(s) de parada(s)
▫ A aptidão atingiu o melhor valor (0)
possível
 Não foi atingido o limite de gerações
▫ O número de gerações atingiu o limite
 O indivíduo com menor aptidão é
considerada a melhor solução
3. Aplicação 1
• Processos de seleção
▫ Roleta
▫ Torneio 3
• Neste problema as menores aptidões
são mais importantes
▫ Inverter os pesos
▫ Sortear o peso
3. Aplicação 1
• Exemplo de Seleção
▫ Indivíduo A  aptidão igual a 5
▫ Indivíduo B  aptidão igual a 2
▫ Indivíduo C  aptidão igual a 7
▫ Indivíduo D  aptidão igual a 10
▫ Indivíduo E  aptidão igual a 1
• Ordenar invertido os pesos
▫ 10 (D), 7 (C), 5 (A), 2 (B), 1 (E)
• Acumular os valores  Novos pesos
▫ 10 (D), 17 (C), 22 (A), 24 (B), 25 (E)
3. Aplicação 1
• Indivíduos pelo peso na roleta
▫ 10 (D), 17 (C), 22 (A), 24 (B), 25 (E)
98|0
88
D

E
C

71 25

A B

49
3. Aplicação 1
• Processos de Crossover
▫ PMX
▫ Cíclico
3. Aplicação 1
• Crossover PMX
▫ Seleciona-se uma seção no cromossomo
(através de 2 Pontos de Crossover)
▫ O material genético dos 2 pais são
integralmente trocado
▫ São feitas mudanças posição a posição
para não existirem repetições nos filhos
gerados
3. Aplicação 1
• Crossover PMX
Pai 1: 7 5 1 4 3 6 8 2 0 9 Filho 1: 7 5 8 7 5 6 8 2 0 9

Pai 2: 3 4 8 7 5 2 6 1 9 0 Filho 2: 3 4 1 4 3 2 6 1 9 0

Filho 1: 7 5 8 7 5 6 8 2 0 9 Filho 1: 3 4 8 7 5 6 1 2 0 9

Filho 2: 3 4 1 4 3 2 6 1 9 0 Filho 2: 7 5 1 4 3 2 6 8 9 0

Genes azuis repetidos. Genes laranjas trocados.


3. Aplicação 1
• Crossover Cíclico
▫ A partir da troca de uma única posição,
verifica-se até que gene será alterado
formando um ciclo
▫ Todos os genes dentro do ciclo serão
trocados e os que permanecerem fora do
ciclo não serão trocados
3. Aplicação 1
• Crossover Cíclico
Pai 1: 7 5 1 4 3 6 8 2 0 9 Pai 1: 7 5 1 4 3 6 8 2 0 9

Pai 2: 3 4 8 7 5 2 6 1 9 0 Pai 2: 3 4 8 7 5 2 6 1 9 0
3. Aplicação 1
• Crossover Cíclico
Pai 1: 7 5 1 4 3 6 8 2 0 9 Pai 1: 7 5 1 4 3 6 8 2 0 9

Pai 2: 3 4 8 7 5 2 6 1 9 0 Pai 2: 3 4 8 7 5 2 6 1 9 0
3. Aplicação 1
• Crossover Cíclico
Pai 1: 7 5 1 4 3 6 8 2 0 9 Pai 1: 7 5 1 4 3 6 8 2 0 9

Pai 2: 3 4 8 7 5 2 6 1 9 0 Pai 2: 3 4 8 7 5 2 6 1 9 0
3. Aplicação 1
• Crossover Cíclico

Pai 1: 7 5 1 4 3 6 8 2 0 9 Pai 1: 7 5 1 4 3 6 8 2 0 9

Pai 2: 3 4 8 7 5 2 6 1 9 0 Pai 2: 3 4 8 7 5 2 6 1 9 0
3. Aplicação 1
• Crossover Cíclico
Pai 1: 7 5 1 4 3 6 8 2 0 9 Pai 1: 7 5 1 4 3 6 8 2 0 9

Pai 2: 3 4 8 7 5 2 6 1 9 0 Pai 2: 3 4 8 7 5 2 6 1 9 0
3. Aplicação 1
• Crossover Cíclico
Pai 1: 7 5 1 4 3 6 8 2 0 9 Pai 1: 7 5 1 4 3 6 8 2 0 9

Pai 2: 3 4 8 7 5 2 6 1 9 0 Pai 2: 3 4 8 7 5 2 6 1 9 0
3. Aplicação 1
• Crossover Cíclico
Pai 1: 7 5 1 4 3 6 8 2 0 9 Pai 1: 7 5 1 4 3 6 8 2 0 9

Pai 2: 3 4 8 7 5 2 6 1 9 0 Pai 2: 3 4 8 7 5 2 6 1 9 0
3. Aplicação 1
• Crossover Cíclico
Pai 1: 7 5 1 4 3 6 8 2 0 9 Pai 1: 7 5 1 4 3 6 8 2 0 9

Pai 2: 3 4 8 7 5 2 6 1 9 0 Pai 2: 3 4 8 7 5 2 6 1 9 0
3. Aplicação 1
• Crossover Cíclico

Pai 1: 7 5 1 4 3 6 8 2 0 9 Pai 1: 7 5 1 4 3 6 8 2 0 9

Pai 2: 3 4 8 7 5 2 6 1 9 0 Pai 2: 3 4 8 7 5 2 6 1 9 0
3. Aplicação 1
• Crossover Cíclico

Pai 1: 7 5 1 4 3 6 8 2 0 9 Pai 1: 7 5 1 4 3 6 8 2 0 9

Pai 2: 3 4 8 7 5 2 6 1 9 0 Pai 2: 3 4 8 7 5 2 6 1 9 0

Pai 1: 3 4 1 7 5 6 8 2 0 9

Pai 2: 7 5 8 4 3 2 6 1 9 0
3. Aplicação 1
• Mutação
▫ A mutação consiste apenas em sortear um
dois pontos em um indivíduo e realizar a
troca destes valores
7 5 1 4 3 6 8 2 0 9 Indivíduo

7 5 1 4 3 6 8 2 0 9 Pontos selecionados

7 2 1 4 3 6 8 5 0 9 Troca dos genes nos dois pontos


3. Aplicação 1
• Parâmetros
▫ Seleção natural (apenas os melhores são
selecionados)
▫ Tamanho da população 100
▫ Número de gerações 100
▫ Taxa de Crossover 60%
▫ Taxa de Mutação 2%
• É preciso realizar testes com diferentes
parâmetros
3. Aplicação 1
• Pontos importantes
▫ Representação Cromossômica
▫ População Inicial
▫ Função de Avaliação
▫ Seleção para o Crossover
 Truncamento
 Ranking
 Roleta
 Amostragem Universal Estocástica
 Torneio
3. Aplicação 1
• Pontos importantes
▫ Crossover
▫ Mutação
▫ Inversão
▫ Busca Local (crossover) e Busca Global
(mutação)
3. Aplicação 1
• Pontos importantes
▫ Condições de Término
▫ Determinação dos Parâmetros
▫ Problemas Práticos
 Convergência Prematura
 Tempo de Processamento Elevado
4. Aplicação 2
• Doenças Dermatológicas
▫ Tipos de Doenças
Código Tipo da Doença Número de
Instâncias
1 Psoriasis 112
2 Seboreic Dermatitis 61
3 Lichen Planus 72
4 Pityriasis Rosea 49
5 Cronic Dermatitis 52
6 Pityriasis Rubra 20
Pilaris
4. Aplicação 2
• Repositório de Dados
4. Aplicação 2
• Dados de doenças dermatológicos
2,2,0,3,0,0,0,0,1,0,0,0,0,0,0,3,2,0,0,0,0,0,0,0,0,0,0,3,0,0,0,1,0,55,2 3,3,3,2,1,0,0,0,1,1,1,0,0,1,0,1,2,0,2,2,2,2,2,1,0,0,0,0,0,0,0,1,0,8,1
2,1,2,3,1,3,0,3,0,0,0,1,0,0,0,1,2,0,2,0,0,0,0,0,2,0,2,3,2,0,0,2,3,26,3 2,2,2,0,0,0,0,0,3,2,0,0,0,3,0,0,2,0,3,2,2,2,2,0,0,3,0,0,0,0,0,3,0,40,1
2,3,2,2,2,2,0,2,0,0,0,1,0,0,0,1,2,0,0,0,0,0,0,0,2,2,3,2,3,0,0,2,3,45,3 2,3,2,0,0,0,0,0,0,0,0,0,2,1,0,2,2,0,2,0,0,0,1,0,0,0,0,2,0,0,0,1,0,41,2
2,1,0,2,0,0,0,0,0,0,0,0,0,0,3,1,3,0,0,0,2,0,0,0,0,0,0,0,0,0,0,2,0,18,5 2,2,3,3,3,3,0,2,0,0,0,2,0,0,0,2,3,0,0,0,0,0,0,0,0,2,2,3,2,0,0,3,3,57,3
2,2,1,0,2,0,0,0,0,0,0,0,0,0,0,2,1,0,1,0,0,0,0,0,0,0,0,2,0,0,0,2,0,22,4 2,2,1,0,1,0,0,0,0,0,0,0,0,0,0,3,2,0,2,0,0,0,0,0,0,0,0,2,0,0,0,2,0,30,4
3,3,2,1,1,0,0,0,2,2,1,0,0,0,0,0,3,2,3,2,2,2,1,1,0,0,0,0,0,0,0,1,0,20,1 2,2,0,3,0,0,0,0,0,0,0,0,0,2,0,2,2,0,0,0,0,0,1,0,0,0,0,3,0,0,0,1,0,21,2
3,3,1,2,0,0,0,0,0,1,0,0,0,2,0,3,1,0,1,0,0,0,0,0,0,0,0,2,0,0,0,1,0,22,2 2,3,3,0,0,0,0,0,1,1,1,0,0,1,0,0,2,1,2,1,2,3,0,2,0,0,0,0,0,0,0,2,0,10,1
2,2,3,3,0,3,0,2,0,0,0,2,0,0,0,1,1,1,1,0,0,0,0,0,2,0,3,0,3,0,0,1,3,65,3 1,1,0,1,3,0,0,0,0,0,0,0,0,0,0,1,1,0,1,0,0,0,0,0,0,0,0,2,0,0,0,2,0,40,4
2,2,1,3,0,0,0,0,0,0,0,0,0,2,0,2,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,30,2 3,3,3,0,0,0,0,0,3,3,1,0,0,2,0,0,2,0,2,3,3,3,2,3,0,3,0,0,0,0,0,2,0,38,1
2,1,3,3,3,3,0,0,2,0,0,3,0,0,0,3,2,0,1,0,0,0,0,0,3,0,2,0,3,0,0,2,3,23,3 1,1,0,3,0,0,0,0,0,0,0,0,0,0,3,0,3,2,2,0,3,0,0,0,0,0,0,1,0,0,0,2,0,17,5
2,1,1,2,0,0,3,0,1,2,0,0,0,1,0,0,1,2,2,0,1,0,1,0,0,0,0,0,0,1,2,1,0,8,6 3,2,2,0,0,0,0,0,0,0,0,0,0,2,0,2,2,1,2,0,2,1,2,0,0,0,0,3,0,0,0,2,0,51,2
2,2,0,2,0,0,0,0,0,0,0,0,0,0,1,1,3,1,2,0,2,1,0,0,0,0,0,1,0,1,0,2,0,42,5 2,2,2,3,2,2,0,2,0,0,0,3,2,0,0,0,2,1,1,0,0,0,0,0,3,0,3,0,2,0,0,2,3,44,3
2,0,0,3,0,0,0,0,0,0,0,0,0,0,2,2,2,0,0,0,3,0,0,0,0,0,0,0,0,0,0,2,0,22,5 2,1,1,0,1,0,0,0,2,0,0,0,0,0,0,0,2,2,2,2,2,2,1,2,0,2,0,0,0,0,0,2,0,33,1
1,1,0,1,0,0,3,0,1,0,0,0,0,1,0,0,1,1,1,0,0,0,0,0,1,0,0,1,0,2,2,1,0,10,6 1,2,2,3,0,0,0,0,0,0,0,0,0,0,1,1,2,1,1,0,3,0,0,0,0,0,0,1,0,0,0,3,0,17,5
3,2,2,2,0,0,0,0,0,0,0,0,0,2,0,3,3,3,2,0,0,0,0,0,0,0,0,2,0,1,1,2,0,43,2 1,1,2,3,2,2,0,3,0,0,0,2,0,0,0,2,2,1,2,0,0,0,0,0,3,0,3,0,3,1,0,2,3,50,3
3,2,1,2,0,0,0,0,1,2,0,0,0,1,0,0,2,0,3,2,2,2,1,2,0,2,0,0,0,0,0,1,0,50,1 3,2,0,2,0,0,0,0,0,0,0,0,1,2,0,2,1,1,1,0,0,0,1,0,0,0,0,0,0,0,0,1,0,10,2
2,3,3,3,3,0,0,0,3,3,0,0,0,0,0,0,3,2,2,3,3,3,1,3,0,0,0,0,0,0,0,1,0,34,1 2,2,1,0,0,0,0,0,1,0,1,0,0,2,0,0,2,1,2,2,1,2,0,1,0,0,0,0,0,0,0,0,0,?,1
2,1,0,0,2,0,0,0,0,0,0,0,0,0,0,2,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,?,4 2,2,1,2,0,0,0,0,0,0,0,0,0,2,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,?,2
2,1,2,3,2,3,0,2,0,0,1,1,0,0,0,2,1,1,2,0,0,0,0,0,1,0,2,0,2,0,0,0,3,?,3 2,1,1,1,0,0,0,0,0,0,0,0,0,1,0,3,2,1,0,0,0,0,2,0,0,0,0,2,0,0,0,1,0,15,2
2,1,2,3,2,1,0,2,0,0,0,0,0,0,0,2,2,2,1,0,0,0,0,0,2,0,1,0,3,0,0,2,3,26,3 3,3,2,0,0,0,0,0,2,2,1,0,0,1,0,0,2,2,3,2,2,1,0,2,0,0,0,0,0,0,0,1,0,46,1
1,1,1,0,0,0,1,0,0,0,0,0,1,1,0,2,1,1,1,0,0,0,0,0,0,0,0,3,0,0,0,1,0,51,2 1,1,1,0,0,0,0,0,0,0,0,0,0,1,0,1,1,0,1,0,0,0,0,0,0,0,0,2,0,0,0,2,0,62,4
3,2,1,1,0,0,0,0,2,1,0,0,0,0,0,0,2,1,1,1,1,1,0,1,0,0,0,0,0,0,0,1,0,15,1 2,1,1,0,0,0,0,0,1,0,0,0,0,1,0,1,1,0,1,0,0,0,0,0,0,0,0,2,0,0,0,2,0,35,2
0,1,0,3,0,0,0,0,0,0,0,0,0,0,2,0,2,2,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,30,5 2,1,1,1,1,2,0,1,0,0,0,2,0,0,0,3,2,1,1,0,0,0,0,0,2,0,2,0,2,0,0,3,3,48,3

......
2,1,1,3,3,0,0,0,0,0,0,0,0,0,0,2,2,1,1,0,0,0,0,0,0,0,0,1,0,0,0,2,0,46,4 2,1,1,1,0,0,2,0,3,2,0,0,0,1,0,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,1,1,1,12,6
4. Aplicação 2
• Informações dos Atributos
• Complete attribute documentation:
• Clinical Attributes: (take values 0, 1, 2, 3, unless otherwise indicated)
• 1: erythema
• 2: scaling
• 3: definite borders
• 4: itching
• 5: koebner phenomenon
• 6: polygonal papules
• 7: follicular papules
• 8: oral mucosal involvement
• 9: knee and elbow involvement
• 10: scalp involvement
• 11: family history, (0 or 1)
• 34: Age (linear)
4. Aplicação 2
• Informações dos Atributos
• Histopathological Attributes: (take values 0, 1, 2, 3)
• 12: melanin incontinence
• 13: eosinophils in the infiltrate
• 14: PNL infiltrate
• 15: fibrosis of the papillary dermis
• 16: exocytosis
• 17: acanthosis
• 18: hyperkeratosis
• 19: parakeratosis
• 20: clubbing of the rete ridges
• 21: elongation of the rete ridges
• 22: thinning of the suprapapillary epidermis
• 23: spongiform pustule
• 24: munro microabcess
• 25: focal hypergranulosis
• 26: disappearance of the granular layer
• 27: vacuolisation and damage of basal layer
• 28: spongiosis
• 29: saw-tooth appearance of retes
• 30: follicular horn plug
• 31: perifollicular parakeratosis
• 32: inflammatory monoluclear inflitrate
• 33: band-like infiltrate
4. Aplicação 2
• Exemplo de um registro
2,2,0,3,0,0,0,0,1,0,0,0,0,0,0,3,2,0,0,0,
0,0,0,0,0,0,0,3,0,0,0,1,0,55,2
3,3,3,2,1,0,0,0,1,1,1,0,0,1,0,1,2,0,2,2,2,
2,2,1,0,0,0,0,0,0,0,1,0,8,1

Tipo da doença (Psoriasis)


4. Aplicação 2
• Regra que representa uma solução
▫ Se
 (definite borders = 1) e
 (oral mucosal involvement ≠ 0) e
 (age ≥ 26) e
 (erythema = 3) e
 (koebner phenomenon < 2)
▫ Então é a doença : Psoriasis
4. Aplicação 2
• Definição do Gene
Genei
Peso (Pi) Define se a condição faz parte da regra/solução

Operador (Oi) Operador da condição, sendo =, !=, >= ou <

Valor (Vi) Valor do atributo e depende do tipo de cada atributo

• Definição do Indivíduo (regra/solução)


Indivíduoj
O1 O2 O3 ... O34
A1 A2 A3 ... A34
V1 V2 V3 ... V34
4. Aplicação 2

• Indivíduo (solução)
▫ Operadores
 O1  = O3 O2 O3 O1 O4
 O2  ≠ A3 A8 A34 A1 A5
 O3  ≥ 1 0 26 3 2

 O4  <
▫ Valores: nominais ou contínuos
▫ Atributos do problema (base de dados)
4. Aplicação 2
• Operadores O3 O2 O3 O1 O4
▫ O1  = A3 A8 A34 A1 A5
▫ O2  ≠ 1 0 26 3 2

▫ O3  ≥
▫ O4  <
• Representação da regra para o
indivíduo
▫ if ((A3 = 1) and (A8 ≠ 0) and (A34 ≥ 26) and (A1
= 3) and (A5 < 2))
4. Aplicação 2
• A base de dados foi separada em duas
partes
▫ Treinamento (2/3)
▫ Teste (1/3)
• A base de teste é usada apenas no
melhor indivíduo após o AG finalizar o
treinamento
• Limiar usado para testes = 7 (0-10)
4. Aplicação 2
• Aptidão 𝑡𝑝
▫ tp (True Positive) 𝑆𝑒 =
𝑡𝑝 + 𝑓𝑛
▫ tn (True Negative)
▫ fp (False Positive) 𝑡𝑛
𝑆𝑝 =
▫ fn (False Negative) 𝑡𝑛 + 𝑓𝑝
▫ Se (Sensitivity) 𝑎𝑝𝑡𝑖𝑑ã𝑜 = 𝑆𝑒 ∗ 𝑆𝑝
▫ Sp (Specificity)
4. Aplicação 2
• Cálculo da aptidão de um indivíduo
▫ Um tipo de doença é escolhida (Classk)
▫ Cada registro do histórico é passado sobre
a regra do indivíduo
Regra satisfaz o Acertou (True)
Indivíduoj TP
registro
O1 O 2 O3 ... O34 (Positive) Errou (False)
FP
A1 A2 A3 ... A34
TN
V1 V2 V3 ... V34 Acertou (True)
Regra não satisfaz
Errou (False) FN
o registro
(Negative)
4. Aplicação 2

• População de tamanho Tp
População

i1 i2 ip – 1 ip

O3 O2 O3 O1 O4 ................. O4 O4 O2 O2 O1 O4
A3 A8 A3 A1 A5 A11 A3 A5 A3 A8 A2
4 2
1 0 26 3 2 2 0 3 2 1 0
4. Aplicação 2
• Cada indivíduo é testado sobre a base de
dados
▫ O indivíduo mais apto é aquele que acertar
mais os diagnósticos
• É executado o Algoritmo Genético sobre a
população até achar a melhor solução
4. Aplicação 2
• Exemplo de crossover

O1 O2 O3 ... O34
Indivíduoj A1 A2 A3 ... A34
V1 V2 V3 ... V34

Parte dos genes dos indivíduos são trocados

O1 O2 O3 ... O34
Indivíduok A1 A2 A3 ... A34
V1 V2 V3 ... V34
4. Aplicação 2
• Exemplo de mutação

O1 O2 O3 ... O34
Indivíduoj A1 A2 A3 ... A34
V1 V2 V3 ... V34

Os dados de um gene são gerados aleatoriamente

O1 O2 O3 ... O34
Indivíduoj A1 A2 A3 ... A34
V1 V2 V3 ... V34
4. Aplicação 2
• Seleção Natural
▫ Elitista (apenas os melhores indivíduos
sobrevivem)
4. Aplicação 2
• Exemplo de Solução
▫ BASE DE TREINAMENTO
▫ Aptidão: 0,9411765
▫ Se: 1
▫ Sp: 0,9411765
▫ REGRA
▫ IF 12: Melanin Incontinence |0|1|2|3| < 3
▫ IF 15: Fibrosis of the Papillary Dermis |0|1|2|3| < 1
▫ IF 25: Focal Hypergranulosis |0|1|2|3| < 1
▫ IF 27: Vacuolisation and Damage of Basal Layer |0|1|2|3| >= 0
▫ IF 28: Spongiosis |0|1|2|3| < 1
▫ IF 29: Saw-tooth Appearance of Retes |0|1|2|3| < 3
5. Conclusão
• Algoritmos Genéticos
▫ Busca de soluções para problemas com
grande espaço de estados
▫ Aplicação 1: Criptoaritmética
▫ Aplicação 2: Data Mining
5. Conclusão
• Trabalhos futuros
▫ Algoritmos Genéticos aplicados no
Mercado Financeiro
▫ Algoritmos Genéticos baseados em ilha
(múltiplas populações)
• Agradecimentos a Professora Dra. Gina
da Universidade Federal de Uberlândia
Referências Bibliográficas
• SVN: https://wpattern.codeplex.com/ (SOURCE
CODE  sample projects  c# 
Criptoaritmetica)
• SVN: https://wpattern.codeplex.com/ (SOURCE
CODE  sample projects  java  wpattern-ai-
cryptarithmetic)
• SVN: https://wpattern.codeplex.com/ (SOURCE
CODE  sample projects  c# 
PatternRecognition)
• PGC204 https://code.google.com/p/pgc204/
• http://wpattern.com/blog/post/2013/07/08/ECJ-
e-WEKA-(Reconhecimento-de-Padroes).aspx
Referências Bibliográficas
• SVN: https://wpattern.codeplex.com/ (SOURCE
CODE  sample projects  c# AGs em Data
Mining)
• SVN: https://wpattern.codeplex.com/ (SOURCE
CODE  sample projects  c#  Pattern
Recognition)
• FIDELIS, M. V. LOPES, H. S. FREITAS, A. A.
Discovering Comprehensible Classification Rules
with a Genetic Algorithm. 2000.
• Skydrive: http://sdrv.ms/1fcXuNW
Referências Bibliográficas
• LUKE, S. Essentials of Metaheuristics. Ed. 2, 2013.
Disponível em:
http://cs.gmu.edu/~sean/book/metaheuristics/
Algoritmos Genéticos
Obrigado!!! 
Gostaram???
 Sigam o canal do Youtube (Joinha no vídeo):
http://www.youtube.com/user/augustobranquinho
 Curtam a página do Facebook:
https://www.facebook.com/pages/WPattern/120542164731714

Augusto Afonso Borges Branquinho


.com

You might also like