问题标签 [answer-set-programming]
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.
automation - 答案集编程 - 使 FACT 无效
我有一个关于答案集编程的问题,关于如何使现有事实无效,当知识库中已经(也)存在默认语句时。
例如,有两个人seby
,andy
其中一个人可以同时开车。场景可能是seby
可以开车,如第 3 行所示,但假设在他的执照被取消后,他不能再开车了,因此我们现在有 4 到 7 行,同时andy
学习驾驶,如第 7 行所示。第 6 行仅显示一个一个人可以一次开车,除了表现seby
和andy
不一样。
在上面的程序中,第 3 行和第 7 行与第 6 行相矛盾,并且 Clingo 求解器(我使用的)显然输出UNSATISFIABLE
.
说了这么多,请不要说删除第3行,问题就解决了。问这个问题的目的是想知道现在是否有可能让第 3 行以某种方式无效,让第 4 行履行职责。
但是,第 4 行也可以写成:
提前非常感谢。
logic-programming - 答案集编程中的混合量化
我希望能够在 ASP/cligo 中制定以下 FOL 语句:
两者的域X
由Y
给出dom/1
。的域A
由 给出domA/1
。的域V
是1..n
。
对我来说,问题是混合量化。现在,当然,我可以扩展∀ V
并得到如下内容:
但是,当我n
直到运行时才知道(我将它作为参数传递给 cligo)时,这并不能很好地工作。
有没有办法用 cligo 方便又干净地做到这一点?还是应该改用 Python/Lua 脚本功能?如果是这样,怎么做?
logic-programming - 如何在答案集编程/外国佬中禁止虚假事实的基础
当我在我的程序上运行 gringo 时,它会产生许多形式为基础的语句
然后我还获得了许多有根据的约束,例如:
鉴于以上知识,这些完全没有用。
请注意,这些都是以下形式的规则的接地版本:
为什么输出中甚至存在接地规则?为什么外国佬不直接foo(a,b)
从接地原子集合中排除?我可以以某种方式禁用它吗?我的程序的 gringo 输出因此变得臃肿,并且显着减慢了它的速度。
logic - cligo 应用可变范围
我对cligo不太了解,我希望我能清楚地分享这个问题。
目前我已经
它返回每个 X,Y 值的结果。我如何获得 X-XX 和 Y-YY 范围。
例如:规则cellUseCount(1,5,1)
为target(1,5,1,1)
. 但是,我想拥有cellUseCount(1,1,1), cellUseCount(1,2,1), cellUseCount(1,3,1), cellUseCount(1,4,1), cellUseCount(1,5,1)
for target(1,5,1,1)
。我该如何实施?
提前致谢。
answer-set-programming - Clingo - 进度错误/警告
我正在计划中运行求解器,并且在各种答案集之间我得到了我认为是警告(因为它不会终止执行),它说以下内容:
我找不到任何关于该警告的参考,所以我希望有人知道它们的意思。
answer-set-programming - “undecidable”可以用 ASP(答案集编程)来表示吗?
像这样的一句话
第一次尝试
第二次尝试
第一个对解决方案没有任何改变,而第二个则使一切都无法令人满意。
robotics - 答案集编程中的房间覆盖率
我目前正在开发一个答案集编程问题,包括一个机器人,该机器人需要覆盖一个房间以避免障碍物并在所有房间都被覆盖时到达目标点。我的想法是将房间地图转换为 asp 谓词,以 room/3 的形式,作为参数:
- X:x 坐标
- Y:y 坐标
- V:房间内点的值,分别为0(初始点),1(覆盖点),2(障碍物),3(目标点)
程序必须满足的标准之一是覆盖值为 1 的每个点,这可以通过约束来实现,但我不知道如何对机器人运动进行建模。我的想法是使用 move/1 形式的谓词,向上、向下、向左或向右。
任何人都可以帮助我指导我如何建模这个问题吗?
先感谢您。
answer-set-programming - 创建子集并仅使用每个原子一次
我是asp的新手。我需要创建一组团队。每组必须由 3 个随机选择的团队组成。一个团队只能在一个组中。
提前致谢。这是我的代码
可能的输出可能是
prolog - Prolog/ASP(Clingo) 到 CLIPS 翻译器
有什么简单的方法可以将 Prolog/ASP 代码翻译成 CLIPS?
像这样的东西,但使用 CLIPS 而不是 Prover9: https ://github.com/potassco/anthem/tree/master/examples