下面我提供了我的主要软件开发清单。其他脚本和较小软件库的链接可从出版物标签或直接在我的研究文章的正文中。

TSSOS:基于块矩-SOS层次的稀疏多项式优化工具。

查看专用网页.

TSSOS是一个实现新的矩-SOS层次结构的Julia包,用于解决大规模稀疏多项式优化问题。它的新颖之处在于结合现有两种稀疏多项式优化框架的优点,同时利用相关稀疏性和术语稀疏性。前者是由Waki等人提出的,而后者最初由Wang等人提出,后来在TSSOS层次结构中加以利用。通过这样做,我们得到了半定规划松弛的两级层次(i) 涉及拟块对角矩阵的关键性质,以及(ii)收敛到全局最优的保证。TSSOS可以处理著名的Max-Cut问题和重要的工业最优潮流问题的几个大规模实例,涉及数千个变量和一万个约束。

RealCertify:用于证明非否定性的Maple包。

查看专用网页.

Maple包RealCertify解决了在由有理系数多项式约束定义的半代数域上确定有理多项式的非负性的问题。这是通过计算输入的非负性平方和证书来实现的,其中此类证书包含有理数。它可以应用于来自工程科学、程序验证和网络物理系统的许多问题。它基于基于半定规划的混合符号-数字算法。

Real2Float:使用SDP的认证舍入误差界限工具。

查看专用网页.

Real2Float是一组用半定规划分析非线性程序浮点错误的库。该工具需要OCaml、SDPA和Coq(可选)。

NLCertify:用于形式化非线性优化的工具。

查看专用网页.

NLCertify是一个软件包,用于处理涉及超越多元函数的非线性不等式的正式证明。该工具利用稀疏半代数优化技术和超越函数的近似方法以及形式特征。给定一个方框K和一个函数f作为输入,NLCertify提供了OCaml库,可以为f over K生成非负证书,这最终可以在Coq证明助手中证明是正确的。形式非线性推理领域的一个具体挑战是开发自适应技术,以生成复杂度较低的证书。

软件首先构建f的抽象语法树t。t的叶子是通过多项式与一些基本运算(包括平方根、sup、inf、+、x、-、/等)组合而成的半代数函数。其他节点可以是单变量超越函数(arctan、cos、exp等)或基本运算。NLCertify使用半代数估计的方法近似t,并提供t在K上的上界和下界。当t表示多项式时,该工具通过与外部SDPA解算器的接口,使用半定(SDP)松弛层次计算t的上界。通过实现Lasserre-Putinar提升策略,可以直接扩展到半代数情况。用户可以选择使用最佳一致(或极小极大)多项式以及maxplus估计来近似超越函数。使用与Sollya环境的接口提供了单变量极小极大多项式,其中实现了由Remez设计的迭代算法。或者,maxplus方法使用二次型的凹极大值(凸中点)构建下(上)估计量。通过这种方式,NLCertify通过对语法树t的归纳,从原始函数的近似值计算认证的全局估计量。

这些不同的近似和优化算法被放置在一个统一的框架中,该框架扩展到大约15000行OCaml代码和3600行Coq代码。NLCertify包成功解决了Flyspeck项目中的非平凡不等式(本质上是紧不等式,涉及6~12个变量的半代数和超越表达式)以及重要的全局优化基准。