• Nenhum resultado encontrado

2.4   ESTRUTURAS DE CONTROLE 33

2.4.5   Algoritmos Genéticos 45 

A computação evolutiva engloba algoritmos inspirados na teoria da evolução das espécies de Darwin (DARWIN, 1859). Historicamente, três algoritmos para computação evolutiva foram desenvolvidos de maneira independente (BACK, 1996):

– Algoritmos genéticos (HOLLAND, 1962; BREMERMANN, 1962; FRASER 1957);

– Programação evolutiva (FOGEL, 1962);

– Estratégias evolutivas (RECHENBERG, 1965; SCHWEFEL, 1965).

Algoritmos genéticos trabalham com uma população na qual cada indivíduo é um candidato em potencial à solução de um dado problema. Trata-se de um algoritmo de busca baseado em mecanismos de seleção natural e genética que empregam uma estratégia de busca paralela e estruturada que, embora aleatória, é direcionada à busca de pontos de alta “aptidão” (REZENDE et al., 2005). Apesar de aleatórios, os AG’s não são mecanismos de busca randômica por todo um espaço de soluções, uma vez que exploram informações históricas para definir novos pontos de busca em que há expectativa de um desempenho mais adaptado do que as soluções anteriores. Comparadas com outras técnicas de buscas convencionais, os AG’s diferem nos seguintes pontos (NAGASHIMA, 2006):

– A busca da melhor solução para o problema é feita sobre uma população de pontos e não sobre um único ponto, reduzindo sensivelmente o risco de a solução recair sobre um máximo ou mínimo local;

– Os algoritmos genéticos realizam uma busca cega. A única exigência é o conhecimento do valor da função de aptidão (fitness) de cada indivíduo. Não há necessidade de qualquer outra informação ou heurística dependente do problema.

– Os AG’s usam operadores estocásticos e não regras determinísticas para guiar uma busca altamente exploratória e estruturada, em que informações acumuladas nas iterações (gerações) anteriores são usadas para direcionar essa busca.

Segundo GOLDBERG (1989), apesar da simplicidade, os resultados obtidos com a aplicação desse método permite concluir que os AG’s constituem um método de busca robusto, eficaz e eficiente para solucionar uma grande variedade de problemas. PACHECO (2005) afirma que os algoritmos genéticos são particularmente indicados para solucionar problemas de difícil modelagem matemática, problemas com muitas

condições ou restrições ou condições que não podem ser representadas matematicamente ou ainda para tratar problemas complexos de otimização.

O funcionamento básico de um algoritmo genético é apresentado na Figura 2.20 (BITTENCOUT, 2007; GOLDBERG, 1989). O passo inicial é a geração de uma população aleatória. Em seguida a aptidão dos indivíduos da população será avaliada e os melhores serão selecionados para se reproduzirem (crossover) e assim gerarem descendentes. Os indivíduos pertencentes a essa nova população são passíveis de sofrer mutação, com o objetivo de diversificar a população. Os indivíduos que compõem a nova população, depois da mutação, são avaliados e o processo continua até que uma solução ótima seja encontrada entre os indivíduos da população. Cada iteração do processo é denominada geração.

Figura 2.20 – Funcionamento básico do AG (BITTENCOUT, 2007)

Um algoritmo genético é composto geralmente por (HAUPTY e HAUPTY, 2004; WHITLEY, 1994):

a) População: a população inicial deve ser criada após a definição da quantidade de indivíduos que irão compor a população. O método mais comum aplicado na criação da população é a inicialização aleatória dos indivíduos. Pode-se também utilizar conhecimento inicial a respeito do problema quando o universo de busca é conhecido (BAYER e WANG; 1991).

A população é composta por indivíduos, também chamados de cromossomos, sendo cada um desses indivíduos um candidato à solução de um dado problema. A representação de um cromossomo pode ser feita por meio de números reais, números inteiros, caracteres ou por representação binária (Tabela 2.1). A representação mais utilizada é a binária, na qual a estrutura do cromossomo é um vetor de bits de tamanho

fixo. Os indivíduos de uma solução são convertidos em binário e concatenados para formar tal vetor. Por exemplo, se a solução para um dado problema for composta de 2 variáveis inteiras, sendo que seus valores variem de 0 a 15, pode-se representar uma solução por meio de um vetor de 8 bits, em que cada grupo de 4 bits corresponde ao valor de uma variável. Se a solução desse problema fosse (10,7), sua representação binária seria [10100111]. Em um cromossomo binário cada bit é um gene e os alelos são os valores assumidos por cada gene

b) Avaliação: nesta etapa é quantificado o grau de aptidão do cromossomo enquanto solução de um problema, determinando o quanto um indivíduo está próximo da solução ótima deste problema. A função ou problema recebe como entrada valores de acordo om os genes do cromossomo e devolve como resposta o grau de adaptação (fitness) do indivíduo. Assim sendo, se o problema a ser resolvido for de maximização de uma função, o indivíduo de melhor fitness será aquele que apresentar o maior valor da função quando aplicado à mesma. A aptidão ou fitness de um indivíduo é uma característica importante para o processo de seleção dos cromossomos que serão submetidos aos operadores de cruzamento e mutação (LACERDA e CARVALHO, 1999).

Tabela 2.1 - Exemplos de representação do cromossomo

Representação Exemplo

Números Reais Cromossomo = [7,7; -1,5; 3,9] Números Inteiros Cromossomo = [15; 20; -1]

Caracteres Cromossomo = [G O D] Números Binários Cromossomo = [101010]

c) Seleção: A seleção é aplicada na população com o objetivo de gerar uma população intermediária que irá ser submetida ao cruzamento e/ou mutação para assim criar a próxima população. Existem várias técnicas de seleção, como o método utilizado no algoritmo genético clássico que é chamado de método da roleta (roulette wheel) (HOLLAND, 1975; MICHALEWICZ, 1996). No método da roleta é atribuída a cada indivíduo uma probabilidade de passar para a população seguinte. Tal probabilidade é proporcional ao seu fitness em relação à somatória da adaptação de todos os indivíduos, sendo maior a probabilidade dos indivíduos mais adaptados serem sorteados. Na Figura 2.21 é ilustrada a criação de uma roleta a partir dos valores de aptidão dos indivíduos de

uma população. Para a seleção dos indivíduos a roleta é girada um determinado número de vezes definido pelo número de indivíduos na população. O indivíduo apontado pela seta é selecionado e inserido na população intermediária.

Figura 2.21 – Método de seleção por roleta

Como alternativa ao roullete wheel, pode-se escolher como solução o melhor indivíduo encontrado em todas as gerações do algoritmo (IYODA, 2000). Outra opção é simplesmente manter o melhor indivíduo da geração atual na geração seguinte. Tal estratégia é denominada seleção elitista (FOGEL, 1994; MICHALEWICZ, 1996).

d) Cruzamento: o cruzamento (crossover) é o operador genético cuja função é gerar novos indivíduos por meio da recombinação de características dos pais selecionados para essa operação (BACK et al., 1997). Ele é considerado o operador genético predominante (REZENDE et al., 2005) e respeita uma probabilidade de aplicação definida previamente, denominada probabilidade de cruzamento. Segundo BAYER e WANG (1991) a probabilidade de cruzamento pode variar entre 50% e 100%. Caso o crossover não seja aplicado, os cromossomos filhos serão idênticos aos pais (LACERDA e CARVALHO, 1999). As maneiras mais utilizadas para o operador de cruzamento são: crossover de um ponto, crossover de múltiplos pontos e crossover uniforme.

O crossover de um ponto gera um ponto de maneira aleatória e “corta” os cromossomos pais na altura desse ponto. Cada pai troca a segunda parte do seu cromossomo com o outro, dando origem a dois descendentes que possuem caraterísticas pertencentes aos dois pais, mas que diferem dos mesmos (COSTA e SIMÕES, 2004), como ilustrado na Figura 2.22.

Figura 2.22 – Exemplo de crossover de um ponto

