Ссылка на опции оптимизации

Опции оптимизации

Следующая таблица описывает опции оптимизации. Создайте опции, используя optimoptions функции, или optimset для fminbnd, fminsearch, fzero, или lsqnonneg.

Для получения информации о доступных значениях опций и значениях по умолчанию см. Страницы с описанием отдельных функций.

Значения по умолчанию для опций варьируются в зависимости от того, с какой оптимизационной функцией вы вызываете options как входной параметр. Можно определить значения опций по умолчанию для любой из оптимизационных функций путем ввода оптимопций ('solvername') или эквивалентные опции (@ solvername). Для примера,

optimoptions('fmincon')

возвращает список опций и значений по умолчанию для значения по умолчанию 'interior-point' fmincon алгоритм. Чтобы найти значения по умолчанию для другого fmincon алгоритм, установите Algorithm опция. Для примера,

opts = optimoptions('fmincon','Algorithm','sqp')

optimoptions «скрывает» некоторые опции, то есть не отображает их значения. Эти опции не отображаются в этой таблице. Вместо этого они появляются в Скрытые опции (Hidden Options).

Опции оптимизации

Имя опцииОписаниеИспользуемые функциямиОграничения
AbsoluteGapTolerance

Неотрицательная реальность. intlinprog останавливается, если различие между внутренне вычисляемым верхним (U) и ниже (L) ограничения целевой функции меньше или равны AbsoluteGapTolerance:

U – L <= AbsoluteGapTolerance.

intlinprogoptimoptions только
AbsoluteMaxObjectiveCount

Количество F (x) для минимизации наихудших абсолютных значений.

fminimax

 
Algorithm

Выбирает алгоритм, используемый решателем.

fmincon, fminunc, fsolve, linprog, lsqcurvefit, lsqlin, lsqnonlin, quadprog 
BarrierParamUpdate

Выбирает алгоритм обновления барьерного параметра в 'interior-point' алгоритм, либо 'monotone' или 'predictor-corrector'.

fmincon 
BranchRule

Правило выбора компонента для ответвления:

  • 'maxpscost' - дробный компонент с максимальным псевдокостом. См. Ветвь и граница.

  • 'strongpscost' - дробный компонент с максимальным псевдокостом, с тщательной оценкой псевдокоста. См. Ветвь и граница.

  • 'reliability' - дробный компонент с максимальной псевдокостью, с еще более тщательной оценкой псевдокоста, чем в 'strongpscost'. См. Ветвь и граница.

  • 'mostfractional' - компонент, дробная часть которого наиболее близка к 1/2.

  • 'maxfun' - дробная составляющая с максимальным соответствующим компонентом в абсолютном значении целевого вектора f.

intlinprogoptimoptions только
CheckGradients

Сравните поставляемые пользователем аналитические производные (градиенты или якобианы, в зависимости от выбранного решателя) с конечными дифференциальными производными.

fgoalattain, fmincon, fminimax, fminunc, fseminf, fsolve, lsqcurvefit, lsqnonlin

optimoptions только. Для optimset, использовать DerivativeCheck
ConstraintTolerance

Допуск на нарушение ограничений.

coneprog, fgoalattain, fmincon, fminimax, fseminf, intlinprog, linprog, lsqlin, quadprog

optimoptions только. Для optimset, использовать TolCon
CutGeneration

Уровень генерации вырезов (см. «Генерация вырезов»):

  • 'none' - Без порезов. Делает CutMaxIterations нерелевантно.

  • 'basic' - Нормальная генерация резов.

  • 'intermediate' - Используйте больше типов вырезов.

  • 'advanced' - Используйте большинство типов вырезов.

intlinprogoptimoptions только
CutMaxIterationsКоличество проходов через все методы генерации резов перед входом в фазу ветвей и связей, целое число от 1 через 50. Отключите генерацию реза путем установки CutGeneration опция для 'none'.intlinprogoptimoptions только
Display

Level of display.

  • 'off' не отображает выход.

  • 'iter' отображает выход при каждой итерации и выдает выходное сообщение по умолчанию.

  • 'iter-detailed' отображает выход при каждой итерации и выдает техническое выходное сообщение.

  • 'notify' отображает вывод только, если функция не сходится, и выдает выходное сообщение по умолчанию.

  • 'notify-detailed' отображает вывод только, если функция не сходится, и выдает техническое выходное сообщение.

  • 'final' отображает только окончательный выход и выдает выходное сообщение по умолчанию.

  • 'final-detailed' отображает только окончательный выход и выдает техническое выходное сообщение.

Все. Смотрите отдельные страницы с описанием функций для значений, которые применяются.

 
EqualityGoalCount

