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

Optimisation Toolbox - fmincon verwendet Startvektor nicht

 

heinzs
Forum-Newbie

Forum-Newbie


Beiträge: 5
Anmeldedatum: 07.06.11
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 14.01.2013, 14:25     Titel: Optimisation Toolbox - fmincon verwendet Startvektor nicht
  Antworten mit Zitat      
Hallo in die Runde,

ich stehe vor einem recht großem Optimierungsproblem mit etwa 600 Variablen. Die Optimierungsaufgabe kann mit Hilfe von fmincon und dem algorithmus "interior-point" gelöst werden. Wenn ich allerdings in die Zielfunktion einen breakpoint setze sehe ich, dass schon in der ersten Berechnung nicht der angegebene Startvektor "x0" verwendet wird. Stattdessen wird ein Vektor verwendet, welcher recht weit weg von der gesuchten Lösung ist. Dies ist besonders ärgerlich, da ich den Startvektor für etwa 3/4 der Variblen schon extrem nah an der Lösung wählen kann, für den Rest muss ich die Startvariablen schätzen.

Dieses Schätzen führt unter anderem auch dazu, dass nicht alle Randbedingeungen Aeq und A im Startvektor eingehalten werden können.

fmincon wird folgendermaßen aufgerufen:
Code:

[ x_optimum, fval, exitflag, output ] = fmincon ( @objective_function, x0, Aeq, beq, lb, ub, nonlcon, options ) ;
 


Es wäre toll, wenn mir jemand einen Hinweis darauf geben könnte, ob die Randbedingungsverletzung dazu führen könnte, dass der komplette Startvektor ignoriert wird, oder ob es doch noch etwas anderes sein kann.

Vielen Dank und viele Grüße

HeinzS
Private Nachricht senden Benutzer-Profile anzeigen


heinzs
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 5
Anmeldedatum: 07.06.11
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 14.01.2013, 19:38     Titel:
  Antworten mit Zitat      
Hallo nochmal in die Runde,

nachdem ich meinen Code noch einmal umgeschrieben habe komme ich mit meinem Startvektor nun sehr dicht an eine reguläre Lösung:

Die maximale Abweichung von (Aeq * x0 = beq) ist 3,9e-09.
Von der Randbedingenung von (A * x0 <= b) wird maximal um 3.5e-20 abgewichen.

Eigentlich sollte dies ein zulässiger Startpunkt sein, denn die Standarteinstellung der zulässigen Abweichung TolCon ist 1e-6.

Trotzdem wird der Startvektor nicht angenommen. Zusätzlich ist mir aufgefallen, dass der erste in der Zielfunktion ausgewertete Vektor x die Randbedingungen erhelblich verletzt. Ich kann mir immer weniger erklären, warum die Auswertung der Zielfunktion nicht mit dem Startektor x0 beginnt.

Wenn ich die Optimierung aber noch einmal mit dem Ergebnisvektor starte wird dieser als erster Vektor in der Zielfunktion ausgewertet, dann funktioniert die Vorgabe von x0 also.

Vielleicht kann ja jemand weiterhelfen?

Viele Grüße

HeinzS
Private Nachricht senden Benutzer-Profile anzeigen
 
heinzs
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 5
Anmeldedatum: 07.06.11
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 15.01.2013, 09:57     Titel:
  Antworten mit Zitat      
Hallo in die Runde,

nach vielem Hin- und Her habe ich nun ein Workarroud gefunden. Das Problem tritt dann auf, wenn fmincon und der Algorithmus "interior-point" verwendet wird und mind. eine Variable des Startvektors genau auf den oberen oder unteren Grenzen (lb, ub) liegt. Werden die Startvariablen leicht in den zulässigen Bereich verschoben (z.B. um 1e-10) dann kann der Startvektor verwendet werden.

Die Probleme entstehen übrigens im Bereich um Zeile 585 und 586 in fmincon.

Viele Grüße

HeinzS
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 - 2024 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.