论文标题
SparkTope:算法的线性程序
Sparktope: linear programs from algorithms
论文作者
论文摘要
在最近的论文Avis中,Bremner,Tiwary和Watanabe提供了一种基于用简单的编程语言编写的名为Sparks的算法构建线性程序(LPS)的方法。如果算法在多项式时间和空间中产生解决方案$ x $,那么构建的LP也具有多项式大小,其最佳解决方案包含$ x $以及算法的完整执行跟踪。他们的方法使我们构建了一个名为SparkTope的编译器,我们在本文中描述了该编译器。该编译器允许一个人生成具有指数扩展复杂性的P中的多项式LP,例如非双方图中的匹配问题。 在本文中,我们描述了Sparktope,语言火花以及它产生的汇编指令和LP约束。接下来是两个具体的示例,即MakePAN问题和测试是否最大的匹配,这两个问题都具有指数扩展的复杂性。给出了计算结果。在讨论这些示例时,我们利用Sparktope中包含的可视化技术可能具有独立感兴趣。编译器制作的极大的线性程序似乎在使用当前可用的软件解决方案非常具有挑战性。由于可以独立计算最佳LP解决方案,它们可能是基准的。还讨论了编译器及其应用的进一步增强。
In a recent paper Avis, Bremner, Tiwary and Watanabe gave a method for constructing linear programs (LPs) based on algorithms written in a simple programming language called Sparks. If an algorithm produces the solution $x$ to a problem in polynomial time and space then the LP constructed is also of polynomial size and its optimum solution contains $x$ as well as a complete execution trace of the algorithm. Their method led us to the construction of a compiler called Sparktope which we describe in this paper. This compiler allows one to generate polynomial sized LPs for problems in P that have exponential extension complexity, such as matching problems in non-bipartite graphs. In this paper we describe Sparktope, the language Sparks, and the assembler instructions and LP constraints it produces. This is followed by two concrete examples, the makespan problem and the problem of testing if a matching in a graph is maximum, both of which are known to have exponential extension complexity. Computational results are given. In discussing these examples we make use of visualization techniques included in Sparktope that may be of independent interest. The extremely large linear programs produced by the compiler appear to be quite challenging to solve using currently available software. Since the optimum LP solutions can be computed independently they may be useful as benchmarks. Further enhancements of the compiler and its application are also discussed.