Im Rahmen einer Aufgabe muss ich einen genetischen Programmieralgorithmus schreiben , der die Luftschadstoffwerte vorhersagt. Da ich keine Erfahrung habe, kann mir jemand Hinweise auf Vorschläge von Programmiersprachen geben, in denen weiterentwickelte Programme geschrieben werden .
Klarstellung: Ich frage nicht, in welcher Sprache ich den genetischen Algorithmus selbst schreiben werde (da ich die Entscheidung selbst treffen kann), sondern in welcher Programmiersprache die entwickelten Programme erstellt werden sollen.
Mein Ausbilder schlug Lisp vor, aber ich mag diese Idee nicht - erstens musste ich an einer Art abstraktem Syntaxbaum arbeiten, zweitens kann es ein gewaltiges Durcheinander sein, Überkreuzungen an Baumstrukturen zuverlässig vorzunehmen.
Ich würde lieber etwas verwenden , die für die genetische Programmierung wie gewidmet ist Slash / A . SlashA erfordert keine Arbeit an ASTs - Programme im Bytecode sind nur ein Array von Ints, die in jeder erforderlichen Form geändert werden können, da jedes int-Array ein Slash / A-Programm darstellt.
Zusätzliche Bemerkungen:
- Ich möchte vermeiden, ASTs zu manipulieren!
- Dieses Problem ist schwer (vielleicht nicht so schwer wie die Vorhersage von Aktienwerten). Dies liegt an der Tatsache, dass wir (höchstwahrscheinlich) nicht genügend Eingabeinformationen haben (es gibt einige versteckte Parameter). Das Erstellen eines Modells mit einer besseren Leistung als das Modell, das den Mittelwert zurückgibt, ist eine Herausforderung (mittlere Modelle haben 35% MAPE), die meisten Modelle haben einen MAPE-Wert von etwa 25%, die besten von 20%.
- Ich hätte gerne eine Sprache, die Datensätze mit vielen Funktionen verwaltet, mit der Annahme, dass ich nicht sicher bin, welche wichtig sind. (Slash / A hat hier einen Nachteil - in dieser Sprache werden die Eingabefunktionen nacheinander gelesen - so dass einige Funktionen mit größerer Wahrscheinlichkeit verwendet werden).
- Ich möchte in der Lage sein, dies in Python zu programmieren, daher wären Python-Bibliotheken großartig - aber ich kann Bindungen für C / C ++ erstellen (kein Java, kein Matlab usw.).
Ich bin mir bewusst, dass dies eine Frage der Umfrage ist. Wenn es für eine solche Frage zu früh ist, schließen Sie sie bitte, aber ich bin der Meinung, dass sie spezifisch genug ist.