O crossover de múltiplos pontos é uma generalização do crossover de um ponto, em que vários pontos de cruzamento são utilizados. A Figura 2.23 contém uma ilustração desse operador para o caso de dois pontos.

Figura 2.23 – Exemplo de crossover de dois pontos

Por fim, o crossover uniforme não utiliza pontos de cruzamento, como nos métodos anteriores, mas sim uma máscara de bits do mesmo tamanho dos cromossomos pais, gerada de maneira aleatória. Cada posição da máscara representa um gene do cromossomo original que determina qual dos pais fornecerá ao filho seu gene (COSTA e SIMÕES, 2004).

Figura 2.24 – Exemplo de crossover uniforme

No exemplo descrito na Figura 2.24, o procedimento para a geração do primeiro filho segue a seguinte regra: o bit 0 da máscara indica a utilização do gene respectivo do primeiro pai, enquanto o bit 1 indica a utilização do gene do segundo pai. A geração do segundo filho segue o procedimento inverso, em que o bit 0 indica o gene do segundo pai e o bit 1 indica o gene do primeiro pai.

e) Mutação: faz com que indivíduos da nova geração passem por pequenas alterações, permitindo ao AG explorar locais do universo de busca menos prováveis de serem alcançados. A mutação repõe ou acrescenta um material genético inexistente na população atual, seja por ter sido perdido ou nunca ter existido anteriormente. Este operador genético ocorre com menos frequência do que o crossover, uma vez que sua probabilidade varia entre 0,1% e 5% (BACK et al., 1997). Uma taxa de mutação baixa impede que indivíduos de boa aptidão para solução do problema sejam destruídos e também garante a diversidade da população. O processo de mutação inicia-se com a seleção de um ponto aleatório de um indivíduo e, em seguida, é aplicada uma taxa de probabilidade de troca deste ponto (bit) por outro bit (Figura 2.25), caso a representação do cromossomo seja binária (KOZA, 1995).

e) Critérios de parada: são aplicados com a finalidade de evitar esforço computacional desnecessário e/ou elevado. Segundo LACERDA e CARVALHO (1999) os critérios de parada mais comuns levam em conta o número de gerações, o tempo de processamento, o valor de aptidão do melhor indivíduo ou a convergência a um ponto ótimo.

Estipular um número de máximo evita um custo computacional elevado, pois o AG é interrompido ainda que o ponto ótimo não tenha sido alcançado. Já o tempo de processamento de um algoritmo em algumas ocasiões em que se precisa da solução em um curto espaço de tempo precisa ser monitorado. Em situações assim, tal característica pode ser aplicada como critério de parada. O processo também pode ser interrompido quando a aptidão de um indivíduo atingir o valor ótimo, desde que o valor ótimo da função de aptidão seja conhecido. Finalmente, se após uma série de gerações seguidas se observar que o valor de aptidão médio da população ou a aptidão dos melhores indivíduos não sofre alteração ou varia dentro de um intervalo de valores muito próximos, pode-se concluir que um valor ótimo ou próximo do ótimo foi obtido como solução do problema. Sendo assim, o AG é interrompido com base no critério da convergência (RIBEIRO FILHO et al., 1994).

QINGCHUM et al. (1998) apresentou a aplicação de algoritmos genéticos para o controle dinâmico e o planejamento de trajetória de um robô móvel. Foi proposta uma nova estratégia genética, GASC (algoritmo genético com código simétrico).

VARGAS (2005) desenvolveu uma proposta de relé digital de frequência baseado em algoritmos genéticos.

DA-LEI e YAN-LI (2010) utilizaram algoritmos genéticos para o controle e planejamento de trajetória de um robô de futebol. Nesse trabalho foi constatado uma melhora significativa nas chances de vitória em uma partida de futebol de robôs, bem como a redução da perda de robôs em competições quando o algoritmo desenvolvido foi aplicado em robôs reais.

YUN et al. (2010) apresentam uma visão geral da aplicação de algoritmos genéticos utilizados para detecção de obstáculos e planejamento de trajetórias de robôs móveis, utilizados para coleta remota de dados em ambientes remotos ou potencialmente hostis.

Documentos relacionados