Чтобы запустить генетический алгоритм с опциями по умолчанию, вызовите ga с синтаксисом
[x,fval] = ga(@fitnessfun, nvars)
Входные параметры в ga являются
@fitnessfun - указатель на функцию в файл, который вычисляет функцию соответствия. Compute Objective Functions объясняет, как записать этот файл.
nvars - Количество независимых переменных для функции соответствия.
Выходные аргументы:
x - Конечная точка
fval - Значение функции соответствия в x
Описание дополнительных входных и выходных аргументов смотрите на странице с описанием для ga.
Можно запустить пример, описанный в Minimize Rastrigin's Function из командной строки, путем ввода
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 со значением поля, которое отличается от значения по умолчанию - for примера to set 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 Страница с описанием для получения дополнительной информации об этих аргументах.