RobustConvexOptimization

RobustConvexOptimization[f,ForAll[pars,pcons,vcons],vars]

求能给出 f 的最小值的 vars 的值,其中,对于满足参数约束条件 pcons 的参数 pars 所有可能的值,vars 满足约束条件 vcons.

RobustConvexOptimization[,"prop"]

指定应返回的解的属性 "prop".

更多信息和选项

  • 稳健优化亦称为最坏情况的优化.
  • 当在不确定性由含有参数约束条件的参数表示的情况下求解优化问题时,通常会使用稳健优化.
  • 在针对所有可能的参数值能实现的最优解的意义上,稳健优化给出了最保守的解.
  • 稳健优化给出可求解以下问题的稳健的最小值点 (minimizer)
  • 最小化
    其中
  • 对于参数集中的所有 ,稳健的最小值点 满足 .
  • 对于参数集中的所有 ,稳健的最小值 满足 .
  • pconsvcons 可包括线性等式约束条件 .
  • 也可以使用 RobustConvexOptimization[f,cons,vars,pars]. 约束条件 cons 被自动分为纯参数约束条件 和可能依赖于参数的变量约束条件 . 这种形式与 ParametricConvexOptimization 兼容.
  • 如果稳健优化问题能转化为可以通过凸优化求解或近似的形式,则认为该问题是可以处理​​的. 可处理性取决于变量约束条件 的类型和参数约束条件 的类型的组合.
  • 下面的变量约束条件和参数约束条件的组合被视为可处理的情况:
  • 变量约束条件参数约束条件
    TemplateBox[{{{a, ., x}, +, b}}, Norm]<=c(theta).x+d(theta)
    TemplateBox[{{{{a, (, theta, )}, ., x}, +, {b, (, theta, )}}}, Norm]<=c.x+d
    TemplateBox[{{{{a, (, {theta, _, l}, )}, ., x}, +, {b, (, {theta, _, l}, )}}}, Norm]<=c(theta_r).x+d(theta_r)
    a_0(theta)+a_1(theta) x_1+...+a_k(theta) x_k>=_(TemplateBox[{n}, SemidefiniteConeList])0
  • 通常,变量约束条件 被转换为形式为 的锥约束条件,其中 "NonNegativeCone""NormCone""SemidefiniteCone" 之一, 对参数的依赖关系应是仿射的.
  • 当目标函数 依赖于参数或是非线性的,将引入另一个变量 ,且通过上镜图变换将问题转化成目标函数 具有额外的约束条件 .
  • 变量和参数指定 varspars 应为列表,其中的元素按以下形式给出变量和参数:
  • v名为 的维度由推断而得的变量或标量参数
    vReals实标量变量
    vIntegers整数标量变量
    vComplexes复标量变量
    v限制于几何区域 的向量变量
    vVectors[n,dom]TemplateBox[{}, Complexes]^n 中的向量变量
    vMatrices[{m,n},dom]TemplateBox[{}, Complexes]^(m x n) 中的矩阵变量
  • 可能的解的属性 "prop" 包括:
  • "PrimalMinimizer"最小化 的变量值列表
    "PrimalMinimizerRules"最小化 的变量 vars={v1,} 的值
    "PrimalMinimizerVector"最小化 的向量
    "PrimalMinimumValue"最小值
    {"prop1","prop2",} 几个解的属性
  • 可给出以下选项:
  • MaxIterationsAutomatic使用的最大迭代次数
    Method Automatic使用的方法
    PerformanceGoal$PerformanceGoal优化的目标
    Tolerance Automatic内部比较采用的容差
  • 选项 Methodmethod 可用来指定使用的方法. 可用的方法包括:
  • Automatic自动选择方法
    "CuttingSet"使用割集法
    "PolyhedralApproximation"用一组线性约束条件近似 "NormCone" 约束条件
    "SCS"SCS (splitting conic solver)
    "CSDP"CSDP (COIN semidefinite programming)
    "DSDP"DSDP (semidefinite programming)
  • 使用割集法可以近似求解一些难以解决的稳健优化问题.

