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