Cplus2ASP是一个设计用于将为CCalc编写的动作描述模块化转换为答案集程序的系统。当前的工作包括一套工具,用于翻译CCalc操作描述、解决翻译的ASP程序,以及生成与CCalc输出的模型类似的答案集。如果您不熟悉CCalc,它是操作的实现语言C++(因果逻辑的扩展),对于描述和推理基于时间和状态的领域非常有用使用相对直观的语法。有关更多信息,请使用侧栏中的链接查看CCalc网站。我们的目标是将CCalc语言的用户友好性与现代答案集求解器的速度相结合,以获取两者的最佳效果。
Cplus2ASP系统由以下部件组成:
Cplus2ASP
工具链的主编配器程序充当一个统一接口,接受所有输入和选项,自动处理用正确的配置以正确的顺序调用以下程序的过程。虽然可以手动调用我们强烈建议让这个系统分别处理组织和执行软件工具链。
Cplus2ASP是高度可配置的,允许关闭工具链中的工具或将其替换为其他工具,尽管不建议在自定义选择的工具链组件之间兼容。此外,Cplus2ASP还提供了许多预先配置的运行模式,如下所述。
增量 | - | 默认运行模式。利用转换为增量ASP,以便高效地使用增量ASP解算器迭代所有可能的步骤。 |
反应性 | - | 这正在开发中。
|
静态(自动) | - | 使用以前版本的Cplus2ASP使用的静态转换。自动迭代并解析所有请求的步骤,直到找到有效的计划。 |
静态(手动) | - | 与静态(自动)类似,只是它允许用户指定尝试求解的步骤。 |
Cplus2ASP.bin公司
这是Cplus2ASP的自动翻译模块。它接受普通的CCalc文件作为输入,并将其转换为F2LP输入。目前,软件工具链的这一部分是一个原型,因此缺乏对以下一些更高级功能的支持中国铝业。请参阅发行说明了解程序的已知限制。
F2LP(F2LP)
为了使翻译程序具有更大的灵活性,我们使用F2LP作为翻译的目标语言。F2LP支持使用将其规则中的一阶公式转换为等效的ASP代码。F2LP的语法和用法指南可以在F2LP网页(侧栏中的链接将带您到达那里)。
Cplus2ASP v3.1需要F2LP版本1.4或更高版本才能使用默认翻译方法。如果F2LP的早期版本是程序仍然可以在静态兼容模式下运行(通过--mode=static-auto参数访问)。
诊所3to4
F2LP的目标语言与clipeo3兼容。由于clipeo3和clipeo4的输入语法不同,我们使用此模块将clipeo三代码转换为与clipeo四兼容的代码。
克林戈
Cplus2ASP v3.1已将Clingo/iClingo/oClingo系统替换为Clingo 4作为默认的ASP接地/解算器套件。.
克林戈是作为波茨坦答题集解题集(Potassco)的一部分制作的ASP打地和解题套件旨在提供高度优化的静态、增量和在线ASP推理和默认用于Cplus2ASP各自的操作模式。
as2转换
as2transition是一个工具,用于输出Clingo翻译的CCalc动作描述(以及其他一些流行的答案设置解算器)并将其转换为类似于CCalc输出的可读格式。在翻译的答案集上使用此工具几乎是任何非平凡动作描述的必需品,因为任何大于简单示例的内容都会生成答案集,而可读,不容易快速解析和分析。
为了补充上述文件和工具,以下项目可能有助于简化CCalc操作描述的翻译和使用:
示例域
为了测试和演示,我们从CCalc收集了“基准”问题,并将其提供给用户作为有用的参考。侧栏中的示例链接将带您进入我们存档所有示例的页面,包括CCalc开创性论文“非单调因果理论”中的样本域,称为动物园世界的中型域和Traffic World,以及我们创建或改编为CCalc语言的其他几个自定义示例。可以使用这些示例文件直接,因为它们被设置为与转换器(Cplus2ASP.bin)以及工具链的其余部分兼容。