范例

打开所有单元关闭所有单元

基本范例  (2)

求受约束条件 限制的 的稳健最小值点:

对于 的所有 ,稳健最小值点满足约束条件:

求受变量约束条件 限制的 的稳健最小值点:

对于所有的 α[-.5,.5],稳健最小值点位于约束条件集的交集(绿色)中:

范围  (29)

基本用法  (15)

对于所有 ,求受约束条件 限制的 的稳健最小值点:

对于所有位于区间 ,求受约束条件 限制的 的稳健最小值点:

对于所有 ,求受约束条件 限制的 的稳健最小值点:

对于所有满足 ,求受约束条件 限制的 的稳健最小值点:

不给出 ForAll,使用其他语法:

下面的语法可直接被用在 ParametricConvexOptimization 中,用来尝试具体的 的值:

VectorLessEqual 一次性表示几个 LessEqual 不等式约束条件:

v<= 以紧凑形式输入向量不等式:

用标量不等式表示的等价格式:

VectorGreaterEqual 一次性表示几个 GreaterEqual 不等式约束条件:

v>= 以紧凑形式输入向量不等式:

用标量和向量不等式的组合指定约束条件:

用标量不等式表示的等价格式:

用向量变量和向量不等式指定问题:

对于满足 的所有 ,最小化受约束条件 限制的函数

Indexed 指代向量变量的分量,如 TemplateBox[{x, 1}, IndexedDefault]

用常参数方程指定目标函数和约束条件的系数:

对于满足 的所有 ,最小化受约束条件 限制的函数

需要的情况下用 Vectors[n,Reals] 指定向量变量的维度:

NonNegativeReals (TemplateBox[{}, NonNegativeReals]) 指定非负约束条件:

用向量不等式表示的等价格式:

NonPositiveReals (TemplateBox[{}, NonPositiveReals]) 指定非正约束条件:

Interval 指定界限:

Evaluate 确保 ForAll 中的第一个参数在参数被分组并赋给变量的情况下被计算:

线性变量约束条件  (5)

对于位于区间 [0,2] 中的所有 ,求受 限制的 的稳健最小值点:

对于位于 [0,2] 中的所有 ,数学上来讲,约束条件 意味着 . 因此,问题等价于:

对于所有限制在区间中的 ,求受变量约束条件 限制的 的稳健最小值点:

可视化最小值点和 取极端值的情况下的变量约束条件集. 对于参数 所有可能的值而言,可行的 集合(显示为绿色)为参数可行区域的交集:

对于所有限制在区间中的 ,求受变量约束条件 限制的 的稳健最小值点:

可视化最小值点、参数 的极端值的变量约束条件集和可行区域(显示为绿色):

对于 的所有 ,求受变量约束条件 限制的 的稳健最小值点:

可视化最小值点、参数 取极端值时的变量约束条件集和可行区域(显示为绿色):

对于满足 的所有 ,求受变量约束条件 限制的 的稳健最小值点:

对于极端参数值 ,求使得矩阵 为半正定矩阵的 的范围:

可视化最小值点和由变化的 产生的区域的交集形成的可行区域(显示为绿色):

NormCone 变量约束条件  (7)

对于满足 的所有 ,求受变量约束条件 限制的 的稳健最小值点:

可视化最小值点和 取极端值时的变量约束条件集. 对于参数 所有可能的值而言,可行的 集合为所有可行区域的交集(显示为绿色):

对于满足 的所有 ,求受变量约束条件 限制的 的稳健最小值点:

可视化最小值点、参数 取极端值时的变量约束条件集和可行区域(显示为绿色):

对于满足 的所有 ,求受变量约束条件 限制的 的稳健最小值点:

可视化最小值点、 取极端值时的变量约束条件集和可行区域(显示为绿色):

对于满足 的所有 ,求受变量约束条件 限制的 的稳健最小值点:

可视化最小值点、 取极端值时的变量约束条件集和可行区域(显示为绿色):

对于满足 的所有 ,求受变量约束条件 限制的 的稳健最小值点::

