127
Mutação Diferencial Condicional como proposta de otimização de Algoritmos Genéticos Autor : Bruno Grinholli Escher Orientador : Prof. Dr. Galdenoro Botura Jr. Sorocaba , 2008

Mutação Diferencial Condicional como proposta de ... · de freqüência. A sintonia de controladores PID foi escolhida apenas como base para aplicação dos algoritmos genéticos

  • Upload
    others

  • View
    4

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Mutação Diferencial Condicional como proposta de ... · de freqüência. A sintonia de controladores PID foi escolhida apenas como base para aplicação dos algoritmos genéticos

Mutação Diferencial Condicional como proposta de otimização de Algoritmos

Genéticos

Autor : Bruno Grinholli Escher Orientador : Prof. Dr. Galdenoro Botura Jr.

Sorocaba , 2008

Page 2: Mutação Diferencial Condicional como proposta de ... · de freqüência. A sintonia de controladores PID foi escolhida apenas como base para aplicação dos algoritmos genéticos

Mutação Diferencial Condicional como proposta de otimização de Algoritmos Genéticos

2

Sumário

1 Resumo......................................................................................................................................6 2 Abstract.....................................................................................................................................7 3 Introdução ................................................................................................................................8 4 Os Algoritmos Genéticos.........................................................................................................9 4.1. Idéia Básica – O Darwinismo.....................................................................9 Conceito de adaptação.....................................................................9 Exemplo clássico de adaptação.......................................................9 Darwin e o mecanismo evolutivo.....................................................10

A seleção natural................................................................................11 Neodarwinismo: ampliação da teoria de Darwin..........................11 Mendel e a Genética.........................................................................11 Copiando a Natureza........................................................................13 Vantagens do AG...............................................................................15 Algumas aplicações atuais.............................................................. 17

4.2. TOPOLOGIA DOS AG.............................................................................. 20 Seqüência clássica............................................................................20 Intervalo e Codificação....................................................................21 Reais ou Binários ?..............................................................................23 Gerando a população inicial ..........................................................24 O tamanho da população...............................................................25 Avaliação dos indivíduos (fitness)....................................................27 Inversamente ou diretamente?........................................................29

Classificação e separação dos melhores.......................................30 Aplicação de operadores genéticos clássicos..............................34

5. A MUTAÇÃO DIFERENCIAL CONDICIONAL 5.1 Mutação Tradicional e Mutação diferencial......................................39 5.2. A mutação diferencial condicionada..................................................41

6. DESEMPENHO DE ALGORITMOS GENÉTICOS 6.1. Como avaliar um AG ?...........................................................................43

Velocidade de Evolução..................................................................44 Linhagem.............................................................................................46 Delta-Fit................................................................................................46 IPQ........................................................................................................47 IPQL.......................................................................................................48 Variedade Orbital...............................................................................49 Melhoria Efetiva...................................................................................52

7. FERRAMENTAS EVOLUTIVAS 7.1. Preferência ao oposto.............................................................................52 7.2. Repressão a cópia...................................................................................54 7.3. Inversão de Iguais....................................................................................55

8. CONTROLE CLÁSSICO 8.1. O que é controle......................................................................................57 8.2. O que é controle em malha fechada..................................................57 8.3. Controladores...........................................................................................57 8.4. A planta.....................................................................................................61 8.5. Características de um sistema em malha fechada............................62 8.6. Medindo o desempenho do controlador ..........................................65 8.7. Esforço de controle.................................................................................66 8.8. Modelando a planta – o motor CC......................................................68

Page 3: Mutação Diferencial Condicional como proposta de ... · de freqüência. A sintonia de controladores PID foi escolhida apenas como base para aplicação dos algoritmos genéticos

Mutação Diferencial Condicional como proposta de otimização de Algoritmos Genéticos

3

9. O PID 9.1. Características..........................................................................................70 9.2. Formas de implementação do PID........................................................74 9.3. Processo de sintonia de um PID.............................................................77

Escolher critérios de desempenho...................................................77 Identificação de processo................................................................77 Aplicação de um método numérico..............................................78

Método de Cohen-Coon...........................................................78 Métodos de Ziegler-Nichols........................................................79 Crítica aos métodos tabelados.................................................80

10. APLICANDO OS AG NO CONTROLE CLÁSSICO 10.1. Como representar um controlador em genes?.................................80 10.2. Como avaliar um sistema em malha fechada..................................81 10.3. Fitness : somar ou multiplicar ?..............................................................82 10.4. Implementando o AG e o PID..............................................................83 10.5. Inicialização............................................................................................83 10.6. Geração..................................................................................................83 10.7. Laço.........................................................................................................83 10.8. Análise.....................................................................................................83 10.9. Saída Típica comentada......................................................................84 10.10. Considerações na elaboração do trabalho....................................87 10.11. Primeira abordagem na avaliação...................................................87 10.12. Índices IMEC, ITMEC, ITE, IER................................................................88

11. RESULTADOS E DISCUSSÕES 11.1. Com Diferencial e Oposto....................................................................91 11.2. Mutação Tradicional e com Oposto...................................................93 11.3. Com Diferencial mas sem Oposto.......................................................96 11.4. Tradicional e sem oposto......................................................................98 11.5. Comparação dos resultados.............................................................100

12. CONCLUSÃO.....................................................................................................................101 REFERÊNCIAS BIBLIOGRÁFICAS..............................................................................................102 ANEXO I – A Ferramenta SciLab............................................................................................103 ANEXO II – Script Completo da simulação..........................................................................105 ANEXO III – Resposta de outros métodos de sintonia........................................................120

Page 4: Mutação Diferencial Condicional como proposta de ... · de freqüência. A sintonia de controladores PID foi escolhida apenas como base para aplicação dos algoritmos genéticos

Mutação Diferencial Condicional como proposta de otimização de Algoritmos Genéticos

4

ÍNDICE DE FIGURAS

ILUSTRAÇÃO 1 – MARIPOSAS EM MANCHESTER........................................................................ 10 ILUSTRAÇÃO 2 – PERFIL DA ASA ................................................................................................... 17 ILUSTRAÇÃO 3 – CIRCUITO ELETRÔNICO.................................................................................... 17 ILUSTRAÇÃO 4 – FUNÇÃO A MAXIMIZAR ................................................................................... 19 ILUSTRAÇÃO 5 – FUNÇÕES DE PERTINÊNCIA FUZZY .................................................................. 19 ILUSTRAÇÃO 6 – CRUZAMENTO ENTRE GENES........................................................................... 23 ILUSTRAÇÃO 7 - GRÁFICO DA VELOCIDADE DO AG EM FUNÇÃO DO TAMANHO DA

POPULAÇÃO .......................................................................................................................... 26 ILUSTRAÇÃO 8 – FASES DO AG..................................................................................................... 28 ILUSTRAÇÃO 9 - AS PRIMEIRAS FASES DO LAÇO DE GERAÇÕES DO AG............................. 28 ILUSTRAÇÃO 10 - DISTRIBUIÇÃO DAS CHANCES DE SORTEIO NESSA POPULAÇÃO ........... 32 ILUSTRAÇÃO 11 – CRUZAMENTO ENTRE INDIVÍDUOS ............................................................... 34 ILUSTRAÇÃO 12 – MUTAÇÃO TRADICIONAL.............................................................................. 35 ILUSTRAÇÃO 13 – GRÁFICO DE FITNESS POR GERAÇÕES ....................................................... 40 ILUSTRAÇÃO 14 - USANDO A MUTAÇÃO DIFERENCIAL CONDICIONADA........................... 41 ILUSTRAÇÃO 15 - USANDO A MUTAÇÃO TRADICIONAL SOMENTE ....................................... 42 ILUSTRAÇÃO 16 – FITNESS EM FUNÇÃO DA GERAÇÃO ........................................................... 43 ILUSTRAÇÃO 17 - SAÍDA TÍPICA DE UMA SIMULAÇÃO DE AG – GRÁFICO DE FITNESS EM

FUNÇÃO DAS GERAÇÕES.................................................................................................... 45 ILUSTRAÇÃO 18 – FITNESS POR GERAÇÃO COM DELTA-FIT .................................................... 47 ILUSTRAÇÃO 19 – GRÁFICO DO IPQ E DO IPQL........................................................................ 48 ILUSTRAÇÃO 20 – ÓRBITAS AO REDOR DO MELHOR INDIVÍDUO ........................................... 51 ILUSTRAÇÃO 21 - USANDO A FERRAMENTA INVERSÃO ........................................................... 56 ILUSTRAÇÃO 22 – SISTEMA EM MALHA ABERTA......................................................................... 58 ILUSTRAÇÃO 23- SISTEMA COM LOOP........................................................................................ 58 ILUSTRAÇÃO 24– ESTRUTURA DE UM SISTEMA DE MALHA FECHADA..................................... 59 ILUSTRAÇÃO 25- INTERMITÊNCIA NO CONTROLE ON-OFF ...................................................... 61 ILUSTRAÇÃO 26 -SISTEMA ESTÁVEL - REFERÊNCIA (AZUL) E SAÍDA (LARANJA) .................... 62 ILUSTRAÇÃO 27 - SISTEMA INSTÁVEL - REFERÊNCIA (AZUL) E SAÍDA (LARANJA).................. 62 ILUSTRAÇÃO 28 -SISTEMA MARGINALMENTE ESTÁVEL ............................................................. 63 ILUSTRAÇÃO 29 - PRINCIPAIS CARACTERÍSTICAS NA RESPOSTA ............................................ 64 ILUSTRAÇÃO 30- SAÍDAS EM UM SISTEMA TÍPICO DE CONTROLE........................................... 65 ILUSTRAÇÃO 31- IAE : A PARTE HACHURADA É A ÁREA DO ERRO ENTRE SAÍDA (LINHA

MAIS GROSSA) E A REFERÊNCIA (LINHA MAIS FINA) ....................................................... 66 ILUSTRAÇÃO 32 – SISTEMA DE CONTROLE EM MALHA FECHADA ......................................... 67 ILUSTRAÇÃO 33 – MODELANDO O MOTOR CC........................................................................ 68 ILUSTRAÇÃO 34- AÇÃO DE CADA PARCELA DE CONTROLE DENTRO DO PID ................... 72 ILUSTRAÇÃO 35- EFEITO DO CONTROLE PROPORCIONAL NA SAÍDA DA PLANTA............. 72 ILUSTRAÇÃO 36- EFEITO DO CONTROLE INTEGRAL NA SAÍDA DO SISTEMA......................... 73 ILUSTRAÇÃO 37- EFEITO DO CONTROLE DERIVATIVO NA SAÍDA DO SISTEMA .................... 73 ILUSTRAÇÃO 38- ESTRUTURA DO FORMATO ISA DE PID ........................................................... 74 ILUSTRAÇÃO 39- ESTRUTURA DO ALGORITMO SÉRIE ................................................................ 75 ILUSTRAÇÃO 40- ESTRUTURA DO PID PARALELO ....................................................................... 75 ILUSTRAÇÃO 41- DIFERENTES FORMAS DE IMPLEMENTAR O PID ............................................ 76 ILUSTRAÇÃO 42- RELAÇÃO ENTRE OS PARÂMETROS DAS DIFERENTES FORMAS DE PID.... 76 ILUSTRAÇÃO 43– MODELO FODT................................................................................................. 77 ILUSTRAÇÃO 44 – GRÁFICOS TÍPICOS DE SAÍDA DO AG......................................................... 86 ILUSTRAÇÃO 45 – SAÍDAS TÍPICAS PARA O AG IMPLEMENTADO COM DIFERENCIAL E

OPOSTO................................................................................................................................... 93 ILUSTRAÇÃO 46 – SAÍDAS DO AG IMPLEMENTADO COM DIFERENCIAL MAS SEM

PREFERÊNCIA AO OPOSTO .................................................................................................. 98 ILUSTRAÇÃO 47 – SAÍDAS PARA AG IMPLEMENTADO COM MUTAÇÃO TRADICIONAL E

SEM PREFERÊNCIA AO OPOSTO.......................................................................................... 99 ILUSTRAÇÃO 48- EXEMPLO DE APLICAÇÃO DO SCICOS – SISTEMA EM BLOCOS ............ 103

Page 5: Mutação Diferencial Condicional como proposta de ... · de freqüência. A sintonia de controladores PID foi escolhida apenas como base para aplicação dos algoritmos genéticos

Mutação Diferencial Condicional como proposta de otimização de Algoritmos Genéticos

5

ILUSTRAÇÃO 49- EDITOR DE SCRIPTS DO SCILAB .................................................................... 104 ILUSTRAÇÃO 50- AMBIENTE DE EXECUÇÃO INICIAL ............................................................... 104 ILUSTRAÇÃO 51 – SAÍDA DO MOTOR EM MALHA ABERTA ,ENTRADA EM 1VCC .............. 120 ILUSTRAÇÃO 52 – DETALHE DO TEMPO MORTO APROXIMADO DO MOTOR .................... 121 ILUSTRAÇÃO 53 – APROXIMAÇÃO DE C-C PARA O MOTOR COMO “CAIXA PRETA” ... 122 ILUSTRAÇÃO 54 – SINTONIA USANDO C-C............................................................................... 123 ILUSTRAÇÃO 55 – ESFORÇO DE CONTROLE NA SINTONIA POR C-C .................................. 124 ILUSTRAÇÃO 56 – MAPA LGR DAS TRAJETÓRIAS DOS PÓLOS DE MALHA FECHADA NO

PLANO ‘S’.............................................................................................................................. 125 ILUSTRAÇÃO 57 – SAÍDA DO MOTOR USANDO Z-N................................................................ 126 ILUSTRAÇÃO 58 – ESFORÇO DE CONTROLE USANDO Z-N COM FODT............................... 127

ÍNDICE DE TABELAS

TABELA 1 – EXEMPLO DE POPULAÇÃO EM AG ......................................................................... 31 TABELA 2 – CHANCES DE SELEÇÃO BASEADO NO FITNESS..................................................... 32 TABELA 3-TABELA DE SINTONIA NUMÉRICA DE PID POR COHEN-COON ............................. 78 TABELA 4 – SINTONIA USANDO O MÉTODO DOS GANHOS ÚLTIMOS DE ZIEGLER-NICHOLS

.................................................................................................................................................. 79 TABELA 5 – VALORES A SEREM USADOS NO MÉTODO Z-N DE MALHA ABERTA................... 79 TABELA 6 – MÉDIA DAS SAÍDAS ENTRE DIFERENCIAL E TRADICIONAL (AMBAS COM

PREFERÊNCIA AO OPOSTO)................................................................................................. 89 TABELA 7 – MÉDIA DAS SAÍDAS ENTRE DIFERENCIAL E TRADICIONAL (SEM PREFERÊNCIA

AO OPOSTO) .......................................................................................................................... 90 TABELA 8 – MÉDIA DAS SAÍDAS ENTRE DIFERENCIAL COM E SEM PREFERÊNCIA AO

OPOSTO................................................................................................................................... 90 TABELA 9 – MÉDIA DAS SAÍDAS ENTRE MUTAÇÃO TRADICIONAL COM E SEM

PREFERÊNCIA AO OPOSTO .................................................................................................. 90

Page 6: Mutação Diferencial Condicional como proposta de ... · de freqüência. A sintonia de controladores PID foi escolhida apenas como base para aplicação dos algoritmos genéticos

Mutação Diferencial Condicional como proposta de otimização de Algoritmos Genéticos

6

RESUMO

Esse trabalho tem como objetivo apresentar o conceito da Mutação Diferencial Condicional, para a otimização da eficiência de algoritmos genéticos, quando comparado à mutação diferencial tradicional (ou ‘incremental’) ou mesmo a mutação tradicional. A análise do desempenho foi realizada através da implementação de um controlador PID , tendo sido feita a comparação dos resultados desta abordagem com as outras formas de mutação existentes. Foram desenvolvidas ferramentas auxiliares para análise de desempenho do próprio algoritmo, e para auxiliar e melhorar a evolução das gerações. Os resultados obtidos mostraram que estatisticamente, o uso da Mutação Diferencial Condicional e das ferramentas auxiliares elevou o desempenho do algoritmo genético como um todo.

Page 7: Mutação Diferencial Condicional como proposta de ... · de freqüência. A sintonia de controladores PID foi escolhida apenas como base para aplicação dos algoritmos genéticos

Mutação Diferencial Condicional como proposta de otimização de Algoritmos Genéticos

7

Abstract This work have how its goal to show the Conditional Differential

Mutation (also called ‘Triggered’ Differential Mutation) for the optimization of efficiency of genetic algorithm, when compared to the traditional differential mutation (or ‘creep’ mutation) or even the traditional mutation.

The analysis of performance was done thought the implementation of a PID controller, and there was made the comparison among the results of this approach and the other already developed mutation kinds.

It was developed auxiliary tools for the performance analysis of the genetic algorithm itself, and to keep and improve the evolution along the generations.

The results showed that statistically, the usage of Conditional Differential Mutation and the auxiliary tools lifted up the performance of the whole genetic algorithm.

Page 8: Mutação Diferencial Condicional como proposta de ... · de freqüência. A sintonia de controladores PID foi escolhida apenas como base para aplicação dos algoritmos genéticos

Mutação Diferencial Condicional como proposta de otimização de Algoritmos Genéticos

8

Introdução Os controladores estão presentes na maioria das plantas industriais atualmente. Eles permitem que o sistema siga uma referência ou regime de funcionamento de modo automático, corrigindo automaticamente o sistema quando o mesmo se desvia da posição original. Para que isso ocorra (e de maneira segura), esses controladores precisam ter suas configurações escolhidas de maneira correta, levando em consideração o tipo de equipamento que estão controlando e qual o desempenho esperado para o mesmo. Porém essa escolha depende e muito da experiência daqueles que irão instalar o controlador, e se torna extremamente complicada em situações envolvendo atrasos na resposta, máquinas lentas ou de comportamento não-linear. Para isso, propõe-se neste trabalho a aplicação de Inteligência Artificial (IA) na forma de Algoritmos Genéticos para realizara sintonia destes controladores automaticamente e de maneira ótima. Isso permite que o implementador humano apenas defina qual a planta a usar (seu modelo), o desempenho do controle feito e o tipo de controlador desejado. O sistema com IA então procura qual o melhor conjunto de configurações deste controlador para que o sistema se comporte conforme estipulado pelo humano. Neste trabalho escolheu-se ajustar um controlador tipo PID, muito corrente no meio industrial, podendo ser encontrado em muitos equipamentos que permitem realimentação, como CLP’s e inversores de freqüência. A sintonia de controladores PID foi escolhida apenas como base para aplicação dos algoritmos genéticos. Não é objetivo deste trabalho apresentar um novo método de sintonia de PID, e sim um novo método dentro dos Algoritmos Genéticos. Apesar disso, os resultados das sintonias foram superiores aos métodos convencionais e os resultados destes, apresentados como apêndice.

Page 9: Mutação Diferencial Condicional como proposta de ... · de freqüência. A sintonia de controladores PID foi escolhida apenas como base para aplicação dos algoritmos genéticos

Mutação Diferencial Condicional como proposta de otimização de Algoritmos Genéticos

9

4. OS ALGORITMOS GENÉTICOS

4.1. Idéia Básica – o Darwinismo [1]

Conceito de adaptação Endente-se por adaptação a capacidade de sobrevivência e reprodução de uma espécie num determinado ambiente. Os camelos, por exemplo, são animais adaptados à vida no deserto. Assim, são portadores de uma série de características que permitem a sua sobrevivência e reprodução naquele ambiente, como : - Resistência a perda de água - Capacidade de utilização de água metabólica - Resistência a variações internas de temperatura - Patas adaptadas para caminhar na areia das dunas - Resistência a seca, podendo ficar vários dias sem água

Exemplo clássico de adaptação Em Manchester na Inglaterra, em meados do século XIX, antes do processo de industrialização da cidade, era marcante o predomínio das mariposas claras em relação às mariposas escuras, ambas pertencentes à mesma espécie (Biston Betularia). A coloração clara constituía, na época, uma característica favorável, uma vez que permitia a camuflagem de mariposas claras nos claros troncos das árvores recobertas de liquens. Assim , era difícil a visualização por parte dos pássaros insetívoros, que então capturavam e devoravam as mariposas escuras, facilmente identificáveis. Após a industrialização da cidade, os liquens foram praticamente eliminados pela poluição ambiental, e a fuligem das fábricas tornou o ambiente (e as cascas das árvores) mais escuro. Nessa nova situação, as mariposas escuras passaram a se camuflar melhor, e dentro de algum tempo, constituíam o grupo predominante. Deste exemplo pode-se concluir que uma mesma característica, favorável em um ambiente, pode se tornar desfavorável em outro. O conceito de adaptação está intimamente ligado ao tipo de ambiente onde a espécie desenvolve suas atividades.

Page 10: Mutação Diferencial Condicional como proposta de ... · de freqüência. A sintonia de controladores PID foi escolhida apenas como base para aplicação dos algoritmos genéticos

Mutação Diferencial Condicional como proposta de otimização de Algoritmos Genéticos

10

Ilustração 1 – Mariposas em Manchester [1]

Darwin e o mecanismo evolutivo

Em 1859, o naturalista Charles Robert Darwin (1809-1882) expôs em seu livro A origem das Espécies suas idéias a respeito do mecanismo de transformação das espécies. Observações preliminares de Darwin Inicialmente, Darwin considerou observações a partir das quais concluiu algumas de suas idéias evolucionistas: -Os organismos vivos produzem grande quantidade de unidades reprodutivas; no entanto, o número de indivíduos permanece mais ou menos constante. Concluiu então, que na Natureza deveria haver uma forte competição, uma luta pela vida, na exploração dos recursos oferecidos pelo ambiente, tais como disponibilidade de alimento, espaço, luminosidade,etc. -Os organismos de uma população natural são diferentes entre si, apresentando variações na forma e no comportamento. Essas variações podem ser transmitidas de uma geração parra outra. Charles Darwin partiu da Inglaterra, a bordo do navio HMS Beagle em dezembro de 1831 e retornou em outubro de 1836.Nessa viagem, ele percorreu entre outros lugares, a costa oeste da América do Sul, algumas ilhas dos mares do Sul (especialmente Galápagos), o Brasil e o estreito de Magalhães.

Page 11: Mutação Diferencial Condicional como proposta de ... · de freqüência. A sintonia de controladores PID foi escolhida apenas como base para aplicação dos algoritmos genéticos

Mutação Diferencial Condicional como proposta de otimização de Algoritmos Genéticos

11

A seleção natural Alicerçado em suas observações preliminares, Darwin considerou que certas características poderiam contribuir para a sobrevivência e reprodução de certos indivíduos num determinado ambiente, constituindo-se, portanto, como variações “favoráveis”. Indivíduos portadores de variações “desfavoráveis” por sua vez, teriam grandes dificuldades de sobreviver e seriam gradativamente extintos desse ambiente. Assim , diferenças individuais já existentes entre os indivíduos de uma mesma espécie seriam selecionadas naturalmente pelo ambiente. Então o ambiente, como fator de seleção, tenderia a : -Fixar os indivíduos portadores de variações favoráveis -Eliminar os portadores de variações desfavoráveis Dessa maneira a Natureza iria, ao longo das gerações, “aprimorando” a espécie e “contribuindo” com a sua adaptação a um determinado ambiente.

Neodarwinismo: ampliação da teoria de Darwin Apenas no século XX, com o redescobrimento dos trabalhos de Mendel e com o aprofundamento do conceito de genes, foi possível determinar os principais responsáveis pela variedade nos seres vivos: as mutações e as recombinações gênicas (vindas do Cruzamento entre os genes dos pais, gerando um DNA novo, passado ao filho). O neodarwinismo constitui uma ampliação das idéias de Darwin, explicando as causas da variedade de seres vivos, mesmo que dentro da mesma espécie. As mutações e recombinações gênicas aumentam a variedade genética de uma população, enquanto que a seleção natural diminui essa variedade, a medida que “filtra” apenas os mais adaptados, dando preferência de sobrevivência a estes e extinguindo os demais.

Mendel e a Genética Genética é o ramo da Biologia que estuda o mecanismo de transmissão das características de uma espécie passadas de uma geração para outra. É a ciência da hereditariedade. As características de uma espécie são condicionados pelos genes, estruturas hereditárias presentes nos cromossomos do núcleo da célula. O gene é definido como um pedaço DNA cromossômico capaz de determinar a síntese de uma proteína.O tipo de proteína a ser formulada depende do código estabelecido pela seqüência de bases que esse gene possui.

Page 12: Mutação Diferencial Condicional como proposta de ... · de freqüência. A sintonia de controladores PID foi escolhida apenas como base para aplicação dos algoritmos genéticos

Mutação Diferencial Condicional como proposta de otimização de Algoritmos Genéticos

12

Cada cromossomo pode abrigar inúmeros genes. O local onde cada gene se situa (o “endereço” do gene) é chamado lócus gênico. Lócus vem do latim locus que significar “lugar” , e seu plural é escrito loci, “lugares”. Um gene pode assumir diversos valores, e para cada um desses valores existe uma característica do indivíduo que os contêm. Por exemplo,a cor dos olhos na raça humana é definida por um gene. Quando esse gene tem um valor , os olhos do indivíduo são claros. Quando apresenta outro valor, apresenta olhos castanhos ou negros. Realizando cruzamentos entre ervilha-de-cheiro (Pisum sativum) durante cerca de oito anos, o padre Gregor J. Mendel (1822-1884) constatou que as características estudadas manifestavam-se nas ervilhas descendentes segundo regras matemáticas que ele estipulou, e de acordo com as ervilhas-pais usadas no cruzamento. Mendel foi portanto, o primeiro a associar a hereditariedade (bem como suas regras) à informações contidas nas células do próprio indivíduo.

Page 13: Mutação Diferencial Condicional como proposta de ... · de freqüência. A sintonia de controladores PID foi escolhida apenas como base para aplicação dos algoritmos genéticos

Mutação Diferencial Condicional como proposta de otimização de Algoritmos Genéticos

13

COPIANDO A NATUREZA - OS ALGORITMOS GENÉTICOS [2],[3] O Algoritmo Genético (AG) é uma ferramenta de Inteligência Artificial (IA) para otimizar estruturas, cujo princípio de funcionamento é inspirado nas teorias de evolução de Charles Darwin. A teoria por ele proposta indica que dentro de uma população, os indivíduos mais bem adaptados ao meio têm maior chance de sobrevivência, e os mais fracos aos poucos desaparecerão, geração após geração, da população, até que a maior parte dela se pareça muito com o(s) indivíduo(s) mais forte(s). A idéia central da IA é fazer com que elementos artificiais (por exemplo, os computadores) consigam resolver problemas. O que o AG faz é representar as possíveis respostas do problema na forma de indivíduos com um código genético (DNA) , o meio ambiente é o problema a ser resolvido e sua adaptação é chamada de fitness, que é a medida numérica dessa adaptação. Quando é dito “DNA” dentro do AG, deve ser entendido como estruturas dentro da programação capazes de guardar dados de forma ordenada e posicionada dentro da memória. A forma mais básica de estrutura dentro da programação usual são os vetores e matrizes. Assim como as teorias naturais de Darwin, o AG não trabalha com um único indivíduo, e sim com uma população inteira de possíveis soluções. Assemelha-se muito a um processo de seleção dentro de uma empresa. Uma quantidade grande de possíveis contratados se apresenta, e mediante um padrão (perfil), alguns são selecionados e os demais descartados. Depois, mais triagens são feitas deixando o perfil cada vez mais exigente até que apenas um ou dois candidatos resta para contratação. O que o AG faz é exatamente o acima descrito, tendo como “perfil” o quão próximo da solução do problema o candidato está. Exemplo de aplicação – encontrando raízes de uma equação Por exemplo,se é necessário resolver uma equação do segundo grau, achando suas raízes : Y=ax²+bx+c É sabido que as raízes de uma equação são todos os valores que, quando substituídos na equação original, anulam sua imagem (no caso, os valores de X que fazem Y=0).

