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 引入了分解集的概念, 即一组确定分裂的原子。 在本文中, 我们显示, 计算带有某些理想属性的分解集的问题可以简化为典型的搜索问题, 并在多元时间中解答 。 这使得我们可以对各个程序中分解的大小进行实验, 并导致在稳定的模型计算中发现一个有趣的复杂来源 。 我们还显示, 对于头括号程序, 分解组的定义可以调整为更宽级程序。