[论文解读] Unfolding Partiality and Disjunctions in Stable Model Semantics
本文提出一种两步转换方法,利用现有的正常(无析取)程序稳定模型求解器作为核心引擎,实现部分稳定模型与析取稳定模型的计算。首先,通过线性、模块化的程序转换,将部分性展开为全稳定模型;其次,采用生成与测试方法,将析取稳定模型计算归约为正常程序求解。该方法使基于优化引擎(如 smodels)实现高效的部分与析取稳定模型推理成为可能,性能与当前最先进的系统 dlv 相当。
The paper studies an implementation methodology for partial and disjunctive stable models where partiality and disjunctions are unfolded from a logic program so that an implementation of stable models for normal (disjunction-free) programs can be used as the core inference engine. The unfolding is done in two separate steps. Firstly, it is shown that partial stable models can be captured by total stable models using a simple linear and modular program transformation. Hence, reasoning tasks concerning partial stable models can be solved using an implementation of total stable models. Disjunctive partial stable models have been lacking implementations which now become available as the translation handles also the disjunctive case. Secondly, it is shown how total stable models of disjunctive programs can be determined by computing stable models for normal programs. Hence, an implementation of stable models of normal programs can be used as a core engine for implementing disjunctive programs. The feasibility of the approach is demonstrated by constructing a system for computing stable models of disjunctive programs using the smodels system as the core engine. The performance of the resulting system is compared to that of dlv which is a state-of-the-art special purpose system for disjunctive programs.
研究动机与目标
- 利用现有正常程序稳定模型语义实现的稳定模型求解器,实现部分与析取稳定模型的高效计算。
- 解决尽管部分与析取稳定模型在理论上具有重要意义,但缺乏高效实现的问题。
- 开发一种模块化、高效且保持结构的翻译方法,以保留程序直觉,便于调试与分析。
- 通过以 smodels 为核心引擎的实现,验证该方法的可行性与性能,并与 dlv 进行比较。
提出的方法
- 首先,通过线性且模块化的程序转换,将部分稳定模型映射为全稳定模型,从而可使用全模型求解器进行部分性推理。
- 其次,采用生成与测试方法,通过将析取程序归约为正常程序,实现其全稳定模型的计算,从而利用核心引擎的高效性。
- 该转换方法保持了模块化与结构完整性,支持组件的独立编译,提升调试便利性。
- 该方法通过查询翻译支持对部分模型的查询回答,扩展了全模型求解器的实用性。
- 实现与 lparse 和 smodels 集成,仅通过少量代码扩展,即可处理析取与部分逻辑程序。
- 性能评估采用合成的 QBF 实例与规划问题,将扩展后的系统(GnT2)与 dlv 和 smodels 进行对比。
实验结果
研究问题
- RQ1能否通过简单、线性的程序转换,有效利用全稳定模型求解器来捕捉部分稳定模型?
- RQ2能否通过高效且模块化的方法,将析取稳定模型计算归约为正常程序的稳定模型计算?
- RQ3所得到的系统在性能上是否与 dlv 等当前最先进的系统具有可比性?
- RQ4该转换在多大程度上保持了程序结构,支持调试与查询回答?
主要发现
- 针对部分模型的所提转换实现了多项式时间归约,同时保持正确性与模块化,使全模型求解器可用于部分推理。
- 针对析取程序的生成与测试方法,将 QBF 问题的搜索空间从 O(2^v) 降低至 O(2^√(v/2)),显著提升可扩展性。
- 扩展系统(GnT2)解决了比以往类似工具更大的 QBF 实例,最多支持 3500 个变量,表明性能显著提升。
- 在规划问题上,GnT2 在正常程序上的运行速度比 smodels 慢 2–4 倍,但考虑到析取推理的额外复杂性,仍具有竞争力。
- 在大型 QBF 实例上,GnT2 的性能比 dlv 更为稳定,dlv 在问题规模增大时性能下降更快。
- 该方法成功实现了将高效正常程序求解器作为析取与部分稳定模型计算的核心引擎,验证了该方法的可行性与高效性。
更好的研究,从现在开始
从论文设计到论文写作,大幅缩短您的研究时间。
无需绑定信用卡
本解读由 AI 生成,并经人工编辑审核。