Como parte de uma tarefa, terei que escrever um algoritmo de programação genética que preveja os níveis de poluentes atmosféricos. Como não tenho experiência, alguém pode me indicar sugestões de linguagens de programação nas quais os programas desenvolvidos serão escritos .
Esclarecimento: não estou perguntando qual será a linguagem. Escreverei o próprio algoritmo genético (como poderei tomar a decisão pessoalmente); estou perguntando em qual linguagem de programação os programas desenvolvidos devem ser criados.
Meu instrutor sugeriu o Lisp, mas eu não gosto dessa idéia - primeiro eu teria que trabalhar em algum tipo de Árvore Sintaxe Abstrata; em segundo lugar, fazer cruzamentos confiáveis na estrutura da árvore pode ser uma bagunça.
Eu prefiro usar algo que é dedicado para programação genética como barra / A . O SlashA não requer trabalho em ASTs - os programas no bytecode são apenas uma matriz de entradas que podem ser alteradas em qualquer faseamento necessário, pois cada matriz int representa algum programa slash / A.
Observações adicionais:
- Eu gostaria de evitar manipular ASTs!
- Esse problema é difícil (talvez não tão difícil quanto prever valores de estoque). Isso se deve ao fato de que (provavelmente) não temos informações de entrada suficientes (existem alguns parâmetros ocultos). Criar um modelo com melhor desempenho que o modelo que retorna média é um desafio (os modelos médios têm 35% de MAPE), a maioria dos modelos tem MAPE de cerca de 25% e os melhores têm 20%.
- Eu gostaria de ter uma linguagem que gerencia conjuntos de dados com muitos recursos, supondo que eu não tenho certeza do que é importante. (O Slash / A tem uma desvantagem aqui --- nesse idioma, os recursos de entrada são lidos sequencialmente - portanto, alguns recursos serão usados com maior probabilidade).
- Eu gostaria de poder programar isso em Python, portanto, as bibliotecas python seriam ótimas - mas eu posso fazer ligações para C / C ++ (sem Java, sem Matlab, etc.).
Estou ciente de que se trata de uma pergunta de pesquisa, portanto, se for cedo demais para essa pergunta, feche-a, mas acho que é específica o suficiente.
Se você pretende desenvolver um programa, provavelmente manipulará uma árvore de sintaxe de qualquer maneira; dessa forma, qualquer programa que você desenvolver será automaticamente sintaticamente correto.
Há duas coisas que você deve ter em mente ao selecionar um idioma.
Eu votaria contra a linguagem assembly por razões semelhantes, embora máquinas virtuais como a JVM e o CLR devam fornecer uma espécie de rede de segurança.
Você provavelmente desejará usar um idioma de destino com o qual você já esteja familiarizado. Eu não estou familiarizado com o Python, mas o AFAIK atende aos critérios acima, portanto deve ser uma boa opção para o seu idioma de destino.
fonte