对于满足 的所有 ,求受变量约束条件 限制的 的稳健最小值点:

可视化最小值点、 取极端值时的变量约束条件集和可行区域(显示为绿色):

对于满足 的所有 ,求受变量约束条件 限制的 的稳健最小值点:

可视化最小值点、 取极端值时的变量约束条件集和可行区域(显示为绿色):

SemidefiniteCone 变量约束条件  (2)

对于 的所有 ,求受变量约束条件 限制的 的近似稳健最小值点:

可视化最小值点、参数 取极端值时的变量约束条件集和可行区域(显示为绿色):

对于满足 的所有 ,求受变量约束条件 限制的 的近似稳健最小值点:

可视化最小值点、 取极端值时的变量约束条件集和可行区域(显示为绿色):

选项  (3)

Method  (2)

Method"CuttingSet" 求解稳健优化无法处理的问题:

可视化最小值点、两个参数取极端值时的变量约束条件集和可行区域(显示为绿色):

Method"PolyhedralApproximation" 线性化 "NormCone" 约束条件. 这样可近似求出问题的解,否则稳健优化无法处理这样的问题:

可视化最小值点和两个参数取极端值时的变量约束条件集:

Tolerance  (1)

Tolerance 的设置越小给出的结果越精确:

通过设置 求问题的精确解:

计算 Tolerance 设置为不同值时的误差:

可视化最小值的误差随容差变化的情况:

应用  (14)

几何问题  (2)

求可包围一组子圆的最小圆圈的圆心 和半径

子圆由点表示,这些点是不确定圆盘的中心:

目标是最小化受约束条件 限制的半径

圆盘的圆心和半径为:

绘制结果:

求半径为 、圆心为 的两个圆盘之间的最小距离,使得其不确定性可由椭球 模拟:

为与圆盘 1 和 2 关联的点. 目标是最小化受 限制的

中心和半径不确定的两个磁盘之间的最小距离为:

可视化两个点的位置,以及不确定圆盘的一些极端特例:

数据拟合问题  (3)

在响应受区间不确定性影响的情况下,求数据的稳健线性拟合:

目标是使输入和输出之间的误差最小,该误差取决于区间的不确定性

求稳健拟合 y=m x+b 的斜率 m 和截距 b

与数据的简单最小二乘拟合进行比较:

求 100 种可能的不确定性实例的拟合模型:

显示拟合模型的包络,其中有稳健拟合(黑色)、简单拟合(绿色)和数据:

将三次曲线拟合到其输出包含区间不确定性 的离散数据:

DesignMatrix 构建输入矩阵:

目标是使输入和输出之间的误差最小,该误差取决于区间的不确定性

求每个基的系数:

求 100 种可能的不确定性实例的拟合模型:

显示拟合模型的包络,其中有稳健拟合(黑色)和数据:

将稳健拟合(黑色)和平均模型(红色)与无噪声的精确解进行比较:

稳健拟合比平均模型具有更高的误差:

将三次曲线拟合到测量实例(输入)的不确定范围为 的离散数据

求受输入矩阵的区间不确定性 限制的系数:

显示稳健拟合及由于输入的随机噪声造成的包络:

将稳健拟合(黑色)和平均模型(红色)与无噪声的精确解进行比较:

生产制造问题  (3)

给定从两种不同原料 中​​提取活性剂的不确定性,求公司生产两种药物 的最佳组合,以使利润最大化. 每单位药物带来的收入为:

该公司只能存储 1000 公斤的原料:

生产这两种药物需要 90 到 100 个小时的人力. 该公司只有 2000 个小时的可用人力:

生产这两种药物需要 40 到 50 个小时的设备时间. 该公司只有 800 个小时的可用设备时间:

生产这两种药物的运营成本分别为 700 和 800. 每公斤的原料成本分别为 100 和 199.9:

该公司的总预算为 $100,000:

该公司必须生产一定单位的药品,因此必须购买一些原料:

从这两种原料中提取的活性剂的量分别为 g/kg 和 g/kg. 两种药物分布需要 0.5 g/unit 和 0.6 g/unit 的活性剂:

