基于惰性基化的带约束答案集编程
1. 引言
近年来,答案集编程(ASP)范式备受关注。ASP 建立在稳定模型语义下的常规逻辑程序的理论基础之上,它巧妙地融合了传统逻辑编程、非单调推理和一些基于约束的推理形式。ASP 在众多应用领域中展现出强大的实力,能够提供简洁、优雅且经过验证的解决方案,例如系统发生推断、规划和生物信息学等领域。
然而,随着新应用的不断发展,ASP 所支持的传统语言和系统实现面临着巨大的挑战,暴露出当前技术的一些局限性。以解决复杂规划问题为例,像 Pipeline 问题,一些先进的规划器如 FF 能有效解决前 9 个实例,但使用 Lparse 和 Smodels 时,只能解决第一个实例,后续实例要么长时间无法终止执行,要么生成的基化程序超出了系统的输入能力。
同时,为了能够对复杂关系进行声明式编码,出现了许多语言扩展的提议,如聚合、特定领域约束和函数等。但这些扩展给实现者带来了难题,常常需要构建复杂的机制来将扩展集成到现有的 ASP 求解器框架中。
大多数现有的 ASP 系统采用两阶段计算模型。答案集的实际计算仅在命题程序上进行,这就需要一个基化阶段,通常由基化模块完成。然而,基化过程可能会导致生成极其庞大的基化程序,还可能迫使开发者采用不自然的解决方案来避免某些程序组件的基化。
为了解决这些问题,我们提出了一种名为 Grounding - lazy ASP(GASP)的新框架。该框架具有以下特点:
- 完全用声明式语言(有限域约束逻辑编程)开发,利用有限域集合对 ASP 程序中的谓词进行紧凑表示。
- 采用自底向上的执行模型,无需对程序进行预基化。
这种方法带来了显著的潜力: