主要内容

优化选项参考

优化选项

下表描述了优化选项。创建选项optimoptions函数,或optimsetfminbndfminsearchfzero,或lsqnonneg

有关可用选项值和默认值的信息,请参阅各个函数参考页。

这些选项的默认值取决于所调用的优化函数选项作为输入参数。您可以通过输入确定任何优化函数的默认选项值optimoptions ('solvername”)或等价的optimoptions (@solvername.例如,

optimoptions (“fmincon”

返回选项列表和默认值“内点”fmincon算法。找到另一个的默认值fmincon算法,设置算法选择。例如,

Opts = optimoptions(“fmincon”“算法”“sqp”

optimoptions“隐藏”一些选项,这意味着它不显示它们的值。这些选项没有出现在这个表中。相反,它们出现在隐藏选项

优化选项

选项名称 描述 函数使用 限制
AbsoluteGapTolerance

负的真实。intlinprog如果内部计算的上部(U)及较低(l)目标函数上的边界小于或等于AbsoluteGapTolerance

U - L <= AbsoluteGapTolerance

intlinprog optimoptions只有
AbsoluteMaxObjectiveCount

的数量Fx),以尽量减少最坏情况下的绝对值。

fminimax

算法

选择求解器使用的算法。

fminconfminuncfsolvelinproglsqcurvefitlsqlinlsqnonlinquadprog
BarrierParamUpdate

中选择用于更新屏障参数的算法“内点”算法,要么“单调”预估的

fmincon
BranchRule

选择分支组件的规则:

  • “maxpscost”-伪成本最大的分数部分。看到分支与边界

  • “strongpscost”-具有最大伪成本的分数部分,并仔细估计伪成本。看到分支与边界

  • “可靠性”-具有最大伪成本的分数部分,对伪成本的估计甚至比在“strongpscost”.看到分支与边界

  • “mostfractional”—小数部分最接近的分量1/2

  • “maxfun”-目标向量绝对值中对应分量最大的分数分量f

intlinprog optimoptions只有
CheckGradients

比较用户提供的分析导数(梯度或雅可比矩阵,取决于选择的求解器)与有限差分导数。

fgoalattainfminconfminimaxfminuncfseminffsolvelsqcurvefitlsqnonlin

optimoptions只有。为optimset,使用DerivativeCheck
ConstraintTolerance

对约束违反的容忍度。

coneprogfgoalattainfminconfminimaxfseminfintlinproglinproglsqlinquadprog

optimoptions只有。为optimset,使用TolCon
CutGeneration

切割产生的水平(见减少代):

  • “没有”-不削减。使CutMaxIterations无关紧要的。

  • “基本”-正常切割生成。

  • “中间”-使用更多切割类型。

  • “高级”-使用大多数切割类型。

intlinprog optimoptions只有
CutMaxIterations 在进入分支定界阶段之前通过所有切割生成方法的次数,从1通过50.禁用切割生成通过设置CutGeneration选项“没有” intlinprog optimoptions只有
显示

显示级别。

  • “关闭”不显示输出。

  • “通路”显示每次迭代的输出,并给出默认的退出消息。

  • “iter-detailed”显示每次迭代的输出,并给出技术退出消息。

  • “通知”仅在函数不收敛时显示输出,并给出默认的退出消息。

  • “notify-detailed”仅在函数不收敛时显示输出,并给出技术退出消息。

  • “最后一次”只显示最终输出,并给出默认的退出消息。

  • 最后详细的只显示最终输出,并给出技术性退出消息。

所有人。有关应用的值,请参阅各个函数参考页。

EnableFeasibilityMode

选择算法以达到可行性“内点”算法。真正的使用与默认算法不同的算法

fmincon
EqualityGoalCount

指定目标所需的目标数量有趣的达到设定的目标。如果有必要,重新安排你的目标fgoalattain实现第一EqualityGoalCount目标准确。

fgoalattain

optimoptions只有。为optimset,使用GoalsExactAchieve
FiniteDifferenceStepSize

有限差分的标量或矢量步长因子。当你设置FiniteDifferenceStepSize到一个向量v,正向有限差分δ

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

在哪里符号' (x) =符号(x)除了符号' (0)= 1.中心有限差分为

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

标量FiniteDifferenceStepSize展开成一个向量。默认为sqrt (eps)对于正向有限差分,和eps ^ (1/3)对于中心有限差分。

fgoalattainfminconfminimaxfminuncfseminffsolvelsqcurvefitlsqnonlin

optimoptions只有。为optimset,使用FinDiffRelStep
FiniteDifferenceType

有限差分,用来估计梯度,是“前进”(默认值),或“中央”(居中),它需要两倍的函数计算,但应该更准确。“中央”中求值时,差异可能会违反边界fmincon内点评估,如果HonorBounds选项设置为

fgoalattainfminconfminimaxfminuncfseminffsolvelsqcurvefitlsqnonlin

optimoptions只有。为optimset,使用FinDiffType
FunctionTolerance

函数值上的终止公差。

fgoalattainfminconfminimaxfminsearchfminuncfseminffsolvelsqcurvefitlsqlinlsqnonlinquadprog

optimoptions只有。为optimset,使用TolFun
HessianApproximation

黑森近似法:“蓄热”“lbfgs”{“lbfgs”,正整数},或有限差分的

忽略时HessianFcnHessianMultiplyFcn非空的。

fmincon

optimoptions只有。为optimset,使用黑森
HessianFcn

用户提供的Hessian,指定为函数句柄(参见包括麻布).

fminconfminunc optimoptions只有。为optimset,使用HessFcn
HessianMultiplyFcn

用户提供的Hessian乘法函数,指定为函数句柄。

忽略时HessianFcn非空的。

fminconfminuncquadprog

optimoptions只有。为optimset,使用HessMult
启发式

搜索可行点的算法(见寻找可行解的启发式方法金宝搏官方网站):

  • “基本”

  • “中间”

  • “高级”

  • “rss”

  • “rin”

  • “圆”

  • “潜水”

  • “rss-diving”

  • “rins-diving”

  • “round-diving”

  • “没有”

intlinprog optimoptions只有
HeuristicsMaxNodes 严格的正整数,限制了节点的数量intlinprog可以在其分支定界中探索可行点的搜索。看到寻找可行解的启发式方法金宝搏官方网站 intlinprog optimoptions只有
HonorBounds

默认的真正的确保在每次迭代中都满足绑定的约束。设置为关闭

fmincon optimoptions只有。为optimset,使用AlwaysHonorConstraints
IntegerPreprocess

整数预处理的类型(参见混合整数程序预处理):

  • “没有”-使用很少的整数预处理步骤。

  • “基本”—使用适度的整数预处理步骤。

  • “高级”—使用所有可用的整数预处理步骤。

intlinprog optimoptions只有
IntegerTolerance 真正的从1 e-6通过1 e - 3,其中与整数的最大偏差表示解的一个分量x可以被认为是一个整数。IntegerTolerance不是停止标准。 intlinprog optimoptions只有
JacobianMultiplyFcn

用户定义的雅可比乘法函数,指定为函数句柄。忽略,除非SpecifyObjectiveGradient真正的fsolvelsqcurvefit,lsqnonlin

fsolvelsqcurvefitlsqlinlsqnonlin

LinearSolver

算法中内部线性求解器的类型。为lsqlin而且quadprog

  • “汽车”——使用“稀疏”如果传递的二次矩阵是稀疏的(HquadprogClsqlin),“密集”否则。

  • “稀疏”-使用稀疏线性代数。

  • “密集”-使用密集线性代数。

coneprog

  • “汽车”(默认)coneprog选择分步求解器。

    • 如果问题是稀疏的,则步进求解器是“prodchol”

    • 否则,步进求解器是“增强”

  • “增强”-增强形式步骤求解器。看到[1]

  • “正常”-标准形式步进求解器。看到[1]

  • “prodchol”-产品形式Cholesky步进求解器。看到[4]而且[5]

  • “舒尔”舒尔补法步进求解器。看到[2]

coneproglsqlin“内点”算法和quadprog“interior-point-convex”算法

LPMaxIterations 严格的正整数,分支定界过程中每个节点的最大单纯形迭代次数。 intlinprog optimoptions只有
LPOptimalityTolerance 非负实,其中降低成本必须超过LPOptimalityTolerance将一个变量带入基中。 intlinprog optimoptions只有
MaxFunctionEvaluations

允许的函数求值的最大数量。

fgoalattainfminbndfminconfminimaxfminsearchfminuncfseminffsolvelsqcurvefitlsqnonlin

optimoptions只有。为optimset,使用MaxFunEvals
MaxIterations

允许的最大迭代次数。

除了fzero而且lsqnonneg

optimoptions只有。为optimset,使用麦克斯特
MaxFeasiblePoints 严格的正整数。intlinprog如果发现就停止MaxFeasiblePoints整数可行点。 intlinprog optimoptions只有
MaxNodes 严格的正整数,这是求解器在其分支定界过程中探索的最大节点数。

intlinprog

MaxTime

算法允许的最大时间(以秒为单位)。

coneprogintlinproglinprog

NodeSelection

选择接下来要探索的节点。

  • “simplebestproj”-最佳投影。看到分支与边界

  • “minobj”-探索目标函数最小的节点。

  • “mininfeas”-探索具有最小整数不可行性的节点。看到分支与边界

intlinprog optimoptions只有
ObjectiveCutOff 实数大于.默认为 intlinprog optimoptions只有
ObjectiveImprovementThreshold 负的真实。intlinprog只有当它定位到另一个目标函数值至少为时,才会改变当前的可行解ObjectiveImprovementThreshold低:(fold - fnew)/(1 + |fold|) >目标改善阈值 intlinprog optimoptions只有
ObjectiveLimit

如果目标函数值低于ObjectiveLimit迭代是可行的,然后迭代停止。

fminconfminunclsqlinquadprog
OptimalityTolerance

一阶最优性的终止容差。

coneprogfgoalattainfminconfminimaxfminuncfseminffsolvelinprog内点唯一的),lsqcurvefitlsqlinlsqnonlinquadprog

optimoptions只有。为optimset,使用TolFun
OutputFcn

指定优化函数在每次迭代时调用的一个或多个用户定义函数。传递一个函数句柄或函数句柄的单元格数组。看到输出函数和图函数语法intlinprog输出函数和图函数语法

fgoalattainfminbndfminconfminimaxfminsearchfminuncfseminffsolvefzerointlinproglsqcurvefitlsqnonlin

PlotFcn

在算法执行时绘制各种进度度量。从预定义的情节中选择或编写自己的。给出列出的函数名,或函数句柄,如@optimplotx.传递内置绘图函数名、函数句柄或内置名称或函数句柄的单元格数组。对于自定义绘图函数,传递函数句柄。

  • “optimplotx”绘制当前点

  • “optimplotfunccount”绘制函数计数图

  • “optimplotfval”绘制函数值

  • “optimplotfvalconstr”以折线图的形式绘制出最佳可行目标函数值。的可行性容差,该图将不可行点表示为红色,可行点表示为蓝色1 e-6

  • “optimplotconstrviolation”绘制最大违反约束的情况

  • “optimplotresnorm”绘制残差的范数

  • “optimplotfirstorderopt”画出最优的一阶

  • “optimplotstepsize”绘制步长

  • “optimplotmilp”绘制混合整数线性规划的间隙

看到绘制函数intlinprog输出函数和图函数语法

fgoalattainfminbndfminconfminimaxfminsearchfminuncfseminffsolvefzerointlinproglsqcurvefitlsqnonlin.有关应用的值,请参阅各个函数参考页。

optimoptions只有。为optimset,使用PlotFcns
RelativeGapTolerance

真正的从0通过1intlinprog如果内部计算的上(U)及较低(l)目标函数上的边界小于或等于RelativeGapTolerance

(U - L) / (abs(U) + 1) <= RelativeGapTolerance

intlinprog optimoptions只有
RootLPAlgorithm

求解线性规划的算法:

  • 对偶单纯形的—对偶单纯形算法

  • “primal-simplex”-原始单纯形算法

intlinprog optimoptions只有
RootLPMaxIterations 非负整数,即解决初始线性规划问题的单纯形算法的最大迭代次数。 intlinprog optimoptions只有
ScaleProblem

fmincon内点而且sqp算法,真正的使算法通过约束和目标函数的初始值归一化。通过设置为默认值禁用

fmincon
SpecifyConstraintGradient

用户定义的非线性约束梯度。

fgoalattainfminconfminimax

optimoptions只有。为optimset,使用GradConstr
SpecifyObjectiveGradient

目标函数的用户定义梯度或雅可比矩阵。

fgoalattainfminconfminimaxfminuncfseminffsolvelsqcurvefitlsqnonlin

optimoptions只有。为optimset,使用GradObj雅可比矩阵
StepTolerance

终止公差x

所有功能linprog而且coneprog

SubproblemAlgorithm

确定如何计算迭代步骤。

fminconfminuncfsolvelsqcurvefitlsqlinlsqnonlin
TypicalX

数组,指定参数数组的典型大小x.数组的大小等于的大小x0这是起点。主要用于缩放有限差分进行梯度估计。

fgoalattainfminconfminimaxfminuncfseminffsolvelsqcurvefitlsqlinlsqnonlinquadprog

UseParallel

真正的,适用求解器并行估计梯度。通过设置为禁用

fgoalattainfminconfminimaxfminuncfsolvelsqcurvefitlsqnonlin

隐藏选项

optimoptions“隐藏”一些选项,这意味着它不显示它们的值。若要了解如何查看这些选项以及隐藏这些选项的原因,请参见视图选项

函数参考页中列出了这些选项斜体。

隐藏的优化工具箱选项

此表列出隐藏的优化工具箱™选项。

选项optimoptions隐藏了

选项名称 描述 函数使用 限制
诊断

显示有关要最小化或解决的功能的诊断信息。

除了fminbndfminsearchfzero,lsqnonneg

DiffMaxChange

有限差分的最大变量变化。

fgoalattainfminconfminimaxfminuncfseminffsolvelsqcurvefitlsqnonlin

DiffMinChange

有限差分的最小变量变化。

fgoalattainfminconfminimaxfminuncfseminffsolvelsqcurvefitlsqnonlin

FunValCheck

检查目标函数和约束值是否有效。“上”当目标函数或约束返回值为时,显示错误复杂的,或

请注意

FunValCheck不返回错误为与连用时fminbndfminsearch,或fzero,哪个句柄适当。

“关闭”不显示错误。

fgoalattainfminbndfminconfminimaxfminsearchfminuncfseminffsolvefzerolsqcurvefitlsqnonlin

HessPattern

有限差分Hessian的稀疏模式。矩阵的大小是n × n,其中n是其中元素的个数x0这是起点。

fminconfminunc

HessUpdate

准牛顿更新方案。

fminunc

InitBarrierParam

初始势垒值。

fmincon
InitDamping

初始Levenberg-Marquardt参数。

fsolvelsqcurvefitlsqnonlin optimoptions只有
InitTrustRegionRadius

信任区域的初始半径。

fmincon
JacobPattern

有限差分雅可比矩阵的稀疏模式。矩阵的大小是——- - - - - -n,在那里用户指定的函数是否返回第一个参数中的值的数量有趣的,n元素的个数是多少x0这是起点。

fsolvelsqcurvefitlsqnonlin

LPPreprocess

松弛线性规划的解的预处理类型(见线性规划预处理):

  • “没有”—不进行预处理。

  • “基本”—使用预处理。

intlinprog optimoptions只有
MaxPCGIter

预条件共轭梯度法允许的最大迭代次数。

fminconfminuncfsolvelsqcurvefitlsqlinlsqnonlinquadprog

MaxProjCGIter

对投影共轭梯度迭代次数的公差;这是一个内部迭代,而不是算法的迭代次数。

fmincon
MaxSQPIter

序列二次规划方法允许的最大迭代次数。

fgoalattainfminconfminimax

MeritFunction

使用目标实现/极大极小价值函数(多目标)vs。fmincon(单目标)。

fgoalattainfminimax

PrecondBandWidth

PCG预处理器的上带宽。设置为“正”使用直接因式分解代替CG。

fminconfminuncfsolvelsqcurvefitlsqlinlsqnonlinquadprog

进行预处理

在单纯形或对偶单纯形算法迭代之前的LP预处理级别。

linprog

optimoptions只有
RelLineSrchBnd

在线搜索的相对边界步长。

fgoalattainfminconfminimaxfseminf

RelLineSrchBndDuration

中指定的边界的迭代次数RelLineSrchBnd应该是积极的。

fgoalattainfminconfminimaxfseminf

ScaleProblem

当使用算法选项“levenberg-marquardt”,设置ScaleProblem选项的雅可比矩阵有时可以帮助解决规模不好的问题。

fsolvelsqcurvefitlsqnonlin
TolConSQP

内部SQP迭代的约束违反容忍度。

fgoalattainfminconfminimaxfseminf
TolPCG

PCG迭代的终止公差。

fminconfminuncfsolvelsqcurvefitlsqlinlsqnonlinquadprog

TolProjCG

投影共轭梯度算法的相对容差这是针对内部迭代,而不是算法迭代。

fmincon
TolProjCGAbs

投影共轭梯度算法的绝对容差这是针对内部迭代,而不是算法迭代。

fmincon

隐藏的全局优化工具箱选项

由于这些选项隐藏的原因,请参见optimoptions隐藏的选项(全局优化工具箱)

选项optimoptions隐藏了

选项名称 函数使用
缓存

patternsearch

CacheSize

patternsearch

CacheTol

patternsearch

DisplayInterval

particleswarmsimulannealbnd

FunValCheck

particleswarm

HybridInterval

simulannealbnd

InitialPenalty

遗传算法patternsearch

MaxMeshSize

patternsearch

MeshRotate

patternsearch

MigrationDirection

遗传算法

MigrationFraction

遗传算法

MigrationInterval

遗传算法

PenaltyFactor

遗传算法patternsearch

PlotInterval

遗传算法patternsearchsimulannealbnd

StallTest

遗传算法

TolBind patternsearch

相关的话题