Giter Club home page Giter Club logo

genetic-magic-square-finder's People

Contributors

gewbittencourt avatar guisehn avatar mateusleonhardt avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

genetic-magic-square-finder's Issues

Solucionar estouro de memória

Testando com os seguintes parâmetros:

screen shot 2016-06-19 at 19 08 41

O programa estoura o uso de memória perto da geração 24.000, devido ao textbox que mostra todo o histórico de gerações.

Sugestões:

  • adicionar uma opção para apenas exibir as últimas N gerações; ou
  • adicionar opção para exibir apenas gerações em determinado intervalo (ex. de 1000 em 1000, sem exibir as gerações no meio destas).

É importante, no entanto, deixar o usuário ver as gerações uma a uma caso ele queira (permitir essa opção), pois esse é um requisito do trabalho.

Exibir quadrados mágicos encontrados no lado esquerdo

Exibir quadrados mágicos encontrados no lado esquerdo.

Mostrar:

  • Em qual geração ele foi encontrado pela primeira vez
  • Quanto tempo demorou para encontrá-las.

E, se possível:

  • Quem são os pais.
  • Qual foi o ponto de crossover.
  • Se houve mutação nesse quadrado.

Limitar ponto de crossover

Hoje o ponto de crossover é aleatório, pode ir do início ao fim do vetor. Verificamos que a maioria das convergências estão acontecendo em crossovers mais próximos ao fim do vetor.

screen shot 2016-06-21 at 19 44 31

  • Adicionar opção para definir índice mínimo e máximo na interface
  • Validar valor mínimo e máximo (mínimo = 0, máximo = N*N - 1)
  • Enviar os valores como entrada para o algoritmo e utilizá-los
  • Toda vez que mudar o valor do campo "Tamanho da matriz" e tirar foco, resetar estes campos para evitar valores inválidos.

How do you generate the Second Parent

Thanks for explaining the first parent generation ([5, 0, 5, 4, 3, 1, 2, 1, 0])

How do you calculate the second parent? [1, 6, 6, 0, 0, 0, 0, 1, 0]

Thanks

Testar idade máxima para elite

A partir do tamanho 5x5, o algoritmo às vezes encontra quadrados mágicos no início (+- 2 minutos) mas após isso fica estagnado, demorando muito mais para encontrar novos quadrados mágicos.

Tentar melhorar isso definindo uma idade máxima para a elite. Adicionando um parâmetro "age" para a classe "Individual", podemos ir incrementando este valor a cada nova geração em que o indivíduo participa da elite. Após esse valor ser maior que N (a ser definido, algo como 50.000, ou um valor que dependa do tamanho do quadrado), não incluir este indivíduo mais na elite.

screen shot 2016-06-20 at 09 31 17

Testar método da roleta

FAZER EM UMA BRANCH SEPARADA!

Hoje usamos torneio para escolher os indivíduos que cruzarão.

Seria bom testar o método da roleta também, e se possível, deixar o usuário escolher qual método usar.

Testar: remover pais da elite quando um quadrado mágico é gerado

FAZER EM UMA BRANCH SEPARADA!

Percebemos que após achar um quadrado mágico, o algoritmo gera diversos quadrados mágicos iguais ao encontrado, sendo estes ignorados pelo algoritmo. Isso acontece com muita frequência e potencialmente desperdiça processamento que podia ser usado para gerar outros quadrados mágicos.

Testar um ajuste no algoritmo para que, quando um quadrado mágico é gerado, os pais serem removidos da elite.

Fazer programa parar quando encontrar 10 quadrados mágicos

Hoje não há nenhuma condição para parada do algoritmo genético. Segundo o enunciado, o programa deve parar assim que achar os 10 primeiros quadrados mágicos.

Casos especiais:

  • existe apenas 1 quadrado mágico 1x1
  • não existem quadrados mágicos 2x2 (exibir mensagem ao usuário)
  • existem apenas 8 quadrados mágicos 3x3

Traduzir para inglês

Após a apresentação do trabalho, traduzir o app, comentários do código e README.md para inglês.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.