Ich fand das sehr coole C ++ - Beispiel , wörtlich "Hallo Welt!" von genetischen Algorithmen.
Ich habe also beschlossen, das Ganze in C # und dies
Nun frage ich mich: Gibt es irgendeine praktische Anwendung in der Art, wie man einen Zielstring erzeugt, ausgehend von einer Population zufälliger Strings?
BEARBEITEN : Mein Freund auf Twitter hat gerade getwittert, dass "nützlich ist für Transkriptionen wie Übersetzung. Muss nicht Monkey's sein" . Ich wünschte ich hätte eine Ahnung.
Gibt es eine praktische Anwendung in der Art, wie man einen Zielstring erzeugt, ausgehend von einer Population zufälliger Strings?
Sicher. Stellen Sie sich ein beliebiges Szenario vor, in dem Sie wissen, wie man die Fitness einer bestimmten Saite bewertet und in welcher Weise die Auswahl auf irgendeine Weise diskret und eingeschränkt ist:
Nein. Jedes Mal, wenn Sie die GA ausführen, geben Sie die Antwort ab. Das ist großartig, um zu zeigen, wie ein GA funktioniert und um zu zeigen, wie mächtig es sein kann, aber es hat keinen anderen Zweck als das.
Sie könnten einen EA schreiben, der Code in einer dynamischen Sprache wie IronPython schreibt, mit dem Ziel, Code zu erstellen, der a) ohne Absturz ausführt und b) den Aktienmarkt analysiert und Aktien intelligent kauft und verkauft.
Das ist ein sehr vereinfachender Ansatz für das, was notwendig wäre, aber es ist möglich. Sie benötigen einen Host, der eine Vielzahl von Methoden für den IronPython-Code (technische Indikatoren usw.) und eine Datenbank mit Ticks bereitstellt.
Es wäre auch schlau, nicht nur irgendeinen alten Zufallscode zu generieren, damit Sie nicht Ihre eigene Festplatte formatieren. Sie benötigen eine Sandbox, und Sie müssen die Namespaces beschränken, auf die zugegriffen werden kann, und Sie müssen ein Zeitlimit angeben, um Endlosschleifen zu vermeiden. Sie können auch symbolische Richtlinien angeben, die es ermöglichen, geeignete, genehmigte Schlüsselwörter zu wählen, anstatt nur zufällige Buchstaben zusammenzufassen - dies würde die Entwicklung erheblich beschleunigen.
Also war ich an einem Projekt beteiligt, das alles außer dem EA gemacht hat. Wir hatten eine Satellitenschüssel, die Echtzeit-Aktientickets von der NASDAQ, einem Service für den Handel, der eine API hatte, und einem primitiven Entscheidungsfindungs "Gehirn" hatte, das Entscheidungen traf, als die Ticks hereinkamen.
Leider ist einer der Partner ausgeflippt, hat seinen Job gekündigt, hat das Projekt abgezweigt (hat sein eigenes Gericht usw.) und hat mit der Logik angefangen, die noch nicht fertig war. Er hat eine Menge Geld verloren. Es stellt sich heraus, dass diese Art von Projekt für einige Leute nur einen Schritt vom üblichen Glücksspiel entfernt ist. Aber irgendwie ist das Projekt danach verpufft. Die Entwicklung des Logikteils ist jedoch der fehlende Link. Und ich weiß, dass da draußen Leute sind, die solche Sachen machen.
Ich habe GA in zwei realen Forschungsproblemen benutzt.
Eins war ein Energieoptimierungsproblem (maximiere die Anzahl der aktivierten Geräte, erfülle die verfügbare Energiebeschränkung und die Service-Garantie für jedes Gerät)
Ein anderer war für die Optimierung des Funknetzwerks, wobei der Versorgungsbereich bei einem festen Ausrüstungsbudget maximiert wurde
Tags und Links c# c++ genetic-algorithm