Algoritmos Genéticos
Atividades de busca e otimização são sempre necessárias nos mais diversos ambientes, essas atividades possuem vários componentes,
entre eles: o espaço de busca, onde são consideradas todas as
possibilidades de solução de um determinado problema e a função
de avaliação (ou função de custo), que é função que
avalia a qualidade dos membros do espaço de busca. Existem muitos métodos
de busca e funções de avaliação.
Nesse sentido a utilização dos algoritmos Genéticos mostra-se eficiente na busca de
soluções ótimas, ou aproximadamente ótimas
em uma grande variedade de problemas, pois não impõem muitas
das limitações encontradas nos métodos de busca tradicionais.
Os passos para construção dos algoritmos genéticos são descritos na sequencia e na imagem a seguir.
- [Início] Geração aleatória de uma população de n cromossomos.
- [Adaptação] Verificar a função objetivo f(x) de cada cromossomo.
- População] Cria-se uma nova população pela repetição
- [Seleção] Selecione um par de cromossomos da população de acordo com a adaptação de cada um (os mais bem adaptados tem maior chance de serem escolhidos)
- [Crossover] Produza dois descendentes (filhos) realizando cruzamento com os cromossomos dos pais. O ponto para a realização do cruzamento deve ser aleatório.
- [Mutação] Com uma certa probabilidade, o descendente sofre mutação em cada posição no cromossomo.
- Aceitação] Coloque os descendentes em uma nova população, juntamente com a melhor solução da geração velha.
Abaixo é mostrado um exemplo de algoritmo genético.
função AlgoritmoGenético(população, função-objetivo) saídas: indivíduo
entradas: população→ uma lista de indivíduos
função-objetivo→ uma função que recebe um indivíduo e retorna um número real.
repetir
lista de pais := seleção(população, função-objetivo)
população := reprodução(lista de pais)
enquanto nenhuma condiçao de parada for atingida
retorna o melhor indivíduo da população de acordo com a função-objetivo
Agora se você quer um exemplo mais complexo e em Java, acesse aqui.
Por,
Gleyser Guimarães - Integrante do PET Computação
Nenhum comentário :
Postar um comentário