Чтобы запустить генетический алгоритм с опциями по умолчанию, вызовите ga с синтаксисом
[x,fval] = ga(@fitnessfun, nvars)
Входные параметры к ga
@fitnessfun — Указатель на функцию к файлу, который вычисляет функцию фитнеса. Вычислите Целевые функции, объясняет, как записать этот файл.
nvars — Количество независимых переменных для функции фитнеса.
Выходные аргументы
x — Конечная точка
fval — Значение фитнеса функционирует в x
Для описания дополнительных аргументов ввода и вывода смотрите страницу с описанием для ga.
Можно запуститься, пример, описанный в, Минимизируют Функцию Рэстриджина из командной строки путем ввода
rng(1,'twister') % for reproducibility [x,fval] = ga(@rastriginsfcn,2)
Это возвращается
Optimization terminated:
average change in the fitness value less than options.FunctionTolerance.
x =
-1.0421 -1.0018
fval =
2.4385Можно задать любую из опций, которые доступны для ga путем передачи options как входной параметр к ga использование синтаксиса
[x,fval] = ga(@fitnessfun,nvars,[],[],[],[],[],[],[],options)
Этот синтаксис не задает линейного равенства, линейного неравенства или нелинейных ограничений.
Вы создаете options использование функционального optimoptions.
options = optimoptions(@ga);
Это возвращает options со значениями по умолчанию для его полей. ga использование эти значения по умолчанию, если вы не передаете в опциях как входной параметр.
Значение каждой опции хранится в поле options, такой как options.PopulationSize. Можно отобразить любое из этих значений путем ввода options сопровождаемый периодом и именем поля. Например, чтобы отобразить размер населения для генетического алгоритма, войти
options.PopulationSize ans = '50 when numberOfVariables <= 5, else 200'
Создать options со значением поля, которое отличается от значения по умолчанию — например, чтобы установить PopulationSize к 100 вместо его значения по умолчанию 50 — войти
options = optimoptions('ga','PopulationSize',100);Это создает options со всем набором значений к их значениям по умолчанию за исключением PopulationSize, который установлен в 100.
Если вы теперь входите,
ga(@fitnessfun,nvars,[],[],[],[],[],[],[],options)
ga запускает генетический алгоритм с численностью населения 100.
Если вы впоследствии решаете изменить другое поле в options, такой как установка PlotFcn к @gaplotbestf, который строит лучшее значение функции фитнеса при каждой генерации, вызовите optimoptions с синтаксисом
options = optimoptions(options,'PlotFcn',@plotbestf);
Это сохраняет текущие значения всех полей options за исключением PlotFcn, который изменяется на @plotbestf. Обратите внимание на то, что, если вы не используете входной параметр options, optimoptions сброс PopulationSize к его значению по умолчанию.
Можно также установить оба PopulationSize и PlotFcn с одной командой
options = optimoptions('ga','PopulationSize',100,'PlotFcn',@plotbestf);Чтобы получить больше информации о производительности генетического алгоритма, можно вызвать ga с синтаксисом
[x,fval,exitflag,output,population,scores] = ga(@fitnessfcn, nvars)
Помимо x и fval, эта функция возвращает следующие дополнительные выходные аргументы:
exitflag — Целочисленное значение, соответствующее причине завершения алгоритма
output — Структура, содержащая информацию о производительности алгоритма при каждой генерации
population — Итоговое население
scores — Итоговые счета
Смотрите ga страница с описанием для получения дополнительной информации об этих аргументах.