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

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

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

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

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

optimoptions('fmincon')

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

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

optimoptions “скрывает” некоторые опции, означая, что он не отображает их значения. Те опции не появляются в этой таблице. Вместо этого они появляются в Скрытых Опциях.

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

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

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

U – L <= AbsoluteGapTolerance.

intlinprogoptimoptions только
AbsoluteMaxObjectiveCount

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

fminimax

 
Algorithm

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

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

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

  • 'maxpscost' — Дробный компонент с максимальной псевдостоимостью. Смотрите Ответвление и Связанный.

  • 'strongpscost' — Дробный компонент с максимальной псевдостоимостью, с осторожной оценкой псевдостоимости. Смотрите Ответвление и Связанный.

  • 'reliability' — Дробный компонент с максимальной псевдостоимостью, с еще более осторожной оценкой псевдостоимости, чем в 'strongpscost'. Смотрите Ответвление и Связанный.

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

  • 'maxfun' — Дробный компонент с максимальным соответствующим компонентом в абсолютном значении объективного векторного f.

intlinprogoptimoptions только
CheckGradients

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

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

optimoptions только. Для optimset используйте DerivativeCheck
ConstraintTolerance

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

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

Уровень отображения.

  • '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

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

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

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

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

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

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

intlinprog, linprog

 
NodeSelection

Выберите узел, чтобы исследовать затем.

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

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

fmincon, fminunc, quadprog 
OptimalityTolerance

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

fgoalattain, fmincon, fminimax, fminsearch, 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' строит значение функции

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

  • 'optimplotresnorm' строит норму невязок

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

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

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

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

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 и lsqlin

optimoptions только. Для optimset используйте TolX
SubproblemAlgorithm

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

fmincon 
TypicalX

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

fgoalattain, fmincon, fminimax, fminunc, 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

Начальный параметр Levenberg-Marquardt.

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

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

Уровень предварительной обработки LP до симплексных или двойных симплексных итераций алгоритма.

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

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

fmincon 
TolProjCGAbs

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

fmincon 

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

По причинам эти опции скрыты, видят Опции, которые optimoptions Скрывает (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

Похожие темы

Для просмотра документации необходимо авторизоваться на сайте