Verfasst am: 22.07.2020, 08:44
Titel: Welche Anzahl an Multistart NumTrialPoints ausreichend?
Hallo zusammen,
ich habe ein Multistart-Objekt (mit fmincon), der 1-11 variable Parameter hat (das kann der User schlussendlich entscheiden). Die restlichen Parameter werden dann als "fixierte Parameter" übergeben. Bei 5 variablen Parametern läuft das Programm ca. 10 h.
Meine Frage ist jetzt: Gibt es eine Möglichkeit, die Anzahl der randomisierten "NumTrialPoints" initial irgendwie auszurechnen? Also die Anzahl so zu legen, dass das Hand und Fuß hat?
Denn ich könnte mir vorstellen, dass ich bei nur einem variable Parameter vielleicht nur 100 NumTrialPoints brauche, während bei 10 Parameter mehr Startpunkte nötig wären. Allerdings kann ich mir im Moment noch überhaupt keinen Weg vorstellen, wie die Anzahl der Startpunkte mit der Anzahl der Parameter sinnvoll korreliert ist.
Wie entscheidet Ihr, wie viele Startpunkte nötig sind, um ein Problem hinreichend zu untersuchen?
Über eine Quelle wäre ich auch sehr dankbar (ich würde die Anzahl der Startpunkte am Ende dann gern auch wissenschaftlich begründen).
meine kurze Antwort ist: nein.
Je mehr Startpunkte man verwendet, desto höher ist (bei zufälligen Startwerten) die Wahrscheinlichkeit, dass ein Durchlauf zum globalen Minimum konvergiert.
Das ist aber generell ein Manko der globalen Optimierung: wirklich sicher, dass man das globale Minimum gefunden hat, ist man nie, oder zumindest nur unter bestimmten Annahmen.
Beispiel:
Code:
x = 0:0.01:10;
y = 1+ (x-7).^2;
w = 0.2;
y(x > 5-w & x < 5+w) = 10*abs(x(x > 5-w & x < 5+w)-5);
plot(x,y)
Egal wie gut der Algorithmus ist: wenn w klein genug ist und man nicht "zufällig" bei x = 5 auswertet, wird man das globale Minimum nicht finden.
Grüße,
Harald
_________________
1.) Ask MATLAB Documentation
2.) Search gomatlab.de, google.de or MATLAB Answers
3.) Ask Technical Support of MathWorks
4.) Go mad, your problem is unsolvable ;)
Wie machst Du das dann? Also ich habe zB jetzt standardmäßig 1000 Startpunkte, unabhängig von der Anzahl der initialen variablen Parameter, aber hab überhaupt kein Gefühl, ob ich damit völlig die Startpunkt-Anzahl über oder unterschätze. Weißt Du, ob es dazu Literatur gibt?
Habe da auf die Schnelle nichts verwertbares gefunden ...
Wenn ich die Anzahl der Startpunkte deutlich erhöhe und aber trotzdem immer in die gleichen lokalen Minima laufe, dann kann man vermuten, dass es einfach nicht mehr Minima gibt. Hier also: 8 Startpunkte sind zu wenig, mehr als 30 bringt nichts.
Literatur dazu ist mir nicht bekannt.
Grüße,
Harald
_________________
1.) Ask MATLAB Documentation
2.) Search gomatlab.de, google.de or MATLAB Answers
3.) Ask Technical Support of MathWorks
4.) Go mad, your problem is unsolvable ;)
Dann teste ich mal weiter. Weswegen ich frage, ist, dass teilweise das Multistart-Objekt ca. 12 - 20 h läuft und es dadurch natürlich etwas schwer, zu sagen, ich lasse es jetzt 1000 Runs laufen oder 10k Runs. Und auch das austesten ist damit sehr zeitaufwendig.
Danke nochmal.
LG
Michi
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
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.