Page 14: Mutação Diferencial Condicional como proposta de ... · de freqüência. A sintonia de controladores PID foi escolhida apenas como base para aplicação dos algoritmos genéticos

Mutação Diferencial Condicional como proposta de otimização de Algoritmos Genéticos

14

É evidente que podem ser encontradas através da fórmula de Bháskara, todavia para equações polinomiais de graus maiores ou equações envolvendo termos transcendentais (como seno, cosseno, exponenciais ou logaritmos) fórmulas prontas ou métodos analíticos se tornam impraticáveis ou mesmo nem existem. Sendo uma equação polinomial de grau 2, sabe-se que é possível encontrar 2 raízes (mesmo que sejam iguais), chamadas X1 e X2. Uma abordagem em algoritmos genéticos poderia representar essa solução como um genoma de 2 genes, X1 e X2: [ X1 | X2 ] É gerada uma população grande e aleatória de indivíduos, com X1 e X2 completamente diversos. Todavia, alguns quando substituídos resultarão em um valor mais próximo de zero do que outros. Pode-se dizer, portanto, que esses são os mais bem adaptados ao problema (equação) e com certeza passarão para próxima geração. Então, ao final de N gerações, existirá um indivíduo cujo DNA contém X1 e X2 tais que, quando substituídos na equação, retornem zero ou um valor muito próximo (neste problema de achar raízes, o quão próximo de zero é a medida do ‘fitness’ do indivíduo). Exemplo : a equação y=x ² - 2x +1 : Resolvendo por Bháskara encontramos as raízes X1=+1 e X2= -1. Logo, se fosse preciso resolver essa equação usando algoritmos genéticos, seria possível representar essa solução exata como o indivíduo “ideal”, tendo o seu DNA representado pelo vetor: [ +1 | -1 ] É claro que a priori esse indivíduo ideal não é conhecido, sendo este o motivo original que levou ao AG como meio de resolução da equação. Mas, apesar de não ser conhecido, sabe-se que quanto mais próximos desse ideal (desconhecido) os indivíduos estiverem, mais próximo de zero serão os valores de Y correspondentes. Essa forma indireta de medir o quão próximo do ideal e´uma outra possível definição de fitness. Um indivíduo cujo DNA seja [ 2, 0] por exemplo, teria X1= 2 e X2=0 Cujas imagens na equação original são Y(X1)=+1 e Y(X2)=+1

Page 15: Mutação Diferencial Condicional como proposta de ... · de freqüência. A sintonia de controladores PID foi escolhida apenas como base para aplicação dos algoritmos genéticos

Mutação Diferencial Condicional como proposta de otimização de Algoritmos Genéticos

15

Ou seja, o par de valores [2, 0] está mais longe de ser uma solução do que o par [1, -1] (solução ideal). Como se deseja encontrar as raízes da equação, quanto mais próximos de zero forem os valores Y(X1) e Y(X2), tanto melhor é esse par [X1,X2] ou melhor é a qualidade da solução proposta. Isso pode ser traduzido , por exemplo , como Qualidade = Y(X1)² + Y(X2)² Essa “qualidade” mede na verdade a adaptação do indivíduo cujo DNA é [X1, X2] e já foi apresentada nas páginas acima como “fitness”.

VANTAGENS DO AG [2] Pela maneira como funcionam, os AG reúnem as seguintes vantagens: - Generalidade : Os AG simulam a natureza em um de seus mais fortes aspectos : a adaptabilidade; Visto que a representação e a avaliação das possíveis soluções são as únicas partes (do total de operações implementadas em um AG) que obrigatoriamente requisitam conhecimento prévio do problema abordado e suas restrições,basta a alteração destas para portá-los a outros casos. A função de um programador de AG não é de que forma chegar a uma solução, mas sim como essas soluções deveriam se parecer. -Paralelismo explícito – como cada indivíduo existe isoladamente e é avaliado (fitness) individualmente, é fácil transportar o AG para uma plataforma computacional com multiprocessamento. -Busca subjetiva : uma vez que o AG não trabalha com os parâmetros em si, mas com o DNA todo, os que tiverem segmentos de genes favoráveis serão perpetuados. Assim, os AG otimizam a solução do problema unindo subjetivamente fragmentos de DNA favoráveis em indivíduos diferentes, fazendo uma sobreposição de ‘suspeitas’ ou candidatos ‘promissores’. -Facilidade no uso de restrições : É possível adicionar diversas restrições durante a avaliação dos indivíduos, bastando incluí-las na seção do código que trata o fitness. Essas restrições podem ter pesos diferentes e aplicações diferentes.

Page 16: Mutação Diferencial Condicional como proposta de ... · de freqüência. A sintonia de controladores PID foi escolhida apenas como base para aplicação dos algoritmos genéticos

Mutação Diferencial Condicional como proposta de otimização de Algoritmos Genéticos

16

Assim como na Natureza, ocorrem interações genéticas entre os indivíduos da população, de modo que :

1-candidatos com desempenho mediano possam unir as suas partes fortes para gerar um terceiro indivíduo ainda mais forte

2-candidatos com desempenho ruim de alguma forma alterem

seu DNA na tentativa de assim se tornarem melhores 3-candidatos bons possam se manter na população

Essas interações são respectivamente, cruzamento , mutação e cópia, que funcionam de modo idêntico às suas correspondentes na Natureza. Porém no lugar das proteínas Adenina, Guanina, Tiamina e Citosina do DNA, tem-se valores numéricos (0.14, 2.1,etc.). Se fosse desejado encontrar o valor máximo da parábola do exemplo anterior, o fitness com certeza não seria o mesmo, pois desta vez é desejado maximizar o valor de Y(X) ,e não anulá-lo como no exemplo. Daí pode ser tomada a noção de que o fitness está diretamente ligado ao problema a ser resolvido e com o tipo de solução que se pretende encontrar. Na verdade, é mais realista dizer que o fitness nasce, emerge do problema, tal seu grau de ligação com ele.E isso fica evidente com os exemplos anteriores.

Requisitos mínimos para aplicar os AG na resolução de problemas:

- Identificar quais informações são necessárias para resolver o problema e quais são as informações a obter do mesmo a fim de solucioná-lo

- Encontrar uma representação para essas informações na forma

de genes (vetores ou matrizes , sejam numéricas ,alfanuméricas ou booleanas)

- Um modo de simular as possíveis soluções geradas, de forma

seqüencial, a saber uma simulação em “batelada” (Batch).

- Método de avaliação de quão boas são as soluções encontradas

(fitness)

Todos esses passos devem ser feitos iterativamente por um programa maior , até que a solução encontrada tenha desempenho suficiente para o programador.

Page 17: Mutação Diferencial Condicional como proposta de ... · de freqüência. A sintonia de controladores PID foi escolhida apenas como base para aplicação dos algoritmos genéticos

Mutação Diferencial Condicional como proposta de otimização de Algoritmos Genéticos

17

ALGUMAS APLICAÇÕES ATUAIS [2],[4],[9]

Otimização de Perfis (aerodinâmica de aviões-caça, carros de corrida). Pode-se representar o perfil de uma asa de avião dentro de um AG definindo um DNA com 3 valores : -Ângulo frontal da asa -Ângulo de saída da asa -Comprimento inferior da asa Conforme desenho abaixo

Ilustração 2 – Perfil da asa

E esses valores podem ser otimizados de acordo com critérios como força de arraste, força de sustentação a uma velocidade final,etc. Geração de circuitos eletrônicos [11] No design de circuitos para casamento de impedâncias ou com outras características elétricas, pode-se montar uma rede de elementos passivos ligados entre si, conforme a figura abaixo:

Ilustração 3 – Circuito eletrônico

Cada elemento desses pode ser um indutor, um capacitor ou resistor.

Page 18: Mutação Diferencial Condicional como proposta de ... · de freqüência. A sintonia de controladores PID foi escolhida apenas como base para aplicação dos algoritmos genéticos

Mutação Diferencial Condicional como proposta de otimização de Algoritmos Genéticos

18

De acordo com o que cada um for, e com os valores, eles terão um comportamento frente a uma tensão de entrada Vin, gerando uma tensão de saída Vout. Define-se, para um determinado Vin, qual será o Vout desejado. A partir daí, pode-se representar cada uma dos elementos passivos como um DNA de 5 genes, cada um contendo um número complexo. Sabendo que um resistor pode ser expresso na forma complexa como R = R i+ 0 j Os capacitores , como C = 0 i - Xc j E os indutores, como L = 0 i + XL j Onde Xc e XL são os valores da reatância capacitiva e indutiva respectivamente, pode-se guardar cada um desses números complexos em um gene, dentro do DNA de 5 genes: [ Z1 Z2 Z3 Z4 Z5] E simulando cada um deles em um simulador de eletrônica (por exemplo, o SPICE) pode-se separar os que tiverem Vout mais próximos do Vout desejado, quando excitados na entrada com Vin.

Resolução de equações transcendentais [9] Seja a equação

= 32

xsin

xsin

ey Equação 1

Cujo gráfico é conforme a Figura 4. Deseja-se saber o ponto de máximo global da mesma dentro do intervalo -10 a 10. Existe um X tal que Y(x) é o maior valor dentro deste intervalo. Pode-se codificar os indivíduos em um DNA com 2 genes: [ X1 X2] onde X1 é representa a unidade ou a parte inteira de X e X2 representa a parte fracionária de X. Por exemplo, X=4,3 resulta em X1=4 e X2=3 A simulação é feita usando X=X1 + X2/10 Fitness = Y(X)

Page 19: Mutação Diferencial Condicional como proposta de ... · de freqüência. A sintonia de controladores PID foi escolhida apenas como base para aplicação dos algoritmos genéticos

Mutação Diferencial Condicional como proposta de otimização de Algoritmos Genéticos

19

Otimização de Funções de Pertinência em lógica nebulosa (Fuzzy) [7] Sem entrar em detalhes dentro da lógica fuzzy, basta saber que ela realiza inferências e operações lógicas com valores imprecisos ou com graus de certeza difusos, bem como valores lingüísticos como “quente”, “razoavelmente quente”,etc. E para isso ela usa funções chamadas “funções de pertinência”, que retornam ao programa o quanto um determinado valor (por exemplo, de temperatura) se encaixa nos conjuntos lingüísticos definidos (por exemplo, conjunto das temperaturas ‘quentes’, ‘frias’, ‘mornas’,etc). Essas funções (no formato tradicional) tem a forma de triângulos, onde altura e ângulo de abertura desses pode ser otimizadas (fig. 5) Uma possível aplicação de AG sobre essa estrutura seria codificar esses triângulos em DNA’s com 3 genes: [ Altura Ângulo de abertura Ponto Central ] [ “A” “H” “Xo” ]

Ilustração 4 – Função a maximizar

Ilustração 5 – Funções de pertinência fuzzy

Page 20: Mutação Diferencial Condicional como proposta de ... · de freqüência. A sintonia de controladores PID foi escolhida apenas como base para aplicação dos algoritmos genéticos

Mutação Diferencial Condicional como proposta de otimização de Algoritmos Genéticos

20

4.2. TOPOLOGIA DOS ALGORITMOS GENÉTICOS Por topologia pode-se entender a forma como o AG é organizado, qual o formato e a seqüência das etapas dentro dele.

Seqüência clássica [2],[12],[10] A seqüência clássica de iteração – chamada também de Loop de Gerações ou Laço de gerações – é a base de todos os AG atuais, e segue o modelo:

1 - Geração da população inicial, definindo intervalo e codificação 2 - Avaliação dos indivíduos através de uma função (fitness) 3 - Classificação e separação dos melhores 4 - Aplicação de operadores genéticos (OPGEN) 5 - Geração atual (filhos) substitui a anterior (pais) 6 - Repetem-se os passos de 2 a 5 até atingir o objetivo

Como objetivo ou critério de parada, pode-se definir : -Número máximo de iterações (gerações) - Valor mínimo de fitness Neste trabalho adotou-se como critério o número de iterações. Para cada uma das etapas acima existem inúmeras maneiras de implementação, cada uma delas apresentando uma característica que se adéqua melhor ao tipo de problema a ser resolvido pelo AG.Uma escolha errada ao formatar uma etapa, e o desempenho global do AG pode ser comprometido, tanto na rapidez com a qual ele encontra a solução como no quão próximo ele consegue chegar da solução ideal. As seis etapas acima serão estudadas e algumas de suas variantes explanadas adiante.

Page 21: Mutação Diferencial Condicional como proposta de ... · de freqüência. A sintonia de controladores PID foi escolhida apenas como base para aplicação dos algoritmos genéticos

Mutação Diferencial Condicional como proposta de otimização de Algoritmos Genéticos

21

INTERVALO E CODIFICAÇÃO [10][2][14]] Esta é a parte mais importante, pois é aqui que é definida a representação dos indivíduos, quantos genes cada um irá ter e o que será guardado dentro desse gene (números, valores booleanos tipo SIM e NÃO, valores tipo caractere representando uma direção como ‘N’,’S’, etc.). É aqui que será decidido como o AG irá ajudar a resolver o problema proposto. Se o programador não encontra uma maneira de representar as variáveis do problema na forma de genes, não adianta nem mesmo seguir com as demais etapas, pois quais genes elas iriam tratar? Primeiro, é preciso atentar para que tipo de informação será guardado nos genes. Que informações são relevantes para resolver o problema? No exemplo da parábola , apenas duas informações eram necessárias para resolver o problema : X1 e X2. Portanto, foi escolhido um DNA contendo esses dois genes. Considere o famoso Problema do Caixeiro Viajante (PCV), onde é necessário escolher o itinerário do caixeiro de modo que ele cumpra as cidades no menor tempo. Suponha também que ele precise percorrer quatro cidades : A, B, C e D. A informação necessária para uma solução é a ordem em que essas cidades são visitadas. Pode-se representar uma solução com um DNA de 4 genes :

G1 G2 G3 G4 Onde G1 é o primeiro gene, representa a 1ª. cidade a ser visitada. G2 é o segundo gene, representa a segunda cidade, visitada após a primeira E assim sucessivamente. Cada gene pode assumir os valores A,B, C ou D (obviamente não ao mesmo tempo), resultando em um indivíduo, por exemplo :

B C D A Onde aqui a rota do caixeiro seria B CDA Como é possível observar nos exemplos anteriores, não só o formato do DNA muda, como também o tipo de valor que seus genes assumem. No caso do Caixeiro, foi usado um gene do tipo caractere, guardando uma letra, representando a cidade. No caso da parábola, os genes continham valores numéricos que representavam as possíveis raízes da equação de segundo grau proposta.

Page 22: Mutação Diferencial Condicional como proposta de ... · de freqüência. A sintonia de controladores PID foi escolhida apenas como base para aplicação dos algoritmos genéticos

Mutação Diferencial Condicional como proposta de otimização de Algoritmos Genéticos

22

O intervalo em que cada valor pode variar (no caso de números reais) ou o conjunto de símbolos/caracteres (como de ‘A’ a ‘Z’, “Sorocaba, Itu, Iperó”,etc. no caso de genes não numéricos) também é relevante, mas depende de como o AG irá lidar com eles. Por exemplo, no caso da parábola, poder-se-ia fixar X1 e X2 variando entre -5 e 5, onde acredita-se ser o intervalo em que esteja a solução. Ou no caso do caixeiro, o conjunto de cidades poderia ser maior, contendo todas as cidades intermediárias, bastando que ele chegasse em um determinado lugar ou cumprisse o itinerário. Nesse caso, fica mais fácil realizar operações como cruzamento, cópia e mutação quando usamos letras e não há cadeias de caracteres (strings) a serem tratadas. Uma representação possível (somente em caso de genes numéricos), é guardar a informação no gene na forma de uma porcentagem. Por exemplo, se o intervalo fosse de 0 a 150 para um determinado gene, quando este estivesse valendo 0,75, significaria que seu valor está a 75% do intervalo ou seja, de 112,5 unidades. Esse tipo de representação, fixando o gene entre 0 e 1 (0 para o menor valor do intervalo e 1 para o valor máximo do intervalo ou seja, 100%), é muito útil pois pode-se normalizar toda a programação e preparar diversas ferramentas e operações sabendo já de antemão que, não importa qual o problema a ser solucionado ou o intervalo escolhido, qualquer gene estará sempre entre 0 e 1.Isso permite que qualquer alteração (no problema original , intervalo ou mesmo no cálculo do fitness) dispense alterar o restante do código, tentando readequar comparações, subtrações,etc. aos novos números gerados. Se é usada uma codificação exageradamente complexa (por exemplo, com genes redundantes ou em excesso), ou incompleta demais para representar uma solução-candidata (por exemplo, faltando informações) podemos comprometer, respectivamente, o tempo de execução e a convergência para uma solução.

Page 23: Mutação Diferencial Condicional como proposta de ... · de freqüência. A sintonia de controladores PID foi escolhida apenas como base para aplicação dos algoritmos genéticos

Mutação Diferencial Condicional como proposta de otimização de Algoritmos Genéticos

23

REAIS OU BINÁRIOS ? [2],[10]

Existem duas vertentes dentro da representação do problema na forma de genes : Uma usando genes contendo números reais e trabalhando aritmeticamente com eles; Computacionalmente isso se traduz em vetores de N posições, cada uma contendo um número real, do tipo FLOAT ou DOUBLE. E outra usando genes binários e tratando-os de forma binária.

Ilustração 6 – Cruzamento entre genes

• Usar números reais aproxima muito mais o programa e o programador da realidade do problema tratado; É mais fácil rastrear o funcionamento do programa e visualizar imediatamente o significado de um gene ou DNA.

• É melhor pois é mais próxima da linguagem natural do ser humano e da realidade fracionária da natureza.

• Representação por números reais (ponto flutuante) é mais adequada em problemas de otimização com variáveis sobre domínio contínuo;

• Em particular em grandes domínios onde a representação binária requer um longo cromossoma:

• Ex: 100 variáveis, [-500,500], 4 casas decimais = 2400 bits • Representação por reais é mais rápida na execução (não há

decodificação nem tratamento bit a bit); • Representação por reais oferece maior desempenho pode ser

melhorado com operadores específicos ao problema; • Na representação por reais, dois pontos próximos um ao outro no

espaço de representação, estão também próximos no espaço do problema;

Page 24: Mutação Diferencial Condicional como proposta de ... · de freqüência. A sintonia de controladores PID foi escolhida apenas como base para aplicação dos algoritmos genéticos

Mutação Diferencial Condicional como proposta de otimização de Algoritmos Genéticos

24

No AG clássico, um conjunto (no caso de programas, uma matriz) de indivíduos é gerado, jogando um valor aleatório em cada gene, de modo a criar uma população bem diversificada. Novamente vê-se o quão importante é projetar o gene (quando for do do tipo numérico) entre 0 e 1. Isso permite padronizar toda a programação do script , que irá tratar sempre números dentro de um intervalo definido. As funções que geram números aleatórios implementadas nas linguagens tradicionais de programação (como C, Pascal , Delphi,etc.) o fazem entre 0 e 1. Deste parágrafo em diante – para simplificação – sempre que for mencionado número “aleatório” subentendam-se valores gerados por algoritmos das linguagens de programação atuais que, como se sabe, são chamados pseudo-aleatórios (são funções que geram seqüências periódicas muito longas, e que para a maioria das aplicações podem ser consideradas aleatórias). Caso o gene seja do tipo alfanumérico, podem ser usadas duas abordagens: 1º) No caso de genes contendo letras, cria-se uma lista ordenada, e guarda-se no vetor-DNA do indivíduo o valor do índice onde pode ser encontrado o caractere desejado. 2º) Com genes representando textos (strings) usa-se o mesmo recurso da lista ordenada, mas em cada posição existe um texto. Como exemplo, seja a lista : [“Sorocaba” , “Itu” , “Votorantim”, “Salto”]. Pode-se dizer que “Itu” está na segunda posição nessa lista, ou seja, tem índice 2. O mesmo vale para “Sorocaba”, índice 1. Se fosse desejado traçar a menor rota entre essas cidades, ao invés de guardar todos esses textos para cada indivíduo, guarda-se somente os índices correspondentes. [1 4 2 3] pode representar [“Sorocaba”, “Salto”, “Itu”,”Votorantim”] Desde que durante os cálculos de distância o programa use esses índices para identificar qual é a cidade referida.

Page 25: Mutação Diferencial Condicional como proposta de ... · de freqüência. A sintonia de controladores PID foi escolhida apenas como base para aplicação dos algoritmos genéticos

Mutação Diferencial Condicional como proposta de otimização de Algoritmos Genéticos

25

Isso permite inclusive o uso de DNA’s híbridos, onde cada lócus no vetor representa um dado de tipo diferente. O primeiro lócus pode ser um número puro, que representa algum valor numérico do problema, e um segundo lócus bem ao lado pode – apesar de também ser um número – fazer referência a dados do tipo string, através dessa tática de usá-lo como índice de uma lista. A qualidade da rotina de geração de números aleatórios (ou randômicos) é muito exigida nos AG. Durante a geração da população inicial e depois, durante as operações genéticas entre os indivíduos, essas rotinas são chamadas consecutivamente, e uma grande dependência dos ciclos do relógio ou um período curto de repetição podem criar populações muito homogêneas e semelhantes. Voltando ao tópico principal, a geração da população inicial geralmente se dá na forma de matriz, com duas abordagens possíveis: Cria-se uma matriz com “N” vetores , tantos quanto forem os indivíduos. Em cada vetor dessa matriz está o “vetor-DNA” do indivíduo e logo depois um lócus contendo o valor do fitness desse indivíduo, [ G1 , G2 , G3 , G4 , ......., Gn | Fitness ] Vetor-DNA

Do indivíduo G1, G2,… Gn são os genes do indivíduo G.Nessa formação o fitness do indivíduo faz parte da mesma matriz do DNA. Ou então , tem-se a segunda opção : guardar os vetores-DNA em uma matriz e o fitness em um vetor separado:

Essa variação torna mais fácil as operações genéticas, já que ao contrário da primeira, não é necessário se preocupar em não misturar os valores de fitness com os valores dos genes durante o cruzamento, mutação,etc. Porém ao ordenar os indivíduos,deve-se ordenar as duas matrizes (DNA e fitness) ao mesmo tempo, o que pode ser inconveniente.

Fit-G

Fit-H

Fit-I

Fit-J

G1 G2 G3 ...........Gn

H1 H2 H3 ...........Hn

I1 I2 I3 .............In

J1 J2 J3 .............Jn

Page 26: Mutação Diferencial Condicional como proposta de ... · de freqüência. A sintonia de controladores PID foi escolhida apenas como base para aplicação dos algoritmos genéticos

Mutação Diferencial Condicional como proposta de otimização de Algoritmos Genéticos

26

O tamanho da população A quantidade de indivíduos gerada e mantida durante as gerações depende muito de como serão feitas as etapas do algoritmo genético, que tipos de operadores genéticos serão usados e como serão implementados cada um deles. Populações pequenas implicam em baixa diversidade genética e poucos resultados possíveis ao escolher aleatoriamente os indivíduos para serem cruzados, copiados e mutados. Conforme será visto adiante, isso retarda a convergência do AG, levando muito mais gerações para atingir o resultado. Por sua vez, populações muito grandes esbarram no tempo muito grande de processamento, já que cada indivíduo deve ser simulado ou calculado, avaliado e depois eles devem ser ordenados em ordem decrescente de desempenho (fitness). Esse comportamento pode ser traduzido na figura 7:

Ilustração 7 - Gráfico da velocidade do AG em função do tamanho da população

Encontrar essa faixa ideal vem de experiência com AG ou com tentativa e erro até definir um tamanho ideal de população, ao menos o mínimo para que seja encontrada uma solução ótima em um tempo razoável.

Page 27: Mutação Diferencial Condicional como proposta de ... · de freqüência. A sintonia de controladores PID foi escolhida apenas como base para aplicação dos algoritmos genéticos

Mutação Diferencial Condicional como proposta de otimização de Algoritmos Genéticos

27

AVALIAÇÃO DOS INDIVÍDUOS (fitness) A parte fundamental depois da codificação é a maneira como avaliar quais são os melhores indivíduos da geração atual dentro do loop de gerações do AG. Já foi dito que uma codificação muito grande ou pequena compromete o desempenho do algoritmo. Porém, ter uma codificação bem feita é inútil se não existe uma maneira inteligente e planejada de se classificar os indivíduos, separando os melhores dos piores. É necessário definir quais aspectos da solução são preferidos ou, caso haja mais de um, qual a prioridade ou “peso” de cada um deles. Problemas típicos onde os AG entram são os de otimização, que envolvem maximizar ou minimizar uma determinada grandeza ou valor do problema. Como exemplo de minimização, pode-se pensar no problema do caixeiro viajante (PCV), onde é necessário definir a melhor rota entre as cidades por onde ele pode passar - ainda sim passando por todas pela qual ele deve passar. Essa “melhor rota” pode ser a que leva o menor tempo, ou a que percorre a menor distância (supondo que tempo não seja problema). Como maximização, pode-se usar como exemplo o número de caixas dentro de um container, arranjando-as da melhor maneira possível. Isso ajuda diminuindo o custo dos fretes e o volume de cada pedido a ser entregue. Então, uma vez que está definido qual o objetivo (maximizar ou minimizar), monta-se uma função (ou uma rotina) que usa os parâmetros do indivíduo (genes do DNA) para simular seu comportamento. Esse “comportamento” pode ser uma saída do sistema simulado, como tensão em um ponto do circuito (supondo que a simulação é eletrônica), a resistência aerodinâmica (supondo que é um ensaio de fluidos, dentro da otimização de um perfil de asa de avião) ou mesmo uma tabela, se é feita a adaptação de uma curva a um conjunto de pontos. Para isso é importante que o programa usado para simular seja capaz de realizar simulações em lote ou batelada (Batch simulation, em inglês), sem que seja necessário a intervenção do programador ordenando cada uma das simulações manualmente. O programa portanto, deve ser capaz de, a partir de uma lista de indivíduos, gerar automaticamente uma lista de resultados, simulando um de cada vez.

