当前位置: X-MOL 学术arXiv.cs.PL › 论文详情
Our official English website, www.x-mol.net, welcomes your feedback! (Note: you will need to create a separate account there.)
How to Split a Logic Program
arXiv - CS - Programming Languages Pub Date : 2021-09-17 , DOI: arxiv-2109.08284
Rachel Ben-Eliyahu-ZoharyAzrieli College of Engineering, Jerusalem, Israel

Answer Set Programming (ASP) is a successful method for solving a range of real-world applications. Despite the availability of fast ASP solvers, computing answer sets demands a very large computational power, since the problem tackled is in the second level of the polynomial hierarchy. A speed-up in answer set computation may be attained, if the program can be split into two disjoint parts, bottom and top. Thus, the bottom part is evaluated independently of the top part, and the results of the bottom part evaluation are used to simplify the top part. Lifschitz and Turner have introduced the concept of a splitting set, i.e., a set of atoms that defines the splitting. In this paper, We show that the problem of computing a splitting set with some desirable properties can be reduced to a classic Search Problem and solved in polynomial time. This allows us to conduct experiments on the size of the splitting set in various programs and lead to an interesting discovery of a source of complication in stable model computation. We also show that for Head-Cycle-Free programs, the definition of splitting sets can be adjusted to allow splitting of a broader class of programs.

中文翻译:

如何拆分逻辑程序

答案集编程 (ASP) 是解决一系列实际应用程序的成功方法。尽管有快速的 ASP 求解器,但计算答案集需要非常大的计算能力,因为要解决的问题在多项式层次结构的第二级。如果程序可以分成两个不相交的部分,底部和顶部,则可以加快答案集的计算。因此,底部的评估独立于顶部,底部评估的结果用于简化顶部。Lifschitz 和 Turner 引入了分裂集的概念,即定义分裂的一组原子。在本文中,我们展示了计算具有一些理想属性的分裂集的问题可以简化为经典的搜索问题并在多项式时间内解决。这使我们能够在各种程序中对分裂集的大小进行实验,并导致一个有趣的发现,即稳定模型计算中的复杂性来源。我们还表明,对于 Head-Cycle-Free 程序,可以调整拆分集的定义以允许拆分更广泛的程序类别。
更新日期:2021-09-20
down
wechat
bug