用半定规划松弛法求解交换变量或非交换算子的全局多项式优化问题

ncpol2sdpa的Python项目详细描述


ncpol2sdpa

ncpol2sdpa通过半定规划(sdp)松弛求解交换变量或非交换算子的全局多项式优化问题。优化问题可以是无约束的,也可以是等式和不等式约束的,也可以是矩约束的。目标是能够解决大规模优化问题。示例应用程序包括:

该实现具有输入问题的直观语法,并使用sdp问题的稀疏表示来扩展大量的非对易变量。有关详细信息,请参见以下文章:

  • 彼得·维泰克。算法950:非协调变量多项式优化问题的ncpol2sdpa稀疏半定规划松弛。acm数学软件上的事务,41(3),212015。内政部:10.1145/2699464。arxiv:1308.6029

依赖关系

实现需要SymPyNumpy。代码与python 2和3都兼容。虽然默认的cpython解释器足以解决中小型问题,但对于较大的问题,执行时间会变得过长。代码与pypy兼容。使用它可以获得10-20倍的加速。如果使用pypy,则需要Pypy fork of Numpy

默认情况下,ncpol2sdpa不需要解算器,但它也无法解算生成的松弛。安装任何支持的解算器,它将被自动检测。

可选依赖项包括:

  • SDPA是一个可能的目标解算器。
  • SciPy使用默认的cpython解释器可以更快地执行。
  • PICOS是使用cvxopt解算器和将问题转换为picos实例所必需的。
  • MOSEK使用mosek解算器需要python模块。
  • CVXPY是将问题转换为或通过cvxpy或scs解决问题所必需的。
  • Cvxopt是chompack和picos所必需的。
  • Chompack改进了弦图扩展的稀疏性。

用法

文档可在Read the Docs上找到。下面的代码复制了Pironio,S.;Navascués,M.&;Acín,A.多项式优化问题的收敛松弛与非相容变量暹罗优化杂志,暹罗,2010,20,2157-2180。

fromncpol2sdpaimportgenerate_operators,SdpRelaxation# Number of operatorsn_vars=2# Level of relaxationlevel=2# Get Hermitian operatorsX=generate_operators('X',n_vars,hermitian=True)# Define the objective functionobj=X[0]*X[1]+X[1]*X[0]# Inequality constraintsinequalities=[-X[1]**2+X[1]+0.5>=0]# Simple monomial substitutionssubstitutions={X[0]**2:X[0]}# Obtain SDP relaxationsdpRelaxation=SdpRelaxation(X)sdpRelaxation.get_relaxation(level,objective=obj,inequalities=inequalities,substitutions=substitutions)sdpRelaxation.solve()print(sdpRelaxation.primal,sdpRelaxation.dual,sdpRelaxation.status)

进一步的例子可以在文档中找到。

安装

该代码在pypi上可用,因此可以通过

$ sudo pip install ncpol2sdpa

如果您想要最新的git版本,请按照克隆存储库后安装python模块的标准过程:

$ sudo python setup.py install

确认

这项工作得到了欧盟委员会第七个框架计划(授予协议编号:FP7-601138PERICLES)、FI-2013-1-0008和FI-2013-3-0004以及SNIC 2014/2-7和Swedish National Infrastructure for Computing项目的支持。SNIC 2015/1-162。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java为什么这段代码要打印空字符串?   java未知错误:由于标签页崩溃,会话被删除   布尔型上的java函数if-else   java最佳蚂蚁教程/快速入门?   JAVAutil。java中的扫描程序跳过do while循环中的扫描程序输入   java我们可以在selenium中使用ExpectedConditions和FluentWait来实现通用等待方法吗?   java如何使用gson库解析JSONObject   java GWT模拟Android LinearLayout的布局重量属性?   Java正则表达式重写日期表达式   java MediaPlayer播放我的MP3文件,但非常安静   java背景不显示javaFX   用于CLI的java quarkus开发模式,如何重新启动应用程序   websphere WSJdbcDataSource的java Jar文件   java Spring 4对象不会自动连接变量   java从Dbpedia定制本体/RDF图