Page 28: Mutação Diferencial Condicional como proposta de ... · de freqüência. A sintonia de controladores PID foi escolhida apenas como base para aplicação dos algoritmos genéticos

Mutação Diferencial Condicional como proposta de otimização de Algoritmos Genéticos

28

Ilustração 8 – Fases do AG

Pela figura acima pode-se perceber as fases intermediárias que compõem a geração da população inicial e avaliação dos indivíduos. A simulação em batelada (lotes) toma um DNA de cada vez da matriz de indivíduos, como em uma lista – e também como lista retorna o resultado de cada um deles. É importante destacar que o tempo de simulação e a resolução ou precisão da mesma depende do problema a ser resolvido pelo AG. Especificar intervalos muito grandes de simulação e/ou uma precisão muito alta, sem ser necessário, com certeza irá gerar um AG muito lento e pouco prático, já que o tempo total de cada loop de geração do AG é a soma do tempo de cada uma das seis etapas já mencionadas. Por exemplo, na equação de 2º grau anterior, pode-se definir como simulação a substituição dos valores de X candidatos a solução para encontrar os valores de Y(X).

Ilustração 9 - As primeiras fases do laço de gerações do AG

Page 29: Mutação Diferencial Condicional como proposta de ... · de freqüência. A sintonia de controladores PID foi escolhida apenas como base para aplicação dos algoritmos genéticos

Mutação Diferencial Condicional como proposta de otimização de Algoritmos Genéticos

29

Na figura acima se pode perceber a distinção entre as primeiras fases do loop de gerações de um AG. Primeiro, separa-se um indivíduo para a análise. Passa-se então a fase de contextualização, onde esses números guardados no DNA passam a ter um sentido prático, a fazer parte de uma equação ou modelo matemático a ser simulado. Então, calculando o valor da expressão (caixa amarela na figura), é encontrado o valor de Y(X1) e Y(X2) – que é a simulação desse modelo. Claro que esse é um exemplo de simulação de uma equação, mas a idéia central não muda para projetos complexos; Para a simulação de uma asa , pode-se colocar como genes o ângulo de entrada do perfil, o ângulo de saída e o comprimento da asa. Substitui-se esses valores nas equações de dinâmica e modelagem de fluidos (contextualização) e finalmente simula-se (rodando o interpretador de elementos fluidos por exemplo).

Inversamente ou diretamente ? Ao simular um indivíduo, será retornado um ou mais valores dessa simulação. Se ao crescer esse valor , o indivíduo perde desempenho (piora em relação aos demais), pode-se dizer que seu fitness é inversamente proporcional a essa grandeza simulada. Mas se ele se comporta melhor, tendo um comportamento mais competitivo, então seu fitness é dito diretamente proporcional a essa grandeza gerada pelo simulador. Pode parecer um conceito trivial, mas influencia diretamente na programação do AG. Um fitness “F” inversamente proporcional a uma grandeza “G” pode ser calculado por : F = 1 / G ou F= 1/ (nG) Equação 2

se é desejado acentuar mais a penalização sobre essa grandeza, aumentando ‘n’ e assim diminuindo ‘F’ e desfavorecendo os indivíduos que a possuem. O mesmo vale para fitness diretamente proporcional , onde pode ser usado: F= G ou F= nG Equação 3

onde ‘n’ é um fator que incentiva a presença dessa grandeza G entre os indivíduos;

Page 30: Mutação Diferencial Condicional como proposta de ... · de freqüência. A sintonia de controladores PID foi escolhida apenas como base para aplicação dos algoritmos genéticos

Mutação Diferencial Condicional como proposta de otimização de Algoritmos Genéticos

30

Classificação e separação dos melhores Uma vez que cada um dos indivíduos tenha uma “nota” ou fitness de acordo com o desempenho do seu DNA, é chegada a hora de separá-los e classificá-los, para que “os melhores prossigam e passem seu DNA adiante, e os piores sejam descartados ou forçados a tentar se adaptar” – Charles Darwin A classificação é simples : apenas ordena-se os indivíduos com base em seu fitness, rearranjando a ordem das linhas na matriz de indivíduos de acordo com a classificação, formando um ‘ranking’ de DNA’s. Para isso um simples algoritmo de ordenação de listas é suficiente. Na separação dos melhores podem ser feitas duas abordagens: Tradicional – onde os indivíduos são sorteados de acordo com seu fitness [10] Elitista – onde os piores são descartados e somente os melhores irão receber as operações genéticas a fim de produzir descendentes[2].

Vendo cada um mais de perto Na Tradicional, o método feito tem seu funcionamento inspirado no sistema de rifas; Aquele que compra mais números, tem também mais chance de ser sorteado. Assim, indivíduos com um fitness avantajado terão mais chances de serem sorteados para gerar descendentes. Existem vários problemas implícitos nesse sistema. Um deles é que, mesmo tendo um fitness irrisório, indivíduos mal-adaptados ainda tem chances (mesmo que remotas) de serem sorteados e tomar um lugar na matriz de indivíduos da geração seguinte, bem como participar das operações genéticas e gerar descendentes e perpetuar e misturar na matriz genes ruins que pelo Darwinismo já deveriam estar extintos. Considerou-se que esse método de seleção é na média, desfavorável a sobrevivência dos mais adaptados, indo contra a evolução da população. Ele se parece em muito com as roletas de cassino, por isso também é chamado em várias literaturas de método R-W (Roulette-Wheel ou Roda de Roleta). Outra desvantagem é que, tendo mais “bilhetes” para serem sorteados, indivíduos com fitness várias vezes maiores que a média (super-indivíduos) geram muito mais filhos. Em poucas gerações a população será monótona, e os filhos nada mais serão que cópias ligeiramente diferentes dos pai, estagnando a evolução do conjunto.

Page 31: Mutação Diferencial Condicional como proposta de ... · de freqüência. A sintonia de controladores PID foi escolhida apenas como base para aplicação dos algoritmos genéticos

Mutação Diferencial Condicional como proposta de otimização de Algoritmos Genéticos

31

Se um dos ‘pais’ tem um fitness muito maior que os demais, pelo R-W praticamente todos os filhos serão cópias do pai, ou variações dele, fazendo com que as populações póstumas orbitem em torno desse máximo, com uma variação genética mínima. Em suma, esse comportamento é altamente indesejável, pois

- Diminui drasticamente a velocidade de evolução, fazendo com que o AG leve muito mais gerações para atingir o mesmo objetivo

- Sendo os indivíduos a maioria iguais, todas as possíveis mudanças para melhor desta população estão depositadas nas mutações. Entende-se que isso aproxima o algoritmo muito mais de uma busca randômica do que de um AG Clássico.

- Reduz drasticamente o patrimônio genético da população,pois aparecem muitas cópias dos mesmos pais.Toda vez que a variabilidade genética é reduzida, o espaço de busca é reduzido junto,podendo eliminar possíveis soluções que nele estariam.

- Sendo a escolha randômica, ainda resta a probabilidade de um dos melhores da geração não ser escolhido por não ser “sorteado” pelo processo.

Como exemplo , suponha a seguinte população: Indivíduo Fitness A 18 B 3 C 0,6 D 4 E 0,3 F 0,5 G 3 H 2 Tabela 1 – Exemplo de população em AG

Se for usado o sistema R-W, calcula-se a soma de todos os fitness: Soma-fitness = 18+3+0,6+4+0,3+0,5+3+2 = 31,4 Então é possível calcular quanto cada indivíduo representa na soma, dividindo seu fitness pela soma total, por exemplo Indivíduo A = 18 / 31,4 = 57,3 % Montando a terceira coluna da tabela seguinte.

Page 32: Mutação Diferencial Condicional como proposta de ... · de freqüência. A sintonia de controladores PID foi escolhida apenas como base para aplicação dos algoritmos genéticos

Mutação Diferencial Condicional como proposta de otimização de Algoritmos Genéticos

32

Agora, é possível distribuir os “bilhetes” para cada indivíduo. Na verdade, é feito um fitness acumulado (última coluna da tabela seguinte), e dado assim um intervalo (range) para cada indivíduo de acordo com seu fitness original. É gerado um número (como em um sorteio) e o indivíduo que contiver esse número dentro do seu range será escolhido para gerar descendentes. Indivíduo Fitness % Fitness Total % acumulado A 18 57,3 % 57,3 % B 3 9,6% 66,9 % C 0,6 2 % 68,9 % D 4 12,7% 81,6 % E 0,3 1% 82,6 % F 0,5 1,6% 84,2 % G 3 9,6% 93,8 % H 2 6,4 % 100 % Tabela 2 – Chances de seleção baseado no fitness

É sorteado um número ao acaso, entre 0 e 100 ; Por exemplo , 70. O número 70 está fora do intervalo do indivíduo A , que vai de 0 a 57,3. Também está fora do intervalo de B, que vai de 57,3 a 66,9. Ele só entrará no intervalo do indivíduo ‘D’, que está entre 68,9 e 81,6. Logo , será o indivíduo ‘D’ que , nesse sorteio, irá gerar descendentes.

56%

10%

2%

13%

1%

2%

10%

A

B

C

D

E

F

G

H

Ilustração 10 - Distribuição das chances de sorteio nessa população

Percebe-se nesse exemplo, que qualquer número entre 0 e 57,3 irá escolher o indivíduo A, o que o torna um “super-indivíduo”. Depois de vários sorteios, certamente boa parte da geração seguinte será de cópias idênticas ou muito semelhantes a esse indivíduo A.

Page 33: Mutação Diferencial Condicional como proposta de ... · de freqüência. A sintonia de controladores PID foi escolhida apenas como base para aplicação dos algoritmos genéticos

Mutação Diferencial Condicional como proposta de otimização de Algoritmos Genéticos

33

Outro risco implícito é o de o indivíduo A não ser escolhido, simplesmente pelos números ‘sorteados’ não compreenderem seu intervalo; A chance é pequena, mas ainda é possível. Perder-se-ia um excelente indivíduo que poderia ser a solução do problema tratado pelo AG. No sistema Elitista, geram descendentes somente os que tiverem melhores fitness. Os ‘N’ melhores de cada geração são escolhidos e copiados em uma matriz a parte, na íntegra. A matriz contendo os seus descendentes vem das operações de cruzamento, mutação e cópia entre eles. Assim, considera-se que está sendo favorecida a sobrevivência dos mais adaptados, gerando indivíduos cada vez melhores. A primeira ação a tomar no Elitismo é classificar a população em ordem decrescente de fitness: Indivíduo Fitness A 18 D 4 B 3 G 3 H 2 C 0,6 F 0,5 E 0,3 O programador define então qual é o limiar (critério) de corte: - Se é a posição do indivíduo na tabela (escolhem-se os ‘N’ primeiros). - Se é um valor de fitness (como a ‘nota de corte’ em um vestibular). Escolhendo por posição os 4 primeiros por exemplo, tem-se : Indivíduo Fitness A 18 D 4 B 3 G 3 E serão estes que através de operações genéticas (cruzamento, cópia e mutação) irão compor seus descendentes para a próxima geração. Os demais que ficaram abaixo do corte, fica a cargo do programador escolher o destino deles. Eles podem ser descartados (deixando de

Page 34: Mutação Diferencial Condicional como proposta de ... · de freqüência. A sintonia de controladores PID foi escolhida apenas como base para aplicação dos algoritmos genéticos

Mutação Diferencial Condicional como proposta de otimização de Algoritmos Genéticos

34

fazer parte do sistema) ou podem ser mutados de forma mais agressiva e recombinados na tentativa de gerar algum indivíduo aproveitável. Esse método Elitista também é chamado de método SORT, pois é feito uma classificação dos indivíduos (em inglês, sorting) para escolhê-los.

APLICAÇÃO DE OPERADORES GENÉTICOS CLÁSSICOS [2] Agora que já estão definidos quais indivíduos irão gerar descendentes, é esta a parte do script onde eles irão interagir para gerá-los. Essa interação é feita através dos operadores genéticos (‘opgen’), agindo sobre o DNA dos indivíduos-pais para gerar indivíduos-filhos supostamente melhores. Como prática e regra, copia-se o melhor indivíduo dentre os ‘pais’ pré-selecionados na íntegra para a geração seguinte, garantindo que ela será pelo menos tão boa (fitness tão alto) quanto a geração anterior. Essa é uma condição fundamental para a convergência do AG, e vem diretamente de sua inspiração natural – na Natureza isso acontece de fato, forçando sempre a evolução do conjunto. Estes operadores se baseiam na genética de Gregorius Mendel, conforme mencionado em tópicos anteriores. São eles: - Cruzamento (cross-over) - onde o DNA do filho será composto por uma parte de cada pai. Nesse caso, 2 indivíduos daqueles selecionados na etapa anterior serão sorteados ao acaso para serem os ‘pais’ através do cruzamento entre seus genes.

Ilustração 11 – Cruzamento entre indivíduos

Evidente que em genes com apenas 2 loci,não existe outra maneira de combiná-los a não ser cruzando-os na metade um do outro, conforme figura acima. Porém nos demais casos, onde existem DNA’s com mais de 2 posições, a posição onde ocorrerá o entrelaçamento dos genes pode ser aleatória (como na Natureza, e como feito neste trabalho) ou pré-

Page 35: Mutação Diferencial Condicional como proposta de ... · de freqüência. A sintonia de controladores PID foi escolhida apenas como base para aplicação dos algoritmos genéticos

Mutação Diferencial Condicional como proposta de otimização de Algoritmos Genéticos

35

definida, tomando uma porcentagem de genes de um pai e o restante do outro indivíduo-pai. Por interagir 2 indivíduos dessa maneira, são gerados 2 descendentes em cada cruzamento. - Mutação - o filho recebe o DNA do pai, mas em algumas posições desse DNA ele é alterado aleatoriamente para outro valor. Neste caso, apenas 1 indivíduo dentre os pré-selecionados será escolhido ao acaso para sofrer a mutação, em uma posição igualmente aleatória.Conseqüentemente apenas 1 filho é gerado nessa operação.

Ilustração 12 – Mutação Tradicional - Cópia – o filho é uma cópia idêntica do pai Assim como na mutação, apenas 1 indivíduo dentre os pré-selecionados será sorteado para ser copiado. Portanto, apenas 1 filho é gerado dessa operação.

Qual operador genético usar ? É tradicional na elaboração dos AG criar um laço de repetição na hora de gerar os indivíduos-filhos da nova geração. Neste laço, é escolhido aleatoriamente um ou dois indivíduos, e ao acaso selecionar qual o opgen a usar. Essa escolha não é puramente randômica; No começo do AG são definidas TAXAS de probabilidade para cada opgen, de modo idêntico ao sistema R-W já descrito. Quanto maior a taxa de cruzamento, maior será a chance desse opgen ser escolhido durante a geração de descendentes.Isso se aplica aos outros dois opgens, obviamente. É comum manter a taxa de cruzamento bem maior do que as demais, forçando esse tipo de geração de filhos. Isso é feito pois dentre os opgens usados, o cruzamento é aquele que mais diferentes indivíduos gera, contribuindo para a diversidade genética e com grandes chances de unir os melhores genes de cada pai.

Page 36: Mutação Diferencial Condicional como proposta de ... · de freqüência. A sintonia de controladores PID foi escolhida apenas como base para aplicação dos algoritmos genéticos

Mutação Diferencial Condicional como proposta de otimização de Algoritmos Genéticos

36

Os outros opgen apenas tentam explorar os pontos fortes já existentes no indivíduo-pai, ou tentam alterar os pontos negativos do mesmo (através da mutação, por exemplo). Pode-se considerar o cruzamento como um tipo de mutação extremamente agressiva, pois ao contrário desta última, costuma alterar pelo menos metade dos genes do indivíduo-filho de uma só vez. Na mutação, apenas 1 gene dentro do DNA é alterado. John Koza [12] costuma defender a seguinte proporção nas taxas de opgen: 90 % cruzamento, 9 % de cópia e 1% de mutação. Com taxa de cruzamento muito baixas,muitas rodadas ficam mesmo sem nenhuma alteração. Esse fato fica agravado com populações menores, e é mascarado em grandes populações, pois existem tantos genes diferentes que qualquer cruzamento se torna equivalente a uma mutação.E mais, uma mutação maciça já que, ao contrário da mutação convencional , mais de um gene é alterado de uma só vez. Uma quantidade exorbitante de cruzamentos também não é desejável, já que o patrimônio genético fica várias gerações rodando em torno dos indivíduos já existentes.Isso na prática se reflete como uma menor velocidade de convergência, fazendo com que o fitness caminhe lentamente até o melhor possível dentro desse patrimônio.Todavia, não é garantido que o AG irá encontrar o ótimo global dentro do número de gerações determinado (ou mesmo que ele chegue a encontrar um dia esse máximo) devido à baixa variabilidade genética – risco esse agravado em pequenas populações. As cópias são a parte do AG que mantém a curva monotônica e crescente, garantindo que a geração seguinte seja pelo menos tão boa quanto a anterior.A ausência dessa taxa faz com que o AG se torne instável e não-monotônico, como a figura já mostrada. Taxas excessivamente altas de cópia mantém a curva de fitness f(g) (onde ‘g’ é a geração) ainda monotônica e crescente.Porém deixa toda a tarefa de melhora de fitness a cargo das ínfimas taxas de mutação e cruzamento. E para pequenas populações, pequenas taxas de cruzamento NÃO representam melhora significativa, uma vez que o patrimônio genético sempre acaba oscilando ao redor do que já existe. Donde podemos concluir que para populações pequenas, a mutação é muito importante, e altas taxas de cópia podem simplesmente estagnar o processo evolutivo.Por sua vez, grandes taxas de cruzamento resultam em uma desaceleração no fitness, e comprometem a capacidade primordial do AG de encontrar os máximos globais.

Page 37: Mutação Diferencial Condicional como proposta de ... · de freqüência. A sintonia de controladores PID foi escolhida apenas como base para aplicação dos algoritmos genéticos

Mutação Diferencial Condicional como proposta de otimização de Algoritmos Genéticos

37

Usar grandes taxas de mutação (para garantir variedade),baixas taxas de cópias (para garantir estabilidade) e baixos índices de cruzamento (para não desacelerar o processo) parecem uma boa alternativa.Todavia, isso recai em uma busca estocástica ou uma variante da “busca tabu”, e não mais temos os AG como foco. As três taxas distribuídas igualmente (33%) apresentam bons resultados. Então encontramos os papéis de cada operador genético (opgen): Cópia garante a estabilidade do sistema, e garante uma geração seguinte com fitness pelo menos igual ao melhor da geração anterior.Sem cópia, o sistema não retém os bons resultados atingidos, e simplesmente não converge.Taxas muito altas,entretanto, diminuem sensivelmente a velocidade de convergência ,e fazem com que sejam necessárias várias gerações (mais da metade, em geral) para que alguma mutação ou cruzamento alterem algum dos poucos indivíduos que não foram copiados da geração anterior. Mutação Garante a variedade genética da população.É responsável pelos saltos qualitativos do fitness.De maneira geral, a mutação acelera o processo evolutivo.Porém taxas muito altas levam o AG a se comportar como uma busca aleatória, diminuindo novamente a velocidade de convergência .Taxas muito baixas levam o sistema à estagnação, pois não há patrimônio genético suficiente para gerar novos indivíduos somente por cruzamentos.Há uma boa resposta em taxas de mutação entre 20 e 40 % (empírico). Cruzamentos Também tem como função aumentar a variedade genética do grupo, porém ao contrário da função Mutação, não o faz de modo aleatório.Na verdade, esse operador realiza uma mutação orientada, partindo da premissa que os filhos gerados de pais fortes serão tão ou mais fortes que seus progenitores – o que se mostra real em boa parte das vezes. Em populações com uma variedade genética grande, o cruzamento funciona como uma mutação muito mais agressiva,já que a maior parte dos genes (pelo menos a metade) é substituída de uma só vez.Também deve ter sua taxa controlada para evitar estagnação,já que muitos cruzamentos em uma mesma geração tendem a aumentar a freqüência de certos genes, diminuindo a variabilidade genética e conseqüentemente, a velocidade de evolução.

Page 38: Mutação Diferencial Condicional como proposta de ... · de freqüência. A sintonia de controladores PID foi escolhida apenas como base para aplicação dos algoritmos genéticos

Mutação Diferencial Condicional como proposta de otimização de Algoritmos Genéticos

38

Em pseudo-código, essa parte do AG poderia ser descrita como: Para ‘i’ entre 1 e ‘total_de_escolhidos’ faça Pai_1 aleatório() * total_de_escolhidos Pai_2 aleatório() * total_de_escolhidos Opgen aleatório() * 100 Se ‘opgen’ está entre 0 e TAXA_CRUZAMENTO então Pos_corte aleatório() * TAMANHO_DNA Filho_1 corte(Pai_1 , Pos_corte)

+corte(Pai_2,TAMANHO_DNA - Pos_corte) Filho_2 corte(Pai_2 , Pos_corte)

+corte(Pai_1,TAMANHO_DNA - Pos_corte) Fim_se Se ‘opgen’ está entre TAXA_CRUZAMENTO e TAXA_COPIA então

Posição aleatório() * TAMANHO_DNA Novo_valor aleatório()

Filho_1 muda_gene(Pai_1 , Posição , novo_valor) Fim_se Se ‘opgen’ está entre TAXA_COPIA e 100 então Filho_1 Pai_1 Fim_se

Nova_geração (i) Filho_1 Se ‘Filho_2’ é diferente de 0 então

Nova_geração (i+1) Filho_2 I i +1

Fim_se

Fim_para Esse laço se repete até que toda a matriz de indivíduos da nova geração esteja completa.

Page 39: Mutação Diferencial Condicional como proposta de ... · de freqüência. A sintonia de controladores PID foi escolhida apenas como base para aplicação dos algoritmos genéticos

Mutação Diferencial Condicional como proposta de otimização de Algoritmos Genéticos

39

5. A MUTAÇÃO DIFERENCIAL CONDICIONAL

5.1. Mutação Tradicional e Mutação Diferencial Na mutação tradicional, um determinado indivíduo, quando escolhido para ser mutado, tem um dos seus genes substituído por um outro valor randômico, gerado ao acaso. Essa operação tende a gerar alguns picos isolados ao redor da população, mas em menor número que o cruzamento, pois ele muda um gene de cada vez, e sem nenhuma orientação (heurística). Muitas vezes, a população chega ao redor de um ponto ótimo, um vale ou um pico do espaço de busca, e não consegue atingir o topo ou o fundo desse pico ou vale. O AG não consegue pois a diferença entre o pico/fundo é geralmente muito pequena, da ordem de décimos ou centésimos. Qual operador genético seria capaz de alterar o DNA do melhor indivíduo somente alguns décimos , só o suficiente para atingir o máximo global ? O cruzamento, troca muitos genes de uma vez, sendo assim pouco provável que exista um outro indivíduo com o gene ideal , alguns décimos maior ou menor , para efetuar a troca. Também é pouco provável que o AG sorteie a posição exata daquele gene para efetuar a troca. A cópia não resolve nada. Apenas continua mantendo o melhor indivíduo onde já está. A mutação parece uma boa candidata, já que altera um gene de cada vez. Todavia, existe um porém : é necessário uma certa “sorte” para que , ao gerar um número completamente aleatório, ele seja exatamente alguns centésimos maior que o melhor indivíduo. E se for, a posição onde será inserido esse gene randômico também é igualmente randômica. Isso faz com que, uma vez ao redor desse pico ou vale, o AG fique estagnado orbitando ao redor deles, sem nunca atingi-los, apenas aguardando o momento em que ocorrerá um fato raro em que a mutação ou cruzamento irá causar essa variação de décimos. No gráfico de fitness por gerações, isso representa os trechos onde a curva se mantém horizontal, sem nenhuma alteração, como na figura a seguir:

Page 40: Mutação Diferencial Condicional como proposta de ... · de freqüência. A sintonia de controladores PID foi escolhida apenas como base para aplicação dos algoritmos genéticos

Mutação Diferencial Condicional como proposta de otimização de Algoritmos Genéticos

40

Ilustração 13 – Gráfico de fitness por gerações Para contornar esse problema, foi pensada a mutação diferencial. O raciocínio básico é adicionar um valor pequeno ao gene sorteado para sofrer mutação, e assim variá-lo um mínimo possível, apenas para que seja levemente diferente do seu original, ou seja Gene Gene + dG Equação 4

Onde ‘dG’ é uma variação decimal ou centesimal a ser acrescida e/ou subtraída – sim, pois há problemas em que um aumento no valor do gene seja prejudicial. Esse tipo de mutação é chamada de ‘CREEP’ ou “escorregamento”. Uma alternativa é multiplicar-se o valor do gene por um número aleatório próximo a 1 (para mais ou para menos). Este operador é aplicado no caso da representação real e não gera grande perturbação nas populações. Isto permite que seja usado com taxas de mutação mais elevadas. O efeito da mutação em creep auxilia na busca local (exploitation ou “aprofundamento”) pois parte da idéia de que se um cromossomo está perto de um valor ótimo uma pequena alteração pode levá-lo ao ótimo. Mas resta a pergunta ? Trocar a mutação tradicional por diferencial sempre ? Realizando diversas simulações, percebe-se que usando somente a mutação diferencial a população não cresce (evolui) como deveria, pois novos genes não são criados – o cruzamento cria novos DNA’s, mas não novos genes – são apenas ligeiramente diferidos, não o suficiente para contribuir a todo momento com a evolução. O opgen capaz de criar genes com valores inteiramente novos é a mutação tradicional. Além das ferramentas de análise de desempenho e ferramentas evolutivas, a principal novidade deste trabalho é a indicação da mutação diferencial condicionada ou Triggered (disparada por gatilho).

Page 41: Mutação Diferencial Condicional como proposta de ... · de freqüência. A sintonia de controladores PID foi escolhida apenas como base para aplicação dos algoritmos genéticos

Mutação Diferencial Condicional como proposta de otimização de Algoritmos Genéticos

41

MUTAÇÃO DIFERENCIAL CONDICIONADA A mutação tradicional cria genes com valores inteiramente novos. Porém , como já foi discutido anteriormente , durante as gerações muitas dessas mutações não são efetivas, ou seja, não melhoram o fitness da população, apesar de aumentar o patrimônio genético da mesma (o que pode levar a uma evolução mais tarde em um cruzamento , por exemplo). Aparecem então grandes períodos de ‘marasmo’, uma inatividade evolutiva, mantendo a curva de fitness horizontal. A mutação diferencial (creep) tem como característica o aprofundamento da busca local, explorando regiões bem próximas do ponto original. Isso certamente retorna (ainda que pequenas) melhorias no fitness do indivíduo mutado. A fim de eliminar ou ao menos minimizar esses períodos de estagnação evolutiva, surge então a proposta do autor em usar a mutação diferencial condicional, cuja proposta é usar a abordagem diferencial nas mutações somente quando a evolução se mostrar estagnada por mais de um determinado número de gerações.Assim que esse marasmo é quebrado e a curva volta a crescer, as próximas mutações voltarão a ser do modo tradicional.

