exponenta event banner

Опции и выходные данные

Запуск ga с опциями по умолчанию

Чтобы запустить генетический алгоритм с опциями по умолчанию, вызовите ga с синтаксисом

[x,fval] = ga(@fitnessfun, nvars)

Входные аргументы для ga являются

Выходные аргументы:

  • x - Финальная точка

  • fval - Значение функции фитнеса при x

Описание дополнительных входных и выходных аргументов см. на справочной странице для ga.

Можно выполнить пример, описанный в разделе Минимизация функции Rastrigin, из командной строки, введя

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 для получения дополнительной информации об этих аргументах.

См. также

Связанные темы