目标是在使采购和运营成本最小化的同时最大化收入:

药物的最佳组合为:

将不确定性考虑在内的利润为:

构建问题的参数化函数:

原料中活性剂不波动的情况下,优选第二种原料:

不考虑不确定性的利润为:

将不确定性考虑在内,利润将最多减少 6%:

稳健的解对应于最坏的情况,即从原料中提取到最少量的活性剂:

要想看到使用稳健解的优势,使用原材料和活性剂的不确定性作为参数来生成参数化函数:

如果使用标称结果购买原料,即 ,则利润可能会下降 21%,具体取决于可以从原料中提取出多少活性剂:

如果根据稳健结果购买原料,即 ,则利润最多减少 6%:

绘制可从第二种原料中提取的活性剂的量与利润的关系图:

在生产投入存在一定不确定性的情况下,求可以使公司利润最大化的产品组合. 该公司生产三种产品. 在理想条件下,每个单位带来的收入、成本和最大产能由下式给出:

每个产品要使用四台机器制造. 机器在每种产品上花费的时间为:

由于市场波动,每单位产品产生的收入可能减少 $5 :

考虑到机器的停机时间,每个产品的产能可能会降低 5 个单位:

每台机器每周最多可以运行 2400 分钟. 如果机器无法运行,则最多需要 120 分钟才能使其恢复工作状态:

修理四台机器中的任何一台的成本会使每种产品的成本每单位增加 $5:

利润等于收入减去成本,然后乘以产品 的单位数量

收集所有变量约束条件:

收集所有参数约束条件:

收集所有参数指定:

目标是最大化利润. 最佳产品组合为:

构建各种参数变化情况下的参数化函数:

最好的情况是收入不减少或机器不停机,具体情况如下:

最差的情况则对应于 RobustConvexOptimization 的结果:

找出可以使公司利润最大化的产品组合,公司制造三种产品 ,三种产品受价格和供应波动的影响:

考虑到每单位产品的价格波动为 ,每个单位带来的收入为:

工厂只生产 100 天. 理想情况下,分别需要 2、4 或 5 天来制造每种产品,但由于意外的延迟,制造时间可能会增加一天:

每种产品都包含金和锡. 可用的金和锡的总量分别为 个单位:

如果制造一种产品,公司需支付相应的设置费用:

由于相对较高的设置成本,可能希望根本不生产某些产品. 令 为决策变量,如果生产产品 ,否则 . 限制 确保如果 为 0,则 也为 0,不必对 作出比其他限制条件更严格的限制:

目标是最大化利润:

收集所有变量约束条件:

收集参数约束条件:

收集参数指定:

最佳组合为:

构建各种参数变化情况下的参数化函数:

结果对应于最坏情况,由下式给出:

结构优化问题  (1)

求由 个弹簧连杆形成的悬链的形状,每个连杆末端都有一个垂直负载,其中,弹簧的刚度和平衡长度都受到制造不确定性的影响. 目标是求出连杆的位置

由重力引起的势能为 ,其中 是每个连杆末端的垂直负载, 是标准重力加速度:

由拉伸引起的弹簧连杆的张力所形成的势能是 ,其中 是弹簧连杆 的张力, 是弹簧的不确定的刚度, 是弹簧的理想刚度. 通过 将能量表达式转换为

由于进行了转换,必须添加约束条件

悬链的末端被固定在位置 (0,0)(2,-1)

每个连杆必须满足条件 ,其中 是每个弹簧松弛状态下的长度,其不确定量为

设计中的常数参数为:

最终的目标函数是最小化重力和的弹簧势能之和:

求每个弹簧连杆末端的位置:

可视化所得弹簧链的形状:

靠近悬链末端的连杆的拉伸程度最大. 第 12 个连杆的伸长率最小:

投资组合优化  (2)

在可能受到市场波动影响的 20 只候选股票中,找到六只股票的最佳组合进行投资,以便在平均收益存在不确定性的情况下最大化收益,同时最大程度地降低风险. 股票 的期望回报值 和股票之间的协方差 为:

由于市场波动,每只股票的平均回报值存在不确定性

设在股票 上的投资占总投资的百分比为 . 回报由 给出:

风险由 给出:

为决策向量,如果 ,则购入该只股票. 必须选择六种股票:

投资的百分比 必须大于 0 且总和为 1:

找到使风险最小化和回报最大化的最佳组合:

最安全的最佳股票组合是:

投入各个股票的投资百分比为:

安全风险和回报是:

构建各种参数变化情况下的参数化函数:

与具有随机不确定性的最优股票组合相比,最安全的最优股票组合产生的风险和回报最小:

求如何在六只股票之间分配资本,以便在平均收益和协方差存在不确定性的情况下最大化收益,同时最大程度地降低风险. 股票 的期望回报值 和股票之间的协方差 为:

由于市场波动,每只股票的平均回报值存在不确定性

设在股票 上的投资占总投资的百分比为 . 回报由 给出:

协方差是从有限数据集中提取的,并且也存在不确定性

风险由 给出, 为风险规避参数:

目标是最大化收益,同时最大程度地降低特定风险规避参数 的风险:

投资的百分比 必须大于 0 且总和为 1:

为一系列风险规避参数计算收益和相应的风险:

增大风险规避参数 会使股票多元化以降低风险:

选址问题  (1)

一家公司想开一个新工厂. 工厂需要来自五个仓库的原材料. 新工厂和仓库之间每单位距离的运输成本在 间变化:

为工厂和仓库 之间的距离. 目标是最小化

5 个仓库 位于:

新工厂 的位置必须满足

求新工厂和仓库间的最优距离:

新工厂的位置更靠近运输成本较高的仓库:

分类问题  (2)

求分隔两组点 的直线 ,其中 为区间不确定性:

对于此分隔问题,第 1 组必须满足 ,第 2 组必须满足

目标是最小化 ,结果给出了 之间距离的两倍:

分隔线为:

显示受每个点的不确定性影响的分隔线:

增大不确定性将导致不可实现的分隔线:

可视化不确定性增加的集合,显示这两个集合有一些不确定性方框重叠的点:

求分隔两组 3D 点 的二次多项式,其中 为区间不确定性:

DesignMatrix 构建两组点的二次多项式数据矩阵:

对于此分隔问题,第 1 组必须满足 ,第 2 组必须满足

通过最小化 求分隔两组点的多项式:

分隔两个数据集的多项式为:

绘制分隔两个数据集的多项式:

可能存在的问题  (1)

某些问题将失败,因为 ForAll 的第一个参数没有计算:

Evaluate 确保 ForAll 的第一个参数被计算:

Wolfram Research (2020),RobustConvexOptimization,Wolfram 语言函数,https://reference.wolfram.com/language/ref/RobustConvexOptimization.html.

文本

Wolfram Research (2020),RobustConvexOptimization,Wolfram 语言函数,https://reference.wolfram.com/language/ref/RobustConvexOptimization.html.

CMS

Wolfram 语言. 2020. "RobustConvexOptimization." Wolfram 语言与系统参考资料中心. Wolfram Research. https://reference.wolfram.com/language/ref/RobustConvexOptimization.html.

APA

Wolfram 语言. (2020). RobustConvexOptimization. Wolfram 语言与系统参考资料中心. 追溯自 https://reference.wolfram.com/language/ref/RobustConvexOptimization.html 年

BibTeX

@misc{reference.wolfram_2024_robustconvexoptimization, author="Wolfram Research", title="{RobustConvexOptimization}", year="2020", howpublished="\url{https://reference.wolfram.com/language/ref/RobustConvexOptimization.html}", note=[Accessed: 24-November-2024 ]}

BibLaTeX

@online{reference.wolfram_2024_robustconvexoptimization, organization={Wolfram Research}, title={RobustConvexOptimization}, year={2020}, url={https://reference.wolfram.com/language/ref/RobustConvexOptimization.html}, note=[Accessed: 24-November-2024 ]}