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

[Optimization Toolbox] bzw. [Direct Search / Global O. TB]

 

bam_bam
Forum-Anfänger

Forum-Anfänger


Beiträge: 13
Anmeldedatum: 15.10.10
Wohnort: München
Version: ---
     Beitrag Verfasst am: 20.01.2011, 11:15     Titel: [Optimization Toolbox] bzw. [Direct Search / Global O. TB]
  Antworten mit Zitat      
Hallo liebe Matlab-/Mathe-Cracks,

ich bastele immer noch an einer Optimierung eines Simulinkmodells.
Eigentlich habe ich 5 Parameter zu optimieren, arbeite jedoch im Moment nur mit 2, damit ich mir die Ergebnisse besser veranschaulichen kann (Flächen..).

Meine Frage ist nun, ob es irgendeine Möglichkeit gibt, dass ein gefundenes Minimum auf einem bestimmten Intervall (ich habe für jeden Parameter obere und untere Grenzen) "global" ist?
Oder kann man zumindest eine Art Wahrscheinlichkeit angeben, mit der die Lösung die optimale ist?

Leider bekomme ich auch je nachdem, welchen Optimierer ich verwende unterschiedliche Ergebnisse.
Abhilfe schafft momentan, sehr viele Startwerte zu verwenden, dann kommen irgendwann alle beim gleichen an..

Leider brauche ich jedoch für meine Diplomarbeit einen Beweis o.ä. wie oben beschrieben..

--> Question

Danke schonmal..
Private Nachricht senden Benutzer-Profile anzeigen


Harald
Forum-Meister

Forum-Meister


Beiträge: 24.495
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 21.01.2011, 12:16     Titel:
  Antworten mit Zitat      
Hallo,

einen Beweis dafür zu führen ist schwierig bis unmöglich.
Wie du schon festgestellt hast, finden die Löser in der Optimization Toolbox ein lokales Minimum. Die Löser in der Global Optimization Toolbox versuchen zwar, lokale Minima zu vermeiden, können aber keine Garantie dafür geben.
Um eine Art Beweis führen zu können, musst du in jedem Fall von deinem Modell ausgehen und nicht von den Lösern.
Warum? Stelle dir eine Parabel vor. Das Minimum ist klar der Scheitel, nur wird aber ein Stück von dem Scheitel weg eine schmale Kerbe geschnitten, die tiefer ist als der Scheitel. Je schmäler die Kerbe, desto unwahrscheinlicher ist es, dass sie überhaupt wahrgenommen wird. Insbesondere eben: das (z.B. die Breite der Kerbe) ist eine Eigenheit deines Modells, nicht des Lösers.
Ich würde es so lösen, dass ich die Minimierung auf einem engen Gitter als Startwerte ausführe. Damit ist "relativ sicher", dass man das globale Minimum findet.
Was modellierst du denn eigentlich?

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
bam_bam
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 13
Anmeldedatum: 15.10.10
Wohnort: München
Version: ---
     Beitrag Verfasst am: 21.01.2011, 12:34     Titel:
  Antworten mit Zitat      
Hallo Harald,

das habe ich leider befürchtet.
In meiner Arbeit geht es darum, ein in Simulink implementiertes Modell eines Elektrofahrzeuges, das bestimmte Fahrzyklen abfahren kann auf den Energieverbrauch hin zu optimieren.

Dazu kommen (vorläufig) folgende Parameter zum Einsatz:
Leistungsverteilung (auf Vorder- bzw. Hinterachse), (Getriebe-)Übersetzung,
Reifenradius, Achslastverteilung..

Leider kann ich damit natürlich nicht analytisch auf irgendwelche Eigenschaften der "Funktion" wie die von Dir beschriebene Kerbe schließen!

Daher, und da das Simulinkmodell recht lange rechnet, gehe ich im Moment so vor, dass ich mit einer geschachtelten for-Schleife ein "Gitter" an "Messwerten" erstelle, also erhalte ich so etwas:

x11 x12 x13 x14 x15 y1
x21 x22 x23 x24 x25 y2
....

Ich hoffe du verstehst, was ich meine Smile also eine Matrix mit Parameterkombinationen xii und den zugehörigen, berechneten Verbrauchswerten.

