问题标签 [clingo]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
699 浏览

compiler-errors - asp (clingo) : 为什么排序总和不起作用

考虑以下代码,在cligo中编译。

文件test.lp. 编译命令:clingo 0 test.lp.

代码应该计算每种颜色的频率总和。对于"red",这应该是9,对于“blue"这应该是100。因为"red"该值2被计算两次。当我替换{...}[…]应该使列表成为有序列表并提供有序总和时,编译器会抱怨error: syntax error, unexpected [, expecting {。我有clingo version 4.5.4。我的代码或编译器有问题吗?

有人可以告诉我,我如何在 asp 中执行有序的求和?

0 投票
1 回答
183 浏览

python - 在 asp/cligo 中使用 python 脚本的基础谓词

我正在使用clingo版本 4,并希望能够通过 python 脚本建立关系(请不要问为什么,这不是犯罪,因为你至少可以建立一元关系)。我希望这是可能的,需要一些帮助。

这不起作用。有谁知道如何做到这一点?我尝试[(10,20),(30,40),(70,40)]了,但这也没有用。

0 投票
1 回答
678 浏览

python - cligo 编译器为 #min 计算多个值

我在 ASP / `cligo (Version 4+) 中使用 python 脚本时遇到了一个基本问题。我用一个最小的例子重建了这个问题,以说明这一点。显然,在示例中,我不需要使用脚本。然而,在我更复杂的应用程序中,我以一种更易于理解的方式人为地重新创建了问题。

问题是,在调用聚合/优化时,编译器不会以某种方式注册所有用于索引值的完整谓词。相反,它似乎是连续计算最小值,结果是沿途吐出所有值。(见下面的输出:注意最小值从 59 到 19,然后没有变为 29。这对代码部分中的prg.ground调用顺序非常敏感#script (python)。)

这是非常不可取的,我想知道如何避免这个问题。即,我怎样才能修改下面的代码仍然使用 python 脚本(可能修改),以便计算正确的模型。(在这个例子中,很明显,谓词的解min_sel_weight/1min_sel_weight(19)没有其他值的。

该计划。

调用 clingo 0 myprogramme.lp 我获得以下输出:

0 投票
1 回答
798 浏览

answer-set-programming - 计算真谓词的数量并限制

有没有一种特定的方法可以限制使用指定事实可用的真实谓词的数量?

目前我总共有(2)。作为一个事实。我认为这会起作用:

:- 总计(N), #count{x:something_to_limit(x)} = K, K=N。

但是,这不会将 something_to_limit 谓词的数量限制为指定的 total(2) 事实,其中 N 等于 2。

任何帮助将不胜感激:)

0 投票
1 回答
759 浏览

answer-set-programming - 使用答案集编程解决逻辑难题

免责声明:我对 cligo 和一般的答案集编程几乎是全新的。

我正在尝试使用 cligo解决网格逻辑难题。首先,我想生成包含每个类别的一个实例的所有模型。

例如,如果有三个人: person(a; b; c).,三个房子:house(w; x; z).,以及三种颜色: color(r; g; y).

我希望一个潜在的稳定模型是 assign(a, r, x), assign(b, g, z), assign(c, y, w) ,另一个潜在的稳定模型是 assign(a, g, w), assign(b, y, z), assign(c, r, x),等等。也就是说,每个人只出现一次,颜色也是如此。我认为一旦有了这些模型,我就可以使用约束来消除模型,直到难题解决。

我尝试过使用选择规则和约束:

但这不能很好地扩展到具有许多变量的大型谜题。任何人都可以建议更好的方法吗?

0 投票
1 回答
2510 浏览

answer-set-programming - 如何在 Clingo 中求和?

我有以下数据集:

我想满足以下约束:给定总卡路里数,我想返回满足该条件的食品。例如。总卡路里数 = 500,程序应返回“百吉饼+三明治”作为解决方案。我按照 cligo 代码对他进行了编码:

我得到的输出在屏幕截图中: 在此处输入图像描述

显然,该程序正在返回 jsut 单一食品,而不是一次考虑其中 2 或 3 个的组合。任何人都可以建议我必须遵循的更改或步骤以实现相同的目标。

0 投票
0 回答
91 浏览

java - 使用 net.sf.tweety.lp.asp.solver.Clingo 解析错误

我正在尝试从 net.sf.tweety.lp.asp 版本 1.8 运行 cligo 求解器。我正在使用 clgo 版本 4.3.0。

代码是:

当我运行它时,我收到以下错误:

cligo:错误解析答案集!net.sf.tweety.lp.asp.parser.ParseException:在第 1 行第 9 列遇到““版本”。期待以下之一:“,”...“(”...“}”...

关于可能导致它的任何想法?

0 投票
2 回答
155 浏览

automation - 答案集编程 - 使 FACT 无效

我有一个关于答案集编程的问题,关于如何使现有事实无效,当知识库中已经(也)存在默认语句时。

例如,有两个人sebyandy其中一个人可以同时开车。场景可能是seby可以开车,如第 3 行所示,但假设在他的执照被取消后,他不能再开车了,因此我们现在有 4 到 7 行,同时andy学习驾驶,如第 7 行所示。第 6 行仅显示一个一个人可以一次开车,除了表现sebyandy不一样。

在上面的程序中,第 3 行和第 7 行与第 6 行相矛盾,并且 Clingo 求解器(我使用的)显然输出UNSATISFIABLE.

说了这么多,请不要说删除第3行,问题就解决了。问这个问题的目的是想知道现在是否有可能让第 3 行以某种方式无效,让第 4 行履行职责。

但是,第 4 行也可以写成:

提前非常感谢。

0 投票
1 回答
142 浏览

logic-programming - 答案集编程中的混合量化

我希望能够在 ASP/cligo 中制定以下 FOL 语句:

两者的域XY给出dom/1。的域A由 给出domA/1。的域V1..n

对我来说,问题是混合量化。现在,当然,我可以扩展∀ V并得到如下内容:

但是,当我n直到运行时才知道(我将它作为参数传递给 cligo)时,这并不能很好地工作。

有没有办法用 cligo 方便又干净地做到这一点?还是应该改用 Python/Lua 脚本功能?如果是这样,怎么做?

0 投票
1 回答
59 浏览

logic-programming - 如何在答案集编程/外国佬中禁止虚假事实的基础

当我在我的程序上运行 gringo 时,它会产生许多形式为基础的语句

然后我还获得了许多有根据的约束,例如:

鉴于以上知识,这些完全没有用。

请注意,这些都是以下形式的规则的接地版本:

为什么输出中甚至存在接地规则?为什么外国佬不直接foo(a,b)从接地原子集合中排除?我可以以某种方式禁用它吗?我的程序的 gringo 输出因此变得臃肿,并且显着减慢了它的速度。