Vendo o gráfico da derivada do fitness em relação às gerações (fig.15 em baixo),vemos que com essa abordagens temos bem mais picos de mudança do que as abordagens tradicionais (figura 14, em baixo).

Ilustração 14 - Usando a mutação diferencial condicionada

Page 42: Mutação Diferencial Condicional como proposta de ... · de freqüência. A sintonia de controladores PID foi escolhida apenas como base para aplicação dos algoritmos genéticos

Mutação Diferencial Condicional como proposta de otimização de Algoritmos Genéticos

42

Ilustração 15 - Usando a mutação tradicional somente

É possível perceber que depois de um certo começo das gerações, a população na população com mutação tradicional entra em estagnação, ficando assim a maior parte do tempo, apenas desperdiçando tempo de processamento. Já na figura com uso de mutação diferencial (no caso, a condicionada), percebe-se muito mais picos no gráfico de delta-fit (variação do fitness) e um crescimento mais constante. Usando um pseudo-código, poder-se-ia montar um exemplo do segmento de código responsável pela mutação: Se ‘Maior_fit(g)’=‘Maior_fit(g-1)’= ‘Maior_fit(g-2)’ então Gene gene + ( aleatorio() – aleatorio() ) /100 Fim_se Senão, faça Gene aleatorio() Fim_senão No código acima, ‘Maior_fit’ representa uma lista contendo o maior fitness de cada geração, indexada por ‘g’ ; Se houver uma estagnação por mais de 3 gerações , ele irá usar a mutação diferencial, que no caso aparece somando e subtraindo dois valores randômicos, para que haja a possibilidade de haver um resultado negativo que diminua o gene. Também essa subtração está dividida por 100, pois nesse caso deseja-se alterar os centésimos do gene.

Page 43: Mutação Diferencial Condicional como proposta de ... · de freqüência. A sintonia de controladores PID foi escolhida apenas como base para aplicação dos algoritmos genéticos

Mutação Diferencial Condicional como proposta de otimização de Algoritmos Genéticos

43

6. DESEMPENHO DE ALGORITMOS GENÉTICOS

6.1. Como avaliar um AG ? Diversas simulações, variações nos opgens e tamanhos de DNA e população diferentes podem ser implementados. Mas como saber o efeito dessas mudanças no AG ? Os resultados convergem mais rápido ? Mais de uma solução é apresentada ? Qual é o objetivo de um AG? É , a partir de uma população inicial de possíveis soluções, convergir geração após geração para uma solução ótima, através da interação entre os indivíduos usando opgens. Daí, pode-se enumerar vários aspectos esperados: -Convergência (encontrar a solução ótima) dentro de um número de gerações finito -Diversidade nas soluções e na população – pois do contrário se tornaria uma busca tradicional em 1 único indivíduo. Foram criadas ferramentas para avaliar estes apectos, medindo de forma objetiva o desempenho do AG. Na convergência, foi criada a ferramenta Velocidade de Evolução (VE) para mensurar o quão rápido essa convergência acontece dentro das gerações. Também foram criados os índices IPQ e IPQL, que medem a qualidade da solução enontrada. Na parte de ‘diversidade’, foi criada a ferramenta ‘Linhagem’, que permite ver, dentro de uma geração, qual opgen gerou um determinado indivíduo. Também para a questão ‘diversidade’ foi criada a ferramenta ‘Variedade Orbital’, cuja função é permitir a visualização da distribuição espacial da população. Com isso é possível mensurar o quão variada é a população, pois será possível ver o afastamento dela em relação ao melhor indivíduo e e relação a origem do espaço de busca.

Ilustração 16 – Fitness em função da geração

Page 44: Mutação Diferencial Condicional como proposta de ... · de freqüência. A sintonia de controladores PID foi escolhida apenas como base para aplicação dos algoritmos genéticos

Mutação Diferencial Condicional como proposta de otimização de Algoritmos Genéticos

44

Observa-se que o gráfico relacionando fitness em função das gerações apresenta as seguintes características: -Não há (ou pelo menos não deve haver) derivadas negativas (ou seja, a curva nunca deve decrescer). Isso se deve ao fato de haver a cópia do melhor indivíduo para a geração seguinte, fazendo com que em cada geração o fitness mínimo seja pelo menos igual ao da geração anterior. Ou seja, pelo menos a curva deve se manter constante. -De uma maneira global, a curva caminha de modo ascendente, e muitas vezes, ao atingir o fitness máximo, permanece estagnada até o final. -Quando a geração atual não consegue evoluir através dos opgens aplicados, há um período de estagnação onde a curva permanece horizontal. Essa parte do estudo é inovadora. Foram desenvolvidos métodos e cálculos para avaliar o quão eficiente, rápido e uniforme foi um determinado processamento por AG.

Velocidade de Evolução (VE) Dentro do número de gerações estipulado, deve haver uma evolução de um fitness menor (na geração inicial) para um maior (na geração final). É de senso comum que quanto menos gerações o AG precisar para atingir esse fitness maior e final , tanto melhor. A essa taxa de evolução em função do número de gerações foi chamada “Velocidade de Evolução”. Observando a mesma curva de fitness por geração, pode ser notada uma semelhança entre elas e as curvas de carga de um circuito RC (curva em vermelho) conforme figura 17. Ambas possuem um período de crescimento e um período de estagnação ou de saturação, onde o valor máximo foi atingido e não é possível crescer mais.

Page 45: Mutação Diferencial Condicional como proposta de ... · de freqüência. A sintonia de controladores PID foi escolhida apenas como base para aplicação dos algoritmos genéticos

Mutação Diferencial Condicional como proposta de otimização de Algoritmos Genéticos

45

Ilustração 17 - Saída típica de uma simulação de AG – gráfico de Fitness em função das gerações

Traçando uma analogia, quanto mais rápido o fitness máximo é alcançado dentro de um mesmo número de gerações,maior é essa velocidade e mais inclinada é a curva,exatamente como a tensão em um circuito RC, quando testado com diferentes valores de capacitor e/ou resistor. A tensão em um capacitor carregando é:

−=

RC

t

