Organizao da apresentao
Computao evolutiva (C.E.) uma ramo da cincia da computao que prope a resoluo de problemas baseando-se em mecanismos evolutivos
Os Algoritmos Genticos (A.G.) formam uma parte da rea dos Sistemas Inspirados na Natureza
Algoritmos Genticos
Conceitos
Teoria da Evoluo (Charles Darwin 1838) Demonstrou inmeras variaes nas espcies Os organismos mais geis tm mais chance de acasalar e gerar bons descendentes
Seleo da seleo
O espermatozide mais agil fecunda o vulo
Algoritmos Genticos
Conceitos
Gentica Os trabalhos pioneiros de Gregor Mendel (Repblica Theca 1856 1865)
Se reproduzem atravs da autofecundao Ciclo de vida rpido permite estudar diversas geraes
Algoritmos Genticos
Inspirado na teoria evolutiva, John H. Holland (Michigan) props (anos 60) a construo de um algoritmo matemtico para otimizao de sistemas complexos, sendo denominado de Algoritmo Gentico (AG)
Aplicaes
Algoritmos Genticos
Definio
So mtodos generalizados de busca e otimizao que simulam os processos naturais de evoluo, aplicando os trabalhos de Darwin e Mendel
Os indivduos mais aptos so escolhidos para reproduzir Ocorre o cruzamento entre eles A nova gerao obtida com o material gentico dos pais
Algoritmos Genticos
Com os algoritmos genticos tenta-se resolver problemas para os quais no existe um algoritmo conhecido
Funcionamento:
- gera-se um conjunto de indivduos (valores aleatrios) - Verifica se algum deles a soluo do problema - Se no, os melhores indivduos so combinados para se obter a gerao seguinte
8
Algoritmos Genticos
Um exemplo prtico
Qual a raiz quadrada de 50? Os cruzamentos resultaro em filhos que so as mdias aritmticas de seus pais
Indivduos mais aptos
Populao inicial
5 3 4 7 2
8 9 6
7 6 7
Nova Gerao
7
7.5
7.5
9 7.5
7.071...
6.5
Algoritmos Genticos
Conceitos
Genes
Cromossomos (indivduos)
Uma cadeia de genes que representa um indivduo exemplos: cromossomo1 = {4.8; 3.2; 5.3} reais cromossomo2 = {100001011101} binrios - Quanto mais bits, maior a preciso numrica - Cromossomos muito longos se tornam difceis de usar Supondo que as solues so valores inteiros entre 0 e 63, so necessrios (e suficientes) 6 bits
Solues: 0, 0.5, 1.0, 1.5, ... , 255 9 bits, etc
10
Algoritmos Genticos
Conceitos
Indivduo corresponde a um cromossomo Populao formada por um conjunto de indivduos Gerao corresponde a populao em um certo perodo Funo de Aptido - mede a habilidade do indivduo para sobreviver/reproduzir
- so representadas por funes matemticas - Muitas vezes, deseja-se maximizar uma funo e, neste caso, a funo de aptido pode ser a prpria funo
11
Algoritmos Genticos
Algoritmo Gentico
12
Algoritmos Genticos
Determinao da Populao (valores aleatrios) Formao dos cromossomos (codificao das variveis)
A representao binria a mais usada
100011
001000
101011
111000
13
Algoritmos Genticos
14
Algoritmos Genticos
Funo de aptido nos A.G.s (fitness) Nos algoritmos genticos, so funes que identificam os indivduos mais aptos
1 aptidao( x) = 50 x 2
y
aptidao(x) = x2 15
x
Algoritmos Genticos
Seleo na natureza
Usa a Funo de Aptido para avaliar capacidade dos indivduos sobreviverem reproduzir
Muito usado no aprimoramento gentico de animais
a e
16
Algoritmos Genticos
Seleo nos A.G.s
usada para escolher os indivduos para a reproduo
Algoritmos Genticos
Seleo nos A.G.s Tcnicas mais usadas:
Seleo pela roleta os tamanhos dos setores da roleta so proporcionais s habilidades dos indivduos Seleo por SUS Com n cursores, quando a roleta gira, so escolhidos n indivduos (Amostragem Estocstica Universal
Stochastic Universal Sampling)
Roleta
SUS
18
Algoritmos Genticos
Cruzamento na natureza
ocorre o cruzamento entre o material gentico de dois indivduos
Gmeas Britnicas
19
Algoritmos Genticos
Cruzamento (crossover)
nos A.G.s
ocorre o cruzamento do material gentico dos pais Representao Binria so usados pontos de corte posicionados aleatoriamente
Algoritmos Genticos
Cruzamento (crossover) nos A.G.s Usando mscaras de bits exemplo: mscara = 11001101 Filho1 = (Pai1 & mscara) | (Pai2 & !mscara) Filho2 = (Pai1 & !mscara) | (Pai2 & mscara)
21
Algoritmos Genticos
Cruzamento (crossover) nos A.G.s
Single Arithmetic Crossover (mistura na posio k) pais: {x1, x2,..., xn} e {y1, y2,..., yn}, toma-se um valor k, aleatrio e inteiro, que vai determinar a posio do cruzamento e um valor real aleatrio, [0,1] Os filhos gerados so: {x1, x2,...,yk+(1-)xk, ..., xn} e {y1, y2,...,xk+(1-)yk,...,yn} Exemplo:
Suponha: Pai1 = {0.5, 1.0, 1.5, 2.0}, Pai2 = {0.2, 0.7, 0.2, 0.7} =0.4 e k=3 Filho1 = {0.5, 1.0, (0.4)(0.2)+(0.6)(1.5), 2.0} = {0.5, 1.0, 0.98, 2.0} Filho2 = {0.2, 0.7, (0.4)(1.5)+(0.6)(0.2),0.7} = {0.2, 0.7, 0.72, 0.7}
1-
22
Algoritmos Genticos
Cruzamento (crossover) nos A.G.s
Simple Arithmetic Crossover (mistura da posio k em diante) pais: {x1, x2,..., xn} e {y1, y2,..., yn} toma-se um valor k, aleatrio e inteiro, que vai determinar a posio do cruzamento e um valor real aleatrio, [0,1] Os filhos gerados so: {x1, x2,..., yk+(1-)xk,..., yn+(1-)xn} e {y1, y2,..., xk+(1-)yk..., xn+(1-)yn} Exemplo:
Pai1 = {0.5,1.0,1.5,2.0} e Pai2 = {0.2,0.7,0.2,0.7} =0.4 k=3
Filho1={0.5,1.0,(0.4)(0.2)+(0.6)(1.5),(0.4)(0.7)+(0.6)(2.0)}={0.5,1.0,0.98,1.48} Filho2={0.2,0.7,(0.4)(1.5)+(0.6)(0.2),(0.4)(2.0)+(0.6)(0.7)}={0.2,0.7,0.72,1.22}
1-
23
Algoritmos Genticos
Cruzamento (crossover) nos A.G.s
cadeias de caracteres (strings) tcnica PMX (Partially-Matched Crossover) Pai1 = 12463758 e Pai2 = 54172683
24
Algoritmos Genticos
Mutao na natureza
- o cromossomo pode ser modificado em algumas de suas partes
25
Algoritmos Genticos
Mutao nos
A.G.s
o cromossomo pode ser modificado em algumas de suas partes (assumindo caractersticas que no pertencem aos pais) binrio
- inverte-se alguns bits
real ou inteiro
- somam-se pequenos valores aleatrios
cadeias de caracteres
- alguns caracteres so trocados
Probabilidade da mutao
- (1%) Exemplo de cdigo X = random(100) if X 1 then mutao
26
Algoritmos Genticos
Importncia da Mutao nos A.G.s
Encontrar mximos de funes que possuem mximos locais
mutaes
Com algumas mutaes, filhos bem diferentes dos pais podem levar as solues para o mnimo global da funo
27
Algoritmos Genticos
Aplicao
Encontrar o valor X (inteiro) que minimiza a funo f (x) = x - 12x + 36 no intervalo de 0 at 15 Soluo Como as solues procuradas so inteiros entre 0 e 15, 4 bits bastam para a representao binria Usando a funo de aptido x2+12x Mtodo de seleo a ser usado a roleta Populao inicial: C1 = 5, C2=4 C3=12 e C4=10,
Aptido: f(x)=-x2+12x 35 32 0 20
28 27
Maiores aptides
Algoritmos Genticos
Calculando as probabilidades dos indivduos serem escolhidos na roleta
C1 C2 C4
Algoritmos Genticos
Aplicao usando a roleta, so selecionados C1 e C2 para o 1 cruzamento C2 e C1 para o 2 cruzamento
A funo de aptido f (x) = -x 2 +12x tem o seu mximo em x=6, assim, os cromossomos com valor prximo de 6 so os mais provveis de serem escolhidos
30
Algoritmos Genticos
Aplicao A funo que se deseja minimizar f (x) = x - 12x + 36 no intervalo de 0 at 15 tem o seu mnimo em 6
90 80 70 60 50 40 30 20 10 0 0 2 4 6 8 10 12 14 16
31
Algoritmos Genticos
Algoritmos genticos como tcnicas de busca
O espao de busca vai sendo determinado a partir de um cruzamento entre os estados atuais (pais)
(busca subindo o morro)
Estados atuais
Prximo Estados
32
Algoritmos Genticos
Algoritmos genticos como tcnicas de busca
Os algoritmos genticos diferem das tcnicas de busca tradicionais porque:
- Trabalham com uma codificao do conjunto de parmetros no lugar dos prprios parmetros ( Hibridizao) - Trabalham com uma populao e no com um nico ponto Utilizam regras de transio probabilsticas e no
determinsticas
33
Algoritmos Genticos
Consideraes sobre a implementao dos A.G.s
Tamanho da populao
Pequenas diminuem o desempenho, pois no fornecem cobertura total do espao de busca Grandes - implicam em maior processamento
Taxa de mutao
Altas - busca aleatria Baixas - busca estagnada
Critrio de parada
Quantidade de iteraes (geraes) Quando as aptides no melhoram muito Quando se conhece a soluo tima
Taxa de cruzamento
Altas - geram estruturas com boas aptides nem sempre aproveitadas Baixas- torna a evoluo muito lenta
34
Algoritmos Genticos
Observao sobre os A.G.s
Pesquisadores referem-se a Algoritmos Genticos ou a um Algoritmo Gentico e no ao Algoritmo Gentico pois Algoritmos Genticos so uma classe de procedimentos com um conjunto de passos distintos e bem especificados, com muitas possveis variaes em cada passo
Hibridizao Integrao de uma boa maneira convencional de resolver um problema aos conceitos usuais de A.G.s
35
Algoritmos Genticos
Programao Gentica (indo alm dos A.G.s)
Originada na dcada de 80, procura desenvolver tcnicas capazes de criar automaticamente programas a partir de uma descrio de alto nvel do problema a ser resolvido
36
Algoritmos Genticos
Programao Gentica (indo alm dos A.G.s)
- Em P.G. os programas so representados por rvores
37
Algoritmos Genticos
Programao Gentica (indo alm dos A.G.s) - Em P.G. o cruzamento troca subrvores de indivduos
+ b 3 c + b 3 *
/
* ^
Pais
x 2
+
/
+ x 5 3 c
38
Filhos
^ 2
Algoritmos Genticos
Programao Gentica (indo alm dos A.G.s) Em P.G. a mutao pode ocorrer trocando um n terminal ou funcional
+ + b b 3 c * ^ 2 b 3 Mutao Funcional c + * + 2 3 5 Mutao Terminal * ^ 2
39
Algoritmos Genticos
Programao Gentica (indo alm dos A.G.s) Em P.G. a mutao pode ocorrer tambm, trocando uma subrvore
+ + b b 3 c * ^ 2 b Mutao de uma subrvore * 3 5 *
9 +
40
Algoritmos Genticos
Referncias Bibliogrficas
ARTERO, A.O., Inteligncia Artificial Terica e Prtica, Editora da Fsica, So Paulo, 2009 BITTENCOURT, G., Inteligncia Artificial Ferramentas e Teorias, Editora da UFSC, 1998 REZENDE, S. O., Sistemas Inteligentes, Editora Manole, 2003
41