Os algoritmos genéticos são uma forma de método de otimização. Frequentemente, a descida do gradiente estocástico e seus derivados são a melhor opção para otimização de funções, mas algoritmos genéticos ainda são usados algumas vezes. Por exemplo, a antena da sonda ST5 da NASA foi criada com um algoritmo genético:
Quando os métodos de otimização genética são uma escolha melhor do que os métodos mais comuns de descida por gradiente?
Respostas:
Os algoritmos genéticos (AG) são uma família de heurísticas que são empiricamente boas em fornecer uma resposta decente em muitos casos, embora raramente sejam a melhor opção para um determinado domínio.
Você menciona algoritmos baseados em derivadas, mas mesmo na ausência de derivadas, existem muitos algoritmos de otimização sem derivadas que têm um desempenho muito melhor que os GAs. Veja esta e esta resposta para algumas idéias.
O que muitos algoritmos de otimização padrão têm em comum (mesmo métodos livres de derivativos) é a suposição de que o espaço subjacente é uma variedade suave (talvez com algumas dimensões discretas), e a função de otimizar é um pouco comportada.
No entanto, nem todas as funções são definidas em um coletor suave. Às vezes, você deseja otimizar sobre um gráfico ou outras estruturas discretas (otimização combinatória) - aqui existem algoritmos dedicados, mas os GAs também funcionam.
Quanto mais você avança para funções definidas em estruturas complexas e discretas, mais AGs podem ser úteis, especialmente se você puder encontrar uma representação na qual os operadores genéticos trabalhem da melhor maneira possível (o que exige muito conhecimento de domínio e ajuste de mão).
Obviamente, o futuro pode levar a esquecer completamente os AGs e desenvolver métodos para mapear espaços discretos em espaço contínuo e usar o mecanismo de otimização que temos na representação contínua.
fonte
Os métodos genéticos são adequados para a otimização multicritério quando a descida em gradiente é dedicada à otimização de monocriteria. A descida em gradiente permite encontrar o mínimo de funções quando existem derivadas e existe apenas uma solução ótima (se nós, exceto os mínimos locais). Um algoritmo genético pode ser usado em problemas multicritério e levar a um continuum de soluções, cada uma sendo indivíduos de uma população, tendo evoluído de uma população inicial. Os valores a serem otimizados são os fenótipos dos indivíduos e pode haver vários fenótipos. Geralmente, nenhum indivíduo tem simultaneamente o melhor valor de cada fenótipo; portanto, não há apenas uma solução. Os indivíduos da população final, que são todas soluções da otimização, fazem parte da "frente de Pareto" e são marcados como "Pareto no primeiro lugar" indivíduos. Isso significa que, em comparação com todos os outros indivíduos com o mesmo desempenho para cada fenótipo, eles são pelo menos melhores para um fenótipo do que os outros.
fonte
Melhor em que sentido?
Na minha experiência, os AGs são um dos otimizadores mais pragmáticos. Embora muitos algoritmos mais precisos exijam tempo e esforço para formalizar problemas reais no mundo matemático, os AGs podem lidar com qualquer função de custo com regras e restrições complexas (os GAs são relacionados por uma abordagem de execução posteriormente e não por cálculos específicos). Esse processo é direto e você pode tentar várias abordagens para o trabalho exploratório.
Aprecio também a possibilidade de reinjetar soluções anteriores do algoritmo para execuções futuras, o que é bom para tarefas repetidas.
Conceitualmente, um algoritmo genético pode ser representado por um hashmap de funções e combina com linguagens funcionais, bem como o Clojure, que também é uma linguagem na qual você pode obter grandes resultados rapidamente.
Algoritmos genéticos também podem ser aninhados: a função de custo de um AG pode ser um AG! Esses algoritmos aproveitam o hardware e a infraestrutura modernos, que permitem calcular uma população muito grande para que, mesmo com operações simples de mutação / seleção, você ainda possa obter bons resultados.
Mesmo para problemas simples, como encontrar o mínimo de uma função de onda, os AGs não são tão ruins e podem alcançar uma precisão decente em um tempo aceitável.
Então, sim, as soluções analíticas podem ter um tempo de execução e precisão mais rápidos, mas o tempo necessário para produzi-las supera os benefícios geralmente esperados! Então quando ? Quase todas as vezes para mim, pelo menos para meta-otimização.
fonte