ConvexOptimization
ConvexOptimization[f,cons,vars]
求可最小化受凸约束条件 cons 限制的凸目标函数 f 的变量 vars 的值.
ConvexOptimization[…,"prop"]
指定应返回解的属性 "prop".
更多信息和选项
- 凸优化是受凸约束条件限制的凸函数的全局非线性最优化. 对于凸问题,可以找到全局解.
- 凸优化包括许多其他形式的优化,包括线性优化、线性分数优化、二次优化、二阶锥优化、半正定优化和锥优化等.
- 如果 是凹函数,则 ConvexOptimization[-g,cons,vars] 将使 g 最大化.
- 凸优化求的是可解下列问题的 :
-
最小化 受限于约束条件 其中 - 可将形为 的等式约束条件包括在 cons 中.
- 混合整数凸优化求的是 和 ,以求解下列问题:
-
最小化 受限于约束条件 其中 - 当目标函数为实值时,ConvexOptimization 通过内部转换为实数变量 来求解 ,其中 和 .
- 变量指定 vars 应该是一个列表,其中包含以下列形式之一给出变量的元素:
-
v 名为 和推断尺寸的变量 v∈Reals 实数标量变量 v∈Integers 整数标量变量 v∈Complexes 复数标量变量 v∈ℛ 限制在几何区域 的向量变量 v∈Vectors[n,dom] 属于 、 或 的向量变量 v∈Matrices[{m,n},dom] 属于 、 或 的矩阵变量 - ConvexOptimization 自动进行必要的转换,以找到解决最小化问题的有效方法.
- 所求解的原始最小化问题有一个相关的最大化问题,即拉格朗日对偶问题. 对偶最大值始终小于或等于原始最小值,因此它提供了一个下限. 对偶最大化程序提供有关原始问题的信息,包括最小值对约束变化的敏感性.
- 可能的解的属性 "prop" 包括:
-
"PrimalMinimizer" 最小化 的变量值列表 "PrimalMinimizerRules" 最小化 的变量值 vars={v1,…} "PrimalMinimizerVector" 最小化 的向量 "PrimalMinimumValue" 最小值 "DualMaximizer" 最大化对偶问题的向量 "DualMaximumValue" 对偶最大值 "DualityGap" 对偶最优值和原最优值之差 "Slack" 将不等式约束转换为等式的向量 "ConstraintSensitivity" 对约束摄动的敏感性 {"prop1","prop2",…} 解的多个属性 - 可以给出以下选项:
-
MaxIterations Automatic 使用的最大迭代次数 Method Automatic 使用方法 PerformanceGoal $PerformanceGoal 优化的目标 Tolerance Automatic 内部比较使用的公差 WorkingPrecision MachinePrecision 内部计算使用的精度 - 选项 Methodmethod 可以用来指定要使用的方法. 可用的方法包括:
-
Automatic 自动选择方法 solver 可能的情况下,对问题进行转换,用 solver 求解问题 "SCS" SCS 劈分圆锥求解器 "CSDP" CSDP 半定优化求解器 "DSDP" DSDP 半定优化求解器 "MOSEK" 商用 MOSEK 凸优化求解器 "Gurobi" 商用 Gurobi 线性和二次优化求解器 "Xpress" 商用 Xpress 线性和二次优化求解器 - Methodsolver 可以用来指定使用特定的求解器,以使所用的对偶公式对应于为 solver 所收录的公式. 可能的求解器有 LinearOptimization、LinearFractionalOptimization、QuadraticOptimization、 SecondOrderConeOptimization、SemidefiniteOptimization、ConicOptimization 和 GeometricOptimization.
范例
打开所有单元关闭所有单元范围 (28)
基本用法 (12)
几个线性不等式约束可以使用 VectorGreaterEqual 表示:
使用 v>= 或者 \[VectorGreaterEqual] 输入向量不等式符号 :
要避免在 中的意外线程,使用 Inactive[Plus]:
VectorGreaterEqual 表示关于 "NonNegativeCone" 的圆锥不等式:
明确指定圆锥的尺寸,使用 {"NonNegativeCone",n}:
使用向量变量 和 Indexed[x,i] 以指定单个分量:
使用 Vectors[n,Reals] 在向量变量可能不明确时指定其尺寸:
使用 NonNegativeReals () 指定非负约束:
当 和 为正时,该问题可以通过 GeometricOptimization 方法求解:
使用方法 GeometricOptimization 隐式假定为正:
整数变量 (4)
使用 Integers 指定整数变量:
使用 Vectors[n,Integers] 指定向量变量的整数域约束:
使用 NonNegativeIntegers ()指定非负整数域约束:
使用 NonPositiveIntegers ()指定非正整数域约束:
选项 (13)
Method (8)
PerformanceGoal (1)
选项 PerformanceGoal 的默认值为 $PerformanceGoal:
使用 PerformanceGoal"Quality" 以获得更准确的结果:
使用 PerformanceGoal"Speed" 可以更快地获得结果,但以牺牲质量为代价:
Tolerance (2)
WorkingPrecision (2)
默认工作精度为 MachinePrecision:
如果可能,使用 WorkingPrecisionInfinity 将给出确切的解:
WorkingPrecision 而不是 MachinePrecision 和 ∞ 将尝试使用具有扩展精度支持的方法:
使用 WorkingPrecisionAutomatic 将尝试使用输入问题的精度:
当前没有使用精确算法求解二次目标问题的方法. 当不支持所要求的精度时,则计算使用机器数:
应用 (30)
基本模型变换 (11)
最大化约束为 的 . 通过对目标函数进行负转换来求解最大化问题:
最小化约束为 的 . 由于约束 非凸,因此使用半定约束使凸性明确:
当且仅当矩阵的所有左上子矩阵的行列式均为非负值时,才是正半定矩阵:
最小化 ,约束为 ,假定当 时, 成立. 使用辅助变量 ,目标变为最小化 ,使得 :
舒尔补条件是指,如果 ,当且仅当 时,分块矩阵 . 因此当且仅当 时, . 使用 Inactive[Plus] 构造约束以避免线程化:
上镜图(Epigraph)变换可用于构造具有线性目标以及附加变量和约束的问题:
这种形式的问题可以直接使用 ConicOptimization 求解:
通过最小化 来最小化 ,其中 是非递减函数. 对于这两个问题,原始最小化器 将保持不变. 考虑最小化 ,其约束为 :
ConvexOptimization 将自动执行此转换:
求 ,使得线性依赖于决策变量 的对称矩阵 的最大特征值最小. 由于 等价于 ,其中 是 的第 个特征值,该问题可以表述为线性矩阵不等式. 定义线性矩阵函数 :
实对称矩阵 可以用正交矩阵 对角线化使得 . 因此当且仅当 时, . 由于任何 ,认为 , ,因此当且仅当 时,. 数值模拟表明这些公式是等效的:
求 ,使的对称于决策变量 的对称矩阵 的最小特征值最大. 定义线性矩阵函数 :
这个问题可以表述为线性矩阵不等式,因为 等价于 ,其中 是 的第 个特征值. 要最大化 ,需最小化 :
求 ,使得线性依赖于决策变量 的对称矩阵 的最大和最小特征值之差最小. 定义线性矩阵函数 :
这个问题可以表述为线性矩阵不等式,由于 等价于 ,其中 是 的第 个特征值. 求解得到的问题:
最小化线性依赖于决策变量 的对称矩阵 的最大特征值(按绝对值):
最大特征值满足 的最大(按绝对值)负特征值是 的最大特征值并满足 :
求 ,使得线性依赖于决策变量 的对称矩阵 的最大奇异值 最小化:
的最大奇异值 是 的最大特征值的平方根,并且根据前面的示例,它满足 ,或者等价于 :
对于包括椭圆体、二次锥和抛物面在内的二次集合 ,确定 是否成立,其中 是对称矩阵, 为向量, 为标量:
假定集合 是全维度的,S-procedure 表示,当且仅当存在某个非负数 使得 成立时, . 直观地看到存在一个非负数 :
几何问题 (8)
最小化面积为 4 的矩形的对角线长度,使得宽度加上高度的三倍小于 7:
求半径为 1 的两个圆盘之间的最小距离,圆盘的中心分别为 和 . 设 为圆盘 1 上的一个点. 设 为 圆盘 2 上的一个点. 目标是最小化 ,约束为 :
结果是一个球. 如果对轴的长度附加约束条件将使结果发生改变:
可通过 BoundingRegion 高效地找到最小包含球:
求凸多边形的解析中心. 解析中心是使约束的距离乘积最大化的点:
凸多边形的每个边可以表示为半平面 的交线. 提取线性不等式:
使用 S-procedure 可以证明,当且仅当 时,椭圆 2 是椭圆 1 的子集:
现在进行测试表明该问题是不可行的,这表明椭球 2 不是椭球 1 的子集:
将参数化应用于半平面,可以得出 . 项 . 因此,约束条件为 :
通过最小化体积,找到参数化为 、包括三维中的一组点的最小椭球体:
也可以使用 BoundingRegion 得到包围椭圆体(体积不一定是最小的):
数据拟合问题 (4)
平方和表示 (1)
分类问题 (3)
使用 DesignMatrix 构造两个集合的二次多项式数据矩阵:
将给定的点集 分成不同的组. 这通过最小化 以找到每个组的中心 得到,其中 是给定的本地内核, 是给定的惩罚参数:
内核 是 -近邻()函数,使得 ,或者 . 对于此问题,选择 个最近邻:
设施选址问题 (1)
文本
Wolfram Research (2020),ConvexOptimization,Wolfram 语言函数,https://reference.wolfram.com/language/ref/ConvexOptimization.html.
CMS
Wolfram 语言. 2020. "ConvexOptimization." Wolfram 语言与系统参考资料中心. Wolfram Research. https://reference.wolfram.com/language/ref/ConvexOptimization.html.
APA
Wolfram 语言. (2020). ConvexOptimization. Wolfram 语言与系统参考资料中心. 追溯自 https://reference.wolfram.com/language/ref/ConvexOptimization.html 年