eVccty 1*)( Equação 5

onde Vcc é a tensão máxima RC é o produto dos componentes Resistor e Capacitor, que determinam o tempo de carga/descarga; Fazendo uma analogia:

−=

VE

g

eFMgF 1*)( Equação 6

onde F é o fitness, g é a geração VE é a velocidade de evolução do sistema com AG. FM é o fitness máximo atingível pelo AG. Para achar o valor de VE, estima-se encontrando a geração em que o fitness é igual a 63 % do valor máximo de fitness.Esse valor é procurado na curva de fitness normalizada, contando a partir do momento que começa o crescimento.

Page 46: Mutação Diferencial Condicional como proposta de ... · de freqüência. A sintonia de controladores PID foi escolhida apenas como base para aplicação dos algoritmos genéticos

Mutação Diferencial Condicional como proposta de otimização de Algoritmos Genéticos

46

LINHAGEM Para cada intervenção dos operadores genéticos em um indivíduo, foi feito um registro em um vetor a parte, conforme a seguinte notação: “CY” se esse indivíduo foi gerado por cópia “CZ” se foi por cruzamento “MU” se foi por mutação “GR” se veio da geração inicial Assim é possível ter uma idéia de onde vieram os melhores de cada geração, e também rastrear quem foram seus pais e quem são seus descendentes. Acaba por se tornar uma ferramenta poderosa de debugging quando é aliada ao Delta-fit (ver adiante).

!CZ na geracao 3 !

!MU na geracao 4 !

!CY na geracao 7 !

!MU na geracao 9 !

!MU na geracao 10 !

!MU na geracao 11 !

!CZ na geracao 14 !

!CZ na geracao 22 ! Saída típica da ferramenta “ linhagem’’

DELTA-FIT

Para cada geração de filhos, foi guardado em um vetor separado o quanto foi mudado o fitness de uma geração para a outra.Assim, de uma maneira discreta, é possível enxergar esse gráfico de variação de fitness como uma ‘derivada’. Cruzando visualmente esse gráfico de variação com o da LINHAGEM,é possível visualizar de onde vieram os melhores de cada geração, e quantitativamente quanto cada opgen contribuiu para isso. Também é possível ter uma idéia de quão dinâmico foi o AG, medindo quantos picos de mudança houveram nas gerações. Poucos picos indicam uma seqüência de gerações muito estável e estagnada. Seja o gráfico de uma simulação conforme figura 18:

Page 47: Mutação Diferencial Condicional como proposta de ... · de freqüência. A sintonia de controladores PID foi escolhida apenas como base para aplicação dos algoritmos genéticos

Mutação Diferencial Condicional como proposta de otimização de Algoritmos Genéticos

47

Ilustração 18 – Fitness por geração com Delta-Fit

Nesta figura, o gráfico mais acima representa o gráfico fitness em função das gerações, ou seja , F(g) , ‘F’ representando o fitness e ‘g’ o número da geração. No gráfico de baixo, tem-se o Delta-fit, a variação do gráfico de cima. Os picos representam o momento em que o gráfico cresce - ou seja, quando a população evolui.

IPQ Como uma forma de medir a qualiadade da solução ,foi criada através do índice de proximidade quadrático, ou IPQ.Esse índice é definido por:

2

=

possívelfitnessmáximo

atingidofitnessmáximoIPQ Equação 7

Quanto mais próximo de 1 o IPQ, mais próximo do ideal o AG chegou. Mais adiante, será possível ver que nas mutações diferenciais, o IPQ é maior do que a mutação tradicional.

O IPQ mede o quão próximo o resultado final estava do ideal.

Page 48: Mutação Diferencial Condicional como proposta de ... · de freqüência. A sintonia de controladores PID foi escolhida apenas como base para aplicação dos algoritmos genéticos

Mutação Diferencial Condicional como proposta de otimização de Algoritmos Genéticos

48

IPQL (IPQ Logarítmico) Conforme as ferramentas vão sendo aplicadas e o fitness final vai aumentando, IPQ aproxima-se de 1 até a quinta ou sexta casa decimal, com valores 0.99999938, por exemplo. A partir daí torna-se complicado definir qual rodada foi melhor, pois são todos muito semelhantes, diferindo depois da quarta casa decimal. Então se decide expandir essa diferença de centésimos em uma faixa maior, usando o logaritmo de base 10 da diferença entre o IPQ e o IPQ ideal (seria 1).

IPQIPQL −= 1log10 Equação 8

Onde IPQL significa IPQ Logarítmico Portanto um IPQL=6 significa que a diferença entre o IPQ e o ideal é de

6101 −⋅ ,ou seja, IPQ=0,999999. A ferramenta IPQL permite então medir diferenças bem menores do que o IPQ permitiria.

Ilustração 19 – Gráfico do IPQ e do IPQL

É possível notar que até próximo de 0,9 (ou seja, 90% do valor final do fitness) os gráficos seguem parecidos. Porém a partir daí, as diferenças entre o fitness atual e o melhor fitness possível se torna muito pequena, e somente o gráfico logarítmico de IPQL é capaz de mostrá-la. Muitas vezes, a simulação retorna um valor de fitness bem maior do que as simulações anteriores. Uma vez que o IPQ se baseia no fitness máximo (observado pelo programador em simulações anteriores), é possível que o resultado da equação 7 retorne um valor maior que 1.

Page 49: Mutação Diferencial Condicional como proposta de ... · de freqüência. A sintonia de controladores PID foi escolhida apenas como base para aplicação dos algoritmos genéticos

Mutação Diferencial Condicional como proposta de otimização de Algoritmos Genéticos

49

Variedade Orbital

Outro aspecto a considerar é o quão variada são as soluções oferecidas no final das gerações. A população tem se mostrado variada e explora bem o espaço de estados permitidos ? Para isso foi criada a ferramenta Variedade Orbital, cuja função é estudar a distribuição dos indivíduos daquela geração ao redor de um ponto. Esse ponto pode ser a origem do espaço de estados ou pode ser o melhor indivíduo da geração estudada. No primeiro caso, estará se estudando o aproveitamento do espaço de busca, vendo se todos as regiões desse espaço foram exploradas. No segundo caso, estará se estudando a diversidade genética, vendo o quão distante a população está do melhor indivíduo. Se estiverem muito próximos, significa que a população é muito parecida e tende a ficar monótona. Foram pensadas diversas maneiras de se medir a variabilidade genética da população. Entre elas: - Norma euclidiana entre cada um dos indivíduos (ou a média entre elas) - Distância Manhattan entre os indivíduos - Divisão do espaço de busca em lotes contabilizados em “quantidade de moradores” - Distância orbital N-dimensional Os dois primeiros têm um ônus computacional imenso, pois a quantidade de cálculos requerida a cada geração seria: O = P * I * I = P * I ² onde P é o número de parâmetros e I é o total de indivíduos. Isso é agravado multiplicando o ônus ‘O’ pelo número de gerações. A divisão do espaço em lotes leva a uma contabilidade de cada lote, como localização, concentração de população e ainda é agravado pelas altas dimensionalidades (para problemas com mais de 2 parâmetros, a realização mental e matemática desses lotes não é trivial). A última abordagem – que foi a adotada – trata a variedade genética através de esferas ou “cinturões” onde os indivíduos se distribuem. Exatamente como uma distribuição eletrônica nos átomos, o espaço de busca é também dividido em vários órbitas ou níveis ao redor de um

Page 50: Mutação Diferencial Condicional como proposta de ... · de freqüência. A sintonia de controladores PID foi escolhida apenas como base para aplicação dos algoritmos genéticos

Mutação Diferencial Condicional como proposta de otimização de Algoritmos Genéticos

50

“núcleo” – um ponto central.No final de cada geração, é feito um censo contando quantos indivíduos cada nível possui. Quanto maior a órbita ou o nível que o indivíduo se encontra, menos parecido com o ponto central ele é. Se o ponto central for a origem, quanto maior o valor de cada coordenada, mais diferente ele será de 0,0,0 e mais distante ele estará dela (e maior seu raio). Esse é o raciocínio ou princípio que embasa essa ferramenta de avaliação. Abstração matemática Um círculo pode ser definido matematicamente como todos os pontos cuja norma euclidiana (distância vetorial) a um ponto central é menor ou igual a um determinado raio. Ou seja,

²)²()²( 00 Ryyxx ≤−+− Equação 9

Esse raciocínio pode ser estendido a uma esfera com N dimensões :

²)²(.....)²()²()²( 0000 Ruuzzyyxx ≤−++−+−+− Equação 10

onde x, y,z,...,u são as coordenadas. Tratando cada lócus no indivíduo como uma coordenada cartesiana em um espaço euclidiano N-dimensional, teríamos para um DNA de 3 lócus (2 parametros + fitness): Eixos : x , y (parâmetros) e z (fitness) Espaço euclidiano: R³ (gerado pela equação):

²)²22()²11( ROGOG ≤−+− Equação 11

onde G1 e G2 são os parâmetros e R é o raio da esfera ao redor de um ponto central, cujas coordenadas são (O1,O2). No caso, foram feitas 2 abordagens : Ponto central da esfera no melhor indivíduo da geração atual – criando cinturões de indivíduos ao redor do mesmo, e é contado o número de indivíduos por cinturão.Escolheu-se trabalhar com 5 cinturões, onde dentro de cada um a diferença entre o DNA de seus indivíduos não passa de 20%. Ponto central na origem do espaço gerado - ou seja, (0,0,0).Também é contado o número de indivíduos por cinturão.

Page 51: Mutação Diferencial Condicional como proposta de ... · de freqüência. A sintonia de controladores PID foi escolhida apenas como base para aplicação dos algoritmos genéticos

Mutação Diferencial Condicional como proposta de otimização de Algoritmos Genéticos

51

Através da primeira abordagem, podemos medir o quão variada está a geração atual,pois torna-se possível quantificar a distância dos demais indivíduos em relação ao melhor, como em um sistema planetário. Quanto mais indivíduos estiverem nos primeiros raios ao redor do melhor,mais concentrado está o conjunto e menor será a variedade genética,já que os valores dos parâmetros estarão muito próximos. Através da segunda, é possível mapear a distribuição da população ao longo do espaço de busca, já que o centro a partir do qual as esferas são traçadas é a própria origem 0,0,0. Logicamente, a órbita em que cada solução está depende do AG escrito. A idéia é extensível a qualquer número de dimensões,já que o princípio matemático é o mesmo, bastando aumentar o número de somas no cálculo da distância (embora para dimensões maiores que R³ a visualização seja mais complicada). Exemplo : Considerando a Equação 1. Para essa função ,existem 2 ótimos , em x=14.9 e x=22.8. Acompanhando cada geração, com a ferramenta de variedade orbital, temos os cinturões de R1 a R5 :

Ilustração 20 – órbitas ao redor do melhor indivíduo

Indivíduos em cada órbita

R1 R2 R3 R4 R5 9. 18. 3. 0. 0. 8. 16. 6. 0. 0. 8. 16. 6. 0. 0. 2. 21. 5. 2. 0. 4. 18. 6. 2. 0. 6. 12. 9. 3. 0. 5. 8. 13. 4. 0. 7. 4. 18. 1. 0. 8. 2. 19. 1. 0. 10. 1. 16. 3. 0. 12. 1. 16. 1. 0. 14. 1. 15. 0. 0. 16. 1. 13. 0. 0. 16. 1. 11. 2. 0. 17. 1. 10. 2. 0. 19. 0. 8. 3. 0. 22. 0. 7. 1. 0. 26. 0. 3. 1. 0. 25. 0. 3. 2. 0. 23. 1. 2. 4. 0.

Page 52: Mutação Diferencial Condicional como proposta de ... · de freqüência. A sintonia de controladores PID foi escolhida apenas como base para aplicação dos algoritmos genéticos

Mutação Diferencial Condicional como proposta de otimização de Algoritmos Genéticos

52

Percebe-se que há uma concentração muito grande de mais de 60% de uma dada geração em uma determinada órbita.Isso evidencia um mau espalhamento (baixa variedade). Na soma de cada coluna (raio), temos 248. 104. 186. 32. 0. Vemos que a maior parte do tempo,os indivíduos ficaram próximos do melhor indivíduo na 1ª órbita – ou seja, uma diferença máxima de 20% entre seus parâmetros. 6.1.7. Melhoria Efetiva Para poder avaliar o quanto cada geração de uma maneira mais visível ao humano, insere-se a melhoria efetiva, que nada mais é que a medida em porcentagem, do aumento de fitness entre uma geração e outra. É um pouco diferente do Delta-Fit apresentado, pois o primeiro dá uma noção da variação absoluta do fitness, a melhoria efetiva mede em porcentagem o quanto cada uma melhorou. No Delta-Fit, sabia-se por exemplo que o fitness aumentou 0,001 na geração 3. Mas o que isso significa em termos de crescimento pra geração 2 ? Pode ser 10% maior,pode ser 100 % melhor.Ao contrário do delta-fit, a melhoria efetiva é uma medida relativa entre gerações. O que se faz é a seguinte operação:

Melhoria_efetiva (fitness(g)-fitness(g-1)) / fitness (g-1) Equação 12

Onde ‘g’ é o índice do número de gerações.

Page 53: Mutação Diferencial Condicional como proposta de ... · de freqüência. A sintonia de controladores PID foi escolhida apenas como base para aplicação dos algoritmos genéticos

Mutação Diferencial Condicional como proposta de otimização de Algoritmos Genéticos

53

7. FERRAMENTAS EVOLUTIVAS – COPIANDO O NATURAL

NOVAMENTE Como auxílio na evolução da população ,geração após geração, foram criadas três ferramentas. Elas se baseiam em fenômenos que ocorrem na natureza (como no caso da Preferência ao Oposto) ou vêm corrigir alguns comportamentos da população observados nas gerações, sempre visando aumentar a variedade genética (é o caso das outras duas ferramentas citadas. 7.1. Preferência ao Oposto O mecanismo químico que atrai os indivíduos de sexo oposto nos animais é a liberação de feromônios, substâncias responsáveis pela atração mútua através da química do olfato. E o cheiro percebido é diretamente ligado ao genótipo de quem o exala. Um fato comprovado da Natureza é a de que todas as criaturas se sentem mais atraídas por aquelas cujo genótipo é mais diferentes possível, o que gera um feromônio instintivamente mais atraente. A Natureza assim procede para que a variedade genética não diminua, e a evolução possa prosseguir. Aproveitando este fato à pesquisa de AG, pode-se perceber que muitas vezes aparecem filhos que são cópias dos pais ou estão muitíssimo próximos do original.A fim de evitar isso,a cada cruzamento é calculada a “semelhança” entre os indivíduos,através do método da ‘distância orbital’ já mencionado. O indivíduo só é cruzado se sua semelhança for maior que um determinado limiar. Senão, procura-se outro randomicamente. A mesma motivação da Natureza é a que rege essa ferramenta. Cruzar indivíduos diferentes tende a aumentar a diversidade genética e assim a chance de convergência. Poderia então haver no cálculo do fitness uma parcela proporcional à órbita de cada indivíduo com centro no melhor, a fim de implementar essa filosofia. Esse cálculo da semelhança entre os genes de dois indivíduos é feito no script através da norma euclidiana do vetor que os separa :

Page 54: Mutação Diferencial Condicional como proposta de ... · de freqüência. A sintonia de controladores PID foi escolhida apenas como base para aplicação dos algoritmos genéticos

Mutação Diferencial Condicional como proposta de otimização de Algoritmos Genéticos

54

Seja G um indivíduo com os genes G1, G2 e G3, e H outro indivíduo com os genes H1, H2 e H3. Tratando cada indivíduo como um vetor dentro do espaço N-dimensional do qual fazem parte (no caso, R ³ pois são 3 genes), pode-se calcular a distância entre esses dois pontos fazendo:

Equação 13 Se os genes de G e de H estiverem dentro do intervalo entre 0 e 1, então a maior distância entre eles será no caso de G estar na origem, em (0,0,0) e H no extremo do espaço, em (1,1,1), o que retornaria

Equação 14 E então , faz-se fitness diretamente proporcional a essa distância, pois quanto maior ela for, maior será a diferença entre os genes. Porém deve-se tomar cuidado com o calculo da semelhança por distância orbital pode levar a valores maiores que 1 (conforme visto acima), o que obviamente aumentaria o fitness daqueles que não possuem grande fitness mas são diferentes o suficiente para serem escolhidos. Deve-se ter cautela no limiar, pois se é limitada a excursão inicial da população (ou tem-se uma população muito pequena) pode-se ficar presos em um loop infinito. Um adendo foi feito ao código,para que caso não haja algum indivíduo tão diferente como deseja-se (e é definido) no início do código,o AG se auto-diminua e fique “menos exigente”.Do contrário ele pode ficar indefinidamente buscando.

Page 55: Mutação Diferencial Condicional como proposta de ... · de freqüência. A sintonia de controladores PID foi escolhida apenas como base para aplicação dos algoritmos genéticos

Mutação Diferencial Condicional como proposta de otimização de Algoritmos Genéticos

55

7.2. Repressão à cópia Durante o processo de operadores darwinianos o OpGens (Operadores Genéticos), principalmente em populações pequenas e/ou abordagens elitistas (como a que foi usada nesse relatório), surgem cópias de indivíduos já presentes na elite, pois não foi embutido um trecho de código que evite o cruzamento mais de uma vez por um mesmo casal , e também pelos pares serem escolhidos aleatoriamente. Isso atrasa e muito o processo de evolução, e causa uma baixa variedade genética (é fácil perceber isso observando os orbitais). Para tentar contornar isso, foram tentadas 2 abordagens : ou zerar todo o DNA das cópias antes do SORT, ou modificar o DNA da cópia de modo a mudar o indivíduo favorecendo-o ou melhorando ao menos a variedade. Zerando o DNA, causou-se uma instabilidade no sistema,fazendo com que no algoritmo mais adiante os indivíduos nulos fossem cruzados,gerando muitos filhos nulos ou inúteis, desperdiçando material genético bom dos pais escolhidos. Então decidiu-se substituir essa anulação por uma mutação tradicional – os indivíduos que fossem cópias receberiam uma alteração aleatória no seu DNA assim evitando um valor nulo mais tarde.Isso revelou-se bastante útil, aumentando a variedade genética (vendo os orbitais isso fica claro). 7.3. Inversão de iguais Partindo da premissa de que cada gene vai só de 0 a 1,supôs-se que o recíproco de um gene leve esse gene pro outro extremo do espaço de busca. Para tanto, foi usada a seguinte operação: Rc(G)=Recíproco(G)=1-G Equação 15

onde G é o gene a ser invertido. Essa função foi inspirada na negação booleana, e mais ainda na negação em números fuzzy. A distância para onde irá esse gene depende do valor do pai das cópias,mas para todos os genes iguais (pior caso), temos a seguinte distância da origem:

( ) ( ) ( ) ( ) ( )11²11.....²11²11²11 GNGGGGdist −⋅=−++−+−+−= Equação 16

onde N é o número de genes do DNA do indivíduo.

Page 56: Mutação Diferencial Condicional como proposta de ... · de freqüência. A sintonia de controladores PID foi escolhida apenas como base para aplicação dos algoritmos genéticos

Mutação Diferencial Condicional como proposta de otimização de Algoritmos Genéticos

56

Para N=3, podemos lançar essa cópia até 1,73 unidades pra longe do pai, supondo que o pai está na origem.Isso não ocorre,mas se ocorresse ele ainda estaria dentro do espaço de estados (embora estive em seu ponto mais distante. Então para cada cópia, invertia-se todos os genes,jogando-os para o outro lado do espaço.O problema é que ao se fazer isso, criava-se uma sucessão de cópias invertidas,o que não aumentava a variedade genética. Para contornar esse problema, foi adicionada uma pequena parcela aleatória sobre cada inversão, mandando as cópias pra um lugar distante mas diferente umas das outras (embora essa diferença seja de décimos). Isso não é uma mutação diferencial, pois não estamos mudando pouco o original, e sim invertendo toda a cadeia de DNA do mesmo. Por exemplo, seja o indivíduo [ 0,8 0,3]. Usando a ferramenta inversão, ele iria para [1-0,8 1-0,3] = [0,2 0,7] Esse exemplo pode ser visualizado na imagem abaixo (figura 21):

Ilustração 21 - Usando a ferramenta inversão

Nessa figura, a parte em cinza é o espaço de estados, o universo no qual o DNA pode variar. O ponto vermelho é o indivíduo [0,8 0,2], e o ponto em azul, seu recíproco ou inverso , [0,2 0,7]. Percebe-se quão exploratória é essa técnica, e quão útil também. As cópias, que no fim das contas não serviriam para nada (pois o indivíduo original já carrega a informação delas) são usadas como “sondas” para as regiões mais distantes do plano.

Page 57: Mutação Diferencial Condicional como proposta de ... · de freqüência. A sintonia de controladores PID foi escolhida apenas como base para aplicação dos algoritmos genéticos

Mutação Diferencial Condicional como proposta de otimização de Algoritmos Genéticos

57

8. CONTROLE CLÁSSICO [8]

8.1. O que é controle? Controle é a atuação em um sistema (pode uma máquina,um dispositivo) de maneira a forçar o seu comportamento para que funcione da maneira desejada. Isso se torna evidente em diversos elementos cotidianos : torneiras (controla-se o fluxo da água), sintonizador (seleciona-se uma emissora de TV girando o botão) e o acelerador do carro (controla-se a velocidade do motor conforme o pedal).

8.2 O que é controle em malha fechada ou realimentado ? É uma forma do sistema se manter funcionando do jeito escolhido sem interferência constante,corrigindo automaticamente o erro. Por exemplo, sintonizando uma TV. Ao girar o seletor pouco a pouco começam a aparecer o vídeo e a imagem, com um pouco de chuvisco, saindo de foco, até é acertada a posição e a imagem fica nítida e o som perfeito. Mas muitas vezes, o aparelho de TV começa a se aquecer (depois de 1 ou 2 horas ligado) e os componentes eletrônicos dentro, por serem sensíveis a variação de temperatura, mudam ligeiramente de valor e a TV começa a sair de sintonia novamente. O som já não é claro, a imagem perde definição. Ou levanta-se e ajustar novamente, ou de alguma forma o seletor deve por si só buscar o canal, voltando a posição original. Quando é selecionada a emissora, é imposto à TV que funcione naquele canal, dá-se uma referência, um estado de funcionamento a ela. Quando ela sai de sintonia, existe um erro : uma diferença entre o que foi ordenado (ajustado, desejado) e o estado atual (saída). Pode-se encarar a TV como um sistema - uma caixa-preta onde tem-se como entrada um valor (no caso a posição do seletor) e obtém-se uma saída (no caso, a imagem da emissora desejada). Há sistemas em todo lugar. Como o sistema “automóvel” : quanto mais fundo está o pedal do acelerador (entrada), mais velocidade ele atinge(saída).

Page 58: Mutação Diferencial Condicional como proposta de ... · de freqüência. A sintonia de controladores PID foi escolhida apenas como base para aplicação dos algoritmos genéticos

Mutação Diferencial Condicional como proposta de otimização de Algoritmos Genéticos

58

Ilustração 22 – Sistema em malha aberta

A figura 22 expressa um “sistema em malha aberta”. “Malha” é a forma como as entradas e saídas estão conectadas, como os elementos do sistema estão interligados.No caso, a malha é

Pedal Automóvel Velocidade

Ele é dito em malha aberta pois não há nenhuma ligação entre um bloco da frente (mais próximo da saída) com outro mais atrás (mais próximo da entrada), formando um “laço” ou “loop”. No caso de um ar-condicionado, existe um dispositivo interno (termômetro) que mede a temperatura ambiente (situação real, estado atual) e compara com o que é ajustado pelo controle (temperatura desejada).Ele irá refrigerar (injetar ar frio no ambiente) até que a temperatura ambiente seja igual ou muito próxima a temperatura desejada (ou seja,até que a referência ou desejado se torne realidade - ou ainda - até que a saída se iguale a entrada ordenada). Em blocos:

Ilustração 23- Sistema com Loop

Percebe-se que existe um loop, um caminho fechado entre o ar-condicionado e a temperatura da sala. O ar-condicionado não continua funcionando com a mesma potência “acreditando” que a sala está na temperatura desejada. Ele verifica se o real está igual ao desejado através de um termômetro.Ele tem um retorno, uma resposta do que ele está controlando (no caso, queremos controlar a temperatura do lugar). Há uma ligação entre um bloco mais adiante (bloco da temperatura da sala) com um anterior a ele (bloco do Ar-Condicionado), formando um circuito fechado entre saída e entrada. Por isso, esse tipo de sistema é chamado de controle em malha fechada. Foi dito “corrigindo automaticamente o erro”.

Saída de

ar frio Ar-Condicionado Temperatura

desejada Temperatura

da sala

Termômetro

Velocidade

km / h

AUTOMÓVEL Posição

do Pedal

Entrada Saída

Page 59: Mutação Diferencial Condicional como proposta de ... · de freqüência. A sintonia de controladores PID foi escolhida apenas como base para aplicação dos algoritmos genéticos

Mutação Diferencial Condicional como proposta de otimização de Algoritmos Genéticos

59

Erro nada mais é que a diferença entre o desejado e o que obtém-se na saída. Quando a sala está quente (35ºC) e é ligado o ar-condicionado, e com o controle ajusta-se para 23ºC, o sistema entende que existe um erro de 12ºC que precisa ser corrigido.E ele injetará ar frio no ambiente até que essa diferença caia para zero (quando está 23ºC na sala). A estrutura clássica do controle em malha fechada (CMF) é :

Ilustração 24– Estrutura de um sistema de malha fechada

A referência é o valor desejado. Para um carro, pode ser a velocidade, para o ar-condicionado a temperatura ideal, etc. A saída é o valor real daquilo que se almeja mudar (ou melhor, o que se deseja que o sistema tente mudar). O sistema é o que deseja-se controlar.Também é chamado de “planta”. O sensor é o que informa ao CMF como está a saída, o estado real. E o controlador é o elemento responsável por forçar a saída a se tornar igual a entrada.Para isso, deve haver um erro. E há. O erro ‘E’ vem da subtração, logo no começo, entre a referência R e a saída C. Entrando em fórmulas: Representam-se as ligações entre os blocos através de multiplicações:

)*1(*****

**)(

HGCCHGCHGR

CHGCR

+=+=

=− Equação 17

Isolando as variáveis, pode-se achar a chamada função de transferência, que é uma função (fórmula) que relaciona a entrada com a saída:

HG

HG

R

C

*1

*

+= Equação 18

ou ainda , em função do erro,

HGECCHGCR ****)( =→=− Equação 19

Controlador

G Referência

R Planta(sistema)

H

Sensor

- Saída C E

Page 60: Mutação Diferencial Condicional como proposta de ... · de freqüência. A sintonia de controladores PID foi escolhida apenas como base para aplicação dos algoritmos genéticos

Mutação Diferencial Condicional como proposta de otimização de Algoritmos Genéticos

60

A entrada da planta (aparelho a controlar) recebe GE * , ou seja, se o erro for zero, não há porque a planta atuar. Por exemplo, se a planta for o ar-condicionado, se o erro for zero, ele não irá injetar ar frio na sala. 8.3. Controladores Foi visto que todo controlador visa diminuir e se possível zerar o erro E=C-R , ou seja, a diferença entre a saída atual C e o valor desejado R. Ele faz isso através de uma função g(x) cujo ‘x’ é o valor do erro. Isso é feito através da escolha da função do controlador, de tal forma que seus pólos e zeros permitam que o erro diminua no tempo. Para isso existem diversos métodos analíticos consagrados, como Método do Lugar das Raízes (LGR ou root-locus), diagrama de Bode, etc. Isso pode ser explorado nas referências de controle citadas no final, e sua explanação foge do escopo deste trabalho. Existem vários tipos de controladores [8] entre eles: Controle de duas posições ou ON-OFF Controle Proporcional (P) Controle Integral (I) Controle Proporcional-mais-integral (PI) Controle Proporcional-Integral-Derivativo (PID) Controle ON-OFF (liga-desliga) Existem 2 níveis de saída no controlador, que podem ser [0,+Vmáx] ou [-Vmáx ,+Vmáx] (sendo Vmáx o máximo valor de saída do controlador), dependendo do seu projeto e da planta. Nesse tipo de controle, ao atingir um determinado limiar de erro, a planta é chaveada do estado desligada (OFF) para um estado ligado (ON) até que o erro tenha caído abaixo desse limiar. Um exemplo típico é o controle de vazão ou de enchimento de um reservatório, controlado por uma bóia com sensor. A válvula deixará a água entrar ou sair de acordo com a posição da bóia. Que subirá ou descerá de acordo com o nível do tanque. Esse controle é o mais simples e barato, portanto bastante utilizado no mundo industrial. Todavia, ele carrega consigo o problema da intermitência; Se o período com que o erro volta a crescer for rápido o suficiente, ele pode forçar o controlador a chavear excessivamente a planta, o que acaba reduzindo a vida útil não só dos elementos chaveadores como também do próprio dispositivo controlado. Isso pode ser visualizado na figura 25 , a seguir:

Page 61: Mutação Diferencial Condicional como proposta de ... · de freqüência. A sintonia de controladores PID foi escolhida apenas como base para aplicação dos algoritmos genéticos

Mutação Diferencial Condicional como proposta de otimização de Algoritmos Genéticos

61

Ilustração 25- Intermitência no controle On-Off

Os controles proporcional, integral e derivativo terão sua explicação em um tópico a parte, a fim de introduzir melhor o PID no contexto do trabalho. 8.4. A planta A planta, ou sistema a ser controlado - também tem uma função que relaciona entrada com saída. A planta, pelo esquema clássico do CMF, recebe o sinal do controlador. A planta é o atuador do sistema, cuja função é funcionar para que a variável controlada (ou que se quer controlar, seja temperatura, seja nível de água em um tanque) atinja ou mantenha um determinado valor. Por exemplo, um ventilador é uma planta cuja função pode ser, dentro de um CMF, resfriar o ambiente. A velocidade com que ele irá girar depende do que o controlador enviar a ele (na forma de tensão elétrica).Por sua vez, a tensão que o controlador enviará a ele depende do erro e da função g(e) que ele tenha.Esse erro depende da entrada (valor desejado) e da saída atual (temperatura ambiente), fechando o ciclo e fazendo com que o ventilador funcione mais rápido ou mais devagar de acordo com o calor que faz. Nesse relatório, deseja-se controlar um motor elétrico, do tipo corrente contínua. Para isso, o mesmo é modelado adiante na sua função.

Page 62: Mutação Diferencial Condicional como proposta de ... · de freqüência. A sintonia de controladores PID foi escolhida apenas como base para aplicação dos algoritmos genéticos

Mutação Diferencial Condicional como proposta de otimização de Algoritmos Genéticos

62

8.5. CARACTERÍSTICAS DE UM SISTEMA EM MALHA FECHADA [8] Dependendo de como é ajustado o controlador, tem-se 3 tipos de comportamento: Sistema estável - depois de um determinado tempo, a saída real se iguala a desejada (a saída fica igual a entrada). Sistema Instável - o sistema tenta corrigir o erro, mas depois de alguns instantes se perde completamente, e o valor da saída tende ao infinito ou a zero,nunca atingindo a entrada de referência. Sistema Marginalmente estável - o sistema não consegue seguir a entrada porém também não se afasta demais dela. Ele fica oscilando indefinidamente ao redor da referência ou nas suas imediações.

Ilustração 26 -Sistema Estável - referência (azul) e saída (laranja)

Ilustração 27 - Sistema instável - referência (azul) e saída (laranja)

Page 63: Mutação Diferencial Condicional como proposta de ... · de freqüência. A sintonia de controladores PID foi escolhida apenas como base para aplicação dos algoritmos genéticos

Mutação Diferencial Condicional como proposta de otimização de Algoritmos Genéticos

63

Ilustração 28 -Sistema marginalmente estável

Escolhendo uma função cuja saída seja muitas vezes proporcional

ao erro, ou cuja reação seja muito rápida e brusca, é possível fazer com que o sistema corrija mais do que o necessário e passe do ponto, fazendo com que a saída se torne novamente diferente da referência, mas pelo outro extremo.

Então o sistema irá tentar corrigir mais uma vez, mas pela sua reação exagerada, passa para além da referência de novo. Isso faz com que o sistema se torne oscilatório - totalmente, como nos sistemas marginalmente estáveis, ou parcialmente, como nos sistemas estáveis com uma leve oscilação.

Entretanto, usando uma reação muito branda de g(e) em relação ao erro, tem-se uma resposta muito lenta do sistema, e levará muito tempo até que a saída encontre a entrada de referência.

Reações muito grandes deixam a resposta mais rápida, mas deixam o sistema mais instável e oscilatório. Respostas mais brandas incorrem em sistemas mais estáveis, porém mais lentos. Esse jogo de ponderações é extremamente complexo, e diversas técnicas foram desenvolvidas (analiticamente e numericamente) para achar os melhores ajustes.

Page 64: Mutação Diferencial Condicional como proposta de ... · de freqüência. A sintonia de controladores PID foi escolhida apenas como base para aplicação dos algoritmos genéticos

Mutação Diferencial Condicional como proposta de otimização de Algoritmos Genéticos

64

Analisando a resposta do sistema estável Como a porção útil dos sistemas são os controladores que dão

uma resposta estável, é possível analisar os gráficos de saída das mesmas.

Seja o gráfico abaixo

Ilustração 29 - Principais características na resposta

Esse é um desenho típico da resposta das plantas quando

controladas em malha fechada. São as características mais usadas como critério de avaliação as seguintes:

Over - Vem de “Overshoot” ou sobre-sinal,que é o máximo

atingido pela planta, o pico antes de aproximar e estabilizar.Quanto maior a reação do controlador frente ao erro,maior será esse valor.

Ts - É o tempo de subida da planta, que é o tempo que ela leva

para ir de 0 a 100% pela primeira vez. Pode-se chamar de tempo de partida, pois depois de atingido esse ponto ele atinge um tempo de estabilização.

Quanto maior a reação do controlador frente ao erro, menor será esse valor.

T2% - É o tempo que o sinal do atuador (planta) leva para

alcançar e permanecer em torno do valor final, apresentando daí em diante no máximo 2% de variação em relação a entrada.

Referido na literatura como tempo de acomodação. Essa análise é chamada de Análise da resposta transitória, pois

estuda o período curto entre o início do sinal e o período em regime, onde o sistema estabiliza na referência [8].

Page 65: Mutação Diferencial Condicional como proposta de ... · de freqüência. A sintonia de controladores PID foi escolhida apenas como base para aplicação dos algoritmos genéticos

Mutação Diferencial Condicional como proposta de otimização de Algoritmos Genéticos

65

8.6. Medindo o desempenho do controlador baseado no erro [8] Seja a figura a seguir

Ilustração 30- Saídas em um sistema típico de controle

Este gráfico é idêntico ao anterior visto, mas contendo o sinal de

erro que entra no controlador - que nada mais é que a subtração do gráfico azul (saída) do gráfico laranja(referência) . Percebe-se que com o tempo o erro decresce e em t=T2% fica igual ou menor que 2%.

Fica claro que quanto ao desempenho : Quanto menor for o Over, melhor pois não sobrecarrega o

sistema; Quanto menor for o Ts, melhor pois o sistema parte rápido; Quanto menor for T2% melhor, pois mais rápido as oscilações

terminam Se esses 3 parâmetros fossem zero, o sinal de saída seria idêntico

ao sinal de entrada, no mesmo instante em que ele é aplicado (controle ideal).

Portanto, quanto menor a área entre saída e referência - quanto menor a integral do módulo do erro - tanto melhor o controle feito.

Porque a integral do módulo do erro ? Porque tendo áreas positivas (por exemplo, antes do Over) e negativas (por exemplo, depois do Over), elas tendem a se cancelar na soma.Por isso usar o módulo.

Então o índice de desempenho do controlador seria

∫∫∫∞∞∞

⋅=⋅−=⋅−=000

dtedtCRdtCRindice Equação 20

Que é chamado de IAE - Integral do Erro Absoluto. De acordo com esse critério, quanto menor e mais rápido a curva

do erro (vermelha) terminar, melhor será considerado o controlador.

Page 66: Mutação Diferencial Condicional como proposta de ... · de freqüência. A sintonia de controladores PID foi escolhida apenas como base para aplicação dos algoritmos genéticos

Mutação Diferencial Condicional como proposta de otimização de Algoritmos Genéticos

66

Ilustração 31- IAE : a parte hachurada é a área do erro entre saída (linha mais grossa) e a

referência (linha mais fina)

Todavia um erro pequeno e persistente tem menor peso que um

erro grande e curto. Um melhoramento sobre isso seria penalizar erros pequenos e

constantes da mesma forma que os erros grandes e rápidos, pois ambos são inconvenientes.

Esse índice é chamado de ITAE, a Integral do Tempo multiplicado pelo erro absoluto:

∫∫∫∞∞∞

⋅⋅=⋅−⋅=⋅−⋅=000

dtetdtCRtdtCRtITAE Equação 21

Esse foi o critério adotado nesse relatório para avaliar os PID’s

gerados.

8.7. ESFORÇO DE CONTROLE É possível ter um controlador muitíssimo próximo do ideal, com

todos os seus índices (Over,Ts,T2%) praticamente nulos e ainda sim termos graves problemas ao ligarmos o sistema.

A forte reação do controlador é capaz de minimizar todos os tempos do regime transitório (supondo que apesar disso o sistema continue estável), mas a que preço ? A saída da planta pode não estar com um grande Over,mas pode ser que pra que ela responda tão rapidamente à entrada,o controlador esteja mandando um sinal muitíssimo alto, o bastante para forçar o sistema além dos limites suportáveis na entrada.

Por exemplo, para fazer com que a temperatura ambiente esteja agradável e mude tão rapidamente, o ventilador pode estar recebendo do controlador uma tensão altíssima na sua tomada de

Page 67: Mutação Diferencial Condicional como proposta de ... · de freqüência. A sintonia de controladores PID foi escolhida apenas como base para aplicação dos algoritmos genéticos

Mutação Diferencial Condicional como proposta de otimização de Algoritmos Genéticos

67

alimentação, podendo ser suficiente para queimá-lo antes mesmo que ele funcione.

Supondo o diagrama original de controle:

Ilustração 32 – Sistema de controle em malha fechada

A entrada da planta recebe o sinal sig=E*G, que dependendo da função de G pode ser desastroso, multiplicando o erro por dezenas de vezes antes de entregá-lo a planta H.Esse sinal injetado pelo controlador na planta para levá-la a acompanhar a referência é chamado de ESFORÇO DE CONTROLE.

Controlador

G Referência

R Planta(sistema)

H

Sensor

- Saída C E

Page 68: Mutação Diferencial Condicional como proposta de ... · de freqüência. A sintonia de controladores PID foi escolhida apenas como base para aplicação dos algoritmos genéticos

Mutação Diferencial Condicional como proposta de otimização de Algoritmos Genéticos

68

8.8. MODELANDO A PLANTA - O MOTOR CC [8],[13] Considere o desenho abaixo [8]:

Ilustração 33 – Modelando o motor CC

Propõe-se que o motor seja controlado pela corrente de armadura - que exige um controle mais simples,bastando variar a tensão de entrada, que gerará a corrente de armadura que controla o torque. O torque T do motor é proporcional ao fluxo magnético do motor (que por sua vez depende da corrente de campo, ou fi ) e proporcional a

corrente de armadura do motor, ou Ai :

FAAFFAi iiKiKiKT ⋅⋅=⋅⋅⋅= Equação 22

Quanto mais a armadura gira, maior é a força contra eletromotriz (f.c.e.m.) gerada, o que tende a reduzir a corrente de armadura. Essa tensão é proporcional a rotação do motor (variação da posição angular):

dt

dKe B

θ⋅= Equação 23

Vendo o motor como um circuito elétrico fica:

Vdt

dKiR

dt

idLVteiR

dt

idL BA

A

A

A =⋅+⋅+⋅→=+⋅+⋅θ

)(

Equação I (Eq. 24)

Onde V é a tensão de entrada, R é a resistência de armadura e L a indutância da mesma. Vendo o lado mecânico:

AA iKTbJ ⋅==⋅+⋅ θθ &&& Equação II - Equação 25

onde J é o momento de inércia do rotor + carga e b é a constante de amortecimento do sistema mecânico.

Page 69: Mutação Diferencial Condicional como proposta de ... · de freqüência. A sintonia de controladores PID foi escolhida apenas como base para aplicação dos algoritmos genéticos

Mutação Diferencial Condicional como proposta de otimização de Algoritmos Genéticos

69

Juntando as equações I e II em um sistema linear e passando pro domínio de Laplace, tem-se:

0*

2

Vi

sbsJK

sKRsLA

A

B −=

⋅+⋅−

⋅+⋅

θ Equação 26

Resolvendo para θ , tem-se:

( ) ( )bJsRLsKK

K

V BA

A

+⋅++⋅=

θ Equação 27

sabendo que TB KK = dentro do SI de medidas, vem

( ) ( )bJsRLsK

K

V +⋅++=

²

θ Equação 28

Que é a função usada nesse Trabalho de Graduação nos scripts. Para as simulações, foram usados os valores presentes em [13]: J=0,01 kg.m²/s² b=0,1 N.m.s K=0,01 Nm/A R=1 Ω L= 0,5 H

Page 70: Mutação Diferencial Condicional como proposta de ... · de freqüência. A sintonia de controladores PID foi escolhida apenas como base para aplicação dos algoritmos genéticos

Mutação Diferencial Condicional como proposta de otimização de Algoritmos Genéticos

70

9. O PID 9.1 Características [8] O PID é um tipo de controlador que une três parcelas do erro : passado, presente e futuro (controles P,I e D respectivamente). É o controlador mais usado em controle de processos contínuos. Pode ser encontrado em diversos CLP’s (controladores lógicos programáveis) e em inversores de freqüência, dispositivos usados para controlar motores e outros dispositivos. Controlador Proporcional (P) - a saída do controlador é diretamente proporcional ao valor desse erro. Por exemplo, g(e)=4*e implica que para um valor de erro ‘e’, a planta H irá receber um valor quatro vezes maior ,forçando-a a funcionar mais rápido ou mais forte, tentando com isso corrigir o erro o mais rápido possível. Está ligado ao erro atual do sistema, ao presente momento do mesmo. Controlador Integral (I) - A saída do controlador é proporcional à integral do erro no tempo, ou seja, é proporcional ao erro acumulado até o momento.Está ligado ao passado do sistema - aos erros anteriores.

Função : ∫ ∫ ⋅−=⋅=t t

dtCRdtteeg0 0

)()()(

Controlador Derivativo (D) - A saída do controlador é proporcional à derivada do erro no tempo, ou seja, é proporcional a taxa de variação desse erro.Na maior parte das vezes, está associado a taxa com que o erro cresce.Quanto mais rápido o erro cresce, maior é o sinal injetado na planta. Está ligado à tendência de crescimento do erro, tentando prever seu valor futuro.

Função: ( ) ( )CRdt

dte

dt

deg −== )()( Equação 29

Para isso é necessário ponderar cada parcela, qual o grau de importância de cada uma na saída final, que irá comandar a planta. Esses pesos são chamados KP, KI e KD, referentes ao controle P,I e D respectivamente. A função de um PID é , de forma simplificada ,

( )∫ ⋅+⋅+⋅= )()()( tedt

dKDteKIeKPeg Equação 30

e no domínio de Laplace, tem-se:

Page 71: Mutação Diferencial Condicional como proposta de ... · de freqüência. A sintonia de controladores PID foi escolhida apenas como base para aplicação dos algoritmos genéticos

Mutação Diferencial Condicional como proposta de otimização de Algoritmos Genéticos

71

⋅++⋅= sKD

s

KIKPesg )( Equação 31

Os fatores importantes são como implementar o PID e o modo de se escolher os valores de KP, KI e KD convenientemente para se obter a resposta desejada – chamada de “sintonia” do PID. Cada um deles apresenta as seguintes características:

• Ação Proporcional –P – Ação imediata e proporcional ao valor do erro corrente – Acelera a resposta de um processo controlado – Reduz o tempo de subida e o erro máximo – Aumenta o “overshoot” e o tempo de estabilização – Produz um “off-set” (erro permanente) inversamente

proporcional ao ganho [8]

• Ação Integral – I – Ação de controle gradual, proporcional a integral do erro – Responde ao passado do erro enquanto este for diferente

de zero – Elimina o “off-set”. Reduz o tempo de subida. – Aumenta o “overshoot”, o período de oscilação e tempo

de estabilização – Produz respostas lentas e oscilatórias. Tende a instabilizar a

malha

• Ação Derivativa –D – Ação antecipatória, resposta proporcional à derivada do

erro – Usada para acelerar e estabilizar a malha. – Reduz o “overshoot” e o erro máximo e o período de

oscilação – Não é indicada para processos com ruído,pois a derivada

tem como característica amplificar sinais de alta freqüência. Isso pode ser constatado matematicamente derivando um sinal de freqüência ‘w’. Como resultado será obtido uma senoidal com amplitude w vezes maior.

Essas parcelas de controle podem ser mais bem visualizadas no quadro

abaixo, onde à esquerda está o sinal de erro e(t) e à direita a saída do controlador, que é o sinal que chega até a planta controlada.

Page 72: Mutação Diferencial Condicional como proposta de ... · de freqüência. A sintonia de controladores PID foi escolhida apenas como base para aplicação dos algoritmos genéticos

Mutação Diferencial Condicional como proposta de otimização de Algoritmos Genéticos

72

Ilustração 34- Ação de cada parcela de controle dentro do PID

Ilustração 35- Efeito do controle proporcional na saída da planta

Page 73: Mutação Diferencial Condicional como proposta de ... · de freqüência. A sintonia de controladores PID foi escolhida apenas como base para aplicação dos algoritmos genéticos

Mutação Diferencial Condicional como proposta de otimização de Algoritmos Genéticos

73

Ilustração 36- Efeito do controle integral na saída do sistema

Ilustração 37- Efeito do controle Derivativo na saída do sistema

Page 74: Mutação Diferencial Condicional como proposta de ... · de freqüência. A sintonia de controladores PID foi escolhida apenas como base para aplicação dos algoritmos genéticos

Mutação Diferencial Condicional como proposta de otimização de Algoritmos Genéticos

74

9.2. Formas de implementação do PID Existem várias formas de se implementar um PID, cada uma com seus respectivos prós e contras. Diversos autores têm pesquisado esse campo a fim de obter maior robustez, resposta mais rápida, etc. Aqui será feita uma breve introdução nas 3 maneiras mais difundidas entre os implementadores: Forma Ideal (padrão ISA – International Standard Association) – as três parcelas são somadas independentemente, mas o erro segue pré-amplificado para cada uma delas;

Ilustração 38- Estrutura do formato ISA de PID

Page 75: Mutação Diferencial Condicional como proposta de ... · de freqüência. A sintonia de controladores PID foi escolhida apenas como base para aplicação dos algoritmos genéticos

Mutação Diferencial Condicional como proposta de otimização de Algoritmos Genéticos

75

Forma Série – As parcelas possuem ganhos separados, mas com o erro ainda pré-amplificado.

Ilustração 39- Estrutura do Algoritmo Série

Forma paralela – as três parcelas são somadas independentemente, cada uma com um ganho. Essa foi a forma escolhida para este trabalho.

Ilustração 40- Estrutura do PID paralelo

Page 76: Mutação Diferencial Condicional como proposta de ... · de freqüência. A sintonia de controladores PID foi escolhida apenas como base para aplicação dos algoritmos genéticos

Mutação Diferencial Condicional como proposta de otimização de Algoritmos Genéticos

76

Ilustração 41- Diferentes formas de implementar o PID

As três formas se intercomunicam conforme a tabela abaixo, relacionando os ganhos de cada uma:

Ilustração 42- Relação entre os parâmetros das diferentes formas de PID

Page 77: Mutação Diferencial Condicional como proposta de ... · de freqüência. A sintonia de controladores PID foi escolhida apenas como base para aplicação dos algoritmos genéticos

Mutação Diferencial Condicional como proposta de otimização de Algoritmos Genéticos

77

9.3. PROCESSO DE SINTONIA DE UM PID Conforme já dito anteriormente na seção sobre Controle, a “sintonia” de um PID consiste na escolha dos seus parâmetros e ganhos a fim de conseguir na saída uma resposta não só estável como também obedecendo alguns critérios de desempenho, como Sobre-sinal (overshoot), tempo de acomodação (T2%) e esforço de controle (IAE e ITAE), que são os mais utilizados. ESCOLHER CRITÉRIOS DE DESEMPENHO Logo a primeira etapa é escolher quais serão os critérios de desempenho e quais as variáveis da saída da planta usar para calculá-los. IDENTIFICAÇÃO DE PROCESSO A segunda etapa é identificar e verificar o modelo da planta – chamado Identificação de Processo. Com isso é possível determinar qual é a função de transferência da planta. Um dos métodos preferidos é a construção do modelo de primeira ordem com atraso (First Order Delay Time- FODT). A planta é tratada como uma caixa-preta e excitada com um degrau unitário e sua resposta analisada e aproximada pela curva a seguir:

Ilustração 43– Modelo FODT

Cujo modelo no domínio ‘s’ é

Equação 32

Page 78: Mutação Diferencial Condicional como proposta de ... · de freqüência. A sintonia de controladores PID foi escolhida apenas como base para aplicação dos algoritmos genéticos

Mutação Diferencial Condicional como proposta de otimização de Algoritmos Genéticos

78

O ganho ‘Kp’ pode ser encontrado como quociente entre o sinal de saída e o sinal injetado quando a curva entra em regime. O tempo morto ‘θ’ é tirado diretamente da curva e é o intervalo entre a aplicação da perturbação (sinal de entrada) e o início da variação na saída. O valor de ‘τ’ é a constante de tempo da planta. Quando excitado, o

sistema leva ‘τ’ segundos para atingir aproximadamente 63 % do valor

final. A partir desse modelo, diversos autores elaboraram fórmulas relacionando os ganhos do PID (Kp, Ki e KD) com esses valores do modelo FODT. APLICAÇÃO DE UM MÉTODO NUMÉRICO DE SINTONIA Método de Cohen-Coon Um dos métodos mais famosos é o de Cohen-Coon, que desenvolveram para auxiliar na análise, o conceito de “razão de controlabilidade”, que é o quociente entre o tempo morto e a constante de tempo da planta:

Equação 33 Que na prática representa a dificuldade da planta em ser controlada. A tabela resultante é

Tabela 3-Tabela de sintonia numérica de PID por Cohen-Coon Esse método foi desenvolvido tendo como critérios a minimização dos valores de IAE (Integral absoluta do erro) e a amortização das oscilações, decaindo a ¼ do seu valor a cada período de oscilação. Ou seja , se o sistema tem um transitório com uma oscilação de ‘w’ radianos por segundo, a cada 1/w segundos essa oscilação cairá a um quarto da sua amplitude.

Page 79: Mutação Diferencial Condicional como proposta de ... · de freqüência. A sintonia de controladores PID foi escolhida apenas como base para aplicação dos algoritmos genéticos

Mutação Diferencial Condicional como proposta de otimização de Algoritmos Genéticos

79

Métodos de Ziegler-Nichols [14]

Método dos ganhos últimos Neste método, a planta também é tratada como uma caixa-preta, porém o tipo de ensaio feito é outro. Fecha-se uma malha contendo um controlador do tipo proporcional. Então, aumenta-se gradativamente o valor do ganho deste controlador até que o sistema comece a oscilar levemente. Continua-se aumentando o ganho até que ele se torne extremamente oscilante e esteja no limiar da estabilidade. Este é o chamado ganho último ou ‘Gu’ (também chamado em algumas literaturas como ganho crítico). Nesse ponto, a oscilação do sistema se dará em uma freqüência ‘Pu’. Então diz-se que, no ganho último Gu, o sistema oscilará em sua freqüência natural Pu. A partir disso, Ziegler e Nichols desenvolveram uma tabela que relaciona esses dois parâmetros com os ganhos do PID, conforme a tabela abaixo:

Tabela 4 – Sintonia usando o método dos ganhos últimos de Ziegler-Nichols Esse método foi o primeiro a ser desenvolvido para esse fim, por muito tempo foi usado largamente nas indústrias. Todavia é consenso de todos os pesquisadores que esse método é extremamente conservador. Este método também foi desenvolvido visando que a resposta tenha amortecimento da oscilação para um quarto de seu valor a cada período de oscilação. Método de Ziegler-Nichols usando o modelo FODT (malha aberta) [14] De maneira semelhante ao método de malha aberta de Cohen-Coon, Ziegler e Nichols também montaram , através de inúmeras considerações e cálculos, uma tabela baseada na resposta em malha aberta, conforme segue:

Tabela 5 – Valores a serem usados no método Z-N de malha aberta

Page 80: Mutação Diferencial Condicional como proposta de ... · de freqüência. A sintonia de controladores PID foi escolhida apenas como base para aplicação dos algoritmos genéticos

Mutação Diferencial Condicional como proposta de otimização de Algoritmos Genéticos

80

Crítica aos métodos tabelados Todos estes métodos são consagrados e procuram dar ao projetista uma ferramenta ‘coringa’, capaz de cobrir a maior parte das plantas com a melhor resposta possível com o mínimo de trabalho humano, quando comparado a métodos analíticos como Lugar das Raízes ou Bode, que apesar da resposta otimizada ao máximo, exigem um longo tempo de projeto e cálculos. Entretanto, é possível unir a praticidade dos métodos numéricos (como Z-N e Cohen-Coon) com a otimização dos métodos analíticos (LGR). Para isso é desenvolvida a implementação da sintonia de PID usando AG. 10. APLICANDO OS ALGORITMOS GENÉTICOS NO CONTROLE CLÁSSICO Nesta seção do trabalho, será descrita toda a seqüência, considerações e implementações do sistema “PID + motor” no script, as problemáticas e soluções criadas para contorná-las.

10.1 Como representar um controlador em genes? Como já foi dito antes, para aplicar os AG deve-se antes decidir como representar o problema a ser resolvido. A proposta deste trabalho é o uso de AG na sintonia de PID’s dentro de uma malha fechada, controlando como exemplo um motor de corrente contínua. O motor é modelado, mas seus parâmetros não precisam ser ajustados. O que precisa ser ajustado é o controlador PID, que define todo o comportamento do controle da planta (motor), como sobressinal, tempo de acomodação, esforço de controle, etc. Um controlador genérico pode ser definido pelos seus pólos e zeros (ver seção sobre Controle), que através da interação com os pólos e zeros da planta (no caso, o motor e seus sensores) irá determinar toda a resposta da planta em malha fechada quando excitada. Pode-se representar esses pólos e zeros através de um vetor cujas posições são ocupadas por números (reais ou complexos) : [ P1 P2 P3 P4 P4 ....... P5 ] Onde P1 = A + B. j , P2 = C + D . j , e assim por diante. Nota : ‘j’ nesse caso representa o número imaginário.

Page 81: Mutação Diferencial Condicional como proposta de ... · de freqüência. A sintonia de controladores PID foi escolhida apenas como base para aplicação dos algoritmos genéticos

Mutação Diferencial Condicional como proposta de otimização de Algoritmos Genéticos

81

Um controlador do tipo PID pode ser bem representado pelos seus ganhos de cada parcela, KP (ganho da parte proporcional) , KI (ganho da parte integral) e KD (ganho da parte derivativa). Isso significa que um PID pode ser representado, sem perda de informação a seu respeito, em um vetor de três posições, cada uma contendo esses ganhos : Indivíduo = [ KP KI KD ] A topologia usada no PID deste trabalho é a clássica, onde o PID é representado em 3 parcelas distintas somadas no domínio ‘s’ :

Equação 34 10.2. Como avaliar um sistema em malha fechada [8]? Existem várias maneiras de se avaliar um controle em malha fechada. Os principais deles já foram apresentados na seção sobre Controle, a saber: - Sobre-sinal ou ‘overshoot’ , que mede o pico de saída da planta quando excitada - Tempo de acomodação, que mede o tempo entre a aplicação da excitação na entrada e a estabilização da saída em pelo menos 98 % do valor final. - Erro final , ou seja, a diferença entre saída e entrada no final de um determinado período. -Integral do erro (IAE) e Integral do tempo pelo Erro -Esforço de controle, em que é considerado o nível do sinal enviado à planta para conseguir o resultado desejado. Como qualquer um destes parâmetros é indesejável (ou seja, quanto menor melhor), eles podem ser considerados como inversamente proporcionais ao fitness. Para cada um deles poder-se-ia montar uma função de fitness, bastando fazer o fitness igual ao recíproco deste parâmetro, como por exemplo

Equação 35

Irá favorecer todos aqueles cuja resposta transitória seja extremamente rápida. Mas não levará em consideração o erro estacionário, nem o sobressinal decorrente de tal exigência de desempenho.

Page 82: Mutação Diferencial Condicional como proposta de ... · de freqüência. A sintonia de controladores PID foi escolhida apenas como base para aplicação dos algoritmos genéticos

Mutação Diferencial Condicional como proposta de otimização de Algoritmos Genéticos

82

É possível adicionar mais restrições ao fitness, fazendo com que o AG leve em conta os demais parâmetros. Basta inseri-los conforme sua relação com o fitness (direta ou inversamente proporcional). Como essas medidas de saída (T2%, Sobressinal,etc.) são todas inversamente proporcionais ao desempenho do controlador, basta colocá-las no denominador junto com os outros fatores que já houverem:

ou Equação 36 (a) e (b) Agora ambos os valores serão levados em conta para escolher os melhores de cada geração. 10.3. Fitness : somar ou multiplicar ? Multiplicando, o sistema poderá ter extremos ou algumas compensações. Por exemplo, um sistema com Over de 150% pode ser amenizado com um T2% de 0,6 segundos e na multiplicação, terá como denominador o valor 0,9 , que pode ser o mesmo de um controle cujo Over seja de 10% com T2% de 9 segundos. Um fator acaba compensando o outro, desde que o produto gere um indivíduo competitivo. Já na soma, não existe mais compensação . Extremos somados a quantidades pequenas continuam extremos. Logo, qualquer um dos fatores da soma que seja um extremo irá deixar o indivíduo inapto a continuar na evolução. Contudo, estes indivíduos extremos e antagônicos, com alguns altíssimos valores e outros muito pequenos, são considerados muito úteis dentro do panorama do AG. Como a premissa fundamental de um AG é a de que o comportamento do sistema emerge do DNA do indivíduo, então algum gene com algum valor especial está causando esses extremos de comportamento. E é na sobreposição de suposições, no trabalho subjetivo que o AG faz ao cruzar indivíduos, que ele acaba sobrepondo dois extremos e gerando um descendente justamente com as características mínimas que compensavam o DNA de seus ancestrais. Ou seja, um indivíduo A que possuía um grande overshoot mas um T2% ínfimo, pode cruzar com um indivíduo B com um baixo overshoot mas um tempo T2% enorme. E disso sairão 2 filhos : um com o tempo alto de

Page 83: Mutação Diferencial Condicional como proposta de ... · de freqüência. A sintonia de controladores PID foi escolhida apenas como base para aplicação dos algoritmos genéticos

Mutação Diferencial Condicional como proposta de otimização de Algoritmos Genéticos

83

B e o overshoot alto de A (indivíduo imprestável) e outro reunindo as virtudes de A e B (indivíduo ótimo). 10.4. Implementando o AG com PID As etapas do script usado para implementar o AG são divididas em várias partes, conforme já mencionado na seção sobre Algoritmos Genéticos. Mas aqui alguns detalhamentos serão dados. 10.5. Inicialização [2][10][4]

Definição das variáveis e inicialização dos vetores e matrizes Definição do tempo de simulação e resolução: varia, mas considerou-se um período máximo de 10 segundos, com resolução de 0,01 segundo. Definição das taxas dos opgens Definição do tamanho da população e número de gerações Definição dos pólos e zeros do motor CC

10.6. Geração Gerada uma população inicial de PID’s com genes entre 0 e 1 Gerada algebricamente a função de transferência de malha fechada (FTMA) do motor 10.7. Laço

• Para cada geração, retirar do DNA do indivíduo KP,KI e KD e montar a FTMA do PID.

• Com essa função e a FTMA do motor, gerar a função de transferência de malha fechada (FTMF) do sistema.

• Simula-se a reposta do sistema a uma excitação tipo ‘degrau’. • Com cálculo numérico, extrair os valores de Overshoot, T2%, IAE e

ITAE e outros. • Calcula-se o fitness baseado no inverso desses valores. • Depois de todos os indivíduos terem fitness, realiza-se um SORT e

separam-se os melhores. Aplica-se os opgens e uma nova geração de filhos-PID está pronta para reiniciar o laço ao tomar o lugar dos ‘pais’.

10.8. ANÁLISE Ao final do número de gerações, as ferramentas de análise de desempenho (VE, IPQ, IPQL, delta-fit, etc.) são calculadas com base no histórico de saídas que é guardado a cada geração.

Page 84: Mutação Diferencial Condicional como proposta de ... · de freqüência. A sintonia de controladores PID foi escolhida apenas como base para aplicação dos algoritmos genéticos

Mutação Diferencial Condicional como proposta de otimização de Algoritmos Genéticos

84

Logo abaixo é mostrado uma saída típica de simulação, com as saídas e gráficos. Assim será possível na próxima seção, discutir os resultados com base diretamente nas suas saídas. Os ganhos KI e KD são entendidos aqui como o recíproco dos tempos Ti e Td respectivamente, sendo doravante subentendido que a unidade de medida que os acompanham é ‘s-1’ . 10.9. Saída Típica (comentários em itálico) 20. (última geração) 0.8740126 0.1138360 0.9850268 0.4075747 (melhor da geração) Done. (mensagem de término do script) !melhores_cruzados melhores_copiados melhores_mutados ! 2. 13. 7. (aqui é possível ver quantos ‘melhores’ foram gerados de

cada opgen) (aqui começa a linhagem ou ‘pedigree’ dos gerações que tiveram evolução em relação à anterior) !CZ na geracao 2 ! na geração 2 houve melhora por um cruzamento ) !CZ na geracao 6 ! !MU na geracao 10 ! (na geração 10 houve melhora por mutação tradicional) !MDIF na geracao 13 ! na geração 13 houve melhora por mutação diferencial) !MDIF na geracao 17 ! !MU na geracao 18 ! !o valor de Tau (cte de crescimento) é 1 ! (medida da VE) !o crescimento começa na 2 geracao ! !índice de proximidade quadrática 0.1661171 ! (IPQ) !LN DIF IPQ 0.0788950 ! (IPQL) ans = (órbitas da ferramenta Variedade Orbital) 2. 6. 10. 1. 1. 3. 10. 4. 3. 0. 4. 10. 5. 1. 0. 6. 7. 4. 3. 0. 5. 8. 6. 1. 0. 10. 3. 2. 4. 1. 8. 4. 1. 7. 0. 9. 3. 3. 5. 0. 9. 4. 4. 2. 1. 7. 2. 10. 1. 0. 8. 2. 8. 2. 0.

Page 85: Mutação Diferencial Condicional como proposta de ... · de freqüência. A sintonia de controladores PID foi escolhida apenas como base para aplicação dos algoritmos genéticos

Mutação Diferencial Condicional como proposta de otimização de Algoritmos Genéticos

85

7. 4. 7. 2. 0. 10. 3. 7. 0. 0. 9. 2. 7. 2. 0. 10. 2. 3. 5. 0. 12. 0. 0. 7. 1. 13. 0. 0. 6. 1. 11. 2. 0. 2. 5. 10. 0. 1. 4. 5. 10. 1. 4. 3. 2. soma das colunas (soma_raios) = (somando as colunas é possível entender a distribuição dos indivíduos pelas órbitas ao longo das gerações) 161. 67. 76. 60. 16. (total de 380 indivíduos gerados ao todo) (ver que 42% dos gerados ficou próximo ao melhor indivíduo=órbita 1) [ orbitas de 1 a 5 variacao de fitness diferencas ] = (mapeando as gerações onde houve mudança de fitness e qual foi a migração dos indivíduos pelas órbitas) 2. 6. 10. 1. 1. 0.1467613 (geração 0 ) 1. 4. - 6. 2. - 1. 0.0654257 (migraram 6 indivíduos da órbita 3)

1. 0. 1. - 2. 0. 0. 2. - 3. - 1. 2. 0. 0. - 1. 1. 2. - 2. 0. 0. 5. - 5. - 4. 3. 1. 0.0811319 - 2. 1. - 1. 3. - 1. 0. 1. - 1. 2. - 2. 0. 0. 0. 1. 1. - 3. 1. 0. - 2. - 2. 6. - 1. - 1. 0.0337940 1. 0. - 2. 1. 0. 0. - 1. 2. - 1. 0. 0. 0. 3. - 1. 0. - 2. 0. 0.0512420 - 1. - 1. 0. 2. 0. 0. 1. 0. - 4. 3. 0. 0. 2. - 2. - 3. 2. 1. 0. 1. 0. 0. - 1. 0. 0.0199503 - 2. 2. 0. - 4. 4. 0.0092694 - 1. - 2. 1. 2. 0. 0. 0. 1. 3. - 1. - 3. 0.

Page 86: Mutação Diferencial Condicional como proposta de ... · de freqüência. A sintonia de controladores PID foi escolhida apenas como base para aplicação dos algoritmos genéticos

Mutação Diferencial Condicional como proposta de otimização de Algoritmos Genéticos

86

MELHORIA = (aqui o delta-fit está expresso em porcentagem,para uma melhor compreensão das melhoras de uma geração para outra) 0. 44.579696 0. 0. 0. 38.236047 0. 0. 0. 11.521245 0. 0. 15.66494 0. 0. 0. 5.2729138 2.3272065 0. 0.

[ kp ki kd ] = 8.7401256 22.767194 98.502682 (Finalmente os valores K do PID)

Ilustração 44 – Gráficos típicos de saída do AG

Page 87: Mutação Diferencial Condicional como proposta de ... · de freqüência. A sintonia de controladores PID foi escolhida apenas como base para aplicação dos algoritmos genéticos

Mutação Diferencial Condicional como proposta de otimização de Algoritmos Genéticos

87

10.10 Considerações na elaboração do trabalho Não se considera neste caso os problemas práticos da topologia clássica do PID. Não se considera a possibilidade de saturação do controlador, por razões de implementação dentro do script. Considera-se que o motor CC simulado é semelhante aos seus correspondentes reais, com uma corrente máxima de partida de 6 a 10 vezes a corrente nominal, causando danos a sua estrutura se esse valor é ultrapassado e/ou mantido por muito tempo. Opta-se por usar um DNA de 4 genes, sendo 3 para os parâmetros ‘K’ e um para o fitness.

DNA = [ KP KI KD fitness ] 10.11 Primeira abordagem na avaliação do desempenho do PID Para avaliar o fitness de cada PID, foram calculados o índice ITAE, o esforço de controle e o erro final de cada um gerado e simulado. A função fitness era definida inicialmente por

ITAE

fit1

= Equação 37

Com a análise dos valores de KP,KI e KD gerados, simulou-se o valor do esforço de controle, conforme descrito em tópico anterior. Então foi possível perceber que apesar do desempenho excelente dos PID’s gerados, com baixíssimos Over e T2%, havia um gigantesco esforço de controle, mais de 100 vezes o valor máximo da entrada do motor simulado. Esse fato era devido ao modo com que eram escolhidos os PID’s ; Através das gerações, aqueles que apresentavam o menor ITAE eram beneficiados. Todavia, um excelente ITAE certamente é resultado de um grande esforço de controle, já que o erro é brutalmente forçado a zero em um curto espaço de tempo. Então foi inserido o um termo no fitness para que a escolha do PID certo levasse em conta o esforço de controle do sistema.

ECITAEfit

11⋅= Equação 38

Page 88: Mutação Diferencial Condicional como proposta de ... · de freqüência. A sintonia de controladores PID foi escolhida apenas como base para aplicação dos algoritmos genéticos

Mutação Diferencial Condicional como proposta de otimização de Algoritmos Genéticos

88

Os resultados foram tão bons quanto o anterior, mesmo com a restrição do esforço de controle, o que indica que o AG achou uma saída para esta restrição sem perder desempenho de Over ou T2%. Visando dar preferência a sistemas com menores esforços (já que a maioria dos motores elétricos tem uma corrente máxima de 6 a 8 vezes a corrente nominal), foi colocado um expoente dobrado no fator ‘EC’:

211

⋅=

ECITAEfit

Entendeu-se que ao aumentar os expoentes dos fatores envolvidos no fitness, poder-se-ia trazer uma ponderação a cada um deles, do mesmo jeito que seria possível se fosse feita uma soma ponderada(mas sem usá-la, uma vez que o motivo de se usar multiplicação já foi dito anteriormente). Assim, sistemas com menores Esforços de Controle tinham preferência e geravam melhores fitness do que se escolhidos por ITAE. Esse mesmo raciocínio foi estendido a outros expoentes, gerando uma família de índices para ponderar cada fator do fitness (ITAE,Esforço e Erro final) O erro final foi colocado para ponderar também a diferença entre o PID em regime e o valor de referência na entrada. 10.12. Índices IMEC,ITMEC, ITE e IER O índice IMEC é o expoente do fator da fórmula do fitness que pondera o Esforço de Controle.Quanto maior , maior a preferência do AG pelos PID’s de baixo Esforço de Controle. Da mesma maneira que o ITAE é um aprimoramento do IAE,aproveitou-se esse raciocínio para o Esforço de controle e seu IMEC e criou-se o ITMEC. Esse índice é o resultado da Integral do Esforço de controle multiplicado pelo tempo. O ITE é o expoente do fator que pondera o ITAE. Quanto maior,menor será o ITAE do PID escolhido,com um certo custo sobre o esforço de controle e o valor final. O IER é o expoente do fator que pondera o Erro final no cálculo de fitness.Quanto maior, maior será a preferência do AG pelos PID’s com baixo erro final. Assim sendo, o cálculo do fitness fica :

Page 89: Mutação Diferencial Condicional como proposta de ... · de freqüência. A sintonia de controladores PID foi escolhida apenas como base para aplicação dos algoritmos genéticos

Mutação Diferencial Condicional como proposta de otimização de Algoritmos Genéticos

89

REICEMTI

ETI

EFINALdtECITAEfit

111

⋅⋅

=

∫ Equação 39

12. RESULTADOS E DISCUSSÕES É preciso várias simulações para que sejam perceptíveis os efeitos de cada uma das melhorias implementadas. Ainda sim, é preciso compreender que, uma vez que a geração e escolha dos indivíduos para os operadores genéticos são feitas através de números randômicos, é possível que um método “ruim” (ou seja, não-otimizado) ocasionalmente apresente um resultado bom, bem como um AG rigoroso e robusto retorne uma resposta abaixo da média. Portanto, todo e qualquer efeito que possa ocorrer no desempenho do AG será visível na média dos resultados. Para cada ferramenta, foram feitas 50 simulações, com populações relativamente pequenas (em torno de 100 indivíduos por geração) por 30 gerações por execução. Esses tamanhos foram escolhidos para que o AG não se torne tão populoso e execute por tanto tempo que os resultados se mostrem iguais. Pois, ao encontrar um ótimo global, qualquer um dos AG entra em estagnação e mantém o fitness até o final. Os AG com ferramentas evolutivas (como preferência ao oposto, por exemplo) iriam entrar em estagnação antes dos que não as possuíam. Porém depois de um número de gerações muito grande, no final todas estariam estagnadas. Também em populações muito grandes fica mascarada a diversidade populacional e a contribuição dessas ferramentas para aumentá-la, já que qualquer cruzamento em uma população tão grande (em torno de milhares de indivíduos) é tão imprevisível como qualquer mutação. Mutações em grandes populações, ainda que uma mínima porcentagem seja escolhida para mutação, ainda representará uma torrente muito alta de novos genes. Seguem abaixo as tabelas com os valores médios de cada método:

Valor médio \ Método Diferencial + Pref. Oposto

Tradicional + Pref. Oposto

Esforço de controle 10,16 16,9

Fitness 11,3 1,66

Tabela 6 – Média das saídas entre diferencial e tradicional (ambas com Preferência ao Oposto)

Page 90: Mutação Diferencial Condicional como proposta de ... · de freqüência. A sintonia de controladores PID foi escolhida apenas como base para aplicação dos algoritmos genéticos

Mutação Diferencial Condicional como proposta de otimização de Algoritmos Genéticos

90

Valor médio \ Método Diferencial s/ Pref. Oposto

Tradicional s/ Pref. Oposto

Esforço de controle 11,9 19,4

Fitness 5 3,4

Tabela 7 – Média das saídas entre diferencial e tradicional (sem preferência ao oposto)

Valor médio \ Método Diferencial + Pref. Oposto

Diferencial s/ Pref. Oposto

Esforço de controle 10,16 11,9

Fitness 11,3 5

Tabela 8 – Média das saídas entre diferencial com e sem preferência ao oposto

Valor médio \ Método Tradicional + Pref. Oposto

Tradicional s/ Pref. Oposto

Esforço de controle 16,9 19,4

Fitness 1,66 3,4

Tabela 9 – Média das saídas entre mutação tradicional com e sem preferência ao oposto

Foi considerado conveniente expor apenas os valores de fitness (qualidade da solução) e do esforço de controle envolvido em cada PID gerado e simulado pelo AG, pelos motivos descritos a seguir. Ao final das simulações, todos os métodos criaram PID’s cuja montagem dava ao motor uma excelente resposta no tempo ao degrau unitário:

• Todos estabilizavam antes de 3 segundos, • Tinham um sobressinal menor que 20% • Com um tempo de subida menor que 1 segundo.

Todavia, apesar de apresentarem um mesmo comportamento externo (ou seja, a velocidade do motor na saída), os PID’s não despediam o mesmo esforço de controle, ou seja, o nível do sinal que eles injetavam na entrada do motor diferia entre um método e outro. Como complemento, no Apêndice 3 podem ser encontradas as respostas dos controladores PID sintonizados usando os métodos de Cohen-Coon e Ziegler-Nichols. Pode-se perceber pelas tabelas acima que sempre que a mutação diferencial estava implementada, na média as soluções tinham um fitness maior e um esforço de controle menor em relação aos scripts elaborados com a mutação tradicional. Também é possível ver que a ferramenta “Preferência ao Oposto” retorna uma leve melhora no esforço de controle, e no caso da mutação diferencial também no fitness. Abaixo seguem algumas saídas de simulação para cada um dos casos acima citados.

Page 91: Mutação Diferencial Condicional como proposta de ... · de freqüência. A sintonia de controladores PID foi escolhida apenas como base para aplicação dos algoritmos genéticos

Mutação Diferencial Condicional como proposta de otimização de Algoritmos Genéticos

91

11.1. COM DIFERENCIAL E OPOSTO

20. ans = 0.7777266 0.0195617 0.9809824 4.788894 ESFORCO = 10.349731

!melhores_cruzados melhores_copiados melhores_mutados !

4. 11. 9.

!MU na geracao 2 ! !CZ na geracao 3 ! !CZ na geracao 4 ! !CZ na geracao 5 ! !CZ na geracao 7 ! !MU na geracao 9 ! !MDIF na geracao 12 ! !MDIF na geracao 16 !

!o valor de Tau (cte de crescimento) é 11 ! !o crescimento começa na 2 geracao !

!índice de proximidade quadrática 0.0573338 ! !LN DIF IPQ 0.0256420 !

ans = orbital

1. 2. 10. 7. 0. 4. 3. 6. 7. 0. 5. 4. 5. 4. 2. 2. 2. 12. 4. 0. 6. 8. 4. 1. 1. 6. 4. 7. 3. 0. 8. 6. 5. 1. 0. 11. 2. 4. 3. 0. 1. 13. 3. 1. 2. 1. 13. 3. 3. 0. 4. 13. 1. 2. 0. 6. 11. 1. 2. 0. 8. 10. 1. 1. 0. 11. 7. 0. 2. 0. 16. 4. 0. 0. 0. 17. 3. 0. 0. 0. 16. 2. 1. 1. 0. 15. 2. 1. 2. 0. 16. 2. 0. 2. 0. 15. 2. 1. 2. 0.

ans =

!orbitas de 1 a 5 variacao de fitness !

Page 92: Mutação Diferencial Condicional como proposta de ... · de freqüência. A sintonia de controladores PID foi escolhida apenas como base para aplicação dos algoritmos genéticos

Mutação Diferencial Condicional como proposta de otimização de Algoritmos Genéticos

92

diferencas =

1. 2. 10. 7. 0. 0.0835036 3. 1. - 4. 0. 0. 0.0024428 1. 1. - 1. - 3. 2. 0.6512184 - 3. - 2. 7. 0. - 2. 0.4147245 4. 6. - 8. - 3. 1. 0.4687564

0. - 4. 3. 2. - 1. 0. 2. 2. - 2. - 2. 0. 0.4983847

3. - 4. - 1. 2. 0. 0. - 10. 11. - 1. - 2. 2. 0.0943464

0. 0. 0. 2. - 2. 0. 3. 0. - 2. - 1. 0. 0.

2. - 2. 0. 0. 0. 0.8966174 2. - 1. 0. - 1. 0. 0. 3. - 3. - 1. 1. 0. 0. 5. - 3. 0. - 2. 0. 0.

1. - 1. 0. 0. 0. 1.6788998 - 1. - 1. 1. 1. 0. 0. - 1. 0. 0. 1. 0. 0. 1. 0. - 1. 0. 0. 0. - 1. 0. 1. 0. 0. 0.

ans =

soma das colunas soma_raios = 168. 111. 55. 41. 5.

MELHORIA =

0.

2.9253659 757.70277 56.259393 40.69457

0. 30.752228

0. 4.4523379

0. 0.

40.509029 0. 0. 0.

53.984018 0. 0. 0.

Page 93: Mutação Diferencial Condicional como proposta de ... · de freqüência. A sintonia de controladores PID foi escolhida apenas como base para aplicação dos algoritmos genéticos

Mutação Diferencial Condicional como proposta de otimização de Algoritmos Genéticos

93

0. ans =

!kp ki kd ! = 7.7772664 3.9123409 98.098241

Ilustração 45 – saídas típicas para o AG implementado com Diferencial e Oposto

11.2. Mutação Tradicional com oposto

20. ans = 0.8781543 0.2340511 0.5246039 0.4813765

!ITAE ESFORCO ERRO ! 0.3144615 24.841504 0.0001146

!melhores_cruzados melhores_copiados melhores_mutados ! 3. 16. 4.

!CZ na geracao 4 ! !CZ na geracao 7 ! !CZ na geracao 10 !

!o valor de Tau (cte de crescimento) é 1 ! !o crescimento começa na 4 geracao !

!índice de proximidade quadrática 0.0005793 ! !LN DIF IPQ 0.0002517 !

Page 94: Mutação Diferencial Condicional como proposta de ... · de freqüência. A sintonia de controladores PID foi escolhida apenas como base para aplicação dos algoritmos genéticos

Mutação Diferencial Condicional como proposta de otimização de Algoritmos Genéticos

94

órbitas

2. 1. 5. 7. 5. 3. 4. 6. 6. 1. 6. 2. 5. 6. 1. 7. 3. 6. 2. 2. 10. 1. 6. 3. 0. 8. 5. 4. 3. 0. 8. 2. 7. 2. 1. 10. 0. 7. 3. 0. 9. 1. 6. 4. 0. 7. 5. 4. 4. 0. 9. 3. 6. 2. 0. 12. 1. 7. 0. 0. 10. 1. 9. 0. 0. 10. 3. 7. 0. 0. 11. 1. 7. 1. 0. 10. 2. 7. 1. 0. 11. 2. 5. 2. 0. 9. 4. 6. 1. 0. 10. 5. 3. 2. 0. 11. 2. 5. 2. 0.

ans =

!orbitas de 1 a 5 variacao de fitness ! diferencas =

2. 1. 5. 7. 5. 0.1389558

1. 3. 1. - 1. - 4. 0. 3. - 2. - 1. 0. 0. 0.

1. 1. 1. - 4. 1. 0.0173146 3. - 2. 0. 1. - 2. 0. - 2. 4. - 2. 0. 0. 0.

0. - 3. 3. - 1. 1. 0.0432406 2. - 2. 0. 1. - 1. 0. - 1. 1. - 1. 1. 0. 0.

- 2. 4. - 2. 0. 0. 0.2818655 2. - 2. 2. - 2. 0. 0. 3. - 2. 1. - 2. 0. 0. - 2. 0. 2. 0. 0. 0. 0. 2. - 2. 0. 0. 0. 1. - 2. 0. 1. 0. 0. - 1. 1. 0. 0. 0. 0. 1. 0. - 2. 1. 0. 0. - 2. 2. 1. - 1. 0. 0. 1. 1. - 3. 1. 0. 0. 1. - 3. 2. 0. 0. 0.

Page 95: Mutação Diferencial Condicional como proposta de ... · de freqüência. A sintonia de controladores PID foi escolhida apenas como base para aplicação dos algoritmos genéticos

Mutação Diferencial Condicional como proposta de otimização de Algoritmos Genéticos

95

soma das colunas

soma_raios = 171. 47. 113. 44. 5.

MELHORIA =

0. 0. 0.

12.460487 0. 0.

27.670382 0. 0.

141.2782 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.

!kp ki kd ! ans = 8.7815434 46.810212 52.460393

Page 96: Mutação Diferencial Condicional como proposta de ... · de freqüência. A sintonia de controladores PID foi escolhida apenas como base para aplicação dos algoritmos genéticos

Mutação Diferencial Condicional como proposta de otimização de Algoritmos Genéticos

96

12.3. COM DIFERENCIAL MAS SEM OPOSTO

20. ans = 0.0246115 0.0027068 0.9521540 12.175413

ESFORCO = 10.4053

! ITAE ESFORCO ERRO ! 0.3020778 10.4053 0.0630633

!melhores_cruzados melhores_copiados melhores_mutados ! 1. 14. 6.

!MU na geracao 2 ! !MU na geracao 3 ! !CZ na geracao 4 ! !MU na geracao 5 ! !MU na geracao 6 !

!o valor de Tau (cte de crescimento) é 6 ! !o crescimento começa na 2 geracao !

!índice de proximidade quadrática 0.3706017 ! !LN DIF IPQ 0.2010744 !

órbitas

2. 7. 14. 15. 11. 6. 8. 12. 16. 7. 11. 11. 13. 8. 7. 19. 11. 9. 7. 4. 26. 8. 8. 6. 2. 2. 7. 23. 10. 8. 3. 4. 25. 12. 6. 4. 3. 20. 17. 6. 5. 4. 27. 10. 4. 7. 0. 25. 12. 6. 10. 1. 25. 12. 2. 16. 1. 21. 9. 3. 21. 2. 14. 13. 0. 24. 2. 11. 12. 1. 26. 1. 8. 15. 0. 30. 2. 7. 11. 0. 35. 1. 6. 8. 0. 35. 1. 5. 9. 0. 37. 3. 4. 5. 1. 37. 3. 3. 4. 3.

!orbitas de 1 a 5 variacao de fitness ! diferencas =

Page 97: Mutação Diferencial Condicional como proposta de ... · de freqüência. A sintonia de controladores PID foi escolhida apenas como base para aplicação dos algoritmos genéticos

Mutação Diferencial Condicional como proposta de otimização de Algoritmos Genéticos

97

2. 7. 14. 15. 11. 0.6816223 4. 1. - 2. 1. - 4. 0.0135111 5. 3. 1. - 8. 0. 0.6285245 8. 0. - 4. - 1. - 3. 0.0761578 7. - 3. - 1. - 1. - 2. 0.3295746 - 24. - 1. 15. 4. 6. 10.446023

1. - 3. 2. 2. - 2. 0. 1. - 1. - 5. 5. 0. 0. 1. 1. 7. - 7. - 2. 0. 2. - 4. - 2. 2. 2. 0. 3. 1. 0. 0. - 4. 0. 6. 0. - 4. - 3. 1. 0. 5. 1. - 7. 4. - 3. 0. 3. 0. - 3. - 1. 1. 0. 2. - 1. - 3. 3. - 1. 0. 4. 1. - 1. - 4. 0. 0. 5. - 1. - 1. - 3. 0. 0. 0. 0. - 1. 1. 0. 0. 2. 2. - 1. - 4. 1. 0. 0. 0. - 1. - 1. 2. 0.

soma das colunas soma_raios = 354. 73. 266. 196. 60.

MELHORIA =

0. 1.9821962 90.417825 5.7535827 23.544146 604.02922

0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.

!kp ki kd ! 2.4611544 0.5413553 95.215396

Page 98: Mutação Diferencial Condicional como proposta de ... · de freqüência. A sintonia de controladores PID foi escolhida apenas como base para aplicação dos algoritmos genéticos

Mutação Diferencial Condicional como proposta de otimização de Algoritmos Genéticos

98

Ilustração 46 – Saídas do AG implementado com diferencial mas sem Preferência ao oposto

12.4. TRADICIONAL E SEM OPOSTO

20. ans = 0.8400886 0.0240026 0.5540474 1.0295023

ESFORCO = 19.516404

!ITAE ESFORCO ERRO ! 0.2399688 19.516404 0.0001129

!melhores_cruzados melhores_copiados melhores_mutados !

0. 16. 4.

!MU na geracao 3 ! !MU na geracao 17 ! !MU na geracao 20 !

!o valor de Tau (cte de crescimento) é 1 ! !o crescimento começa na 3 geracao !

!índice de proximidade quadrática 0.0006624 ! !LN DIF IPQ 0.0002878 !

Órbitas =

2. 6. 10. 1. 1.

Page 99: Mutação Diferencial Condicional como proposta de ... · de freqüência. A sintonia de controladores PID foi escolhida apenas como base para aplicação dos algoritmos genéticos

Mutação Diferencial Condicional como proposta de otimização de Algoritmos Genéticos

99

4. 3. 11. 2. 0. 5. 7. 5. 3. 0. 8. 6. 2. 4. 0. 13. 5. 0. 2. 0. 13. 6. 0. 1. 0. 16. 3. 0. 1. 0. 19. 0. 0. 1. 0. 1. 18. 0. 1. 0. 3. 17. 0. 0. 0. 8. 12. 0. 0. 0. 13. 6. 1. 0. 0.

soma das colunas

soma_raios = 194. 122. 27. 37. 0.

MELHORIA = 0. 0.

253.33678 0. 0. 0 0. 0. 0. 0.

20.578845 0. 0.

64.647762 !kp ki kd ! ans = 8.4008857 4.800522 55.404739

Ilustração 47 – Saídas para AG implementado com mutação tradicional e sem Preferência ao oposto

Page 100: Mutação Diferencial Condicional como proposta de ... · de freqüência. A sintonia de controladores PID foi escolhida apenas como base para aplicação dos algoritmos genéticos

Mutação Diferencial Condicional como proposta de otimização de Algoritmos Genéticos

100

11.5. COMPARAÇÃO DOS RESULTADOS

Comparando os resultados, é possível retirar as seguintes conclusões:

1) A VE é maior na Diferencial (precisa menos gerações para atingir 63% do fitness final que a tradicional);