Укажите количество целей, необходимых для этой цели fun чтобы равняться поставленной цели. Переупорядочить свои цели, при необходимости, чтобы иметь fgoalattain достигнуть первого EqualityGoalCount цели точно.

fgoalattain

optimoptions только. Для optimset, использовать GoalsExactAchieve
FiniteDifferenceStepSize

Скаляр или векторный коэффициент размера для конечных различий. Когда вы задаете FiniteDifferenceStepSize в вектор v, прямые конечные различия delta являются

delta = v.*sign′(x).*max(abs(x),TypicalX);

где sign′(x) = sign(x) кроме sign′(0) = 1. Центральные конечные различия

delta = v.*max(abs(x),TypicalX);

Скалярные FiniteDifferenceStepSize расширяется до вектора. Значение по умолчанию является sqrt(eps) для прямых конечных различий и eps^(1/3) для центральных конечных различий.

fgoalattain, fmincon, fminimax, fminunc, fseminf, fsolve, lsqcurvefit, lsqnonlin

optimoptions только. Для optimset, использовать FinDiffRelStep
FiniteDifferenceType

Конечные различия, используемые для оценки градиентов, либо 'forward' (по умолчанию), или 'central' (с центром), который занимает в два раза больше вычислений функции, но должен быть более точным. 'central' различия могут нарушить границы во время их оценки в fmincon вычисления внутренних точек, если HonorBounds для опции задано значение false.

fgoalattain, fmincon, fminimax, fminunc, fseminf, fsolve, lsqcurvefit, lsqnonlin

optimoptions только. Для optimset, использовать FinDiffType
FunctionTolerance

Допуск на разрыв значения функции.

fgoalattain, fmincon, fminimax, fminsearch, fminunc, fseminf, fsolve, lsqcurvefit, lsqlin, lsqnonlin, quadprog 

optimoptions только. Для optimset, использовать TolFun
HessianApproximation

Метод гессианского приближения: 'bfgs', 'lbfgs', {'lbfgs',Positive Integer}, или 'finite-difference'.

Игнорируется, когда HessianFcn или HessianMultiplyFcn не пуст.

fmincon

optimoptions только. Для optimset, использовать Hessian
HessianFcn

Поставляемый пользователем Гессиан, заданный как указатель на функцию (см., Включая Гессианы).

fmincon, fminuncoptimoptions только. Для optimset, использовать HessFcn
HessianMultiplyFcn

Пользовательская функция умножения Гессиана, заданная как указатель на функцию.

Игнорируется, когда HessianFcn не пуст.

fmincon, fminunc, quadprog

optimoptions только. Для optimset, использовать HessMult
Heuristics

Алгоритм поиска допустимых точек (см. Эвристику для нахождения возможных решений):

  • 'basic'

  • 'intermediate'

  • 'advanced'

  • 'rss'

  • 'rins'

  • 'round'

  • 'diving'

  • 'rss-diving'

  • 'rins-diving'

  • 'round-diving'

  • 'none'

intlinprogoptimoptions только
HeuristicsMaxNodesСтрого положительное целое число, которое ограничивает число узлов intlinprog может исследовать в своем разветвленном и связанном поиске допустимые точки. Смотрите Эвристику для нахождения возможных решений.intlinprogoptimoptions только
HonorBounds

Значение по умолчанию true гарантирует, что связанные ограничения выполняются при каждой итерации. Отключите, установив значение false.

fminconoptimoptions только. Для optimset, использовать AlwaysHonorConstraints
IntegerPreprocess

Типы предварительной обработки целого числа (см. Смешано-целочисленная предварительная обработка программы):

  • 'none' - Используйте очень мало целочисленных шагов предварительной обработки.

  • 'basic' - Используйте умеренное количество целочисленных шагов предварительной обработки.

  • 'advanced' - Используйте все доступные целочисленные шаги предварительной обработки.

intlinprogoptimoptions только
IntegerToleranceРеальный из 1e-6 через 1e-3, где максимальное отклонение от целого числа, которое составляет компонент решения x может иметь и все еще считаться целым числом. IntegerTolerance не является критерием остановки.intlinprogoptimoptions только
JacobianMultiplyFcn

Пользовательская функция умножения Якобиана, заданная как указатель на функцию. Проигнорировано, если SpecifyObjectiveGradient является true для fsolve, lsqcurvefit, и lsqnonlin.

fsolve, lsqcurvefit, lsqlin, lsqnonlin

 
LinearSolver

