优化选项参考 -凯发k8网页登录

main content

优化选项参考

优化选项

下表说明优化选项。使用 函数或 为 fminbndfminsearchfzerolsqnonneg 创建选项。

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

选项的默认值因您使用 options 作为输入参数调用的具体优化函数而异。您可以通过输入 optimoptions('solvername') 或等效的 optimoptions(@solvername) 来确定任何优化函数的默认选项值。例如,

optimoptions('fmincon')

返回一个选项列表和默认 'interior-point' fmincon 算法的默认值。要查找另一个 fmincon 算法的默认值,请设置 algorithm 选项。例如,

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

optimoptions 会“隐藏”一些选项,这意味着它不显示这些选项的值。这些选项不会出现在此表中。但它们会出现在隐藏选项中。

优化选项

选项名称说明由以下函数使用限制
absolutegaptolerance

非负实数。如果内部计算的目标函数的上界 (u) 和下界 (l) 之间的差小于或等于 absolutegaptolerance,则 intlinprog 停止:

u – l <= absolutegaptolerance

仅限于
absolutemaxobjectivecount

f(x) 的数量,用于最小化最差情形绝对值。

 
algorithm

选择求解器使用的算法。

、、、、、、、 
barrierparamupdate

选择 'interior-point' 算法中更新障碍参数的算法,可以是 'monotone''predictor-corrector'

 
branchrule

选择分支分量的规则:

  • 'maxpscost' - 具有最大伪代价的小数分量。请参阅分支定界

  • 'strongpscost' - 具有最大伪代价的小数分量,需要审慎估计伪代价。请参阅分支定界

  • 'reliability' - 具有最大伪代价的小数分量,需要比 'strongpscost' 更为审慎地估计伪代价。请参阅分支定界

  • 'mostfractional' - 小数部分最接近 1/2 的分量。

  • 'maxfun' - 目标向量 f 的绝对值中对应分量最大的小数分量。

仅限于
checkgradients

将用户提供的分析导数(梯度或 jacobian 矩阵,取决于所选求解器)与有限差分导数进行比较。

、、、、、、、

仅限于 。对于 ,使用 derivativecheck
constrainttolerance

约束违反度容差。

、、、、、、、、

仅限于 。对于 ,使用 tolcon
cutgeneration

切割生成的级别(请参阅切割生成):

  • 'none' - 无切割。使 cutmaxiterations 不相关。

  • 'basic' - 正常切割生成。

  • 'intermediate' - 使用更多切割类型。

  • 'advanced' - 使用大多数切割类型。

仅限于
cutmaxiterations在进入分支定界阶段之前经历所有切割生成方法的次数,从 150 的整数。通过将 cutgeneration 选项设置为 'none' 可禁用切割生成。仅限于
display

显示级别。

  • 'off' 不显示输出。

  • 'iter' 显示每次迭代的输出,并给出默认退出消息。

  • 'iter-detailed' 显示每次迭代的输出,并给出带有技术细节的退出消息。

  • 'notify' 仅当函数不收敛时才显示输出,并给出默认退出消息。

  • 'notify-detailed' 仅当函数不收敛时才显示输出,并给出技术性退出消息。

  • 'final' 仅显示最终输出,并给出默认退出消息。

  • 'final-detailed' 仅显示最终输出,并给出带有技术细节的退出消息。

全部。有关适用的值,请参阅各个函数参考页。

 
enablefeasibilitymode

选择在 'interior-point' 算法中获得可行性的算法。true 使用的算法不同于默认 false

 
equalitygoalcount

指定目标 fun 达到设置目标所需的目标数量。如有必要,请对您的目标重新排序,让 fgoalattain 准确实现第一个 equalitygoalcount 目标。

仅限于 。对于 ,使用 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)

、、、、、、、

仅限于 。对于 ,使用 findiffrelstep
finitedifferencetype

用于估计梯度的有限差分是 'forward'(默认值)或 'central'(中心化),这需要两倍的函数计算次数,但结果应该更准确。如果 honorbounds 选项设置为 false,则在 内点计算中,'central' 差分可能会在其计算过程中违反边界。

、、、、、、、

仅限于 。对于 ,使用 findifftype
functiontolerance

函数值的终止容差。

、、、、、、、、、、

仅限于 。对于 ,使用 tolfun
hessianapproximation

hessian 矩阵逼近的方法:'bfgs''lbfgs'{'lbfgs',positive integer}'finite-difference'

hessianfcnhessianmultiplyfcn 非空时将被忽略。

仅限于 。对于 ,使用 hessian
hessianfcn

用户提供的 hessian 函数,指定为函数句柄(请参阅)。

仅限于 。对于 ,使用 hessfcn
hessianmultiplyfcn

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

hessianfcn 非空时将被忽略。

、、

仅限于 。对于 ,使用 hessmult
heuristics

