• Nenhum resultado encontrado

entre os dois pais [46].

4.4.5

M´odulo de popula¸c˜ao

A popula¸c˜ao normalmente ´e inicializada de forma aleat´oria e com um tamanho arbitr´ario. Em cada itera¸c˜ao do algoritmo ´e gerada uma popula¸c˜ao de filhos, pois dois pais produzem dois filhos. Assim, ao final de cada itera¸c˜ao ´e necess´ario que a popula¸c˜ao de pais seja descartada e substitu´ıda pelos filhos. Pode-se observar que n˜ao ´e isso que se vˆe na natureza em que a popula¸c˜ao tende sempre a crescer. Entretanto, na natureza, o tamanho da popula¸c˜ao ´e limitada a quantidade de recursos. Portanto, pode-se pensar que nos algoritmos gen´eticos, os indiv´ıduos est˜ao competindo entre si por recursos limitados [8, 46].

4.5

Teorema dos Esquemas

A teoria tradicional dos algoritmos gen´eticos foi formalizada primeiramente por Holland em 1975 [45]. Assume-se que os algoritmos gen´eticos trabalham descobrindo, enfatizando e recombinando bons ”blocos de constru¸c˜ao”de solu¸c˜oes de uma maneira altamente paralela. A ideia ´e que boas solu¸c˜oes tendem a ser encontradas a partir de bons ”blocos de constru¸c˜ao” [43]. Holland introduziu a no¸c˜ao de esquemas [45] para formalizar a no¸c˜ao de ”blocos de constru¸c˜ao”. Um esquema ´e um conjunto de strings de bits que podem ser descritos por um modelo feito de uns, zeros e asteriscos, os asteriscos significam ”n˜ao importa”. Por exemplo, o esquema H = 1 ∗ ∗ ∗ ∗1 representa o conjunto de todas as strings de 6 bits que come¸cam com 1 e terminam com 1. Lembrando que os esquemas n˜ao est˜ao restritos a representa¸c˜ao bin´aria. Os s´ımbolos de um esquema formam o alfabeto de s´ımbolos utilizados em nossa representa¸c˜ao cromossomial. As strings que se encaixam nesse modelo, como 100111 e 110011, s˜ao chamadas de instˆancias de H. A quantidade de bits que n˜ao s˜ao asteriscos representa a ordem do esquema, nesse caso o esquema H ´e de ordem 2. Seu comprimento, o tamanho das strings poss´ıveis, ´e 5 [8, 43].

N˜ao ´e poss´ıvel descrever todos os subconjuntos de um conjunto de tamanho l como um esquema. Na realidade, a grande maioria n˜ao pode ser descrito como esquema. Existem 2l possibilidades para uma string de tamanho l e 22l subconjuntos de strings, mas existem apenas 3l esquemas poss´ıveis. Entretanto, a ideia central dos algoritmos gen´eticos ´e que os esquemas s˜ao os blocos de constru¸c˜ao que s˜ao processados pelos operadores de sele¸c˜ao, muta¸c˜ao e crossover [43].

Qualquer string de tamanho l ´e uma instˆancia de 2l diferentes esquemas. Por exemplo, a string 11 ´e uma instˆancia de ∗∗, ∗1, 1∗ e 11. Assim, qualquer popula¸c˜ao com n strings cont´em instˆancias entre 2l e n × 2l esquemas. Se todas as strings s˜ao idˆenticas, ent˜ao existem instˆancias de exatamente 2l esquemas. Caso contr´ario, o n´umero ´e menor ou igual a n × 2l. Isso significa, que em uma dada gera¸c˜ao, enquanto o algoritmo gen´etico est´a explicitamente calculando as avalia¸c˜oes de cada indiv´ıduo da popula¸c˜ao, implicitamente ele est´a calculando a m´edia das avalia¸c˜oes de um n´umero muito maior de esquemas, sendo a m´edia das avalia¸c˜oes de um esquema definido como sendo avalia¸c˜ao m´edia de todos as instˆancias poss´ıvel desse esquema. Por exemplo, em uma popula¸c˜ao gerada aleatoriamente, a m´edia de metade da popula¸c˜ao ser´a uma instˆancia de 1 ∗ ∗ ∗ · · · ∗ e a outra metade ser´a instˆancia de 0 ∗ ∗ ∗ · · · ∗. Assim como os esquemas n˜ao s˜ao explicitamente representados ou avaliados em um algoritmo gen´etico, as m´edias das avalia¸c˜oes

