NSGA-II em Python

Tá bom, deve ter algumas dezenas de implementações do NSGA-II em Python (eu não chequei, mas deve ter!). Mas dada minha necessidade de me tornar fluente na linguagem de prototipação que escolhi – Python – e a utilidade geral do algoritmo NSGA-II em problemas de otimização multi-objetivo, decidi implementar “do zero”.

Se bem que implementar do zero o NSGA-II não significa grandes esforços. De qualquer forma, foi um bom exercício de programação, especialmente para mim que não sou mais funcionalmente um desenvolvedor, nem quero voltar a ser, e para reavivar as lembranças do meu Mestrado (2007-2009). Nesta época o NSGA-II era o estado-da-arte em otimização multi-objetivo evolucionária (EMOO). Não faz tanto tempo assim, ainda deve ser, mas deve já estar prestes a ser superado por algum algoritmo melhor igualmente swarm-based (FSS, talvez?). Pra essa galera (i.e. comunidade científica EMOO), 2 anos signifca muitos avanços.

O código está orientado a objetos e bem independente de domínio de problema. Pode ser classificado como um framework, pois é código incompleto que deve ser instanciado para domínios de problemas particulares. Disponibolizei também um exemplo de otimização contínua da função T1, para ficar mais claro como usar. E podem usar, melhorar e distribuir, ele está sob GPLv3.

Disponibilizei no Google codes: http://code.google.com/p/nsga-ii-python/

Falou.

Anúncios

2 comentários

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s