2009-03-26 8 views

Antwort

13

Meine eigene, weil es die einfachste :)

EDIT anzupassen, ist: Es gab diese Antwort zu aktualisieren einige der jüngsten Aufwärts Stimmen, so dass ich dachte, es lohnt sich. Es ist jetzt 8 Jahre her, dass ich dies ursprünglich beantwortet habe und seitdem viel mehr Bibliotheken verfügbar sind. Ich würde nicht mehr vorschlagen, deinen eigenen Code zu veröffentlichen. Stattdessen würde ich eine Open-Source-Bibliothek in Ihrer Sprache finden und dazu beitragen.

z.B. Jenetics Wenn Sie Java, DEAP für Python und GeneticSharp für C# verwenden.

+0

Meine Gefühle - Ich habe GAlib so sehr geändert, dass ich meine eigenen verwenden werde - Anpassung ist ein Muss! – bias

+0

Ja, ein GA ist nicht schwer zu kodieren. Das Schreiben eigener Dateien gleicht den Mangel an Funktionalität in heruntergeladenen Tools aus. –

+0

Was ist mit der besten Sprache von allen, C++? :) Dies kann dazu führen, einige Diskussion hier;) – Ralf

15

Ich habe zwei Hauptstudium Forschungsprojekte abgeschlossen genetische Algorithmen automatisch Elektromotoren zu entwickeln.

Für das erste Projekt habe ich die EO Evolutionary Computation Framework verwendet, die fast ausschließlich auf C++ Template-Programmierung basiert. Es ist sehr mächtig, erfordert aber (IMO) eine Menge Konzentration, um es wegen der Meta-Natur der Vorlagen und der entsprechenden Nonsense-Fehlermeldungen vom Compiler zu erweitern.

Für das zweite Projekt portierte ich alles auf die Open BEAGLE EC Framework, die auf C++ - Vererbung anstelle von Vorlagen basiert. Es verfügt außerdem über ein sehr vollständiges XML-basiertes System zur Steuerung von Parametern und zur Speicherung von Meilensteinen und Ergebnissen. Ich fand es viel einfacher zu erweitern und an meine spezifischen Bedürfnisse anzupassen (hauptsächlich gemischte Integer- und Float-Design-Parameter mit Fertigungstoleranzen).

Ich habe Open BEAGLE auch kurz in einem einfachen Programm zur genetischen Programmierung verwendet und es erwies sich auch dort als einfach.

7

Wenn Sie Python verwenden, ist Pyevolve einfach zu bedienen. Ich habe es mit Erfolg benutzt. http://pyevolve.sourceforge.net/

+1

0.6rc1 ist die bessere Wahl als offiziell freigegeben 0.5 http://pyevolve.sourceforge.net/0_6rc1/ –

1

Ich habe mit herum gespielt, um ein Gefühl zu bekommen, wie ich mein eigenes GP-System implementiere. Es wurde in C geschrieben, aber in Java neu geschrieben. Da es sehr klein ist, war es leicht, es für meine C++/D Anwendungen anzupassen.

0

Ich habe meine eigene OpenGA-Bibliothek entwickelt.

Diese Bibliothek ist für die Lösung:

  • Einzel objektive Probleme.
  • Mehrziel (und viele objektive) Probleme (NSGA-III-Methode).
  • Interaktive GA-Probleme.

Diese Bibliothek ermöglicht es uns, C++ - Vorlagen zu verwenden, um Ihr eigenes Chromosomendesign zu definieren. Die Codes sind unter Github verfügbar. Die Veröffentlichung befindet sich unter smc2017 und das Benutzerhandbuch ist unter meiner researchgate verfügbar.