问题标签 [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.
answer-set-programming - 如何在 Clingo 中使用否定选择最大值
在 prolog 中,我们可以使用否定来选择元组中的最大值,例如:p(X),而不是 (p(Y), Y > X)。% 在 Prolog 中工作,但在 Clingo 中不工作
如何使用 Clingo 表达式获得相似的规则(如果没有比 A 更大的数字,则 A 为最大值)。谢谢。
answer-set-programming - 如何在 Clingo 中定义 OR 条件
我是 Clingo 的新手。
我想知道如何在计数聚合中表达 OR 条件。
我正在写这条规则。
但是 cligo 不承认圆括号。我必须如何在 clgo 中制定这种条件?
如果我移动条件并写下有什么区别:
answer-set-programming - 有没有一种方法可以在 Clingo 中表示任意长度的元组?
如果我想获得任意长度元组的头部,我必须编写如下代码:head(A) :- tuple(A,B)。头(A):-元组(A,B,C)。头(A):-元组(A,B,C,D)。…………
有没有一种方法可以表示 head(A) :- tuple(A...)。
谢谢!
answer-set-programming - sbass 无法读取外国佬输出
我正在运行一个简单的 ASP 程序:
为了尝试通过打破对称性来减少搜索空间,我一直在尝试使用Potassco 网站上的 sbass 工具
我正在使用 Ubuntu 20.04 LTS。在 sbass 文件中运行 make 并获取可执行文件后,我只运行:
它抛出了一个错误:
我错过了什么?根据文章,sbass 应该只是能够获取 gringo 的输出。
answer-set-programming - 如何在答案集编程中对此进行编码?
我是一个回答集合编程的新手,我正在努力解决一个相当简单的问题。该程序需要用 cligo 编写。
所以这是一个问题:
一个抽象的论证框架由一组参数 A 和它们之间的攻击关系 R ⊆ AXA 组成。对于任意两个参数 a1 和 a2,如果 (a1, a2) ∈ R,那么我们说 a1 攻击 a2:如果一个人承认参数 a1,那么它就会对参数 a2 产生怀疑。形式上,如果满足以下两个条件,则参数 E ⊆ A 的子集是稳定的:
- E 中的任何论点都不会攻击 E 的任何其他论点。
- E 之外的任何参数都会受到来自 E 的参数的攻击。
编写一个 ASP 程序,通过答案集识别给定实例中参数的稳定子集。该实例将通过分别对应于 A 和 R 的两个谓词参数/1 和攻击/2 提供。
这是一个例子:
有效输出:
这是我尝试过的,这显然是错误的:
我根本不知道如何处理这个问题。
请帮忙。
answer-set-programming - 如何在 clgo 中使用 sum?
我有以下数据集:
我想满足以下限制:
选择 N-1 个顶点(目标(N))
并且sum
它们的weight
应该小于M(threshold(M))
。输出所有满足条件。我编了以下代码:
但结果只有一个,其实应该有几个答案。
我不知道原因。
undirected-graph - 如何使用答案集编程从图中提取树?
有一个无向图 (V,E),边上的权重 w : E → N,目标 k ∈ N,阈值 O ∈ N。找到权重小于阈值的图的 k 顶点树。也就是说,分别从V和E中选择k个顶点和k-1条边,使得它们构成一棵树,并且所选择的边的权重之和小于O。
编写一个 ASP 程序,将 V、E、w、k 和 O 作为输入,并找到满足约束的边的选择,如果不能满足约束,则输出“不可满足”。选择边隐含地导致选择顶点,因此不需要显式显示所选顶点。
通过谓词 vertex/1、weight/3、target/1 和 threshold/1 提供了这个问题的一个实例。所有边都有权重,所以形式为 weight(a, b, 10) 的语句。可用于声明顶点 a 和 b 之间存在边的同时声明它们的权重,不需要任何多余的边/2 谓词。
我尝试了以下方法:
我得到以下输出:
我只是期待
因为其他人显然不是发辫。
我认为这是因为有问题的行:
我该如何纠正?
answer-set-programming - 确定两个派系是否不同
假设我有一个图表,并且想在图表中找到 2 个不同的派系。一个团是图顶点的一个子集,所有这些顶点都连接在一起。具有 2 个 cliques (a,b,c) 和 (b,c,d) 的 cliquesize 3 的示例图:
获得 2 个派系相当容易:
给出:
可以解释为:
但是如何测试两个派系是否不同?我试过了
但这对输出没有影响。我如何测试两个派系是否不同?
现在我找到了这个解决方案:
它有效,但我不喜欢它需要 2 行。我如何把它放在一个约束中?
list - 如何检查 CLINGO 列表中的成员资格?
拥有 Prolog 的背景,我正在努力将这个DLV
(它具有内置谓词来处理类似于 Prolog 的列表)程序转换为CLINGO
.
到目前为止,我设法实现了这一点:
但我得到了错误unsafe variables in in file - at line 7 and column 1-72
,我不完全明白为什么。我想知道是否有人可以提供帮助。
aggregate - ASP Clingo - 获取原子的确切数量
我期待着为特定的班次分配特定的人数。例如,我有六个人和三个不同的班次。现在我必须为每个班次分配准确的两个人。我试过这样的东西,但是..
注意:这不起作用,所以请尽快编辑以误导人们,我什至删除了“。” 在它之后没有人复制它:
这是否可以计算分配班次的数量,所以我可以分配与给定人数一样多的人?
上面代码的输出(插入“.”时)是:
在这里,您可以清楚地看到,早班(“mor”)班次使用了两次以上,如shiftCount中所定义。我需要改变什么才能得到想要的结果?