Тип внутреннего линейного решателя в алгоритме. Для lsqlin и quadprog:

  • 'auto' - Использовать 'sparse' если переданная квадратичная матрица разрежена (H для quadprog, C для lsqlin), 'dense' в противном случае.

  • 'sparse' - Используйте линейную алгебру для разреженных матриц.

  • 'dense' - Используйте плотную линейную алгебру.

Для coneprog:

  • 'auto' (по умолчанию) - coneprog выбирает решатель шага.

    • Если задача разрежена, то решатель шага 'prodchol'.

    • В противном случае решатель шага 'augmented'.

  • 'augmented' - Решение шага дополненной формы. См. раздел [1].

  • 'normal' - Решатель шага нормальной формы. См. раздел [1].

  • 'prodchol' - Форма продукта Холецкий шаговый решатель. См. [4] и [5].

  • 'schur' - решатель шага метода комплемента Шура. См. раздел [2].

coneprog, lsqlin 'interior-point' алгоритм и quadprog 'interior-point-convex' алгоритм

 
LPMaxIterationsСтрого положительное целое число, максимальное количество итераций симплексного алгоритма на узел в процессе ветви и связи.intlinprogoptimoptions только
LPOptimalityToleranceНеотрицательная реальность, где снижение затрат должно превышать LPOptimalityTolerance для переменной, которая будет принята в базис.intlinprogoptimoptions только
MaxFunctionEvaluations

Максимально допустимое количество вычислений функции.

fgoalattain, fminbnd, fmincon, fminimax, fminsearch, fminunc, fseminf, fsolve, lsqcurvefit, lsqnonlin

optimoptions только. Для optimset, использовать MaxFunEvals
MaxIterations

Максимально допустимое количество итераций.

Все, кроме fzero и lsqnonneg

optimoptions только. Для optimset, использовать MaxIter
MaxFeasiblePointsСтрого положительное целое число. intlinprog останавливается, если находит MaxFeasiblePoints целочисленные допустимые точки.intlinprogoptimoptions только
MaxNodesСтрого положительное целое число, которое является максимальным числом узлов, которые решатель исследует в своем процессе ветви и связи.

intlinprog

 
MaxTime

Максимально допустимое время в секундах для алгоритма.

coneprog, intlinprog, linprog

 
NodeSelection

Выберите узел для следующего исследования.

  • 'simplebestproj' - Лучшая проекция. См. Ветвь и граница.

  • 'minobj' - Исследуйте узел с минимальной целевой функцией.

  • 'mininfeas' - Исследуйте узел с минимальной суммой целочисленных infeasibilities. См. Ветвь и граница.

intlinprogoptimoptions только
ObjectiveCutOffДействительное больше -Inf. Значение по умолчанию является Inf.intlinprogoptimoptions только
ObjectiveImprovementThresholdНеотрицательная реальность. intlinprog изменяет текущее возможное решение только, когда оно находит другое со значением целевой функции, которое по крайней мере ObjectiveImprovementThreshold low: (fold - fnew )/( 1 + |fold|) > ObjectiveImprovementThreshold.intlinprogoptimoptions только
ObjectiveLimit

Если значение целевой функции идет ниже ObjectiveLimit и итерат является допустимым, затем итерации останавливаются.

fmincon, fminunc, lsqlin, quadprog 
OptimalityTolerance

Допуск окончания по оптимальности первого порядка.

coneprog, fgoalattain, fmincon, fminimax, fminunc, fseminf, fsolve, linprog (interior-point только), lsqcurvefit, lsqlin, lsqnonlin, quadprog 

optimoptions только. Для optimset, использовать TolFun
OutputFcn

Задайте одну или несколько пользовательских функций, которые вызываются функциями оптимизации при каждой итерации. Передайте указатель на функцию или cell-массив указателей на функцию. См. «Синтаксис выходной функции и функции построения графика» или «Синтаксис выходной функции intlinprog» и «Синтаксис функции построения графика».

fgoalattain, fminbnd, fmincon, fminimax, fminsearch, fminunc, fseminf, fsolve, fzero, intlinprog, lsqcurvefit, lsqnonlin

 
PlotFcn

Строит графики различных показателей прогресса во время выполнения алгоритма. Выберите из предопределенных графиков или напишите свои собственные. Задайте имя функции как перечисленное или как указатель на функцию, такой как @optimplotx. Передайте встроенное имя функции построения графика, указатель на функцию или массив ячеек из встроенных имен или указателей на функцию. Для пользовательских функций построения графика передайте указатели на функцию.

  • 'optimplotx' строит графики текущей точки

  • 'optimplotfunccount' строит график счетчика функций

  • 'optimplotfval' строит график значения функции

  • 'optimplotfvalconstr' Строит графики наилучшего допустимого значения целевой функции, найденного как линейный график. График показывает недопустимые точки как красные, а допустимые точки как синие, используя допустимый допуск 1e-6.

  • 'optimplotconstrviolation' строит график максимального нарушения ограничений

  • 'optimplotresnorm' строит графики нормы невязок

  • 'optimplotfirstorderopt' строит графики первого порядка оптимальности

  • 'optimplotstepsize' строит графики размера шага

  • 'optimplotmilp' строит графики разрыва для смешано-целочисленных линейных программ

