Resolvendo Problemas com Algoritmos Genéticos
Algoritmos genéticos são úteis para resolver problemas com soluções representável como cordas (daí o nome de algoritmo genético - modelo de programação é baseada em DNA). Em termos de valor prático, algoritmos genéticos são úteis para resolver problemas em que as soluções são difíceis de encontrar, seguindo um algoritmo específico projetado para resolver o problema (usando algoritmos genéticos no lugar de algoritmos pré-concebidos, tais como algoritmo Djikstra para caminho de encontrar apenas wouldn ' t faz sentido). Ele funciona como uma espécie de abordagem sistematizada força bruta. Problemas de algoritmos genéticos são valiosas para a solução de problemas incluem programação, problemas de satisfação de restrição, e outros problemas que exigem pesquisa um grande número de possibilidades. Algoritmos genéticos podem ser aplicadas para o dobramento de proteínas ou mesmo ajuste de desempenho do kernel Linux .
Um exemplo mais simples apenas para obter o ponto de vista é encontrar um número de cinco dígitos que funciona como a melhor solução para uma expressão, por exemplo, se você quiser encontrar o número que faz com que a expressão x ^ 2 +2 x-11 igual a 0, você poderia, naturalmente, força bruta usada para resolver a equação, mas um algoritmo genético também pode ser usado, e se você tem uma expressão muito complexa, pode ser de grande valor para usar um algoritmo genético, especialmente quando se considera o tempo economizado mais de força bruta. Em certo sentido, todos os problemas resumem-se algoritmo genético para resolver expressões complexas ou conjuntos de expressões, como todos os problemas são representáveis em que a moda.
Algoritmos genéticos trabalho a partir da mesma base que a teoria da evolução. Um algoritmo genético tem várias componentes: um conjunto de soluções, um método de avaliação da eficácia de cada solução, uma função de criação que combina as melhores soluções em novas soluções, e uma função de mutação. O conjunto de soluções não competem por recursos, mas sim, cada solução é testada por uma função de avaliação (chamado de "fitness" função), que então lhe dá um ranking com base na sua eficácia em resolver o problema em comparação com as outras soluções.
As cordas melhor solução são os que são classificados mais alto (que são mais "fit"); a função de reprodução leva duas das soluções de melhor desempenho e combina-los juntos em uma nova solução. A função de criação deve repetir o processo de seleção aleatória de duas soluções e reproduzi-los; as funções com melhor desempenho deve ser dada a chance maior porcentagem de ser selecionado.
A função de reprodução geralmente funciona tomando fatias de cada solução e juntando-as em um novo. Soluções muitas vezes são representados como strings, de modo geral, uma função de reprodução terá fragmentos de comprimentos aleatórios de cada corda e concatená-las para formar uma nova seqüência. Cada fragmento deve ser colocado no local na nova seqüência que corresponde à sua localização na cadeia de idade. Por exemplo, se um fragmento de string é a partir de posições 5-8 na primeira corda sendo criados, ele deve ser colocado em posições de 5 a 8 na solução nova criança.
Após as cordas foram criados, eo conjunto de possíveis soluções tem sido recarregados, é importante ter a função de mutação. A função de mutação é importante porque introduz um elemento de aleatoriedade que permite a variação nos conjuntos de solução, que de outra forma seria estagnar e não têm vantagem sobre uma solução artesanal. Mutações podem diminuir a força de algumas soluções, mas em geral vai aumentar o valor global do conjunto de soluções;, incluindo uma taxa de mutação muito pequena, você introduz novas características que nunca poderia ter existido outra dentro da piscina. Isso permite que você explore um grupo maior de possibilidades e evitar a estagnação. Na verdade, muitas outras técnicas AI abandonar a idéia de soluções de criação e de trabalho, simplesmente fazendo pequenas "mutações" ou muda para uma possível solução para um problema.
Algoritmos genéticos pode fazer coisas incríveis e resolver problemas muito complexos. No entanto, esta técnica vai exigir ter forma de avaliar as soluções possíveis - este é um dos problemas mais difíceis com algoritmos genéticos. O segundo desafio é encontrar uma boa maneira de representar soluções para o problema como strings. Uma vez que estes são classificados, um algoritmo genético pode ser uma boa abordagem para o problema.
Resolvi postar isso porque a um tempinho atrás eu estava com uns probleminhas com AG.
Espero que tenham gostado.
WCG147
Algoritmos genéticos são úteis para resolver problemas com soluções representável como cordas (daí o nome de algoritmo genético - modelo de programação é baseada em DNA). Em termos de valor prático, algoritmos genéticos são úteis para resolver problemas em que as soluções são difíceis de encontrar, seguindo um algoritmo específico projetado para resolver o problema (usando algoritmos genéticos no lugar de algoritmos pré-concebidos, tais como algoritmo Djikstra para caminho de encontrar apenas wouldn ' t faz sentido). Ele funciona como uma espécie de abordagem sistematizada força bruta. Problemas de algoritmos genéticos são valiosas para a solução de problemas incluem programação, problemas de satisfação de restrição, e outros problemas que exigem pesquisa um grande número de possibilidades. Algoritmos genéticos podem ser aplicadas para o dobramento de proteínas ou mesmo ajuste de desempenho do kernel Linux .
Um exemplo mais simples apenas para obter o ponto de vista é encontrar um número de cinco dígitos que funciona como a melhor solução para uma expressão, por exemplo, se você quiser encontrar o número que faz com que a expressão x ^ 2 +2 x-11 igual a 0, você poderia, naturalmente, força bruta usada para resolver a equação, mas um algoritmo genético também pode ser usado, e se você tem uma expressão muito complexa, pode ser de grande valor para usar um algoritmo genético, especialmente quando se considera o tempo economizado mais de força bruta. Em certo sentido, todos os problemas resumem-se algoritmo genético para resolver expressões complexas ou conjuntos de expressões, como todos os problemas são representáveis em que a moda.
Algoritmos genéticos trabalho a partir da mesma base que a teoria da evolução. Um algoritmo genético tem várias componentes: um conjunto de soluções, um método de avaliação da eficácia de cada solução, uma função de criação que combina as melhores soluções em novas soluções, e uma função de mutação. O conjunto de soluções não competem por recursos, mas sim, cada solução é testada por uma função de avaliação (chamado de "fitness" função), que então lhe dá um ranking com base na sua eficácia em resolver o problema em comparação com as outras soluções.
As cordas melhor solução são os que são classificados mais alto (que são mais "fit"); a função de reprodução leva duas das soluções de melhor desempenho e combina-los juntos em uma nova solução. A função de criação deve repetir o processo de seleção aleatória de duas soluções e reproduzi-los; as funções com melhor desempenho deve ser dada a chance maior porcentagem de ser selecionado.
A função de reprodução geralmente funciona tomando fatias de cada solução e juntando-as em um novo. Soluções muitas vezes são representados como strings, de modo geral, uma função de reprodução terá fragmentos de comprimentos aleatórios de cada corda e concatená-las para formar uma nova seqüência. Cada fragmento deve ser colocado no local na nova seqüência que corresponde à sua localização na cadeia de idade. Por exemplo, se um fragmento de string é a partir de posições 5-8 na primeira corda sendo criados, ele deve ser colocado em posições de 5 a 8 na solução nova criança.
Após as cordas foram criados, eo conjunto de possíveis soluções tem sido recarregados, é importante ter a função de mutação. A função de mutação é importante porque introduz um elemento de aleatoriedade que permite a variação nos conjuntos de solução, que de outra forma seria estagnar e não têm vantagem sobre uma solução artesanal. Mutações podem diminuir a força de algumas soluções, mas em geral vai aumentar o valor global do conjunto de soluções;, incluindo uma taxa de mutação muito pequena, você introduz novas características que nunca poderia ter existido outra dentro da piscina. Isso permite que você explore um grupo maior de possibilidades e evitar a estagnação. Na verdade, muitas outras técnicas AI abandonar a idéia de soluções de criação e de trabalho, simplesmente fazendo pequenas "mutações" ou muda para uma possível solução para um problema.
Algoritmos genéticos pode fazer coisas incríveis e resolver problemas muito complexos. No entanto, esta técnica vai exigir ter forma de avaliar as soluções possíveis - este é um dos problemas mais difíceis com algoritmos genéticos. O segundo desafio é encontrar uma boa maneira de representar soluções para o problema como strings. Uma vez que estes são classificados, um algoritmo genético pode ser uma boa abordagem para o problema.
Resolvi postar isso porque a um tempinho atrás eu estava com uns probleminhas com AG.
Espero que tenham gostado.
WCG147
Comment