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

Выполнение 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 — Целочисленное значение, соответствующее причине завершения алгоритма

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

  • population — Итоговое население

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

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

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

Похожие темы