exponenta event banner

Установка максимального количества поколений и остановленных поколений

MaxGenerations параметр определяет максимальное количество поколений, которое занимает генетический алгоритм; см. раздел Условия остановки алгоритма. Увеличение MaxGenerations может улучшить конечный результат. Связанное MaxStallGenerations опция управляет количеством шагов ga смотрит на то, добивается ли она прогресса. Увеличение MaxStallGenerations может включить ga для продолжения, когда алгоритму требуется больше оценок функций, чтобы найти лучшее решение.

Например, оптимизировать rastriginsfcn с использованием 10 переменных с параметрами по умолчанию. Чтобы наблюдать за ходом выполнения решателя по мере приближения к минимальному значению 0, оптимизируйте логарифм функции.

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

Figure Genetic Algorithm contains an axes. The axes with title Best: 1.45396 Mean: 4.52748 contains 2 objects of type line. 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

Как ga подходит к оптимальной точке в начале координат, она останавливается. Чтобы получить лучшее решение, установите предел генерации stall 500, а предел генерации 1000.

options = optimoptions(options,'MaxStallGenerations',500,'MaxGenerations',1000);
rng default % For reproducibility
[x,fval] = ga(fun,nvar,[],[],[],[],[],[],[],options)
Optimization terminated: maximum number of generations exceeded.

Figure Genetic Algorithm contains an axes. The axes with title Best: -3.14667 Mean: -1.31642 contains 2 objects of type line. 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

На этот раз решатель приближается к истинному минимуму гораздо ближе.

Связанные темы