2) Existem períodos muito mais longos de inatividade evolutiva (vide a matriz ‘MELHORIAS’) na tradicional do que na diferencial – o que significa desperdício de processamento;

3) Ainda na matriz ‘MELHORIAS’, percebe-se que os saltos evolutivos ocorrem mais freqüentemente e com uma melhora percentual muito maior na mutação diferencial;

4) A concentração da população ao redor do indivíduo melhor (ou seja, na 1ª. órbita) é muito maior na tradicional, o que indica uma baixa variedade genética. Percebe-se muito bem isso na distribuição na soma dos raios, muito mais homogênea na diferencial.

Page 101: Mutação Diferencial Condicional como proposta de ... · de freqüência. A sintonia de controladores PID foi escolhida apenas como base para aplicação dos algoritmos genéticos

Mutação Diferencial Condicional como proposta de otimização de Algoritmos Genéticos

101

12. CONCLUSÃO A mutação diferencial se mostrou capaz de elevar o desempenho médio dos AG, mais especificamente quando na sua forma “condicional” ou engatilhada. As ferramentas evolutivas criadas como auxiliares no desenvolvimento das gerações também permitiu elevar levemente a média do desempenho do AG. Todas essas conclusões e todos os estudos feitos não seriam possíveis sem o uso das ferramentas de análise de desempenho, que na sua função são inéditas. Como trabalhos futuros, sugere-se algumas alterações para o código do AG, que possivelmente resultarão em melhoras no desempenho ou um aprofundamento de estudos. Uma delas é o uso de saturação no sinal que sai do controlador, uma vez que nos inversores (e outros aparelhos com PID) comerciais os PID’s tem um valor máximo de saída, tipicamente 24V ou o máximo de tensão disponível na régua de fixação. A outra é o estudo desta solução em plantas não-lineares, contendo funções exponenciais ou outras transcendentais como seno, cosseno, etc.

