Exemplos Algoritmos Genticos Soluo de equaes Enunciado: Deseja-se encontra o pico mximo da seguinte funo de duas variveis na qual os parmetros x e y, ambos variam entre -3 e 3. 2 Preparao 1. Representao: Uma maneira de representar os parmetros x e y atraves de uma string binria Nesta string, tem-se a concatenao de duas sub-strings de 8 bits, cada uma representando um dos parmetros do problema. 3 Representao 2. Tamanho da Populao Em seguida, deve-se escolher o tamanho da populao de cromossomos, por exemplo 6 indviduos, e randomicamente gerar uma populao inicial. 4 Funo de Fitness 1. Primeiro, deve obter os valores de x e y separadamente da string binria 2. Em seguida, colocar os valores de x e y nas faixas de -3 a 3 3. Por fim, os valores de x e y so substitudos na funo objetivo 5 1. Decodificao Divide-se a string em 2 Obtem o valor na base 10 6 1. Decodificao Em seguida, normaliza para as faixas de -3 a 3 Uma maneira obter o valor mximo que poderia-se ter com a string binria (256). Depois dividir o tamanho da faixa pelo valor mximo: 6 / (256 - 1) = 0,0235294 (FATOR) Logo X = 138 * FATOR - 3 = 0.2470588 Y = 59 * FATOR 3 = -1.6117647 7 Crossover, Mutao e Geraes Probabilidades de: Crossover: 0.7 Mutao: 0.001 Nmero de Geraes: 100 8 Execuo 9 Execuo Na Figura anterior: Em a) os cromossomos gerados aleatriamente esto longe do resultado ideal ( o pico ) Em b) depois de uma nova gerao percebe- se uma adaptao melhor ao resultado Em c) obtem-se como resultado final um pico local Em d) melhor resultado global 10 Como garantir o resultado? Uma maneira seria aumentar a probabilidade de mutao Outra seria melhorar a representatividade (aumentar a quantidade de bits) Isto torna o resultado mais preciso Talvez tambm seja necessrio criar mecanismos com mais geraes 11 Grafico de Desempenho Quando difcil representar uma curva de nvel, podemos fazer um grfico de desempenho 12 Grfico de Desempenho 13 Grfico de Desempenho 14 Exemplo 2 15 Escalonamento Manuteno de sistemas de potncia Vrias restries Falhas e paradas Atrasos Usualmente feito a mo, e no existem garantias que seja o melhor 16 Etapas do Processo 1. Especificar o problema, definindo restries e critrio de otimalidade. 2. Representar o domnio de problema como um cromossomo. 3. Definir uma funo de fitness para avaliar o desempenho dos cromossomos. 4. Construir os operadores genticos. 5. Rodar o AG e ajustar seus parmetros. 17 1. Especificar o Problema O propsito do escalonamento de manuteno encontrar uma sequncia de paradas das unidades de potncia em um dado perodo de tempo (normalmente um ano) tal que a segurana de um sistema de potncia seja maximizada. Qualquer parada est associada a perda de segurana Margem de segurana = reserva liquida 18 1. Especificar o Problema Reserva lquida = total da capacidade do sistema perda pela parada carga de distribuio mxima do perodo Ex: Capacidade total = 150MW Escalona-se uma unidade de 20MW O perodo tem carga de 100MW Reserva Lquida = 30MW 19 1. Especificar o Problema Suponha sete unidades para manuteno em quatro intervalos iguais As cargas mximas esperadas durante estes intervalos so 80, 90, 65 and 70 MW 20 1. Restries 1. a manuteno de qualquer unidade comea no inicio de um intervalo e termina ao final do mesmo intervalo ou de um intervalo adjacente. 2. A manuteno no pode ser abortada ou terminada antes do que o escalonamento. 3. a reserva lquida do sistema de potncia deve ser maior ou igual que zero em qualquer intervalo Quanto maior a reserva lquida, melhor o resultado 21 2. Cromossomo Representar o escalonamento das unidades em sequncias binrias. Se: Apenas representssemos cada manuteno de cada unidade em um cromossomo Induz um problema de ordenamento Mas o problema de escalonamento Pode-se haver mais de uma unidade em manuteno (se possvel) Contabilizar o tempo de manuteno 22 2. Cromossomo Melhor seria se: Cada cromossomo fosse composto por uma coleo de 7 genes (um para cada unidade) Cada gene por sua vez possui uma string binria de 4 bits Representa a necessidade de manuteno no perodo Operaes de Mutao e Crossover devem ser feitas sobre os genes (ou seja, em 4bits) 23 2. Cromossomo Banco de Genes 24 2. Cromossomo Um exemplo de cromossomo 25 3. Definir funo de Fitness Baseada na Reserva Lquida Quanto maior melhor Se, dado um escalonamento Houver apenas reservas lquidas positivas Ento considerar como fitness o menor valor de reserva lquida Houver alguma reserva lquida negativa Descartar Na primeira gerao, se no houver resultado positivo Aplicar operadores genticos mesmo assim 26 4. Operadores Genticos Crossover (4 bits ou gene) - randomicamente 27 4. Operadores Genticos Mutao (em um gene) 28 5. Rodar e Ajustar Parmetros Maior populao -> melhor resultado e mais lento Mais geraes pode implicar em melhores resultados -> mais lento Soluo: testar 29 5. Rodar e Ajustar Parmetros 50 geraes e 20 cromossomos Reserva lquida = 15MW Estabilidade muito rpida 30 5. Rodar e Ajustar Parmetros 100 geraes e 20 cromossomos Reserva lquida = 20MW Ainda apareceu muito rpido 31 5. Rodar e Ajustar Parmetros Aumentando a Populao para 100 cromossomos Reserva lquida = 25MW 32 5. Rodar e Ajustar Parmetros Para se ter certeza do resultado, aumentar a taxa de mutao 33