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

Global Optimization Toolbox - GA verliert bestes Ergebnis

 

gummibaum

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 13.01.2011, 13:20     Titel: Global Optimization Toolbox - GA verliert bestes Ergebnis
  Antworten mit Zitat      
Hallo!

Ich habe eine Zielfunktion, deren Parameter ich mit dem Genetischen Algorithmus der Global Optimization Toolbox zu optimieren versuche.
Dies ist die Optionsbelegung, die ich verwende:

PopulationType: 'doubleVector'
PopInitRange: [2x8 double]
PopulationSize: [10 10 10 10 10 10]
EliteCount: 2
CrossoverFraction: 0.500000000000000
ParetoFraction: []
MigrationDirection: 'both'
MigrationInterval: 20
MigrationFraction: 0.100000000000000
Generations: 300
TimeLimit: Inf
FitnessLimit: -Inf
StallGenLimit: 50
StallTimeLimit: Inf
TolFun: 1.000000000000000e-010
TolCon: 1.000000000000000e-006
InitialPopulation: [1x8 double]
InitialScores: []
InitialPenalty: 10
PenaltyFactor: 100
PlotInterval: 1
CreationFcn: @gacreationlinearfeasible
FitnessScalingFcn: @fitscalingrank
SelectionFcn: @selectionstochunif
CrossoverFcn: @crossoverscattered
MutationFcn: @mutationadaptfeasible
DistanceMeasureFcn: []
HybridFcn: []
Display: 'final'
PlotFcns: {[@gaplotbestf]}
OutputFcns: []
Vectorized: 'on'
UseParallel: 'never'

Die Hilfe zur GOT sagt folgendes:
[...] Elite count — The number of individuals with the best fitness values in the current generation that are guaranteed to survive to the next generation. These individuals are called elite children. The default value of Elite count is 2.
When Elite count is at least 1, the best fitness value can only decrease from one generation to the next. This is what you want to happen, since the genetic algorithm minimizes the fitness function. Setting Elite count to a high value causes the fittest individuals to dominate the population, which can make the search less effective. [...]

Der best fitness value wird bei mir zwischen den Generationen aber ab und an wieder größer.
Hat jemand von euch eine Idee, woran das liegen könnte?
Ich bin im Moment nämlich ratlos.

Vielen Dank schonmal!


Harald
Forum-Meister

Forum-Meister


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

ist deine Fitness Function deterministisch (d.h. sie enthält keine Zufallselemente)? Ansonsten kann das eigentlich nicht sein.

Grüße,
Harald
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: 15.01.2011, 14:57     Titel:
  Antworten mit Zitat      
Hallo nochmal,

eine weitere vorstellbare Erklärung wäre, dass die vermeintlich besten Individuen Nebenbedingungen verletzen und deswegen nicht zur Elite gezählt werden. Um mehr sagen zu können, müsste man das wohl anhand der konkreten Problemstellung nachzuvollziehen versuchen.

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

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 17.01.2011, 13:00     Titel:
  Antworten mit Zitat      
Hallo Harald!

Vielen Dank für deine Antwort!
Deterministisach ist die Fitnessfunktion, aber das mit der Elite könnte sein. Das ist eine gute Idee! Ich schau gleich mal!

Viele Grüße!
 
MenschMeier
Forum-Anfänger

Forum-Anfänger


Beiträge: 43
Anmeldedatum: 22.09.11
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 14.10.2011, 16:08     Titel:
  Antworten mit Zitat      
Hallo,
ich hab eine Frage zu deinen GA Options aus dem ersten Post. Es hat nichts mit deiner Frage zu tun, aber ich hoffe das ist ok.

Du hast bei PopSize einen vektor mit 6 Werten (10) eingetragen. Heißt das, dass de GA 6 mal durchläuft und dir 6 Ergebnisse in die Ausgabe schreibt? Ich lasse meinen GA nämlich mit einer Schleife 3 mal durchlaufen, um 3 Ergebnisse zu bekommen. Eigentlich sollte man schleifen bei Matlab ja vermeiden.

Danke
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: 14.10.2011, 16:18     Titel:
  Antworten mit Zitat      
Hallo,

wenn als PopulationSize ein Vektor angegeben wird, heißt das, dass mit mehreren Subpopulationen ("Stämmen") gerechnet wird. In Intervallen, die durch MigrationInterval festgelegt werden, findet dann ein Austausch der besten Individuen der Stämme statt.

Vermeiden von Schleifen ist eine gute Idee, wo es möglich ist. Allerdings geht es da in erster Linie um Schleifen mit vielen (100, 10000, 10 Mio.) Iterationen. Bei einer Schleife mit 3 Iterationen würde ich keinen nennenswerten Performance-Unterschied erwarten.
Zudem müsste der Algorithmus erstmal zur Vektorisierung geeignet sein. Bei Aufrufen von ga sehe ich da wenig Möglichkeiten, außer man rechnet mit verschiedenen Unterpopulationen mit hohem MigrationInterval.

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
MenschMeier
Forum-Anfänger

Forum-Anfänger


Beiträge: 43
Anmeldedatum: 22.09.11
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 14.10.2011, 16:31     Titel:
  Antworten mit Zitat      
Danke für die Antwort, dann belasse ich es erstmal so wie es ist.
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.