2008-11-20 12 views

Antwort

3

Ich habe nicht, aber ich habe von dieser Firma gehört (kann mich nicht an ihren Namen erinnern), die mutierende, genetische Algos verwendet, um Platzierungen und Längen von Antennen (oder etwas) von einem Freund von mir zu berechnen. Und sie sollen (laut meinem Freund) großen Erfolg damit haben. Ich denke, GA ist einfach zu komplex für "durchschnittlichen Joe-Entwickler" Mainstream zu werden. Ein bisschen wie Map Reduce - spektakulär cool, aber viel zu fortschrittlich, um den "Mainstream" zu treffen ...

+0

http://ieeexplore.ieee.org/Xplore/login.jsp?url=/iel5/8/27408/01219605.pdf?arnumber=1219605 –

+4

Ich denke nicht, dass es zu komplex ist. Das größere Problem besteht darin, dass es sich um einen nicht-deterministischen Algorithmus handelt und man daher oft nicht für eine bestimmte Qualität der Ergebnisse garantieren kann. Daher bevorzugen die Leute andere Heuristiken (wo sie können). – flolo

+0

Es ist nicht komplex: Das Problem ist, dass es SOUNDS Komplex - Sie brauchen nicht wirklich viel Wissen über Genetik, um Ihre eigenen GAs zu implementieren. – Nobody

4

I verwendet GA in These meinen Meister, aber danach habe ich kein GA etwas in meiner täglichen Arbeit konnte lösen, dass ich nicht lösen konnte schneller mit einem anderen Algorithmus gefunden.

+3

Das ist in der Natur der Bestie - GA sind am nützlichsten, wenn Sie keine analytische Lösung für Ihr Problem kennen. Eine analytische Lösung sollte immer effizienter sein. – sum1stolemyname

20

Genetische Algorithmen wurden kommerziell weit verbreitet verwendet. Die Optimierung der Zugführung war eine frühe Anwendung. In jüngster Zeit haben Kampfflugzeuge GAs verwendet, um Flügelkonstruktionen zu optimieren. Ich habe GAs ausführlich bei der Arbeit verwendet, um Lösungen für Probleme zu entwickeln, die einen extrem großen Suchraum haben.

Viele Probleme werden wahrscheinlich nicht von GAs profitieren. Ich stimme mit Thomas nicht überein, dass sie zu schwer zu verstehen sind. Ein GA ist eigentlich sehr einfach. Wir fanden heraus, dass es eine Menge an Wissen zu gewinnen gibt, wenn man die GA auf ein bestimmtes Problem, das schwierig sein könnte, optimiert und das Verwalten großer Mengen paralleler Berechnungen für viele Programmierer weiterhin ein Problem darstellt.

Ein Problem, das von einem GA profitieren wird die folgenden Eigenschaften haben:

  • Ein guter Weg, um potenzielle Lösungen
  • Eine Art und Weise zu kodieren eine numerische Punktzahl zu berechnen, um die Qualität der bewerten Lösung
  • ein großer mehrdimensionale Suchraum, wo die Antwort ist nicht offensichtlich
  • eine gute Lösung ist gut genug, und eine perfekte Lösung ist nicht
erforderlich

Es gibt viele Probleme, die wahrscheinlich von GAs profitieren könnten und in Zukunft wahrscheinlich noch weiter verbreitet werden. Ich glaube, dass GAs in Spitzentechnologie mehr als Leute denken, aber die meisten Menschen (wie meine Firma) schützt diese Geheimnisse sehr genau. Es ist erst lange nach der Tatsache, dass es sich herausgestellt hat, dass GAs verwendet wurden.

Die meisten Leute, die mit "normalen" Anwendungen arbeiten, haben wahrscheinlich nicht viel Nutzen für sie.

+7

+1 aber ich denke genetische Algorithmen sind nur für Leute einfach, die das Grundprinzip der Evolution/natürliche Selektion "bekommen". Ich war niemals in der Lage, GA Leuten zu erklären, die die Evolution leugnen (leider ein großer Haufen). – MusiGenesis

+0

Ich muss über GAs lernen, ich meine, ich habe die Grundlagen gelesen und ich habe sie, aber ohne Beispiele und Analogien ist es nutzlos. Ich bin immer noch verwirrt über die Grundprinzipien. –

