问题标签 [gringo]
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 - 答案集编程:如何将学生分配到一个小组中,以使不喜欢彼此的两个学生不在同一个小组中
我是答案集编程的初学者。我想将所有学生分成不同的组,这样: 1. 每个组有 3 到 4 名学生 2. 没有两个不喜欢彼此的学生在同一个组中。3. 我们不能将同一个学生分配到不同的组。
我写过这样的:
我已经添加了每个组可以包含多少学生的约束,但不知道如何满足其他两个条件。
对你的帮助表示感谢。谢谢。
answer-set-programming - 将 Clingo 4.5 与 Gringo 3 一起使用
我正在尝试运行PCGBook第 8 章练习中的代码。他们使用 cligo,但没有说明他们使用的是什么版本。当我从 Potassco 的 sourceforge(版本 4.5.4)下载最新版本的 Clingo 时,它给了我词法分析器错误。我认为这是因为 Gringo 3 和 Gringo 4 之间的语法发生了变化。在 Potassco 网站上,他们这样说并通过下载两个版本的 Gringo 来解决它,但他们没有说明如何同时引用两者使用 Clingo 运行程序。我下载了 Gringo 3.0.0 并替换了 gringo.exe,但是 cligo.exe 已经用最新版本的 Gringo 编译了。
如何使用 Gringo 3 下载最新版本的 Clingo,或最新的兼容版本?
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 - 在 clgo/ASP 中 1<0 和 1=-1 是什么意思?
我以前从未使用过 clgo,而且我发现在线文档不完整(我也无法在 Potassco 论坛上发帖)。我有一段带有格式规则行的 cligo 代码
foo(L1, L2, L3) :- isa(thing,object), isa(thing, object)...
这部分代码是有道理的,但在最后一条规则之前的行尾,我的条件是 1>0、1<0 或 1==-1。我不确定它们是什么意思,因为它们似乎不遵循正常的布尔规则。有谁知道这在 clgo 中具体意味着什么?
answer-set-programming - 如何从 cligo 开始?
我已经安装了clgo。但我不知道如何运行它。文件中有一些示例。我试图运行它。但它失败了。
我在 Windows 和 Ubuntu 中都安装了它。我已将其添加到路径中。
C:\Windows\system32>cligo color.lp\graph.lp cligo 版本 5.3.0 从颜色\图形读取:错误:无法打开文件:
color.lp\graphC:\Windows\system32> cligo context-py.lp encoding.lp --of=3 0 * 错误: (clingo): 'encoding': 无法打开输入文件!*信息 : (cligo): 尝试使用“--help”获取使用信息
C:\Windows\system32> cligo context-lua.lp encoding.lp --of=3 0 * 错误: (cligo): 无法打开输入文件!*信息 : (cligo): 尝试使用“--help”获取使用信息
answer-set-programming - 使用最大化时如何在 cligo 中显示所有最大结果?
我目前正在编写一个asp程序。当我在程序中注释该行时#maximize{S:ce(S)}.
,答案显示如下
其中答案 7 和答案 8 的ce
值相同4
。
当我取消注释该行时#maximize{S:ce(S)}.
,答案显示如下
的结果只有一个ce(4)
,但我想得到 ce 的最大值的所有结果,我应该怎么做才能得到具有值的两个结果ce(4)
。
traveling-salesman - 时间窗的旅行推销员问题
我正在尝试通过额外的约束 - 时间窗口来解决 TSP 问题。
所有标准假设均适用:
- 我们在给定的城市开始和结束。
- 每个城市只被访问一次。
- 我们试图根据旅行成本(此处为旅行时间)找到最佳路径。
此外,每个城市都有自己的时间窗口格式,这限制了可以访问城市的时间:
- 我们不能在关闭时间之后访问一个城市。
- 我们可以在开放时间之前到达任何城市并等待它开放。如果我们这样做,等待时间会添加到经过的总时间中,但不会添加到旅行时间中。所以time_spent_travelling和total_time_passed是我们需要跟踪的两个不同的东西。
我设法编写了根据total_time_passed找到最佳解决方案的约束,但我需要找到最佳time_spent_travelling。
这是我的逻辑:
这里的示例数据(用 cligo 运行它需要大约 30 秒):
我使用 MAX 函数通过选择实际到达时间或城市的开放时间来计算给定城市的到达时间 - 以较晚者为准。它工作得很好,所以我的第一个想法是向位置事实添加额外的字段,如下更改此行:
这种方式 location 保存有关time_spent_travelling和total_time_passed的信息。虽然这适用于 5 个城市,但有 20 个城市的计算时间过长(我在 15 分钟后放弃了) - 我希望程序在两种情况下运行的时间大致相同,但显然这里有一些我不明白的地方.
我还尝试将等待时间存储为单独的事实,但它似乎以同样的方式影响计算时间,并在#minimize 函数中引入了另一个我无法解决的问题。
所以这是我的问题:
- 我可以做些什么来计算time_spent_travelling的最佳值,但正确考虑等待时间?
- 为什么我上面描述的代码中的微小变化会对求解过程产生如此高的计算影响?
我最近开始使用 cligo,很有可能我没有看到解决这个问题的简单方法。习惯于声明式编程,很难改变编写程序的方式。
我提供的代码可以用 cligo 简单运行:
clingo logic data
我的输出:
这里的结果考虑了等待时间,在这个特定示例中为 9。(378 是仅花费在旅行上的时间)。