搜索可行点的算法(请参阅使用启发式方法求出可行解):

  • 'basic'

  • 'intermediate'

  • 'advanced'

  • 'rss'

  • 'rins'

  • 'round'

  • 'diving'

  • 'rss-diving'

  • 'rins-diving'

  • 'round-diving'

  • 'none'

仅限于
heuristicsmaxnodes严格正整数,它限制 intlinprog 在分支定界搜索可行点的过程中可探查的节点数。请参阅使用启发式方法求出可行解仅限于
honorbounds

默认值 true 确保每次迭代都满足边界约束。通过设置为 false 关闭。

仅限于 。对于 ,使用 alwayshonorconstraints
integerpreprocess

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

  • 'none' - 使用非常少的整数预处理步骤。

  • 'basic' - 使用中等数量的整数预处理步骤。

  • 'advanced' - 使用所有可用的整数预处理步骤。

仅限于
integertolerance1e-61e-3 范围内的实数,这是解 x 的分量仍被视为整数时相比整数可具有的最大偏差。integertolerance 不是停止条件。仅限于
jacobianmultiplyfcn

用户定义的 jacobian 矩阵乘法函数,指定为函数句柄。除非对于 、 和 来说 specifyobjectivegradienttrue,否则被忽略。

、、、

 
linearsolver

算法内部线性求解器的类型。对于 lsqlinquadprog

  • 'auto' - 如果传递的二次矩阵为稀疏矩阵(对于 quadprog 来说为 h,对于 lsqlin 来说为 c),则使用 'sparse';否则使用 'dense'

  • 'sparse' - 使用稀疏线性代数。

  • 'dense' - 使用稠密线性代数。

对于 coneprog

  • 'auto'(默认值)- coneprog 选择步长求解器。

    • 如果问题是稀疏的,步长求解器为 'prodchol'

    • 否则,步长求解器为 'augmented'

  • 'augmented' - 增强形式步长求解器。请参阅[1]

  • 'normal' - 标准形式步长求解器。请参阅[1]

  • 'prodchol' - 产品形式 cholesky 步长求解器。请参阅[4][5]

  • 'schur' - schur 补方法步长求解器。请参阅[2]

'interior-point' 算法和 'interior-point-convex' 算法

 
lpmaxiterations严格正整数,在分支定界过程中每个节点的单纯形算法迭代的最大次数。仅限于
lpoptimalitytolerance非负实数,要将一个变量纳入基,该变量的简化后的代价必须超过 lpoptimalitytolerance仅限于
maxfunctionevaluations

允许的函数计算的最大次数。

、、、、、、、、、

仅限于 。对于 ,使用 maxfunevals
maxiterations

允许的最大迭代次数。

除 和 之外的所有函数

仅限于 。对于 ,使用 maxiter
maxfeasiblepoints严格正整数。intlinprog 在找到 maxfeasiblepoints 个整数可行点时停止。仅限于
maxnodes严格正整数,它是求解器在其分支定界过程中探查的最大节点数。 
maxtime

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

、、

 
nodeselection

选择下一步要探查的节点。

  • 'simplebestproj' - 最佳投影。请参阅分支定界

  • 'minobj' - 探查目标函数值最小的节点。

  • 'mininfeas' - 探查整数不可行性之和最小的节点。请参阅分支定界

仅限于
objectivecutoff大于 -inf 的实数。默认值为 inf仅限于
objectiveimprovementthreshold非负实数。intlinprog 仅在找到目标函数值比当前可行解的目标函数值低至少 objectiveimprovementthreshold 的另一个解时,才会更改当前可行解:(fold – fnew)/(1 |fold|) > objectiveimprovementthreshold仅限于
objectivelimit

如果目标函数值低于 objectivelimit 并且迭代可行,则迭代停止。

、、、 
optimalitytolerance

一阶最优性的终止容差。

、、、、、、、(仅限于 interior-point)、、、、

仅限于 。对于 ,使用 tolfun
outputfcn

指定优化函数在每次迭代中调用的一个或多个用户定义的函数。传递函数句柄或函数句柄的元胞数组。请参阅或。

、、、、、、、、、、、

 
plotfcn

绘制算法执行过程中的各个进度测量值。从预定义绘图中选择,或者自行编写。以列表或函数句柄(如 @optimplotx)形式给出函数名称。传递内置绘图函数名称、函数句柄,或由内置名称或函数句柄组成的元胞数组。对于自定义绘图函数,传递函数句柄。

  • 'optimplotx' 绘制当前点

  • 'optimplotfunccount' 绘制函数计数

  • 'optimplotfval' 绘制函数值

  • 'optimplotfvalconstr' 将找到的最佳可行目标函数值绘制为线图。该图将不可行点显示为红色,可行点显示为蓝色,使用的可行性容差为 1e-6

  • 'optimplotconstrviolation' 绘制最大值约束违反度

  • 'optimplotresnorm' 绘制残差范数

  • 'optimplotfirstorderopt' 绘制一阶最优性

  • 'optimplotstepsize' 绘制步长

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

请参阅或。

、、、、、、、、、、、。有关适用的值,请参阅各个函数参考页。