Page 102: Mutação Diferencial Condicional como proposta de ... · de freqüência. A sintonia de controladores PID foi escolhida apenas como base para aplicação dos algoritmos genéticos

Mutação Diferencial Condicional como proposta de otimização de Algoritmos Genéticos

102

REFERÊNCIAS

[1] - W. R. PAULINO - Biologia Atual, Ed. Ática, 1996. [2] – LACERDA, Estéfane G. M. de,Introdução aos Algoritmos Genéticos, DCA/UFRN – Julho de 2004 [3] – HERRERA, Francisco - Genetic Algorithms: Basic notions and some advanced topics, Universidad de Granada – Espanha ,2006,em: http://www.sci2s.ugr.es [4] – WHITLEY, Darrell – A Genetic Algorithm Tutorial – Colorado State University, 1993 [5] – SILVA, S.G.O – Controlling Bloat: Individual and Population Based approaches in Genetic programming -Universidade de Coimbra,Abril de 2008 [6] - NUNES,GRANDINETTI – Ajuste de PID com Algoritmos Genéticos

[7]-TCHOLAKIAN,A. – Construção de Funções de pertinência para controladores Fuzzy usando algoritmos genéticos [8]-OGATA, Katsuhiko – Engenharia de Cotrole Moderno. Prentice Hall do Brasil , Rio de Janeiro 2003 [9]-POLI, R., Langdon, W. B, McPhee, N. F. A Field Guide to Genetic Programming. Em http://www.gp-field-guide.org.uk/ [10]-MITCHELL,M. - An Introduction to Genetic Algorithms. MIT Press. Cambridge, MA, 1996 [11]- KOZA J.R. , M.A. KEANE, M. J. STREETER - Evolving Inventions. Scientific American, February, 2003

[12] - DC motor speed modeling – Carnegie Mellon University em: http://www.engin.umich.edu/group/ctm/examples/motor/motor.html [13]-J.R. KOZA - Genetic Algorithms and Genetic Programming, Stanford University Bookstore, Stanford, California, 94305-3079 USA, 2003 [14] – Bennett, J., Bhasin, A., Grant J., Lim, W.C. , PID Tunning methods

em : http://controls.engin.umich.edu/wiki/index.php/Image:Ex2soln.jpg

Page 103: Mutação Diferencial Condicional como proposta de ... · de freqüência. A sintonia de controladores PID foi escolhida apenas como base para aplicação dos algoritmos genéticos

Mutação Diferencial Condicional como proposta de otimização de Algoritmos Genéticos

103

ANEXO I . A FERRAMENTA SCILAB O SciLab é um ambiente de cálculo da INRIA Soft , muitíssimo semelhante ao consagrado MatLab®, porém com os benefícios de

• Ser um programa gratuito – sem licença para ser paga

• Exigir o mínimo de recursos do sistema, como memória (menos de 128 MB) e processamento, se comparado ao MatLab nas suas atuais versões;

• Ter um instalador com menos de 100 MB , e consumir essa mesma

quantia quando instalado – ao contrário do MatLab que exige 1 ou mais discos ópticos e mais de 1 GB de disco rígido.

• Ter complementos grátis e facilmente instaláveis e feitos por

diversos pesquisadores, já que o código é aberto (open-source) Ele também possui interpretador de scripts, interpretador de scripts do Matlab, e um ambiente de simulação onde o sistema pode ser construído em blocos – chamado de ‘Scicos’, idêntico ao Simulink do MatLab.

Ilustração 48- Exemplo de aplicação do Scicos – sistema em blocos

Page 104: Mutação Diferencial Condicional como proposta de ... · de freqüência. A sintonia de controladores PID foi escolhida apenas como base para aplicação dos algoritmos genéticos

Mutação Diferencial Condicional como proposta de otimização de Algoritmos Genéticos

104

Ilustração 49- Editor de scripts do Scilab

Ilustração 50- Ambiente de execução inicial

Page 105: Mutação Diferencial Condicional como proposta de ... · de freqüência. A sintonia de controladores PID foi escolhida apenas como base para aplicação dos algoritmos genéticos

Mutação Diferencial Condicional como proposta de otimização de Algoritmos Genéticos

105

ANEXO II SCRIPT DA SIMULAÇÃO – completo, com preferência ao oposto e mutação diferencial condicional //------------------------------------ DESCRIÇÃO ------------------------------------- // Neste arquivo , temos a função de fitness diferente // ** Pedigree (diferenciando ainda "MU" e "MDIF" ) // ** mutação diferencial condicional // ** Ferramentas IPQ ,IPQL , velocidade de evolução (VE) e DELTA_FIT // ** FERRAMENTA DE MEDIÇÃO DE VARIABILIDADE --> DISTANCIA ORBITAL // ** CALCULA O ESFORCO DE CONTROLE E FAZ O FITNESS INVERSAMENTE PROPORCIONAL A ELE // ** inverte um gene ao acaso dos que repetirem mais // ** usa o ITMEC, a INTEGRAAAAL do esforço de controle // ** Os opostos se atrem //------------------------------------------------------------------------------------------------ // -------------- VARIAVEIS DO SCRIPT: INICIO------------------------------------ clc clf clear melhores clear all t=[]; x=[]; y=[]; NUM_IND=20 ; //numero de individuos TAXA_MUTA=10; //1% de mutação TAXA_CRUZA=70; TAXA_COPIA=20; TAXA_DIF=20;//maior diferença na hora de fazer gene = gene + - n % LAST=3; //numero de gerações que podem ficar com o mesmo fitness MAX_FUNCAO=1; //esse valor é empirico observando o comportamento NUM_GERACOES=20; MAX_FIT=40; RAIOS=5; variedade=[]; var_norm=[]; graf=[]; //esa variavel guarda os indices de cada geração num_diferenciais=0; variacao_fit=[]; modelo=[]; melhor_pedigree=[]; pedigree=[]; pop_inicial=[]; pais=[]; filhos=[]; diferencas=[]; y_melhor=[]; FUNCAO=[];//funcao a excitar o sistema

Page 106: Mutação Diferencial Condicional como proposta de ... · de freqüência. A sintonia de controladores PID foi escolhida apenas como base para aplicação dos algoritmos genéticos

Mutação Diferencial Condicional como proposta de otimização de Algoritmos Genéticos

106

ERRO=[]; //guardará o erro do sistema CONTROLE=[];//esforco de controle VALES=[];//variável que guardará os melhores repetidos PREFERENCIA=0.8; // ja comeca procurando por 60% diferente //========== INICIO DAS VARIAVEIS DO PID----------------------- T_FINAL=3; RESOLUCAO=0.05; t=[0:RESOLUCAO:T_FINAL]; //matriz com o tempo de simulação do sistema (de 0 à 1 com passo de 1 milissegundo) FUNCAO=t; //só pra ficar do mesmo tamanho //-= FUNCAO QUE IRÁ EXCITAR O SISTEMA , NA REFERENCIA for i=1:1:(T_FINAL/RESOLUCAO)+1 FUNCAO(i)=1; end //parametros do PID kp=1 ki=2 kd=3 w=0; //variáveis para armazenar valores random a=0; b=0; C=0; d=0; g=0; //especificações limitantes do projeto do PID //valores utilizados no calculo do fitness como comparação MAX_KP=100; MAX_KI=200; MAX_KD=100; REFERENCIA=1; // rpm de referencia pro motor IMEC=2; // expoente do fator que pune esforço de controle ITE=1; // expoente do fator que pune o erro ITAE IER=0.5; // expoente do fator que pune o erro final // =========== FIM DAS VARIAVEIS DO PID ==================== // ====INICIO : VARIAVEIS DO SISTEMA SIMULADO: PLANTA E MOTOR

Page 107: Mutação Diferencial Condicional como proposta de ... · de freqüência. A sintonia de controladores PID foi escolhida apenas como base para aplicação dos algoritmos genéticos

Mutação Diferencial Condicional como proposta de otimização de Algoritmos Genéticos

107

//modelo matemático do motor CC (planta) Jr=0.01; //inercia do rotor Jc=0.00; //inercia da carga acoplada Ja=Jr+Jc; //carga total no eixo bm=0.1; //constante de viscosidade no eixo (damping) Ka=0.01; //forca do motor em Nm/A Ra=1; //resistencia da armadura La=0.5; //indutancia da armadura num=poly([Ka],'s','coeff'); den=poly([(Ja*La) ((Ja*Ra)+(La*bm)) ((bm*Ra)+Ka^2)],'s','coeff'); H=syslin('c',num/den) //planta , FTMA //----- FIM DAS VARIÁVEIS DE SISTEMA //----------------------------- FIM DAS VARIÁVEIS DO SCRIPT ------------------------------------- // ------ INICIALIZANDO VARIAVEIS num_mutados=int(NUM_IND*TAXA_MUTA/100); num_cruzados=int(NUM_IND*TAXA_CRUZA/100); num_copiados=int(NUM_IND*TAXA_COPIA/100); num_copiados num_cruzados num_mutados melhores_mutados=0; //variaveis de avaliação de pedigree melhores_cruzados=0; melhores_copiados=0; //---------- INCIANDO PRIMEIRO DIAGRAMA DE ORBITAIS ------------------- while ((num_cruzados+num_mutados+num_copiados)< NUM_IND) num_mutados=num_mutados + 1; end ;//se no arredondamento deu menos,favorece a mutação for i=1:1:NUM_GERACOES for j=1:1:RAIOS variedade(i,j)=0; end end //---------------------------------------------------------

Page 108: Mutação Diferencial Condicional como proposta de ... · de freqüência. A sintonia de controladores PID foi escolhida apenas como base para aplicação dos algoritmos genéticos

Mutação Diferencial Condicional como proposta de otimização de Algoritmos Genéticos

108

//--------------------------- ATÉ AQUI ISSO INDEPENDE DA APLICAÇÃO---------------------------------------------------- // ---------------------- PARTE QUE É VINCULADA A APLICAÇÃO------------------------------------------- PARAMS=4; //numero de parametros de cada gene MAX_PARAM(1)=MAX_KP; //será o KP MAX_PARAM(2)=MAX_KI; //será o KI MAX_PARAM(3)=MAX_KD; //será o KD //----------------------- GERAÇÃO DA POPULAÇÃO INICIAL DE FILHOS -------------------------------------- for i=1:1:NUM_IND for j=1:1:(PARAMS-1) pais(i,j)=rand(); // rand vai de 0 a 1, logo cada parametro vai de zero até seu máximo end pedigree(i)="GR"; end //----------------------------------------------------------------- //------------------------------- INICIO DO FOR DE GERACOES ------------------- for g=1:1:NUM_GERACOES //---------------------------------- FITNESS ---------------------------------------- for i=1:1:NUM_IND //--------- os parametros (genes) viram numeros reais (ou seja, as grandezas que eles representam kp=MAX_PARAM(1)* (pais(i,1)); ki=MAX_PARAM(2)* (pais(i,2)); kd=MAX_PARAM(3)* (pais(i,3)); // simulando o sistema //---------- criando o PID em forma de função de transferencia den_P=poly([0],'s','r'); // denominador do PID (polo na origem) num_P=poly([ki kp kd],'s','coeff'); //numerador do PID (coeficientes da função em FT(s)=Kds^2+Kps+Ki) G=syslin('c',num_P/den_P); // controlador PID (criação da função) FTMF=(G*H)/(G*H+1); //função transferencia de malha fechada y=csim(FUNCAO,t,FTMF); //executa a simulação do Scilab para um degrau calculando a velocidade de rotação do motor

Page 109: Mutação Diferencial Condicional como proposta de ... · de freqüência. A sintonia de controladores PID foi escolhida apenas como base para aplicação dos algoritmos genéticos

Mutação Diferencial Condicional como proposta de otimização de Algoritmos Genéticos

109

ERRO=y-FUNCAO; //define o erro ESFORCO=abs(csim(ERRO,t,G)); //calcula o esforco computacional (simula, tira o modulo ) INT_ESF=0; //ZERA A INTEGRAL DO ESFORCO for L=1:1:size(t,2) INT_ESF=INT_ESF+abs(ESFORCO(L))*RESOLUCAO; //resolucao é o dt da simulação end ESFORCO=INT_ESF; // -------------- CALCULANDO O ITAE , LEVANDO EM CONSIDERAÇÃO A FUNCAO DEFINIDA LÁ EM CIMA ITAE=0; for L=1:size(t,2) ITAE=ITAE+abs(FUNCAO(L)-y(L))*RESOLUCAO; //isso é um acumulado, ou seja, uma integral end //-------------------------------------- VALOR_FIM=y(size(y,2)); //ultimo valor ERRO_FIM=abs(FUNCAO(size(FUNCAO,2))-VALOR_FIM); pais(i,PARAMS)=(1/ESFORCO^IMEC)*(1/ITAE^ITE)*(1/ERRO_FIM^IER); // esse 1e-5 é pra nao ficar dividido por zero // mas o fitness continua sendo inversamente proporcional ao ITAE // se a curva parecer crescente e tende a instabilidade, diminui o fitness if( y(size(FUNCAO,2)) > y(size(FUNCAO,2)-30) ) then pais(i,PARAMS)=pais(i,PARAMS)*0.25; end; end // ---------------------- fim da avaliacao de fitness g //exibe o numero da geracao atual pais;//mostra o resultado //--------------------------------------SELEÇÃO DOS MELHORES------------------------------ // AQUI FAZ-SE POR BUBBLE SORT , E NÃO POR ROULETTE WHEEL, O QUE GARANTE UMA MAIOR VARIABILIDADE GENÉTICA // SE UM INDIVÍDUO FOR MUITO FORTE, ELE PODE TORNAR-SE EXCESSIVAMENTE DOMINANTE, E OS FILHOS PASSARÃO A // ORBITAR AO REDOR DELE, CONDUZINDO O SISTEMA MAIS FACILMENTE A MÍNIMOS LOCAIS QUE POSSAM APARECER NAS PRIMEIRAS GERAÇÕES

