В рамках задания мне нужно будет написать алгоритм генетического программирования , который будет предсказывать уровни загрязнения атмосферы. Поскольку у меня нет опыта, может кто-нибудь указать мне указатели на предложения языков программирования, на которых будут написаны развитые программы .
Пояснение: я не спрашиваю, на каком языке я напишу сам генетический алгоритм (поскольку я сам смогу принять решение), я спрашиваю, на каком языке программирования должны быть созданы развитые программы.
Мой инструктор предложил Лисп, но мне не нравится эта идея - во-первых, мне нужно поработать над каким-то абстрактным синтаксическим деревом, во-вторых, надежное выполнение кроссоверов на древовидной структуре может быть адским беспорядком.
Я предпочел бы использовать что - то , что посвящен для генетического программирования , как слэш / A . SlashA не требует работы с AST - программы в байт-коде - это просто массив целых чисел, которые могут быть изменены в любом случае, так как каждый массив int представляет некоторую программу слеша / A.
Дополнительные замечания:
- Я бы хотел избежать манипуляций с АСТ!
- Эта проблема сложная (возможно, не такая сложная, как прогнозирование стоимости акций). Это связано с тем, что (скорее всего) нам не хватает входной информации (есть некоторые скрытые параметры). Создание модели, которая имеет лучшую производительность, чем модель, которая возвращает среднее значение, является некоторой проблемой (средние модели имеют MAPE 35%), большинство моделей имеют MAPE около 25%, лучше всего 20%.
- Я хотел бы иметь язык, который управляет наборами данных со многими функциями, предполагая, что я не уверен, какие из них важны. (Слэш / А имеет здесь недостаток - в этом языке входные функции читаются последовательно - поэтому некоторые функции будут использоваться с большей вероятностью).
- Я хотел бы иметь возможность программировать это на Python, поэтому библиотеки Python были бы хороши, но я могу делать привязки для C / C ++ (без Java, без Matlab и т. Д.).
Я осознаю, что это вопрос опроса, поэтому, если это рано для такого вопроса, пожалуйста, закройте его, но я чувствую, что он достаточно конкретен.
Если вы собираетесь развивать программу, вы все равно можете манипулировать синтаксическим деревом; таким образом, любая программа, которую вы развиваете, автоматически будет синтаксически правильной.
Есть две вещи, которые вы должны иметь в виду при выборе языка.
Я бы проголосовал против языка ассемблера по тем же причинам, хотя виртуальные машины, такие как JVM и CLR, должны обеспечивать вас чем-то вроде защитной сети.
Возможно, вы захотите использовать целевой язык, с которым вы уже знакомы. Я сам не знаком с Python, но AFAIK соответствует приведенным выше критериям, поэтому он должен быть хорошим выбором для вашего целевого языка.
источник