Опции и выходы

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

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

См. также

Похожие темы