Page 110: Mutação Diferencial Condicional como proposta de ... · de freqüência. A sintonia de controladores PID foi escolhida apenas como base para aplicação dos algoritmos genéticos

Mutação Diferencial Condicional como proposta de otimização de Algoritmos Genéticos

110

// com filhos muito próximos do pai original, a maior parte dos filhos é vinda de mutações, já que as copias seriam dominantes

// como o pai, e os cruzamentos entre o pai com ele mesmo (o que é muito frequente) sempre apareceriam,mas seriam provavelmente // refutados toda a geração, desperdiçando processamento e posições na matriz de filhos com indivíduos inuteis // Uma das diferenças do SORT para o roulette wheel é que se voce se um indivíduo se sobressai DEMAIS, com um fitness // muito maior que os demais, nao corre-se o risco de que somente ele seja escolhido, como ocorreria frequentemente // por ele deter a maior parte dos bilhetes. Mesmo que o 2o. melhor individuo tenha fit 1% do melhor, ele ainda // estará garantido por ser o segundo melhor, o que nao ocorreria no roulette wheel.Voce acaba diminuindo o espaço de

// estados, o espaço de busca - diminuindo as chances de encontrar um máximo global e aumentando as chances de cair em um // em um minimo local for j=1:1:NUM_IND for i=1:1:NUM_IND if(pais(i,PARAMS)<pais(j,PARAMS)) then //copia os paramtros todos, independe do numero deles for p=1:1:PARAMS temp(p)=pais(i,p); end; //copia o mais fraco pra um lugar temporario for p=1:1:PARAMS pais(i,p)=pais(j,p); end; //copia o mais fraco pra um lugar temporario for p=1:1:PARAMS pais(j,p)=temp(p); end; //copia o mais fraco pra um lugar temporario // organiza-se também a matriz de pedigree temp_ped=pedigree(i); pedigree(i)=pedigree(j); pedigree(j)=temp_ped; end //fim do'if' end // 'end do 'j' end // end do 'i' "ordenando por fitness"; pais; // SORT FUNCIONOU NORMALMENTE if(g==1) then pop_inicial=pais;end; //isso aqui é só pra copiar a pop inicial // CONTABILIDADE DE QUEM FOI O MELHOR, DO TIPO , DE QUE OPGEN VEIO, ETC.

Page 111: Mutação Diferencial Condicional como proposta de ... · de freqüência. A sintonia de controladores PID foi escolhida apenas como base para aplicação dos algoritmos genéticos

Mutação Diferencial Condicional como proposta de otimização de Algoritmos Genéticos

111

for p=1:1:PARAMS melhores(g,p)=pais(1,p); end; //copia o melhor desta geracao melhor_pedigree(g)=pedigree(1); // copia na memoria de onde veio o melhor dessa geração if (pedigree(1)=="CZ") then melhores_cruzados = melhores_cruzados +1; end; if (pedigree(1)=="CY") then melhores_copiados =melhores_copiados +1; else melhores_mutados =melhores_mutados + 1; end; [melhores(g,1) melhores(g,2) melhores(g,3) melhores(g,PARAMS)] graf(g)=g; //-------- FIM DA CONTABILIDADE DE GERACOES // ------------------------ CALCULANDO AS ORBITAS DOS INDIVIDUOS ------------------------------ for r=1:1:RAIOS //como cada gen vai de 0 a 1, cada raio terá "1/TOTAL_RAIOS" de comprimento // a variavel "variedades" guarda o acumulado de cada orbita de cada geração for L=1:1:NUM_IND dist=0; for J=1:1:PARAMS-1 // fitness nao pode contar como coordenada dist=(pais(L,J)-pais(1,J))^2 + dist; //aqui calcula a distancia de cada gene em relacao ao melhor end if(dist <= (r/(RAIOS-1))^2) then variedade(g,r)=variedade(g,r)+1;end; //se estiver dentro do raio, conta mais 1 // // TIRAMOS 1 DO RAIO PARA QUE SOBRE 1 ESFERA ALÉM DE r=1, POIS PODE OCORRER DA SOMA SER MAIOR QUE 1 // FICA <RAIOS-1> ESFERAS PERTO DA ORIGEM E 1 FORA ["individuo" sci2exp(L) sci2exp(dist)]; end //dos individuos end // dos raios //------------------------------------------------------------------------------ // -------------------- AGORA VAMOS USAR OS OPERADORES DARWINIANOS -------------- // tentar usar a ideia do roulette wheel para decidir quando haverá cruzamento, mutação ou copia //----------- geração dos filhos ----- // prvidencia a copia dos N melhores for i=1:1:num_copiados for k=1:1:PARAMS filhos(i,k)=pais(i,k); end; //do 1o ao 'k-ésimo' parametro, copia do pai 1 pedigree(i)="CY"; // marca como copia end

Page 112: Mutação Diferencial Condicional como proposta de ... · de freqüência. A sintonia de controladores PID foi escolhida apenas como base para aplicação dos algoritmos genéticos

Mutação Diferencial Condicional como proposta de otimização de Algoritmos Genéticos

112

f=num_copiados+1; while (f<=num_copiados+num_cruzados) //geraremos os filhos por crossing agora pedigree(f)="CZ"; // marca como cruzamento //------ POSICAO ONDE SERÁ FEITO O CROSS OVER------- bilhete=1/(PARAMS-2);// divide em N bilhetes, tantos quantos forem os parametros - // tem que ser -1 por que o ultimo sempre e o fitness a=rand(); a=ceil(a/bilhete);// a posicao é o arredonda pra cima da divisao entre o rand e o minimo bilhete if (a==0) then a=1;end; // isso só é facil assim quando a divisão é simmétrica como no caso acima //;------------- INDIVIDUO QUE SERÁ CORTADO ------------ bilhete=1/NUM_IND; N=rand(); N=ceil(N/bilhete);// a posicao é o arredonda pra cima da divisao entre o rand e o minimo bilhete if (N==0) then N=1;end; // ---------- INDIVIDUO QUE RECEBERÁ O CORTE -------------- N2=rand(); // qual será o segundo indviduo N2=ceil(N2/bilhete);// a posicao é o arredonda pra cima da divisao entre o rand e o minimo bilhete if (N2==0) then N2=1;end; semelhanca=0;// esse aqui é só pra forçar entrear no while s=1; PREF_TEMP=PREFERENCIA; //VALOR TEMPORARIO DE SEMELHANCA while(s<>0) semelhanca=0; for k=1:1:PARAMS semelhanca=semelhanca+(pais(N,k)-pais(N2,k))^2; //acha a semelhanca entre eles end semelhanca=sqrt(semelhanca); //ate aqui, calcula a semelhanca // quanto mais parecido, mais proximo de zero é esse valor if (semelhanca>=PREF_TEMP) then s=0; // e quebra o ciclo else //senao s=s+1;//incrementa o numero de tentativas if(s>NUM_IND) then //se já tentou todo mundo PREF_TEMP=PREF_TEMP*0.9; ///se nao achou ninguem,diminui a exigencia s=1; //poe s=1 recomecando a contagem ; nao pode ser s=0 porque sairia do loop end;

Page 113: Mutação Diferencial Condicional como proposta de ... · de freqüência. A sintonia de controladores PID foi escolhida apenas como base para aplicação dos algoritmos genéticos

Mutação Diferencial Condicional como proposta de otimização de Algoritmos Genéticos

113

N2=rand(); // sorteia outro N2=ceil(N2/bilhete);// a posicao é o arredonda pra cima da divisao entre o rand e o minimo bilhete if (N2==0) then N2=1;end; //só evitando encrenca com indices invalidos end //do 'if' < PREFERENCIA end //do while 's' for k=1:1:PARAMS if(k<=a) then filhos(f,k)=pais(N,k);; //do 1o ao 'a-ésimo' parametro, copia do pai 1 else filhos(f,k)=pais(N2,k);end; //depois daí, começa a copiar do pai 2 if(k<=a) then filhos(f+1,k)=pais(N2,k);; //do 1o ao 'a-ésimo' parametro, copia do pai 2 else filhos(f+1,k)=pais(N,k);end; //depois daí, começa a copiar do pai 1 end // end do for de parametros do 'k' f=f+2; // precisa avancar artificialmente o 'f' por que adicionamos 2 filhos end; //end do while numero de cruzados // agora , completaremos com mutacoes while(f<=NUM_IND) if(num_mutados<1) then break;end; pedigree(f)="MU"; // marca como mutacao //;------------- INDIVIDUO QUE SERÁ mutado ------------ bilhete=1/num_copiados; N=rand(); N=ceil(N/bilhete);// a posicao é o arredonda pra cima da divisao entre o rand e o minimo bilhete if (N==0) then N=1;end; //----- posicao em que ocorrerá mutação ------------------- bilhete=1/(PARAMS-1);// divide em N bilhetes, tantos quantos forem os parametros - // tem que ser -1 por que o ultimo sempre e o fitness a=rand(); a=ceil(a/bilhete);// a posicao é o arredonda pra cima da divisao entre o rand e o minimo bilhete if (a==0) then a=1;end; // isso só é facil assim quando a divisão é simmétrica como no caso acima // primeiro faz uma copia do pai original //N=1; //forca a ser o melhor for k=1:1:PARAMS filhos(f,k)=pais(N,k); end; //do 1o ao 'k-ésimo' parametro, copia do pai 1 novo=rand(); //valor da mutação se for aleatoria if(g>LAST) then //se ja passou da 5a geracao (pra nao dar erro)

Page 114: Mutação Diferencial Condicional como proposta de ... · de freqüência. A sintonia de controladores PID foi escolhida apenas como base para aplicação dos algoritmos genéticos

Mutação Diferencial Condicional como proposta de otimização de Algoritmos Genéticos

114

monotono=0; //variavel que indica se houve monotonia no fitness ao longo das geracoes //for p=g:1:(g-LAST+1) // if(melhores(p,PARAMS)==melhores(p-1,PARAMS)) monotono=1;//cada coincidencia seguinte soma 1 // else monotono=0;end; //se deu diferente, quebrou a sequencia e ele zera de novo // end soma=0; for h=(g-LAST+1):1:g soma=melhores(h,PARAMS)+soma; end; // soma=melhores(g-3,PARAMS)+melhores(g-2,PARAMS)+melhores(g-1,PARAMS)+melhores(g,PARAMS); soma=soma/melhores(g,PARAMS); //se chegou até aqui com 'monotono' = 0, é porque nao houve 'LAST' repeticoes seguidas if ((soma==LAST)&(num_diferenciais<2)) then monotono=1; //só parte pra diferencial se // ainda náo tentou nenhuma ou se ainda nao tentou 2x com o mesmo gene ["repetiu 4"] ; delta_gen=(2*rand()-1)*TAXA_DIF/100; //maxima variacao do gen filhos(f,a)=filhos(f,a)*(1+delta_gen);//faz uma pequena variacao ["usa diferencial no " sci2exp(N)]; if(filhos(f,a)>=1) then filhos(f,a)=filhos(f,a)/2;end; //nao deixa passar de 1 if(filhos(f,a)<=0) then filhos(f,a)=1+filhos(f,a);end; //nao deixa passar de 0 num_diferenciais=num_diferenciais+1; //contador pra nao prender o AG em um local pedigree(f)="MDIF"; // marca como mutacao else filhos(f,a)=novo; [" usa tradicional"]; num_diferenciais=0; //zera o contador de mutacoes diferenciais monotono=0; end //fim do 'se repete' else filhos(f,a)=novo;["tradicional"] ; //se ainda nao está nem na #LAST geracao,entao usa mutação normal end; //fim do if g>3 f=f+1; // precisa avancar artificialmente o 'f' por que adicionamos 1 filhos // esse avanca 1 e nao 2, por que so adicionamos 1 filho end; //fim do 'while' da mutacao //-------- eliminando copias desnecessárias for j=1:1:NUM_IND for i=1:1:NUM_IND MATCHES=0;//numero de coincidencias if(i<>j) then // for ma=1:1:PARAMS-1

Page 115: Mutação Diferencial Condicional como proposta de ... · de freqüência. A sintonia de controladores PID foi escolhida apenas como base para aplicação dos algoritmos genéticos

Mutação Diferencial Condicional como proposta de otimização de Algoritmos Genéticos

115

if(pais(i,ma)==pais(j,ma)) then MATCHES=MATCHES+1;end; end if(MATCHES==PARAMS-1) then //se repetiu tudo até o fitness,entao sao iguais GENE_INV=floor(rand()*(PARAMS-1)); //escolhe um gene para inverter if(GENE_INV==0) then GENE_INV=1;end; //pais(j,GENE_INV)=1-pais(j,GENE_INV); //inversao de valores //pais(j,PARAMS)=0; //l pedigree(j)="ENX"; //vem de 'enxerto' end //do 'if TOTALMENTE IGUAL' end //do if 'i < >j' end // 'end do 'j' end // end do 'i' //---------------------------- pais=filhos; end; //fim do for para geracoes //------- FIM DO FOR DE GRACOES // APRESENTAÇÃO DOS RESULTADOS =================================================== ///------------------------ PLOTANDO GRÁFICOS E MEDINDO DESEMPENHOS ---------------------------------------- clf; "Done." subplot(3,1,1); xtitle( 'Evolução do Fitness', 'Gerações', 'Fitness') ; plot2d(graf,melhores(graf,PARAMS)); "melhor da ultima geracao" // simulando o sistema para o melhor individuo do AG //---------- criando o PID em forma de função FTMA

Page 116: Mutação Diferencial Condicional como proposta de ... · de freqüência. A sintonia de controladores PID foi escolhida apenas como base para aplicação dos algoritmos genéticos

Mutação Diferencial Condicional como proposta de otimização de Algoritmos Genéticos

116

kp=melhores(g,1) * MAX_PARAM(1); ki=melhores(g,2)* MAX_PARAM(2); kd=melhores(g,3) * MAX_PARAM(3); den_P=poly([0],'s','r'); // denominador do PID (polo na origem) num_P=poly([ki kp kd],'s','coeff'); //numerador do PID (coeficientes da função em FT(s)=Kds^2+Kps+Ki) G=syslin('c',num_P/den_P); // controlador PID (criação da função) FTMF=(G*H)/(G*H+1); //função transferencia de malha fechada y=csim(FUNCAO,t,FTMF); //executa a simulação do Scilab para um degrau calculando a velocidade de rotação do motor ERRO=y-FUNCAO; //define o erro ESFORCO=abs(csim(ERRO,t,G)); //calcula o esforco computacional (simula, tira o modulo ) INT_ESF=0; //ZERA A INTEGRAL DO ESFORCO for L=1:1:size(t,2) INT_ESF=INT_ESF+abs(ESFORCO(L))*RESOLUCAO; //resolucao é o dt da simulação end ESFORCO=INT_ESF; y_melhor=y; //guarda o resultado // -------------- CALCULANDO O ITAE , LEVANDO EM CONSIDERAÇÃO A FUNCAO DEFINIDA LÁ EM CIMA ITAE=0; for L=1:size(t,2) ITAE=ITAE+abs(FUNCAO(L)-y(L))*RESOLUCAO; //isso é um acumulado, ou seja, uma integral end //-------------------------------------- VALOR_FIM=y(size(y,2)); //ultimo valor ERRO_FIM=abs(FUNCAO(size(FUNCAO,2))-VALOR_FIM); FIT_FINAL=(1/ESFORCO^IMEC)*(1/ITAE^ITE)*(1/ERRO_FIM^IER) // esse 1e-5 é pra nao ficar dividido por zero ['ITAE' 'ESFORCO' 'ERRO'] [ITAE ESFORCO ERRO_FIM] subplot(3,1,3);

Page 117: Mutação Diferencial Condicional como proposta de ... · de freqüência. A sintonia de controladores PID foi escolhida apenas como base para aplicação dos algoritmos genéticos

Mutação Diferencial Condicional como proposta de otimização de Algoritmos Genéticos

117

xtitle( 'Saida do motor', 'Gerações', 'Fitness') ; plot2d(t,y_melhor); ["melhores_cruzados" "melhores_copiados" "melhores_mutados"] [melhores_cruzados melhores_copiados melhores_mutados] op_resp=[]; subplot(3,1,2); xtitle( 'Variação do Fitness', 'Gerações', 'Delta Fitness') ; variacao_fit(1)=0; op_resp(1)="GR"; //op gen de geracao for i=2:1:NUM_GERACOES variacao_fit(i)=melhores(i,PARAMS)-melhores(i-1,PARAMS); if(variacao_fit(i)>0) then op_resp(i)=melhor_pedigree(i);; //copia somente o opgen responsavel pela variacao no fitness [melhor_pedigree(i) "na geracao" sci2exp(i)] //exibe uma tabela somente se teve variacao // a funcao SCI2EXP converte de numero para string else op_resp(i)="_";end; end plot2d(graf,variacao_fit); //------------------------------------------------------------------------------------------------------------------ // // agora , AS FERRAMENTAS DE AVALIAÇÃO DO ALGORITMO COMECA_CRESC=1; while ((variacao_fit(COMECA_CRESC)==0)&(COMECA_CRESC<NUM_GERACOES)) //enquanto nao variou pela 1a vez o fitness COMECA_CRESC=COMECA_CRESC +1 ; //acha onde começa a curva de crescimento exponencial modelo(COMECA_CRESC)=0; //copia esse vazio antes de comecar a crescer pro modelo end; TAU=1; FIT_63=max(melhores)*0.63; // 63 % do fitness final while ( (melhores(TAU)<=(FIT_63)) & (TAU<NUM_GERACOES)) TAU=TAU +1 ;end; //acha onde é "t = 1 * RC" analogo ao sistema for i=COMECA_CRESC:1:NUM_GERACOES

Page 118: Mutação Diferencial Condicional como proposta de ... · de freqüência. A sintonia de controladores PID foi escolhida apenas como base para aplicação dos algoritmos genéticos

Mutação Diferencial Condicional como proposta de otimização de Algoritmos Genéticos

118

modelo(i)=max(melhores)*(1-exp(-((graf(i)-1)/TAU))); //deslocado end subplot(3,1,1); //escolhe o proprio grafico do fitness, pra desenhar por cima o modelo de VE //plot2d(graf,modelo); ta sem pq ainda nao tá legal com pid ["o valor de Tau (cte de crescimento) é" sci2exp(TAU)] ["o crescimento começa na " sci2exp(COMECA_CRESC) "geracao"] IPQ=(melhores(NUM_GERACOES,PARAMS)/MAX_FIT)^2; ["índice de proximidade quadrática" sci2exp(IPQ)] ["LN DIF IPQ" sci2exp(-log10(abs(1-IPQ)))] //poe o abs porque pode dar acima de 1 raramente //uma possivel maneira de medir velocidade também seria a integral no tempo(geracoes) // geracoes mais lentas demoram mais pra chegar no 100%, o que dá uma integral menor for g=1:1:NUM_GERACOES for r=1:1:RAIOS if(r==1) then var_norm(g,r)=variedade(g,r); else var_norm(g,r)=variedade(g,r)-variedade(g,r-1); end// do if end end var_norm //exibe o numero exato de individuos por orbita for g=1:1:NUM_GERACOES for r=1:1:RAIOS if(g==1) then var_dif(g,r)=var_norm(g,r); else var_dif(g,r)=var_norm(g,r)-var_norm(g-1,r); end// do if end end var_dif; // exibe a diferenca entre as orbitas de cada geração for g=1:1:NUM_GERACOES if(g==1) then fit_dif(g,r)=melhores(g,PARAMS); else fit_dif(g,r)=melhores(g,PARAMS)-melhores(g-1,PARAMS); end// do if end fit_dif; // exibe a diferenca entre fitness de cada geracao for g=1:1:NUM_GERACOES

Page 119: Mutação Diferencial Condicional como proposta de ... · de freqüência. A sintonia de controladores PID foi escolhida apenas como base para aplicação dos algoritmos genéticos

Mutação Diferencial Condicional como proposta de otimização de Algoritmos Genéticos

119

for h=1:1:RAIOS diferencas(g,h)=var_dif(g,h); //variacao de orbita diferencas(g,h+1)=fit_dif(g,h); //guarda a diferenca de fitness na mesma matriz end end ["orbitas de 1 a" sci2exp(RAIOS) " variacao de fitness"] diferencas ["soma das colunas"] for h=1:1:RAIOS valor=0; for g=2:1:NUM_GERACOES valor=valor+var_norm(g,h); end soma_raios(h)=valor; end soma_raios // ---- IMPLEMENTAÇÃO DA FERRAMENTA "MELHORIA EFETIVA" ------ for i=2:1:NUM_GERACOES MELHORIA(i)=((melhores(i,PARAMS)/melhores(i-1,PARAMS))-1)*100; end MELHORIA ['kp' 'ki' 'kd'] [kp ki kd]

Page 120: Mutação Diferencial Condicional como proposta de ... · de freqüência. A sintonia de controladores PID foi escolhida apenas como base para aplicação dos algoritmos genéticos

Mutação Diferencial Condicional como proposta de otimização de Algoritmos Genéticos

120

ANEXO III - Resposta de outros métodos de sintonia Para aplicar os métodos tradicionais de sintonia, foi necessário levantar o modelo FODT do motor quando excitado em malha aberta. Com o mesmo script de simulação, chegou-se a seguinte curva de velocidade (rad/s) por tempo (figura 51):

Ilustração 51 – saída do motor em malha aberta ,entrada em 1Vcc

É possível observar que existe um pequeno tempo morto, quase imperceptível, cujo valor é aproximadamente 0,5 segundo. Esse intervalo pode ser visto na figura 52, logo abaixo:

Page 121: Mutação Diferencial Condicional como proposta de ... · de freqüência. A sintonia de controladores PID foi escolhida apenas como base para aplicação dos algoritmos genéticos

Mutação Diferencial Condicional como proposta de otimização de Algoritmos Genéticos

121

Ilustração 52 – detalhe do tempo morto aproximado do motor

Foi simulada a resposta no tempo do modelo FODT, e sua curva sobreposta à resposta do motor, conforme figura 53.

Page 122: Mutação Diferencial Condicional como proposta de ... · de freqüência. A sintonia de controladores PID foi escolhida apenas como base para aplicação dos algoritmos genéticos

Mutação Diferencial Condicional como proposta de otimização de Algoritmos Genéticos

122

Ilustração 53 – aproximação de C-C para o motor como “caixa preta”

É possível levantar agora o valor dos parâmetros do modelo FODT (primeira ordem com atraso): θ = 0,5 segundo τ = 11,5 seg. = 12 (tempo para atingir 63% do valor final) – 0,5 (tempo de atraso) Utilizando a tabela de Cohen-Coon, chega-se aos seguintes valores: Kp= 15,6 Ti = 1,63 seg Td = 0,045 seg É possível perceber que há uma boa aproximação entre ambas as curvas. A resposta desse motor com os parâmetros calculados por C-C resultam na curva de velocidade por tempo da figura 54 :

Page 123: Mutação Diferencial Condicional como proposta de ... · de freqüência. A sintonia de controladores PID foi escolhida apenas como base para aplicação dos algoritmos genéticos

Mutação Diferencial Condicional como proposta de otimização de Algoritmos Genéticos

123

Ilustração 54 – sintonia usando C-C

Resposta obviamente está aquém dos resultados do AG, embora também seja estável. O esforço de controle dessa sintonia foi de 14 vezes o nível de entrada (figura 55), também pior do que os 8 a 10x conseguidos no AG.

Page 124: Mutação Diferencial Condicional como proposta de ... · de freqüência. A sintonia de controladores PID foi escolhida apenas como base para aplicação dos algoritmos genéticos

Mutação Diferencial Condicional como proposta de otimização de Algoritmos Genéticos

124

Ilustração 55 – Esforço de controle na sintonia por C-C

ZIEGLER NICHOLS Dos dois métodos apresentados, o método do ganho último de Z-N não se mostrou exeqüível, uma vez que o gráfico LGR (lugar geométrico das raízes ou root locus, figura 56) mostrou que os pólos de malha fechada iriam, com o aumento de ganho, caminhar em uma trajetória cada vez mais paralela ao eixo imaginário. Ao tentar executar o método, apenas a freqüência das oscilações aumentou, mas o tempo de decaimento permaneceu o mesmo, o que confere perfeitamente com o LGR. Portanto, o sistema não tende a instabilidade e não permite esse tipo de análise.

Page 125: Mutação Diferencial Condicional como proposta de ... · de freqüência. A sintonia de controladores PID foi escolhida apenas como base para aplicação dos algoritmos genéticos

Mutação Diferencial Condicional como proposta de otimização de Algoritmos Genéticos

125

Ilustração 56 – Mapa LGR das trajetórias dos pólos de malha fechada no plano ‘s’

Já o método Z-N baseado no modelo FODT da planta é possível de ser calculado. Conforme a tabela já mostrada, os valores de Kp, Ki e KD vêm : Kp=1,2 * 11,5/0,5 = 27,6 Ti= 2*0,5 = 1 Td=0,5*0,5 = 0,25 Assim sendo, Ki = 1/1 s-1 e Kd=1/0,25 = 4 s-1

Page 126: Mutação Diferencial Condicional como proposta de ... · de freqüência. A sintonia de controladores PID foi escolhida apenas como base para aplicação dos algoritmos genéticos

Mutação Diferencial Condicional como proposta de otimização de Algoritmos Genéticos

126

Ilustração 57 – Saída do motor usando Z-N

Houve um sobressinal de 40%, e aproximadamente 10 segundos até estabilizar o set-point. Pode-se perceber que cada período da oscilação decai 1/4 de sua amplitude em relação a oscilação anterior – condição inerente ao método de Z-N. Também o esforço de controle é maior (ver figura 58), atingindo 27,6 V na entrada do motor.

Page 127: Mutação Diferencial Condicional como proposta de ... · de freqüência. A sintonia de controladores PID foi escolhida apenas como base para aplicação dos algoritmos genéticos

Mutação Diferencial Condicional como proposta de otimização de Algoritmos Genéticos

127

Ilustração 58 – Esforço de controle usando Z-N com FODT