+0

@MusiGenesis, Einen Algorithmus zu haben, der sich von einem Zustand zu einem anderen entwickelt, basierend auf einer bestimmten Punktzahl und einem spezifischen Ziel, erklärt weder den UNIVERSE-Kumpel noch die Evolutionstheorie;) – securecurve

2

Ich denke nicht, dass es besonders häufig ist, genetische Algorithmen im alltäglichen kommerziellen Code zu finden. Sie werden häufiger im akademischen/Forschungs-Code gefunden, wo die Notwendigkeit, den "besten Algorithmus" zu finden, weniger wichtig ist als die Notwendigkeit, nur eine gute Lösung für ein Problem zu finden.

Nichtsdestotrotz habe ich ein paar kommerzielle Projekte konsultiert, die GAs verwenden (hauptsächlich als Ergebnis meiner Beteiligung an GAUL).Ich denke, das interessanteste Beispiel war eine Biotech-Firma. Sie nutzten den GA zur Optimierung von Bewertungsfunktionen, die im Rahmen ihrer Wirkstoffsuche für das virtuelle Screening verwendet wurden.

Anfang dieses Jahres habe ich mit meiner current company eine neue Funktion zu einem unserer Produkte hinzugefügt, die einen anderen GA verwendet. Ich denke, wir könnten dies ab dem nächsten Monat vermarkten. Im Grunde wird der GA verwendet, um Moleküle zu erforschen, die das Potenzial haben, an ein Protein zu binden, und könnte daher weiter untersucht werden als Medikamente, die dieses Protein angreifen. Ein konkurrierendes Produkt, das auch einen GA verwendet, ist EA inventor.

2

Im Rahmen meiner Diplomarbeit habe ich ein generisches Java-Framework für den multi-objektiven Optimierungsalgorithmus mPOEMS (Multiobjective prototyp optimization with evolved improvement steps) geschrieben, bei dem es sich um ein GA mit evolutionären Konzepten handelt. Es ist so generisch, dass alle problemunabhängigen Teile von den problemabhängigen Teilen getrennt wurden, und eine Schnittstelle wird bereitgestellt, um das Framework nur mit den problemabhängigen Teilen zu verwenden. Daher muss derjenige, der den Algorithmus verwenden möchte, nicht bei Null beginnen und erleichtert die Arbeit sehr.

Sie können den Code here finden.

Die Lösungen, die Sie mit diesem Algorithmus finden können, wurden in einer wissenschaftlichen Arbeit mit den modernsten Algorithmen SPEA-2 und NSGA verglichen, und es wurde nachgewiesen, dass der Algorithmus vergleichbar oder sogar besser funktioniert, Dies hängt von den Metriken ab, die Sie zum Messen der Leistung verwenden, und insbesondere von dem Optimierungsproblem, das Sie erwarten.

Sie können es here finden.

Auch im Rahmen meiner Diplomarbeit und des Arbeitsnachweises habe ich diesen Rahmen auf das Projektauswahlproblem des Portfoliomanagements angewendet. Es geht darum, die Projekte auszuwählen, die dem Unternehmen den größten Mehrwert bieten, die meisten Strategien des Unternehmens unterstützen oder ein beliebiges anderes Ziel unterstützen. Z.B. Auswahl einer bestimmten Anzahl von Projekten aus einer bestimmten Kategorie oder Maximierung der Projektsynergien, ...

Meine These, die diesen Rahmen für das Projekt Auswahlproblem gilt: http://www.ub.tuwien.ac.at/dipl/2008/AC05038968.pdf

Danach habe ich in einem Portfolio gearbeitet Management-Abteilung in einem der Fortune 500, wo sie eine kommerzielle Software verwendet, die auch eine GA auf die Projektauswahl Problem/Portfolio-Optimierung angewendet.

Weitere Informationen:

Die Dokumentation des Frameworks: http://thomaskremmel.com/mpoems/mpoems_in_java_documentation.pdf

mPOEMS Präsentation Papier: http://portal.acm.org/citation.cfm?id=1792634.1792653

Eigentlich mit einem wenig Begeisterung jedem konnte leicht den Code des generischen Framework anzupassen ein beliebiges Mehrzieloptimierungsproblem.

Verwandte Themen