主要内容

优化选择参考

优化选项

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

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

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

optimoptions (“fmincon”

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

选择= optimoptions (“fmincon”“算法”“sqp”

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

优化选项

选项名称 描述 使用的功能 限制
AbsoluteGapTolerance

负的真实。intlinprog停止时,如果内部计算的上限(U)及下(l)的边界小于或等于AbsoluteGapTolerance

U - L <=绝对间隙公差

intlinprog optimoptions只有
AbsoluteMaxObjectiveCount

的数量Fx)以最小化最坏情况的绝对值。

fminimax

算法

选择求解器使用的算法。

fminconfminuncfsolvelinproglsqcurvefitlsqlinlsqnonlinquadprog
BarrierParamUpdate

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

fmincon
BranchRule

选择分支组件的规则:

  • “maxpscost”-具有最大伪成本的部分。看到分支界限法

  • “strongpscost”-具有最大伪成本的小数部分,并对伪成本进行仔细估计。看到分支界限法

  • “可靠性”-具有最大伪成本的小数部分,其伪成本的估计甚至比in更为仔细“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,正有限差分δ

δ= v *标志的(x) *马克斯(abs (x)、TypicalX);

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

δ= v *马克斯(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

Hessian近似法:“蓄热”“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

默认的真正的确保在每次迭代时都满足约束条件。通过设置to来关闭

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

整数预处理的类型(参见混合整数规划预处理):

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

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

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

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

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

fsolvelsqcurvefitlsqlinlsqnonlin

LinearSolver

算法中的内部线性求解器类型。为lsqlinquadprog

  • “汽车”——使用“稀疏”如果通过的二次矩阵是稀疏的(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

允许的最大迭代次数。

除了fzerolsqnonneg

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|) > ObjectiveImprovementThreshold intlinprog optimoptions只有
ObjectiveLimit

如果目标函数值小于ObjectiveLimit当迭代可行时,迭代停止。

fminconfminunclsqlinquadprog
OptimalityTolerance

一阶最优性的终止公差。

coneprogfgoalattainfminconfminimaxfminuncfseminffsolvelinprog内点唯一的),lsqcurvefitlsqlinlsqnonlinquadprog

optimoptions只有。为optimset,使用TolFun
OutputFcn

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

fgoalattainfminbndfminconfminimaxfminsearchfminuncfseminffsolvefzerointlinproglsqcurvefitlsqnonlin

PlotFcn

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

  • “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) <=相对vegaptolerance

intlinprog自动修改公差大l大小:

公差=min (1 / (1 + L | |), 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

所有的功能除了linprogconeprog

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

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

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

选项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

相关的话题