ConicOptimization
ConicOptimization[f,cons,vars]
求可最小化受锥约束条件 cons 限制的线性目标函数 f 的变量 vars 的值.
ConicOptimization[…,"prop"]
指定应返回解的属性 "prop".
更多信息和选项




- 锥优化亦称为线性锥优化或线性锥规划.
- 锥优化包括许多其他形式的优化,包括线性优化、线性分式优化、二次优化、二阶锥优化,半定优化和几何优化.
- 锥优化是一个凸优化问题,可以使用实数、整数或复数变量全局有效地求解.
- 锥优化求的是能解原问题的
:
-
最小化 受限于约束条件 其中 - 集合
应是维度为
的真凸锥. 常见的
的锥规范和与
(VectorGreaterEqual[{x,0},κj]) 相对应的集合为:
-
{"NonNegativeCone", m} 使得 成立的
{"NormCone", m} 使得 成立的
{"SemidefiniteCone", m} 对称正半定矩阵 "ExponentialCone" 使得 成立的
"DualExponentialCone" 使得 或
成立的
{"PowerCone",α} 使得 成立的
{"DualPowerCone",α} 使得 成立的
- 当目标函数取实数值时,ConicOptimization 在内部将
转换为实变量
(其中
,
),对
的问题进行求解.
- 变量指定 vars 应该是一个列表,其中的元素按以下形式给出变量:
-
v 名称为 的变量,维度由推断而得
v∈Reals 实标量变量 v∈Integers 整数标量变量 v∈Complexes 复标量变量 v∈ℛ 限制在几何区域 内的向量变量
v∈Vectors[n,dom] 或
中的向量变量
v∈Matrices[{m,n},dom] 或
中的矩阵变量
- 可用以下形式指定约束条件 cons:
-
LessEqual 标量不等式 GreaterEqual 标量不等式 VectorLessEqual 向量不等式 VectorGreaterEqual 向量不等式 Equal 向量或标量等式 Element 凸域或区域元素 - 对于 ConicOptimization[f,cons,vars],可在约束条件中包括形式为 parval 的参数方程,以定义在 f 或 cons 中使用的参数,其中 par 不在 vars 中,val 是数值或数值数组. »
- 原始最小化问题有相关的最大化问题,即拉格朗日对偶问题. 对偶最大值始终小于或等于原始最小值,因此它给出了下限. 对偶最大值点提供了有关原问题的信息,包括最小值对约束条件变化的敏感性. »
- 锥优化有对偶问题: »
-
最大化 受限于约束条件 其中 ,
是
的对偶锥
- 可能的解的属性 "prop" 包括: »
-
"PrimalMinimizer" 一个最小化 的变量值列表
"PrimalMinimizerRules" 最小化 的变量值 vars={v1,…}
"PrimalMinimizerVector" 最小化 的向量
"PrimalMinimumValue" 最小值 "DualMaximizer" 最大化 的向量
"DualMaximumValue" 对偶最大值 "DualityGap" 对偶值和原始最优值之间的差 "Slack" 将不等式约束条件转换为等式约束条件的向量 "ConstraintSensitivity" 对约束条件扰动的敏感性
"ObjectiveVector" 线性目标向量 "ConicConstraints" 标准形式的锥约束条件列表 "ConicConstraintConeSpecifications" 锥 的规范列表
"ConicConstraintConeDimensions" 锥约束条件中锥的维度列表 "ConicConstraintAffineLists" 锥约束条件中仿射变换的矩阵、向量对列表 {"prop1","prop2",…} 几个解的属性 - 可给出以下选项:
-
MaxIterations Automatic 使用的最大迭代次数 Method Automatic 使用的方法 PerformanceGoal $PerformanceGoal 优化的目标 Tolerance Automatic 内部比较采用的容差 - 选项 Method->method 可用来指定使用的方法. 可用的方法包括:
-
Automatic 自动选择方法 "SCS" SCS 劈分圆锥求解器 "CSDP" CSDP 半定优化求解器 "DSDP" DSDP 半定优化求解器 "MOSEK" 商用 MOSEK 凸优化求解器 "Gurobi" 商用 Gurobi 线性和二次优化求解器 "Xpress" 商业 Xpress 线性和二次优化求解器 - 计算受限于 MachinePrecision.
范例
打开所有单元关闭所有单元基本范例 (3)
范围 (35)
基本用法 (11)
可用 VectorGreaterEqual:表示几个线性不等式约束条件:
用 v>=
或 \[VectorGreaterEqual] 输入向量不等式符号 :
为了避免 中无意的 threading,可使用 Inactive[Plus]:
VectorGreaterEqual 表示相对于的 "NonNegativeCone" 锥不等式:
为了明确指定锥的维度,请使用 {"NonNegativeCone",n}:
用向量变量 和 Indexed[x,i] 指定单个分量:
用 Vectors[n] 在未明确给定时指定向量变量的维度:

用 NonNegativeReals () 指定非负约束条件:
整数变量 (4)
用 Integers 指定整数域约束:
用 Vectors[n,Integers] 在向量变量上指定整数域约束:
用 NonNegativeIntegers () 指定非负整数域约束:
用 NonPositiveIntegers () 指定非正整数域约束:
复变量 (5)
用 Complexes 指定复变量:
原始模型属性 (4)
对偶模型属性 (3)
敏感性属性 (3)
支持的凸锥 (5)
选项 (11)
Method (8)
PerformanceGoal (1)
PerformanceGoal 选项的默认值为 $PerformanceGoal:
用 PerformanceGoal"Quality" 获取更准确的结果:
用 PerformanceGoal"Speed" 可更快获得结果,但要以质量为代价:
应用 (29)
基本模型转换 (13)
最大化受约束条件 限制的
. 对目标函数取负求解最大化问题:
在圆心位于 、半径为
的圆盘上最小化
. 将目标函数
转换为线性函数
,额外限制条件为
,等价于
:
也可用 Norm 表示圆盘约束条件:
在正五边形上最小化 . 用
将目标函数转换为线性函数,额外限制条件为
:
最小化 . 通过使用辅助变量
,目标函数被转换为最小化受约束条件
限制的
:
最小化受约束条件 限制的
. 通过使用两个辅助变量
,将问题转换为最小化受约束条件
限制的
:
最小化 . 通过使用辅助变量
,将问题转换为最小化受约束条件
限制的
:
最小化受约束条件 限制的
,其中
为非递减函数,因而可代之以最小化
. 对于两个问题,原始最小值点
将保持不变. 考虑最小化受约束条件
限制的
:
在圆心位于 、半径为
的圆盘上最小化
. 通过使用辅助变量
,目标函数被转换为最小化受额外约束条件
限制的
:
在圆心位于 、半径为
的圆盘上最小化
. 通过使用辅助变量
,将问题转换为最小化受约束条件
限制的
:
约束条件 等价于
. 可用 "PowerCone" 通过
来表示:
通过使用辅助变量 ,将问题转换为最小化受约束条件
限制的
:
可用 "PowerCone" 约束条件来表示. 因为当且仅当 时
,用
限制
,其中
给出
:
求最小化对称矩阵的最大特征值的 ,该特征值线性依赖于决策变量
,
. 可将该问题表述为线性矩阵不等式,因为
等价于
,其中
是
的第
个特征值. 对于线性矩阵函数
:
可用正交矩阵 将实对称矩阵
对角化,以使得
. 因而当且仅当
时
. 由于任一
,取
,
,因而当且仅当
时
. 进行数值仿真以表明这些式子是等价的:
最小化受约束条件 限制的
,当
时假定
. 通过使用辅助变量
,目标函数变为最小化
以使得
:
舒尔补条件表明如果 ,则当且仅当
时分块矩阵
. 因此当且仅当
时
. 用 Inactive Plus 来构建约束条件以避免 threading:
对于二次集合 ,其中包括椭球、二次锥体和抛物面,确定
是否成立, 其中
为对称矩阵,
为向量,
为标量:
假定集合 i 为全维 (full dimensional) 集合,S-procedure 表明当且仅当有一些非负数 存在使得
成立时
才成立. 图示有非负数
存在:
数据拟合问题 (5)
通过使用辅助变量 ,转换后的目标函数为最小化受约束条件
限制的
:
用三次曲线拟合离散数据,以使数据的第一个和最后一个点位于曲线上:
用 DesignMatrix 构建矩阵:
通过最小化 求系数
. 通过使用辅助变量
,转换后的目标函数为最小化受约束条件
限制的
:
由于 ,因此使用辅助变量
. 问题被转换为最小化受约束条件
限制的
:
二次项 ,其中
是对
进行 Cholesky 分解所得的下三角矩阵:
用 DesignMatrix 构建矩阵 ,对于基
:
几何问题 (5)
求圆心位于 和
、半径为 1 的两个圆盘之间的最小距离. 令
为第一个圆盘上的点. 令
为第二个圆盘上的点. 目标是最小化
. 通过使用辅助变量
,转换后的目标函数为最小化受约束条件
限制的
:
可用 BoundingRegion 高效求出最小包含球:
令 为
上的一个点. 令
为
上的一个点. 目标是最小化
. 通过使用辅助变量
,转换后的目标函数为最小化受约束条件
限制的
:
根据分隔超平面定理,与约束条件 相关的对偶问题将给出超平面的法线:
凸多边形的每个线段可被表示为半平面 相交的地方. 提取线性不等式:
求凸多边形的 analytic center. analytic center 是能最大化到限制边界的距离的乘积的点:
凸多边形的每个线段可被表示为半平面 相交的地方. 提取线性不等式:
目标是最大化 . 对目标函数取
并取负,转换后的目标函数为
:
分类问题 (3)
对于此分隔问题,第 1 组点必须满足 ,第 2 组点必须满足
:
目标是最小化 ,它给出的是
和
之间距离的两倍. 通过使用辅助变量
,目标函数被转换为约束条件
:
用 DesignMatrix 构建两组点的二次多项式数据矩阵:
对于此分隔问题,第 1 组必须满足 ,第 2 组必须满足
:
通过最小化 找出分隔多项式. 通过使用辅助变量
,转换后的目标函数为最小化受额外约束条件
限制的
:
将给定的点集 分成不同的组. 可通过最小化
找出每组的中心
来完成,其中
是给定的局部核,
是给定的惩罚参数:
核 为使得
,否则
成立的
-近邻 (
) 函数. 对于此问题,选择
:
通过使用辅助变量 ,目标函数被转换为最小化受约束条件
限制的
:
最优控制问题 (1)
可使用梯形法近似要最小化的函数积分. 离散目标函数变为受额外约束条件 限制的
:
可用 Indexed 指定初始约束条件 :
通过使用辅助变量 ,目标函数被转换为最小化受约束条件
限制的
:
将离散化结果转换为 InterpolatingFunction:
设施选址问题 (1)
属性和关系 (8)
ConicOptimization 给出目标函数的全局最小值:
Minimize 给出锥优化问题的全局精确结果:
NMinimize 可用全局方法获得近似结果:
FindMinimum 可用局部方法获得近似结果:
SemidefiniteOptimization 是 ConicOptimization 的特例:
SecondOrderConeOptimization 是 ConicOptimization 的特例:
可能存在的问题 (6)
通常可以用 Tolerance 选项控制对约束条件的违反:

最小值点为 Indeterminate:


最小值点为 Indeterminate:

、
的位于 5*10-10 ±10-6 上下的结果将符合容差 10-6,当去掉缩放后可产生的最大错误为:
即便理论上两边都是实数,只使用 Less 也是不可行的:

文本
Wolfram Research (2019),ConicOptimization,Wolfram 语言函数,https://reference.wolfram.com/language/ref/ConicOptimization.html (更新于 2020 年).
CMS
Wolfram 语言. 2019. "ConicOptimization." Wolfram 语言与系统参考资料中心. Wolfram Research. 最新版本 2020. https://reference.wolfram.com/language/ref/ConicOptimization.html.
APA
Wolfram 语言. (2019). ConicOptimization. Wolfram 语言与系统参考资料中心. 追溯自 https://reference.wolfram.com/language/ref/ConicOptimization.html 年