arXivDaily arXiv每日学术速递 周一至周五更新
arXiv周末暂无论文更新,休息一下吧,周末愉快~~
arXiv 2008.06692cs.AIcs.PL
收藏

如何建立自己的ASP系统?!

How to build your own ASP-based system?!

University of Potsdam(波茨坦大学)

Roland Kaminski, Javier Romero, Torsten Schaub, Philipp Wanko

摘要:

答案集编程(ASP)已经成为一种流行的和相当复杂的方法来解决声明性问题。这可以说是由于其有吸引力的建模-接地-解决工作流,提供了一个简单的方法来解决问题,即使是计算机科学以外的外行。与此不同的是,底层技术的高度复杂性使得ASP专家越来越难以将想法付诸实践。为了解决这个问题,本教程旨在使用户能够构建自己的基于ASP的系统。更确切地说,我们展示了如何ASP系统CLINGO可以用于扩展ASP和实现定制的特殊用途的系统。为此,我们提出了两个备选方案。我们开始与传统的人工智能技术,并显示如何Meta编程可以用于扩展ASP。这是一种相当轻松的方法,它依赖于CLINGO的具体化特性,使用ASP本身来表达新的功能。与此不同的是,本教程的主要部分使用传统编程(在PYTHON中)通过其应用程序编程接口操作CLINGO。这种方法允许改变和控制整个模型地面解决工作流程的ASP。这方面的核心是CLINGO的新Application类,它允许我们通过定制类似于CLINGO中的流程来利用CLINGO的基础设施。例如,我们可以对程序的抽象语法树进行操作,控制各种形式的多重求解,并为外来推理建立理论传播器。另一个跨Meta和应用程序编程的横截面结构是CLINGO的中间格式ASPIF,它指定了底层接地器和求解器之间的接口。我们通过示例和几个重要的案例研究来说明本教程中的上述概念和技术。

英文摘要:

Answer Set Programming (ASP) has become a popular and quite sophisticated approach to declarative problem solving. This is arguably due to its attractive modeling-grounding-solving workflow that provides an easy approach to problem solving, even for laypersons outside computer science. Unlike this, the high degree of sophistication of the underlying technology makes it increasingly hard for ASP experts to put ideas into practice. For addressing this issue, this tutorial aims at enabling users to build their own ASP-based systems. More precisely, we show how the ASP system CLINGO can be used for extending ASP and for implementing customized special-purpose systems. To this end, we propose two alternatives. We begin with a traditional AI technique and show how meta programming can be used for extending ASP. This is a rather light approach that relies on CLINGO's reification feature to use ASP itself for expressing new functionalities. Unlike this, the major part of this tutorial uses traditional programming (in PYTHON) for manipulating CLINGO via its application programming interface. This approach allows for changing and controlling the entire model-ground-solve workflow of ASP. Central to this is CLINGO's new Application class that allows us to draw on CLINGO's infrastructure by customizing processes similar to the one in CLINGO. For instance, we may engage manipulations to programs' abstract syntax trees, control various forms of multi-shot solving, and set up theory propagators for foreign inferences. Another cross-sectional structure, spanning meta as well as application programming, is CLINGO's intermediate format, ASPIF, that specifies the interface among the underlying grounder and solver. We illustrate the aforementioned concepts and techniques throughout this tutorial by means of examples and several non-trivial case-studies.

机构、总结、中文摘要均由AI分析而来,可能存在错误,请以论文正文为准。

↑