exponenta event banner

Запустить ga из файла

Интерфейс командной строки позволяет многократно запускать генетический алгоритм с различными настройками параметров, используя файл. Например, можно запустить генетический алгоритм с различными настройками для фракции Crossover, чтобы увидеть, какая из них дает лучшие результаты. Следующий код запускает функцию ga 21 раз, варьируя options.CrossoverFraction от 0 кому 1 с приращениями 0.05и записывает результаты.

options = optimoptions('ga','MaxGenerations',300,'Display','none');
rng default % for reproducibility
record=[];
for n=0:.05:1
  options = optimoptions(options,'CrossoverFraction',n);
  [x,fval]=ga(@rastriginsfcn,2,[],[],[],[],[],[],[],options);
  record = [record; fval];
end

Можно распечатать значения fval против фракции кроссовера со следующими командами:

plot(0:.05:1, record);
xlabel('Crossover Fraction');
ylabel('fval')

Появится следующий график.

График предполагает, что вы получите лучшие результаты, установив options.CrossoverFraction к значению где-то между 0.4 и 0.8.

Вы можете получить более гладкий график fval как функция фракции кроссовера путем выполнения ga 20 раз и усреднение значений fval для каждой фракции кроссовера. На следующем рисунке показан результирующий график.

 Код для создания рисунка

Этот график также предлагает диапазон лучших вариантов для options.CrossoverFraction является 0.4 кому 0.8.

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