Pergunta

Ainda estou cortando no meu antigo ruby ??para o vivo pós (Eu sei, eu sei, parar de tentar trazer o posto de volta a partir do Chuck mortos). Mas o código ficou um pouco fora de mão e agora estou trabalhando em um algoritmo genético para criar a batalha final de vivos e mortos com a aptidão de ser quanto tempo a batalha dura.

Então, eu tenho o básico do que para baixo; como ajustar atributos do jogo e como adquirir a aptidão de uma solução, o que eu não consigo entender é como armazenar a aptidão para que eu sei que quando eu tentei uma combinação antes.

Eu não tenho sido capaz de encontrar muito código genético para olhar e muito menos código que eu posso ler bem o suficiente para dizer o que está acontecendo. Alguém tem uma idéia de como isso é feito normalmente ou simplesmente um algoritmo que poderia ajudar a me apontar na direção certa?

Foi útil?

Solução

o que eu não consigo entender é como armazenar a aptidão para que eu saiba quando Eu tentei uma combinação antes.

Normalmente, em uma solução GA você não está preocupada em gerar o mesmo "solução" que você está preocupado é quando a taxa de melhoria em seu 'score' estabiliza.

Agora, se o seu desejo de log / rastrear o histórico "solução" que você muitos querem saber quando reaparece último, mas presumo que há alguma natureza aleatória para o seu "jogo", portanto, você iria querer objeto para corridas de repetição.

Outras dicas

Em um GA você não querer reavaliar a solução se o teste de aptidão leva um longo tempo. Use uma tabela hash para armazenar suas contagens de fitness e fazer a chave de hash do cromossomo. Use a "Manobra Orc"; verifique o cache primeiro, se ele está lá recuperá-la e continuar, compute senão ele e colocá-lo no hash para a próxima vez.

Se você gostaria de um exemplo completo de um GA você poderia obter o, livre de código aberto, Matlab GA Toolbox da equipe de computação evolucionária na Universidade de Sheffield, no Reino Unido, disponível aqui:

http://www.sheffield.ac.uk/acse/ pesquisa / ecrg / gat.html

Mesmo se você não quer olhar para o código Matlab, o manual que vem com a caixa de ferramentas tem uma descrição muito boa e acessível de exatamente como o trabalho de gases que podem ajudá-lo com o seu código Ruby.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top