desses esquemas tamb´em n˜ao s˜ao calculadas ou armazenadas explicitamente. Entretanto, o comportamento de um algoritmo gen´etico, em termos do aumento ou diminui¸c˜ao do n´umero de instˆancias de um dado esquema, pode ser visto como se o algoritmo estivesse realmente calculando e armazenando as m´edias [43].

Pode-se calcular a dinˆamica das instˆancias de um esquema, ou aumento ou diminui¸c˜ao de instˆancias, da seguinte forma. Seja H um esquema com pelo menos uma instˆancia presente na popula¸c˜ao em um tempo t. Seja m(H, t) o n´umero de instˆancias de H no tempo t e ˆu(H, t) a avalia¸c˜ao m´edia de H no tempo t, ou seja, a avalia¸c˜ao m´edia das instˆancias de H em uma popula¸c˜ao no tempo t. Deseja-se determinar o n´umero de instˆancias de H no tempo t + 1, E(m(H, t + 1)). Assume que a sele¸c˜ao funciona da seguinte forma: o n´umero esperado de filhos de uma string x ´e igual a f (x)/ ¯f (t), onde f (x) ´e a avalia¸c˜ao de x e ¯f (t) ´e a avalia¸c˜ao m´edia da popula¸c˜ao em um tempo t. Ent˜ao, assumindo-se que x est´a presente na popula¸c˜ao no tempo t e ignorando os operadores de muta¸c˜ao e crossover, tem-se

E(m(H, t + 1)) = X x∈H

f (x)/ ¯f (t) = (ˆu(H, t)/ ¯f (t))m(H, t), (4.2)

onde, por defini¸c˜ao, ˆu(H, t) = (P

x∈Hf (x))/m(H, t) para x na popula¸c˜ao no tempo t. Portanto, mesmo que os algoritmos gen´eticos n˜ao calculem explicitamente o valor de ˆu(H, t), o aumento ou diminui¸c˜ao de instˆancias de um esquema dependem dessa quantidade [43].

Os operadores de muta¸c˜ao e crossover podem destruir ou criar instˆancias de H. Os efeitos na destrui¸c˜ao de instˆancias de H podem ser inclu´ıdos modificando o lado direito da Equa¸c˜ao 4.2 afim de diminuir o limite em E(m(H, t + 1)). Seja pc a probabilidade de um crossover de um ponto ser aplicado a uma string e suponha que uma instˆancia do esquema H ´e escolhida para ser um pai. O esquema H ir´a sobreviver ao crossover de um ponto se um dos filhos for tamb´em uma instˆancia de H. A probabilidade Sc(H) de H sobreviver ao crossover de um ponto ´e dada por:

Sc(H) ≥ 1 − pcd(H)

l − 1, (4.3)

onde d(H) ´e definido como o comprimento de H e l ´e definido como o comprimento da string de bits no espa¸co de busca. Assim, os crossovers que ocorrem dentro do comprimento de H podem destruir H, ent˜ao multiplica-se a fra¸c˜ao da string que H ocupa pela probabilidade do crossover para obter-se um limite superior na probabilidade dele ser destru´ıdo. Subtra´ındo-se esse valor de 1 obt´em-se o limite inferior de sobrevivˆencia Sc(H). Em resumo, a probabilidade de sobrevivˆencia ´e maior para esquemas curtos [43].