Смотрите Функции построения графика или синтаксис Выходной функции и Функции построения графика.

fgoalattain, fminbnd, fmincon, fminimax, fminsearch, fminunc, fseminf, fsolve, fzero, intlinprog, lsqcurvefit, lsqnonlin. Смотрите отдельные страницы с описанием функций для значений, которые применяются.

optimoptions только. Для optimset, использовать PlotFcns
RelativeGapTolerance

Реальный из 0 через 1. intlinprog останавливается, если относительное различие между внутренне вычисляемым верхним (U) и ниже (L) ограничения целевой функции меньше или равны RelativeGapTolerance:

(U – L) / (abs(U) + 1) <= RelativeGapTolerance.

intlinprog автоматически изменяет допуск для больших L величины:

допуск = min(1/(1+|L|), RelativeGapTolerance)

intlinprogoptimoptions только
RootLPAlgorithm

Алгоритм решения линейных программ:

  • 'dual-simplex' - Алгоритм двойного симплекса

  • 'primal-simplex' - Основной алгоритм симплекса

intlinprogoptimoptions только
RootLPMaxIterationsНеотрицательное целое число, которое является максимальным количеством итераций алгоритма симплекса, чтобы решить начальную задачу линейного программирования.intlinprogoptimoptions только
ScaleProblem

Для fmincon interior-point и sqp алгоритмы, true заставляет алгоритм нормализовать все ограничения и целевую функцию по их начальным значениям. Отключите путем установки значения по умолчанию false.

fmincon 
SpecifyConstraintGradient

Пользовательские градиенты для нелинейных ограничений.

fgoalattain, fmincon, fminimax

optimoptions только. Для optimset, использовать GradConstr
SpecifyObjectiveGradient

Пользовательские градиенты или якобианы для целевых функций.

fgoalattain, fmincon, fminimax, fminunc, fseminf, fsolve, lsqcurvefit, lsqnonlin

optimoptions только. Для optimset, использовать GradObj или Jacobian
StepTolerance

Допуск завершения на x.

Все функции, кроме linprog и coneprog

 
SubproblemAlgorithm

Определяет, как вычисляется шаг итерации.

fmincon, fminunc, fsolve, lsqcurvefit, lsqlin, lsqnonlin 
TypicalX

Массив, который задает типовую величину массива параметров x. Размер массива равен размеру x0, а начальная точка. В основном для масштабирования конечных различий для оценки градиента.

fgoalattain, fmincon, fminimax, fminunc, fseminf, fsolve, lsqcurvefit, lsqlin, lsqnonlin, quadprog

 
UseParallel

Когда trueприменимые решатели оценивают градиенты параллельно. Отключите, установив значение false.

fgoalattain, fmincon, fminimax, fminunc, fsolve, lsqcurvefit, lsqnonlin.

 

Скрытые опции

optimoptions «скрывает» некоторые опции, то есть не отображает их значения. Чтобы узнать, как просмотреть эти опции и почему они скрыты, см. раздел «Опции представления».

Страницы с описанием функций перечисляют эти опции курсивом.

Скрытые опции Optimization Toolbox

В этой таблице перечислены скрытые опции Optimization Toolbox™.

Опции, которые optimoptions Скрывается

Имя опцииОписаниеИспользуемые функциямиОграничения
Диагностика

Отобразите диагностическую информацию о функции, которая будет минимизирована или решена.

Все, кроме fminbnd, fminsearch, fzero, и lsqnonneg

 
DiffMaxChange

Максимальное изменение переменных для конечного дифференцирования.

fgoalattain, fmincon, fminimax, fminunc, fseminf, fsolve, lsqcurvefit, lsqnonlin

 
DiffMinChange

Минимальное изменение переменных для конечного дифференцирования.

fgoalattain, fmincon, fminimax, fminunc, fseminf, fsolve, lsqcurvefit, lsqnonlin

 
FunValCheck

Проверьте, действительны ли целевая функция и значения ограничений. 'on' отображает ошибку, когда целевая функция или ограничения возвращают значение, которое complex, NaN, или Inf.