Mit dieser Matrix nähere ich (im Moment, versuchsweise Smile) mit Hilfe der polyfitn-Toolbox von matlabcentral (ist wie polyfit, nur funktioniert auch für mehrdimensionale Polynome) Funktionen an die berechneten Werte an und optimiere dann diese (eigtl. 5-dimensionalen, im Moment beschränke ich mich wegen der Anschaulichkeit auf 2 Variablen) Polynome..

Dein Vorschlag mit vielen Startpunkten ist meiner Meinung nach auch das Mittel der Wahl, allerdings lässt sich daraus keine präzise, "wissenschaftliche" Aussage ableiten, sondern nur ein "wird schon des optimale sein.." Smile

Wenn du noch irgendwelche Ideen für mich hast, oder bessere Arten, eine Funktion zur Modellierung zu finden als diese polyfit-n Toolbox,
bitte bitte her damit Smile

Vielen Dank,
Florian
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.495
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 21.01.2011, 12:49     Titel:
  Antworten mit Zitat      
Hallo,

den Vorteil an diesem Problem sehe ich darin, dass es wohl als relativ gutartig betrachtet werden kann: kleine Änderungen in den Parametern bewirken kleine Änderungen im Verbrauch etc.
Ausgehend von deinem bisherigen Ansatz würde ich die Datensätze, die zu kleinen yi gehören, als Startwerte für die Optimierung verwenden. Wichtig ist dann, dass du die Optimierung wieder mit dem Simulink-Modell machst und nicht mit den Polynomen; die Polynome geben ja nur eine grobe Annäherung an die Realität.
In Simulink gibt es als weiteres Produkt auch "Simulink Design Optimization". Falls du da Zugang hast, wäre es sicher auch interessant, damit zu arbeiten und zu sehen, welche Ergebnisse du bekommst.

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
bam_bam
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 13
Anmeldedatum: 15.10.10
Wohnort: München
Version: ---
     Beitrag Verfasst am: 21.01.2011, 13:03     Titel:
  Antworten mit Zitat      
Hallo,

erstmal danke für die schnelle Antwort!
Das mit der Gutartigkeit müsste wohl so sein, vorausgesetzt es wurden keine groben Fehler in der Modellierung gemacht Smile

Ich fasse nochmal kurz zusammen, ob ich Dich richtig verstanden habe, wie du grob vorgehen würdest:

1. mit geschachtelten for-Schleifen Datensätze erzeugen
2. Datensätze mit guten Verbräuchen als Startwerte für Optimierer verwenden

Kannst du mir vielleicht noch einen Tipp geben, welchen Optimierer du verwenden würdest?

Die besten Ergebnisse habe ich immer mit GeneticAlgorithm (ga) bekommen, der braucht aber ja gerade keinen Startwert Smile Dafür braucht er recht lange..
Ein Kompromiss zwischen Qualität und Geschwindigkeit ist nach meiner bisherigen Erfahrung PatternSearch (gps)..
Fmincon ist immer gut, wenn der Startwert passt --> würde gut zu deinem Vorschlag passen..

Das Problem an der Optimierung mit dem Simulinkmodell ist, dass es einfach recht lange rechnet..
Die "Simulink Design Optimization" gibt es tatsächlich an der Uni, ich werde auf jeden Fall mal reinschauen Smile

Danke für Deine Hilfe,
Florian
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.495
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 21.01.2011, 16:28     Titel:
  Antworten mit Zitat      
Hallo,

mal eine Gegenfrage: was bedeuten denn "lange" Laufzeiten? Wenn dabei das gewünschte Ergebnis herauskommt, sollte man doch bereitwillig eine Stunde oder auch eine Nacht (eine Rechennacht; du musst ja nicht daneben sitzen) investieren?
Die beste Möglichkeit, lokale Minima zu vermeiden, dürfte ga sein. Bekommst du, wenn du ga mehrmals laufen lässt, ähnliche Ergebnisse? Dann ist es wahrscheinlich, dass dort (bzw. in der Nähe) auch das wahre globale Minimum zu finden ist.
Und das bringt mich auf einen weiteren Punkt: ga konvergiert natürlich sehr langsam. Es produziert aber für deinen Fall hervorragende Startwerte, z.B. für fminunc/fmincon. In ga ist das in der Option Hybrid Function integriert; der entsprechende Algorithmus würde also "nachgeschaltet".

Grüße,
Harald
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.