O efeito destrutivo da muta¸c˜ao podem ser quantificados da seguinte forma: seja pm a probabilidade de um bit ser mudado. Ent˜ao, Sm(H) ser´a a probabilidade do esquema H sobreviver a muta¸c˜ao de uma instˆancia de H e ´e igual a (1 − pm)o(H), onde o(H) ´e a ordem de H. Assim, para cada bit, a probabilidade do bit n˜ao ser mudado ser´a (1 − pm). Portanto, a probabilidade dos bits n˜ao definidos do esquema H ser mudado ´e essa quantidade multiplicado por si mesma o(H) vezes. Em resumo, a probabilidade de sobrevivˆencia de um esquema durante a aplica¸c˜ao do operador de muta¸c˜ao ´e maior para esquemas de pequena ordem [43].

Portanto, a Equa¸c˜ao 4.2 pode ser reescrita para incluir os efeitos destrutivos do crossover e muta¸c˜ao da seguinte forma:

4.5. Teorema dos Esquemas 41 E(m(H, t + 1)) ≥ u(H, t)ˆ¯ f (t) m(H, t)(1 − pc d(H) l − 1)[(1 − pm) o(H)]. (4.4)

A Equa¸c˜ao 4.4 ´e conhecida como Teorema dos Esquemas [45]. Esse teorema descreve o crescimento dos esquemas de uma gera¸c˜ao para a pr´oxima gera¸c˜ao. Esse teorema implica que esquemas curtos e de ordem pequena cujo a avalia¸c˜ao m´edia se mant´em acima da m´edia ir´a receber exponencialmente um maior n´umero de amostras ao longo do tempo. Isso acontecer´a se o n´umero de amostras desses esquemas, que n˜ao foram destru´ıdos e que se mant´em acima da avalia¸c˜ao m´edia, aumente por um fator de ˆu(H, t)/f (t) a cada gera¸c˜ao [43].

O teorema dos esquemas como mostrado na Equa¸c˜ao 4.4 ´e um limite inferior, porque ele lida apenas com os efeitos destrutivos dos operadores de crossover e muta¸c˜ao. Entretanto, acredita-se que o crossover ´e a fonte principal do poder dos algoritmos gen´eticos, devido a habilidade de recombinar instˆancias de bons esquemas para formar instˆancias igualmente boas ou melhores de esquemas. A suposi¸c˜ao de que ´e assim que um algoritmo gen´etico funciona ´e conhecida como Hip´otese dos Blocos de Constru¸c˜ao [43].

Na avalia¸c˜ao de uma popula¸c˜ao com n indiv´ıduos, um algoritmo gen´etico est´a implicitamente estimando a adapta¸c˜ao m´edia de todos os esquemas que est˜ao presentes na popula¸c˜ao e aumen- tando ou diminuindo suas representa¸c˜oes de acordo com o teorema dos esquemas. Essa avalia¸c˜ao simultˆanea de um grande n´umero de esquemas em um popula¸c˜ao ´e conhecida como ”paralelismo impl´ıcito” [45]. A sele¸c˜ao ter´a o efeito de gradualmente tender o processo de amostragem para instˆancias de esquemas cujo o valor de avalia¸c˜ao ´e estimado acima da m´edia. Com o tempo, a m´edia de avalia¸c˜ao dos esquemas se tornar´a mais precisa, porque o algoritmo gen´etico estar´a amostrando mais instˆancias desse esquema [43].

O teorema dos esquemas e a hip´otese dos blocos de constru¸c˜ao lidam primariamente com as regras de sele¸c˜ao e crossover. Holland (1975) propˆos que a muta¸c˜ao ´e o que previne a perda de diversidade de uma determinada posi¸c˜ao do cromossomo. Por exemplo, sem a muta¸c˜ao, todos os indiv´ıduos em uma popula¸c˜ao poderiam ter a primeira posi¸c˜ao de seu material gen´etico idˆentico e, portanto, poderia ser imposs´ıvel obter um novo indiv´ıduo com uma posi¸c˜ao inicial diferente. A muta¸c˜ao assegura que isso n˜ao ir´a ocorrer [43].

