Запуск ga из файла

Интерфейс командной строки позволяет вам запускать генетический алгоритм много раз, с различными настройками опций, используя файл. Например, вы можете запустить генетический алгоритм с различными настройками для Crossover fraction, чтобы увидеть, какой из них дает лучшие результаты. Следующий код запускает функцию 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.

Похожие темы