仅限于 。对于 ,使用 plotfcns
relativegaptolerance

01 范围内的实数。如果内部计算的目标函数上界 (u) 和下界 (l) 之间的差小于或等于 relativegaptolerance,则 intlinprog 停止:

(u – l) / (abs(u) 1) <= relativegaptolerance

仅限于
rootlpalgorithm

求解线性规划的算法:

  • 'dual-simplex' - 对偶单纯形算法

  • 'primal-simplex' - 原始单纯形算法

仅限于
rootlpmaxiterations非负整数,它是求解初始线性规划问题要进行的单纯形算法迭代的最大次数。仅限于
scaleproblem

对于 fmincon interior-pointsqp 算法,true 会使算法根据所有约束和目标函数的初始值对其进行归一化。要禁用,请设置为默认值 false

 
specifyconstraintgradient

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

、、

仅限于 。对于 ,使用 gradconstr
specifyobjectivegradient

目标函数的用户定义梯度或 jacobian 矩阵。

、、、、、、、

仅限于 。对于 ,使用 gradobjjacobian
steptolerance

x 的终止容差。

除 和 之外的所有函数

 
subproblemalgorithm

确定迭代步的计算方式。

、、、、、 
typicalx

数组,用于指定由参数 x 组成的数组的典型模。数组的大小等于起点 x0 的大小。主要用于缩放梯度估计的有限差分。

、、、、、、、、、

 
useparallel

当为 true 时,适用的求解器以并行方式估计梯度。通过设置为 false 来禁用。

、、、、、、。

 

隐藏选项

optimoptions 会“隐藏”一些选项,这意味着它不显示这些选项的值。要了解如何查看这些选项及其被隐藏的原因,请参阅。

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

隐藏的 optimization toolbox 选项

下表列出了隐藏的 optimization toolbox™ 选项。

optimoptions 隐藏的选项

选项名称说明由以下函数使用限制
diagnostics

显示关于要最小化或求解的函数的诊断信息。

除 、、、 之外的所有函数

 
diffmaxchange

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

、、、、、、、

 
diffminchange

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

、、、、、、、

 
funvalcheck

检查目标函数和约束值是否有效。如果为 'on',则当目标函数或约束返回的值是 complexnaninf 时,会显示错误。

注意

inf 用于 fminbndfminsearchfzero 时,funvalcheck 不会返回错误,因为这些函数会正确处理 inf

'off' 不显示错误。

、、、、、、、、、、

 
hesspattern

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

 
hessupdate

拟牛顿更新方案。

 
initbarrierparam

初始障碍值。

 
initdamping

初始 levenberg-marquardt 参数。

、、仅限于
inittrustregionradius

信赖域的初始半径。

 
jacobpattern

用于有限差分的 jacobian 矩阵稀疏模式。矩阵的大小是 m×n,其中 m 是用户指定的函数 fun 返回的第一个参数中值的个数,n 是起点 x0 中的元素个数。

、、

 
lppreprocess

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

  • 'none' - 无预处理。

  • 'basic' - 使用预处理。

仅限于
maxpcgiter

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

、、、、、、

 
maxprojcgiter

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

 
maxsqpiter

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

、、

 
meritfunction

使用目标达到/最小化最大值评价函数(多目标)与 (单目标)。

 
precondbandwidth

pcg 的预条件子的上带宽。设置为 'inf' 会使用直接分解而不是 cg。

、、、、、、

 
preprocess

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

仅限于
rellinesrchbnd

线搜索步长的相对边界。

、、、

 
rellinesrchbndduration

rellinesrchbnd 所指定的边界应处于活动状态的迭代次数。

、、、

 
scaleproblem

当使用 algorithm 选项 'levenberg-marquardt' 时,将 scaleproblem 选项设置为 'jacobian' 有时有助于求解器求解缩放错误的问题。

、、 
tolconsqp

内 sqp 迭代的约束违反度容差。

、、、 
tolpcg

pcg 迭代的终止容差。

、、、、、、

 
tolprojcg

投影共轭梯度算法的相对容差;这适用于内部迭代,而不适用于算法迭代。

 
tolprojcgabs

投影共轭梯度算法的绝对容差;这适用于内部迭代,而不适用于算法迭代。

 

隐藏的 global optimization toolbox 选项

有关隐藏这些选项的原因,请参阅 (global optimization toolbox)

optimoptions 隐藏的选项

选项名称由以下函数使用
cache

patternsearch

cachesize

patternsearch

cachetol

patternsearch

displayinterval

particleswarmsimulannealbnd

funvalcheck

particleswarm

hybridinterval

simulannealbnd

initialpenalty

gapatternsearch

maxmeshsize

patternsearch

meshrotate

patternsearch

migrationdirection

ga

migrationfraction

ga

migrationinterval

ga

penaltyfactor

gapatternsearch

plotinterval

gapatternsearchsimulannealbnd

stalltest

ga

tolbindpatternsearch

相关主题

    网站地图