[论文解读] SOSTOOLS Version 4.00 Sum of Squares Optimization Toolbox for MATLAB
SOSTOOLS v4.00 为 MATLAB 中的平方和(SOS)优化引入了重大的性能改进,重构其内部解析引擎,使计算和内存开销低于底层的半定规划(SDP)求解器。通过用与 multipoly 工具箱兼容的新颖高效 dpvar 格式替代原有的多项式变量结构,该工具箱实现了解析复杂度的近线性缩放,从而在大规模 SOS 程序中实现显著提速,同时保持向后兼容性和用户友好性。
The release of SOSTOOLS v4.00 comes as we approach the 20th anniversary of the original release of SOSTOOLS v1.00 back in April, 2002. SOSTOOLS was originally envisioned as a flexible tool for parsing and solving polynomial optimization problems, using the SOS tightening of polynomial positivity constraints, and capable of adapting to the ever-evolving fauna of applications of SOS. There are now a variety of SOS programming parsers beyond SOSTOOLS, including YALMIP, Gloptipoly, SumOfSquares, and others. We hope SOSTOOLS remains the most intuitive, robust and adaptable toolbox for SOS programming. Recent progress in Semidefinite programming has opened up new possibilities for solving large Sum of Squares programming problems, and we hope the next decade will be one where SOS methods will find wide application in different areas. In SOSTOOLS v4.00, we implement a parsing approach that reduces the computational and memory requirements of the parser below that of the SDP solver itself. We have re-developed the internal structure of our polynomial decision variables. Specifically, polynomial and SOS variable declarations made using sossosvar, sospolyvar, sosmatrixvar, etc now return a new polynomial structure, dpvar. This new polynomial structure, is documented in the enclosed dpvar guide, and isolates the scalar SDP decision variables in the SOS program from the independent variables used to construct the SOS program. As a result, the complexity of the parser scales almost linearly in the number of decision variables. As a result of these changes, almost all users will notice a significant increase in speed, with large-scaleproblems experiencing the most dramatic speedups. Parsing time is now always less than 10% of time spent in the SDP solver. Finally, SOSTOOLS now provides support for the MOSEK solver interface as well as the SeDuMi, SDPT3, CSDP, SDPNAL, SDPNAL+, and SDPA solvers.
研究动机与目标
- 解决大规模平方和程序(SOSPs)解析过程中日益增长的计算与内存瓶颈问题,其开销常超过求解所得半定规划(SDPs)的开销。
- 通过重构多项式与 SOS 决策变量的内部表示,最小化解析开销,提升 SOS 编程工具的效率。
- 在显著加速解析与求解时间的同时,确保向后兼容性,尤其针对拥有数万个决策变量的 SOSPs。
- 通过降低大规模多项式优化的计算门槛,推动 SOS 方法在更广泛应用场景中的采用。
- 在实现核心数据类型结构改进带来的底层性能提升的同时,保持工具的易用性与直观接口,供研究人员与实践者使用。
提出的方法
- 引入一种新的内部数据结构 dpvar,专为 SOS 程序中的决策变量优化设计,将其与多项式构建中使用的自变量解耦。
- 用基于 dpvar 的等效函数替代原有声明方式(如 sossosvar、sospolyvar),以简化解析流程并减少符号计算开销。
- 集成 multipoly 工具箱,消除对 MATLAB 符号数学工具箱的依赖,从而降低解析时间与内存消耗。
- 重新组织求解器接口,将 SDP 决策变量与多项式变量分离,通过 RRx/RRy 矩阵实现高效的排列与重排。
- 使用排列矩阵(RRx、RRy)将用户定义的 SOS 变量映射至 SDP 求解器所需的输入格式,从而将底层复杂性抽象化,避免用户直接接触。
- 优化解析流水线,使其复杂度几乎随决策变量数量呈线性增长,从而在大规模问题中超越 SDP 求解器自身的复杂度表现。
实验结果
研究问题
- RQ1平方和优化中的解析开销能否被降低至低于 SDP 求解阶段的开销?
- RQ2如何重构多项式与 SOS 变量的内部表示,以提升大规模 SOS 程序的可扩展性并减少内存使用?
- RQ3在不牺牲可用性的情况下,集成 multipoly 工具箱与新型 dpvar 结构能在多大程度上加速 SOS 程序的解析?
- RQ4SOSTOOLS v4.00 的新架构是否能在广泛范围的 SOS 问题规模(尤其是大规模问题)中实现显著的性能提升?
- RQ5新的解析流水线能否在保持与现有 SOSTOOLS 工作流完全向后兼容的同时,实现显著的速度提升?
主要发现
- 基于 dpvar 的新解析架构使计算与内存开销低于 SDP 求解器本身,使解析不再成为性能瓶颈。
- SOSTOOLS v4.00 中的解析时间几乎随决策变量数量呈线性增长,相比旧版本效率显著提升。
- 大规模 SOS 程序——尤其是拥有数万个决策变量的程序——获得了最显著的提速,解析时间已降至 SDP 求解时间的 10% 以下。
- multipoly 工具箱与新型 dpvar 结构的集成,消除了此前与 MATLAB 符号引擎相关的大部分符号计算开销。
- 新架构保持了完整的向后兼容性,确保现有 SOSTOOLS 脚本与工作流无需修改即可继续正常运行。
- 求解流水线依然稳健,可完整访问原始解与对偶解、SDP 求解器信息,以及通过 prog.solinfo.extravar.primal 和 prog.solinfo.RRx 等字段提取的 SOS 分解结果。
更好的研究,从现在开始
从论文设计到论文写作,大幅缩短您的研究时间。
无需绑定信用卡
本解读由 AI 生成,并经人工编辑审核。