O teorema dos esquemas dado pela Equa¸c˜ao 4.2 n˜ao se aplica somente a esquemas, mas para qualquer subconjunto de strings no espa¸co de buscas. A raz˜ao dos esquemas terem sido o foco da discuss˜ao ´e que eles s˜ao uma boa descri¸c˜ao dos tipos de blocos de constru¸c˜ao que s˜ao combinados pelo uso do crossover. Acredita-se que nessa formula¸c˜ao dos algoritmos gen´eticos, os esquemas s˜ao uma boa descri¸c˜ao para os blocos de constru¸c˜ao relevantes de uma boa solu¸c˜ao [43].

Cap´ıtulo 5

Simula¸c˜oes e Implementa¸c˜ao pr´atica

Nesse cap´ıtulo ´e apresentado o desenvolvimento pr´atico do trabalho. Primeiro s˜ao mostrados os materiais utilizados, a placa desenvolvida para controlar o robˆo e um programa para testar o funcionamento do robˆo. Depois, ´e mostrada a obten¸c˜ao da cinem´atica direta do robˆo estudado, a aplica¸c˜ao das redes neurais na resolu¸c˜ao do problema e, por ´ultimo, ´e mostrado a aplica¸c˜ao dos algoritmos gen´eticos na resolu¸c˜ao do problema.

5.1

Materiais utilizados

Para o desenvolvimento do presente trabalho foi utilizado um robˆo manipulador educacional com 5 graus de liberdade, como mostrado na Figura 5.1. Esse robˆo pode ser obtido facilmente em diversos fornecedores chineses de componentes eletrˆonicos por um pre¸co relativamente baixo quando comparado a robˆos vendidos por grandes marcas. Para este trabalho, o robˆo foi obtido no site de vendas online goodluckbuy.com. Ele ´e montado sobre uma plataforma de acr´ılico, a estrutura ´e feita de alum´ınio e ele possui seis servomotores. Cinco servos conferem os cinco graus de liberdade e um servo ´e usado para controlar a garra do robˆo. S˜ao quatro servomotores do tipo Torobot TR213 com torque de 13 kg/cm e precis˜ao de 0, 5◦ e dois servomotores do tipo Torobot TR205 com torque de 5,5 kg/cm e precis˜ao de 0, 3◦. Al´em disso, os dois tipos de servos utilizados possuem 180 graus de rota¸c˜ao.

Esse robˆo foi escolhido pelo fato de seu controle ser relativamente simples. Como todos os atuadores s˜ao servomotores, ´e necess´ario fazer apenas o controle de posi¸c˜ao atrav´es de um PWM [47]. Portanto, toda a aten¸c˜ao utilizada no projeto foi voltada para a solu¸c˜ao da cinem´atica inversa que ´e o principal objetivo do presente trabalho.

Para controlar o robˆo foi utilizado um microcontrolador Arduino Uno Rev2, conforme mostrado na Figura 5.2. Segundo o website Arduino.cc, o Arduino ´e uma plataforma eletrˆonica de prototipagem de c´odigo aberto baseada na flexibilidade e no uso f´acil do hardware e do software. O Arduino ´e destinado a artistas, designers, hobbistas e qualquer pessoa interessada em criar objetos ou ambientes interativos [48]. A utiliza¸c˜ao desse microcontrolador possui in´umeras vantagens. Por exemplo, ele pode ser encontrado `a venda por um pequeno pre¸co e possui seis sa´ıdas para PWM, o que ´e ideal para ser aplicado ao robˆo. Al´em disso, com a utiliza¸c˜ao de um pacote desenvolvido por Giampiero Campa, ´e poss´ıvel controla-lo atrav´es do MATLAB [49].

Por ´ultimo, foram utilizados dois toolboxes do MATLAB para o desenvolvimento e aplica¸c˜ao

das redes neurais artificiais e dos algoritmos gen´eticos, o Neural Networks Toolbox e o Global Optimization Toolbox respectivamente.