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