Wenn du mir ein Beispiel-Modell zur Verfügung stellen kannst, kann ich gerne damit experimentieren. Ansonsten arbeite ich leider "blind", und es funktioniert evtl. nicht alles gleich.
Probleme:
- ich nehme an, dass du mir ein stark vereinfachtes Modell geschickt hast. Dummerweise ist es so sehr vereinfacht, dass in Maßen geänderte Eingaben nicht zu geänderten Ausgaben führen. Das kann also nichts werden.
- Die Rückgabedaten sind ein Vektor von Werten. Wann ist der optimal? Wenn der letzte Wert maximal ist? Der Durchschnittswert? Oder was?
ja, das Modell war Mist, hier das sollte aber laufen. Tschuldigung
Das mit den Rückgabedaten habe ich nicht ganz verstanden. In meiner einfachen Version ohne fmincon und mit "to workspace" lasse ich mir nach jedem Simulationsschritt eine Matrix mit drei Spalten ausgeben. In der ersten Spalte steht dabei der Wert aus dem "to workspace" nach dem maximiert werden soll.
ich hatte nicht beachtet, dass du noch mit 2009b arbeitest und eine neuere Befehlssyntax verwendet.
Woher weißt du, dass nicht das beste Ergebnis gefunden wird?
FMINCON sucht ausgehend vom Startpunkt nach einem Minimum. Das kann gut ein lokales Minimum sein.
Wenn du keinen ausreichend guten Startpunkt hast, solltest du dir mal Algorithmen wie GA (dann mit HybridFcn FMINCON) oder PATTERNSEARCH aus der Global Optimization Toolbox ansehen. Du kannst natürlich auch über verschiedene Startwerte iterieren.
Lass auch ruhig mal die Optionen weg, vor allem DiffMinChange. Damit habe ich nur herumexperimentiert, weil bei deinem ursprünglichen Modell nichts vernünftiges passiert ist.
weil ich mit meiner handgemachten Iteration auf einen viel besseren Wert komme. In dem Modell müsste er auf Wert=5295606 oder besser kommen, tut er aber leider nicht.
Ist die Global Optimaziation Toolbox gleich der Optimaziation Toolbox?
dann steck doch mal das Ergebnis deiner handgemachten Iteration in FMINCON - damit stellst du einen guten Startwert zur Verfügung. Wie bereits geschrieben: du kannst auch über verschiedene Startwerte iterieren und so die Chance erhöhen, dass du zu einem guten Ergebnis kommst.
Nein, die Global Optimization Toolbox ist ein Zusatzprodukt, das auf der Optimization Toolbox aufbaut.
wenn ich 58 und 92 angebe, läuft er auf 58 und 80 mit Wert=4912278. Also leider wieder falsch. Wenn ich die genauen Werte meiner handgemachten Iteration eingebe, findet er auch genau diese, aber das ist ja nicht Sinn und Zweck der Übung.
Die "Global Optimization Toolbox" scheint nicht verfügbar zu sein. Dafür habe ich aber eine "Genetic Algorithm and Direct Search Toolbox" gefunden.
"patternsearch" funktioniert auf jeden Fall mit unveränderten Eingabeparametern und findet ein besseres Ergebnis als meine handgemachte Iteration.
Wie muss ich denn mit der ga-Funktion umgehen? Was muss da an die Stelle wo sonst die Startwerte eingegeben wurden?
das mit der Startpolulation habe ich leider auch mit der Doku nicht verstanden. Habe einfach mal einen Wert hingeschrieben und nun läuft das ganze seit Stunden und hört nicht mehr auf
Kannst du mir nochmal einen Tipp geben? Das Modell hast du ja sicher noch.
verschiedene Algorithmen sind für vollkommen unterschiedliche Dinge geeignet. GA simuliert ausgehend von einem anfänglichen Kandidatenset eine Evolution, und das kann natürlich dauern.
Wenn du mit PATTERNSEARCH zufriedenstellende Ergebnisse bekommst, warum dann noch mit GA arbeiten?
Die andere Möglichkeit wäre, wie gesagt, verschiedene Startwerte in FMINCON zu stecken und darüber zu iterieren.
leider habe ich bisher mit keinem der Verfahren das Maximum finden können. Mein Zufallstreffer per Hand war bisher immer noch der beste. Das lässt sich aber natürlich nicht für alle meine später zu untersuchenden Ausgangssituationen durchführen.
Nochmal zu GA: Was ist denn ein "anfängliches Kandidatenset"? Ich habe, weil ich es nicht besser weiß, an die Stelle, an der zuvor die geratenen Werte standen, eine 10 geschrieben und den PC dann mal arbeiten lassen. Nach gut 1,5 Stunden hatte ich allerdings noch kein Ergebnis und habe dann abgebrochen.
Findet GA immer ein Ergebnis, oder kann es sein, dass GA in eine "Endlosschleife" läuft und dann niemals ein Ergebnis findet?
GA wird irgendwann zum Ende kommen. Die Anzahl der Simulationen kann nur sehr hoch sein (10000, 100000 oder mehr - die Evolution auf der Erde hat ja ein paar Milliarden Jahre gedauert, also wären ein paar Stunden oder Tage nicht sooo viel). Ich würde also GA hier nicht unbedingt empfehlen, quasi nur wenn alles andere nicht praktikabel ist.
Was ich empfehlen würde:
- PATTERNSEARCH (hast du schon)
- eine Schleife über FMINCON: Wenn du deine händische Optimierung nimmst und jeden Punkt als Startpunkt in FMINCON gibst, dann muss das Ergebnis besser sein als die händische Optimierung. Falls du mit einer neueren MATLAB-Version arbeitest, kannst du dir auch MultiStart und GlobalSearch anschauen.
Falls du beim letzteren Punkt Unterstützung benötigst, bitte nochmal alle relevanten Infos in einem Beitrag posten (inkl. mit welchem Release du arbeitest). Ich blicke nämlich zugegebenermaßen nicht mehr ganz durch, was nun der aktuelle Stand ist und was nicht.
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
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.