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

GlobalSearch Probleme

 

elchico
Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 87
Anmeldedatum: 04.05.17
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 24.10.2019, 01:18     Titel: GlobalSearch Probleme
  Antworten mit Zitat      
Hallo zusammen,

ich stocke gerade bei der Implementierung des GlobalSearch Algorithmus in meinen Code. Ich hatte vor einigen Tagen mit einer früheren Version meines Codes den Algorithmus schon erfolgreich implementiert gehabt und der Algorithmus lief mehrere Tage durch und hat auch erfolgreich mehrere Lösungen ausgespuckt. Soweit war ich ganz zufrieden und habe meinen Code erweitert. Nun läuft der Algorithmus nur noch 2 min und es wird genau eine Lösung angeboten, die aber definitiv nicht die einzige sein kann (das zeigen frühere Versuche mit meinem Code). Der Algorithmus sagt auch, dass er converged ist, was ich ihm auch gern glaube, allerdings gibt es eben deutlich mehr Punkte zum testen als er es tut.
Lange Rede kurzer Sinn: Ich verstehe nicht, warum GlobalSearch nur ein paar Minuten läuft und dann denkt, dass schon alles ausprobiert worden ist, wobei ich sicher bin, dass dem nicht so ist.

Ich füge mal einen kleinen Teil des Codes hinzu, vielleicht reicht das schon für Euch an Information. Falls Ihr weitere Fragen habt, stehe ich gern Rede und Antwort.
Variablen (obwohl die Grenzen halbwegs offen gewählt werden, untersucht der Algorithmus nur 60 Punkte und findet dann die eine (und einzige Lösung). Die Startwerte liegen alle innerhalb der bounds:
Code:
allVariables_Start = [numValues, numExport, ...
                  binStart, binEnd, binStep,...
                  mean_Var1, dev_Var1, ...
                  mean_% Var2, dev_Var2, ...
                  mean_Var3, dev_Var3];
bounds_down_Start = [10000, 100, ...           % numValues, numExport
    3, 3, 0.01, ...                  % binStart, binEnd, binStep
    1, 0, ...                      % Var1
    0.5, 0, ...                    % Var2
    20, 0];                         % Var3

bounds_up_Start = [10000, 100, ...        % numValues, numExport
    3, 3, 0.01, ...                    % binStart, binEnd, binStep
    200, 0, ...                    % Var1
    2, 0, ...                       % Var2
    2000, 0];                      % Var3


Algorithmus:
Code:
objfcn = @nParam_Gauss;
% ------------------------------------------------------------------------
%Global Search
opts = optimoptions(@fmincon,'Algorithm','interior-point');
gs = GlobalSearch;
problem = createOptimProblem('fmincon', ...
    'x0',allVariables_w,'objective',objfcn, ...
    'lb',bounds_down,'ub',bounds_up,'options',opts);
[x,fval,exitflag,output,solutions] = run(gs,problem);


Ich habe schon versucht, die TrialPunkte zu erhöhen, aber das hat nichts geholfen. Auch bin ich mir unsicher, ob das überhaupt was bringen kann:
Code:
gs = GlobalSearch('NumTrialPoints',1e4,'NumStageOnePoints',1e3,'BasinRadiusFactor',0.01);


Ich bin mit meinem Latein leider am Ende. Wenn Ihr mir einen Hinweis geben könnt, warum der Algorithmus so schnell durchläuft bzw. nur eine Lösung findet, wäre ich Euch sehr dankbar.
LG
Private Nachricht senden Benutzer-Profile anzeigen


elchico
Themenstarter

Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 87
Anmeldedatum: 04.05.17
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 28.10.2019, 06:16     Titel:
  Antworten mit Zitat      
Hallo zusammen,

ich würde gerne meine Frage nochmal pushen, vielleicht hat jemand noch eine Idee, wie ich weiter vorgehen könnte?

Vielen Dank.
LG
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


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

ich für meinen Teil habe auch Probleme damit, hier die genaue Funktionsweise von GlobalSearch zu verstehen. MultiStart hat eine sehr ähnliche Zielsetzung und ist m.E. intuitiver.

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 ;)
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.