WICHTIG: Der Betrieb von goMatlab.de wird privat finanziert fortgesetzt. - Mehr Infos...

Mein MATLAB Forum - goMatlab.de

Mein MATLAB Forum

 
Gast > Registrieren       Autologin?   

Partner:




Forum
      Option
[Erweitert]
  • Diese Seite per Mail weiterempfehlen
     


Gehe zu:  
Neues Thema eröffnen Neue Antwort erstellen

Differential Evolution - Optimierung

 

jaffnakid
Forum-Newbie

Forum-Newbie


Beiträge: 1
Anmeldedatum: 25.12.12
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 25.12.2012, 21:51     Titel: Differential Evolution - Optimierung
  Antworten mit Zitat      
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 Smile,
Jaffna
Private Nachricht senden Benutzer-Profile anzeigen


MaFam
Forum-Meister

Forum-Meister


Beiträge: 799
Anmeldedatum: 02.05.12
Wohnort: ---
Version: R2009b
     Beitrag Verfasst am: 26.12.2012, 14:43     Titel:
  Antworten mit Zitat      
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
Private Nachricht senden Benutzer-Profile anzeigen
 
HerrErnie
Forum-Anfänger

Forum-Anfänger


Beiträge: 13
Anmeldedatum: 21.12.12
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 27.12.2012, 22:17     Titel:
  Antworten mit Zitat      
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
Code:

F_cost = FVr_temp^6-14*FVr_temp^5 + 62*FVr_temp^4 - 76*FVr_temp^3 - 63*FVr_temp^2 + 90*FVr_temp
 

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.
Private Nachricht senden Benutzer-Profile anzeigen
 
Neues Thema eröffnen Neue Antwort erstellen



Einstellungen und Berechtigungen
Beiträge der letzten Zeit anzeigen:

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 | goMatlab RSS Button 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.