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