Perguntas Frequentes
O que são algoritmos genéticos?
Algoritmos genéticos (AG) são métodos de busca e otimização inspirados na evolução biológica. Eles mantêm uma população de soluções candidatas e as aprimoram ao longo de gerações usando três operadores: seleção (escolher os melhores indivíduos), cruzamento (combinar duas soluções) e mutação (modificar aleatoriamente uma solução). Os AG são particularmente eficazes quando o espaço de busca é grande, complexo ou pouco compreendido.
Que tipos de problemas os algoritmos genéticos podem resolver?
Os algoritmos genéticos são adequados para problemas de otimização e busca onde é necessário encontrar a melhor solução entre um grande conjunto de possibilidades. Exemplos incluem planejamento de rotas (Problema do Caixeiro Viajante), escalonamento, design de engenharia, otimização de funções e estratégia de jogos. São especialmente úteis quando a função de aptidão não é diferenciável ou não tem solução analítica conhecida.
Preciso de experiência em programação para seguir este tutorial?
Não. O tutorial explica os conceitos passo a passo com diagramas e demonstrações interativas no navegador. Não são necessários conhecimentos de programação. Se você quiser implementar seu próprio AG depois, habilidades básicas de programação ajudarão, mas não são necessárias para compreender o material.
Como os algoritmos genéticos se comparam com os métodos de otimização baseados em gradiente?
Os métodos baseados em gradiente (como a descida do gradiente) seguem a inclinação da função de aptidão e podem ficar presos em ótimos locais. Os algoritmos genéticos exploram o espaço de busca com toda uma população simultaneamente e são menos propensos a ficar presos — mas são geralmente mais lentos e computacionalmente mais caros. Os AG não exigem que a função de aptidão seja diferenciável ou contínua, tornando-os aplicáveis a uma gama mais ampla de problemas.
Como escolho o tamanho da população, a taxa de cruzamento e a taxa de mutação?
Não há regras universais, mas as diretrizes empíricas sugerem: tamanho da população 20–100, taxa de cruzamento 80–95%, taxa de mutação 0,5–1%. Os valores corretos dependem do seu problema específico e da codificação. O capítulo de Parâmetros cobre as opções em detalhes, e a demo interativa permite experimentar diretamente.
Um algoritmo genético pode garantir encontrar a solução ótima?
Não. Os algoritmos genéticos são heurísticas — eles buscam boas soluções, mas não podem garantir encontrar o ótimo global. A qualidade dos resultados depende muito da escolha da codificação, da função de aptidão e dos parâmetros. Para muitos problemas do mundo real, uma solução quase ótima encontrada rapidamente é mais prática do que uma solução exata que demoraria muito para calcular.
O que é o Problema do Caixeiro Viajante usado como exemplo?
O Problema do Caixeiro Viajante (PCV) busca a rota mais curta que visita um conjunto de cidades exatamente uma vez e retorna ao ponto de partida. É um clássico problema de otimização combinatória NP-difícil. O PCV é usado neste tutorial para demonstrar a codificação por permutação e mostrar como os AG lidam com problemas de busca combinatória onde os métodos baseados em gradiente não se aplicam. Veja o capítulo de exemplo PCV para mais detalhes.
Posso usar ou reproduzir o conteúdo deste tutorial?
O texto e as imagens deste tutorial estão publicados sob a licença Creative Commons Attribution–ShareAlike 4.0 (CC BY-SA 4.0). Você pode compartilhá-los e adaptá-los livremente, desde que dê o crédito apropriado e distribua as adaptações sob a mesma licença.
As demonstrações interativas de JavaScript só podem ser usadas como parte deste site; qualquer outro uso requer permissão prévia por escrito. Contato: marek@obitko.com.
·