Примечание

FunValCheck не возвращает ошибку для Inf при использовании с fminbnd, fminsearch, или fzero, которые обрабатывают Inf соответственно.

'off' не отображает ошибок.

fgoalattain, fminbnd, fmincon, fminimax, fminsearch, fminunc, fseminf, fsolve, fzero, lsqcurvefit, lsqnonlin

 
HessPattern

Шаблон разреженности Гессиана для конечного дифференцирования. Размер матрицы n-на-n, где n - количество элементов в x0, а начальная точка.

fmincon, fminunc

 
HessUpdate

Схема обновления Квази-Ньютона.

fminunc

 
InitBarrierParam

Начальное значение барьера.

fmincon 
InitDamping

Начальный параметр Левенберга-Марквардта.

fsolve, lsqcurvefit, lsqnonlinoptimoptions только
InitTrustRegionRadius

Начальный радиус доверительной области.

fmincon 
JacobPattern

Разреженность шаблона якобиана для конечного дифференцирования. Размер матрицы m-by- n, где m - количество значений в первом аргументе, возвращаемое заданной пользователем функцией fun, и n количество элементов в x0, а начальная точка.

fsolve, lsqcurvefit, lsqnonlin

 
LPPreprocess

Тип предварительной обработки для решения расслабленной линейной программы (см. Линейная предварительная обработка программы):

  • 'none' - Нет предварительной обработки.

  • 'basic' - Использовать предварительную обработку.

intlinprogoptimoptions только
MaxPCGIter

Максимально допустимое количество итераций предварительно обусловленного метода сопряженных градиентов.

fmincon, fminunc, fsolve, lsqcurvefit, lsqlin, lsqnonlin, quadprog

 
MaxProjCGIter

Допуск на количество проецируемых сопряженных итераций градиента; это внутренняя итерация, а не количество итераций алгоритма.

fmincon 
MaxSQPIter

Максимально допустимое количество итераций метода последовательного квадратичного программирования.

fgoalattain, fmincon, fminimax

 
MeritFunction

Используйте функцию достижения цели/минимаксных заслуг (мультиобъективную) против fmincon (единая цель).

fgoalattain, fminimax

 
PrecondBandWidth

Верхняя полоса предварительно обусловленного устройства для PCG. Установка значения 'Inf' использует прямое факторизация вместо CG.

fmincon, fminunc, fsolve, lsqcurvefit, lsqlin, lsqnonlin, quadprog

 
Предварительно обработать

Уровень предварительной обработки НД перед итерациями симплексного или двойного симплексного алгоритма.

linprog

optimoptions только
RelLineSrchBnd

Относительная граница по длине шага поиска по линии.

fgoalattain, fmincon, fminimax, fseminf

 
RelLineSrchBndDuration

Количество итераций, для которых граница задана в RelLineSrchBnd должен быть активен.

fgoalattain, fmincon, fminimax, fseminf

 
ScaleProblem

При использовании Algorithm опция 'levenberg-marquardt', установка ScaleProblem опция для 'jacobian' иногда помогает решателю при плохо масштабированных задачах.

fsolve, lsqcurvefit, lsqnonlin 
TolConSQP

Допуск нарушения ограничений для внутренней итерации SQP.

fgoalattain, fmincon, fminimax, fseminf 
TolPCG

Допуск завершения на итерации PCG.

fmincon, fminunc, fsolve, lsqcurvefit, lsqlin, lsqnonlin, quadprog

 
TolProjCG

A относительной погрешности для проектируемого сопряженного алгоритма градиента; это для внутренней итерации, а не для итерации алгоритма.

fmincon 
TolProjCGAbs

Абсолютная погрешность для проектируемого сопряженного алгоритма градиента; это для внутренней итерации, а не для итерации алгоритма.

fmincon 

Скрытые опции Global Optimization Toolbox

По причинам, по которым эти опции скрыты, см. «Параметры, которые скрывает оптимизация» (Global Optimization Toolbox).

Опции, которые optimoptions Скрывается

Имя опцииИспользуемые функциями
Кэш

patternsearch

CacheSize

patternsearch

CacheTol

patternsearch

DisplayInterval

particleswarm, simulannealbnd

FunValCheck

particleswarm

HybridInterval

simulannealbnd

InitialPenalty

ga, patternsearch

MaxMeshSize

patternsearch

MeshRotate

patternsearch

MigrationDirection

ga

MigrationFraction

ga

MigrationInterval

ga

PenaltyFactor

ga, patternsearch

PlotInterval

ga, patternsearch, simulannealbnd

StallTest

ga

TolBindpatternsearch

Похожие темы