Escolar Documentos
Profissional Documentos
Cultura Documentos
Introduo
Um Algoritmo Gentico (AG), conceitualmente, segue passos inspirados no processo biolgico de evoluo natural segundo a teoria de Darwin
Algoritmos Genticos seguem a idia de SOBREVIVNCIA DO MAIS FORTE (melhores solues a cada gerao)
Background
Cromossomos
Background (Cont.)
Reproduo
Durante o processo de reproduo ocorre-se a recombinao (ou crossover cruzamento-). Genes dos pais se combinam para formar novos cromossomos.
Os descendentes criados podem sofrer mutaes, ou seja, os elementos do DNA podem ser trocados A adaptao de um organismo pode ser medida pelo sucesso do mesmo em sua vida
Idia bsica
Comear com um conjunto de solues (representado por cromossomos) chamado populao Solues de uma populao so escolhidas e usadas para formar uma nova populao (reproduo)
Solues que so escolhidas para formar novas solues (descendentes) so escolhidas de acordo com uma funo de adaptao (funo objetiva - custo) O processo repetido at que uma condio seja satisfeita
Questes importantes
Como criar cromossomos e qual tipo de codificao usar? Como escolher os pais para a realizao do crossover? A gerao de uma populao a partir de duas solues pode causar a perda da melhor soluo. O que fazer?
Esboo do algoritmo
[Adaptao] Verificar a funo objetiva f(x) de cada cromossomo x [Populao] Cria-se uma nova populao pela repetio a seguir: 1. [Seleo] Selecione um par de cromossomos da populao de acordo com a adaptao de cada um (os mais bem adaptados tem maior chance de serem escolhidos) 2. [Crossover] Produza dois descendentes (filhos) realizando crossover com os cromossomos dos pais. O ponto para a realizao do crossover deve ser aleatrio. 3. [Mutao] Com uma certa probabilidade, o descendente sofre mutao em cada locus (posio no cromossomo). 4. [Aceitao] Coloque os descendentes em uma nova populao, juntamente com a melhor soluo da gerao velha
[Teste] Se a condio de finalizao satisfeita, pare, e retorne a melhor soluo da populao atual [Adaptao] [Lao] Volte ao passo 1
Codificao
Como realizar a codificao de cromossomos? a primeira pergunta que deve ser feita ao resolver um problema com AG A codificao depender fortemente do problema
10
Codificao binria
a mais comum devido a sua simplicidade Cada cromossomo uma string de bits 0 ou 1
Crom: A = 1 0 1 1 0 0 1 0 1 1 Crom: B = 1 1 1 1 1 1 0 0 0 0
Exemplo de uso: problema da mochila Codificao: Cada bit diz se um elemento est ou no na mochila
11
Mais usado em problemas de ordenao Cada cromossomo uma string de nmeros que representa uma posio numa seqncia Crom A: 1 5 3 2 6 4 7 9 8 Crom B: 8 5 6 7 2 3 1 4 9 Exemplo de uso: problema do caxeiro viajante Codificao: os cromossomos descrevem a ordem em que o caxeiro ir visitar as cidades
12
Usado em problemas onde valores mais complicados so necessrios Cada cromossomo uma seqncia de valores
Crom A: 1.2324 5.3243 0.4556 2.3293 2.4545 Crom B: ABDJEIFJDHDIERJFDLDFLFEGT Crom C: (back), (back), (right), (forward), (left)
13
Exemplo de uso: dada uma estrutura, encontrar pesos para uma rede neural Codificao: Valores reais num cromossomo representam pesos em uma rede neural
14
Crossover
Aps decidir qual codificao usar, procede-se com a operao crossover A operao deve ser realizada sobre os cromossos dos pais para a criao de descendentes
Crom1: 11010 | 00100110110 Crom2: 11011 | 11000011110 Filho 1: 11010 | 11000011110 Filho 2: 11011 | 00100110110
15
Mutao
O objetivo da mutao evitar que as solues na populao fiquem apenas num mnimo local Filho1 antes : 1101111000011110 Filho2 antes : 1101100100110110 Filho1 depois : 1100111000011110 Filho2 depois : 1101101100110110
16
Escalonar salas, professores e classes em um nmero fixo de perodos de tal maneira que nenhum professor, classe ou sala sejam usados mais de uma vez num mesmo perodo Suposies para resolver o problema
Uma classe consiste de um certo nmero de estudantes As classes so disjuntas, ou seja, no h estudantes em comum
17
Em cada perodo uma matria lecionada a uma classe possvel que uma matria aparea mais de uma vez em um perodo Uma combinao particular de (professor, matria, sala, classe) chamada de tupla A tarefa de realizar a combinao (professor, matria, sala, classe) para formar uma tupla feita parte
18
19
Para medir a qualidade da grade horria (funo objetiva - custo), calcular o nmero de colises em qualquer grade. A grade aceitvel tem custo 0 O custo de cada perodo pode ser dado pela soma dos trs componentes: custo da classe, custo do professor e custo da sala
20
O custo das classes o nmero de vezes em que cada classe aparece num perodo menos 1. Se uma classe no aparece em nenhum perodo seu custo 0 A mesma idia se aplica para os professores e salas Assim, o custo da grade a soma dos custos de cada perodo
21
Como fazer o mapeamento entre a grade e os cromossomos? Representao do problema usando tuplas:
22
23
24
Reproduo:
25
Mutao:
26
27
Escolha dois indivduos aleatrios da populao velha Crie um filho vazio Para cada perodo dos pais faa
Realize os crossover dos perodos correspondentes, produzindo um novo perodo Copie o novo perodo para a posio correspondente do filho
28
Arrumar a perda e duplicao de tuplas Aplicar mutao selecionando aleatriamente um perodo e uma tupla Medir o custo do indivduo Se custo < mnimo permitido
Se no
29
Resultados:
30
Paralelizando a reproduo:
31
Referncias
H.Firas. Handwritten Numeral Recognition Using Neural Networks, em: http://ise.stanford.edu/class/ee368a_proj00/project2/node4.html GENETIC ALGORITHMS, em: http://cs.felk.cvut.cz/~xobitko/ga/main.html D.Abramson, J.Abela. A Parallel Genetic Algorithm for Solving the School Timetabling Problem, em: http://citeseer.nj.nec.com/abramson92parallel.html D. Abramson. Constructing School Timetables using Simulated Annealing: Sequential and Parallel Algorithms, em: http://citeseer.nj.nec.com/abramson91constructing.html J.E.Boggess. USING GENETIC ALGORITHMS FOR SCHEDULING ENGINEERING MISSIONS, em: http://citeseer.nj.nec.com/55397.html
32