|
|
Differential Evolution - Optimierung |
|
jaffnakid |

Forum-Newbie
|
 |
Beiträge: 1
|
 |
|
 |
Anmeldedatum: 25.12.12
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 25.12.2012, 21:51
Titel: Differential Evolution - Optimierung
|
 |
|
 |
|
Hi Leute,
ich versuche einen Algorithmus von Rainer Storn zur Ermittlung des globalen Minimums durch die 'Differential Evolution' Methode anzuwenden.
Der Code wird vom Autor auf seiner Internetseite kostenlos zur Verfügung gesellt. [http://www1.icsi.berkeley.edu/~storn/code.html]
Ich möchte seinen Algorithmus auf ein anderes Problem anwenden um das lokale Minimum zu ermitteln. Dazu muss man wohl 'nur' die 'objective function' abändern. Das Minimierungsproblem lautet: [y = x^6 - 14*x^5 + 62*x^4 - 76*x^3 - 63*x^2 + 90*x]. Mir ist bewusst, dass das Problem analytisch gelöst werden kann. Für Funktionen, bei denen die Ableitung nicht einfach zu ermitteln ist, ist die 'Differential Evolution' Methode sehr nützlich.
Ich habe Schwierigkeiten den zur Verfügung gestellten Code auf ein individuelles Problem abzuändern. Ich versteh nicht, an welcher Stelle ich die 'objective function' anpassen muss.
Über eure Hilfe wäre ich sehr dankbar,
Viele Grüsse und frohe Weihnachten ,
Jaffna
|
|
|
|
|
MaFam |

Forum-Meister
|
 |
Beiträge: 799
|
 |
|
 |
Anmeldedatum: 02.05.12
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: R2009b
|
 |
|
|
 |
|
Verfasst am: 26.12.2012, 14:43
Titel:
|
 |
Hallo und auch dir frohe Weihnachten,
f(x)=x^6 - 14*x^5 + 62*x^4 - 76*x^3 - 63*x^2 + 90*x hat nicht "das" lokale Minimum. Es hat mehrere lokale Minima. Ohne mir das Verfahren von Storn angeschaut zu haben, kann man sagen, dass du zu einem anderen Verfahren greifen solltest, wenn du an einem (irgendeinem) lokalen Minimum interessiert bist, z.B. das Newton-Verfahren.
Bevor ich dir weitere Tipps gebe, würde ich diese grundsätzliche Frage zunächst klären.
Grüße, Marc
|
|
|
HerrErnie |

Forum-Anfänger
|
 |
Beiträge: 13
|
 |
|
 |
Anmeldedatum: 21.12.12
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 27.12.2012, 22:17
Titel:
|
 |
|
 |
|
Hallo,
Habe mir das Programm mal kurz angeschaut. Am ehesten entspricht wohl die im Ordner 'Rosenbrock' enthaltene 'objfun'-Funktion deinem Beispiel, da diese ebenso nur eine Zielfunktion optimiert und keinen Nebenbedingungen unterliegt.
Dort würde ich daher lediglich die erste Zeile durch
ersetzen.
Vorausgesetzt, du hast verstanden (ich nämlich nicht...), wie man dieses 'S_struct' structure-array erzeugt und was da drin stehen sollte, dürfte man diese Funktion dann dem Optmierer damit zusammen übergeben können.
Aber generell würde ich auch sagen, dass da mit Kanonen auf Spatzen geschossen wird. Auf den ersten Blick scheint es sich dabei um ein heuristisches Verfahren zur globalen Optimierung von nicht notwendigerweise differenzierbaren Funktionen unter Nebenbedingungen zu handeln.
Für differenzierbare Funktionen (mit und ohne Nebenbedingungen) gibt es weitaus simplere Verfahren, von denen einige auch bereits in Matlab integriert sind, wobei jedoch zugegebenermaßen meist nur lokale Minima gefunden werden.
|
|
|
|
|
Einstellungen und Berechtigungen
|
|
Du kannst Beiträge in dieses Forum schreiben. Du kannst auf Beiträge in diesem Forum antworten. Du kannst deine Beiträge in diesem Forum nicht bearbeiten. Du kannst deine Beiträge in diesem Forum nicht löschen. Du kannst an Umfragen in diesem Forum nicht mitmachen. Du kannst Dateien in diesem Forum posten Du kannst Dateien in diesem Forum herunterladen
|
|
Impressum
| Nutzungsbedingungen
| Datenschutz
| FAQ
| RSS
Hosted by:
Copyright © 2007 - 2025
goMatlab.de | Dies ist keine offizielle Website der Firma The Mathworks
MATLAB, Simulink, Stateflow, Handle Graphics, Real-Time Workshop, SimBiology, SimHydraulics, SimEvents, and xPC TargetBox are registered trademarks and The MathWorks, the L-shaped membrane logo, and Embedded MATLAB are trademarks of The MathWorks, Inc.
|
|