gpt4 book ai didi

Prolog/ASP(Clingo) 到 CLIPS 翻译器

转载 作者:行者123 更新时间:2023-12-02 08:45:04 34 4
gpt4 key购买 nike

是否有任何简单的方法可以将 Prolog/ASP 代码转换为 CLIPS?

类似于此,但使用 CLIPS 而不是 Prover9: https://github.com/potassco/anthem/tree/master/examples

最佳答案

当正向链接引擎允许您不确定时,您可以将一些 ASP 转换为正向链接 choice行动。结果将是一个析取头逻辑程序。下面是一个小型 ASP 程序的示例:

:- p, q, r.
{p,r}.
{q} :- p.
{r} :- p.

然后您可以将其重写为前向链接规则。为了简洁起见,我们在前向链接规则的头部使用了 (;)/2 操作:

fail <= posted(p), posted(q), posted(r).
post(p); post(r) <= posted(init).
post(q) <= posted(p).
post(r) <= posted(p).

这里是一个跟踪Prolog执行的过程,代码会首先尝试p,但是约束p、q、r会阻止这个答案集元素作为解决方案:

Jekejeke Prolog 3, Development Environment 1.3.2
(c) 1985-2018, XLOG Technologies GmbH, Switzerland

?- post(init).
0 Call post(init) ?
1 Call post(p) ?
2 Call clause(q, true) ?
2 Fail clause(q, true) ?
2 Call post(q) ?
3 Call clause(p, true) ?
3 Exit clause(p, true) ?
3 Call clause(r, true) ?
3 Fail clause(r, true) ?
2 Exit post(q) ?
2 Call post(r) ?
3 Call clause(p, true) ?
3 Exit clause(p, true) ?
3 Call clause(q, true) ?
3 Exit clause(q, true) ?
3 Call fail ?
3 Fail fail ?
2 Fail post(r) ?
1 Fail post(p) ?

在上面的第/2 条中,确实检查了析取头逻辑程序的主体。然后 Prolog 解释器将回溯到 r 作为答案集元素:

    1 Call post(r) ? 
2 Call clause(p, true) ?
2 Fail clause(p, true) ?
1 Exit post(r) ?
0 Exit post(init) ?
Yes

关于Prolog/ASP(Clingo) 到 CLIPS 翻译器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51164366/

34 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com