Опции и Выходные параметры

Выполнение ga с Опциями по умолчанию

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

  • вывод Структура, содержащая информацию о производительности алгоритма при каждой генерации

  • population — Итоговая генеральная совокупность

  • scores — Итоговые счета

Смотрите страницу с описанием ga для получения дополнительной информации об этих аргументах.

Смотрите также

Похожие темы