quinta-feira, 9 de maio de 2013

Algoritmos Genéticos

Figura 1: Evolução (Fonte: bestbarcelona.org)
Os algoritmos genéticos (AG) são uma classe particular da grande área dos algoritmos evolutivos. Essas técnicas são embasadas na Teoria da Evolução das Espécies, evolucionismo, e na Genética. As principais técnicas inspiradas na biologia evolutiva são: hereditariedade, mutação, seleção natural e recombinação. Essa heurística de busca se vale de comportamentos observados na natureza para solucionar problemas reais de otimização e busca.
     Os algoritmos genéticos são técnicas de otimização que através de busca guiada encontram soluções ótimas, ou aproximadas, para os problemas aos quais são apresentados. A estocasticidade dessa técnica está por conta dos métodos de seleção para recombinação e mutação dos indivíduos, contudo, a busca é dita guiada, pois as soluções geradas partem de soluções existentes na população.
     Os AGs são algoritmos populacionais, significa que suas várias soluções candidatas são avaliadas a cada geração e de forma implícita fornece paralelismo à técnica. Basicamente, os principais aspectos que diferem os AGs das técnicas tradicionais de otimização são os seguintes:
  • Tomam como base uma codificação do conjunto das possíveis soluções (não consideram os parâmetros da otimização em si);
  • Os resultados obtidos são apresentados em forma de uma população de soluções candidatas (e não como uma solução única);
  • Não necessitam de nenhum conhecimento do problema, apenas de uma forma de avaliar a adaptabilidade das soluções candidatas;
  • Usam métodos, recombinação e mutação, probabilísticos e não regras deterministas.
     Encontram-se aplicações de AG em diversas áreas do conhecimento, entre elas: Bioinformática, Filogenia, Ciência da Computação, Engenharia, Economia, Química, Matemática, Física, Mineração de Dados, Big Data e outros campos. Caso queira saber mais sobre AG: Algoritmos Genéticos - 3ª Edição e Computação Natural – Uma Jornada Ilustrada.