Contenu principal

Cette page a été traduite par traduction automatique. Cliquez ici pour voir la dernière version en anglais.

Définir le nombre maximal de Generation et de Stall Generation

L'option MaxGenerations détermine le nombre maximal de générations nécessaires à l'algorithme génétique ; voir Conditions d'arrêt de l'algorithme. L'augmentation de MaxGenerations peut améliorer le résultat final. L'option associée MaxStallGenerations contrôle le nombre d'étapes que ga examine pour voir s'il progresse. L'augmentation de MaxStallGenerations peut permettre à ga de continuer lorsque l'algorithme a besoin de plus d'évaluations de fonctions pour trouver une meilleure solution.

Par exemple, optimisez rastriginsfcn en utilisant 10 variables avec des paramètres par défaut. Pour observer la progression du solveur lorsqu'il s'approche de la valeur minimale de 0, optimisez le logarithme de la fonction.

rng default % For reproducibility
fun = @(x)log(rastriginsfcn(x));
nvar = 10;
options = optimoptions('ga','PlotFcn',"gaplotbestf");
[x,fval] = ga(fun,nvar,[],[],[],[],[],[],[],options)
ga stopped because the average change in the fitness value is less than options.FunctionTolerance.

Figure Genetic Algorithm contains an axes object. The axes object with title Best: 1.45396 Mean: 4.52748, xlabel Generation, ylabel Fitness value contains 2 objects of type scatter. These objects represent Best fitness, Mean fitness.

x = 1×10

   -0.0495   -0.0670   -0.0485    0.0174   -0.0087    0.0275   -0.0383    0.0620   -1.0047   -0.0298

fval = 
1.4540

Lorsque ga s'approche du point optimal à l'origine, il cale. Pour obtenir une meilleure solution, définissez la limite de Stall Generation à 500 et la limite de Generation à 1000.

options = optimoptions(options,'MaxStallGenerations',500,'MaxGenerations',1000);
rng default % For reproducibility
[x,fval] = ga(fun,nvar,[],[],[],[],[],[],[],options)
ga stopped because it exceeded options.MaxGenerations.

Figure Genetic Algorithm contains an axes object. The axes object with title Best: -3.14667 Mean: -1.31642, xlabel Generation, ylabel Fitness value contains 2 objects of type scatter. These objects represent Best fitness, Mean fitness.

x = 1×10

    0.0025   -0.0039    0.0021   -0.0030   -0.0053    0.0033    0.0080    0.0012    0.0006    0.0088

fval = 
-3.1467

Cette fois, le solveur se rapproche beaucoup plus du vrai minimum.

Voir aussi

Rubriques