问题标签 [gecode]

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 回答
520 浏览

c++ - 如何在 Gecode 中实现“嵌套”成本函数?

一般来说,我是地理编码和约束编程的新手。

到目前为止,我在获取 gecode 时没有遇到太多麻烦,这很棒。但我想知道执行“嵌套”成本函数的最佳方法是什么。具体来说,我希望最小化 X,但在 X 相等的解决方案空间内,更喜欢最小化 Y 的解决方案?我可能可以通过定义一个看起来像 X*large_number+Y 的成本函数来破解它,但如果有一个好的解决方案,我更愿意正确地做到这一点。

如果有人能指点我解释如何在 Gecode 中实现这一点,那将非常有帮助。谢谢!

0 投票
0 回答
96 浏览

c++ - Express warehouse constraint by gecode(Ch15 of the gecode document)

Can't understand the constraint on page192, "Do not exceed capacity".

The document say the count function build a constraint which equal to "Do not exceed capacity". But I don't know why?

1 : what is the different with and without ICL_DOM?

2 : According to 4.4.8(pg 63)

if c is not a set but an IntArrayArgs and without ICL_DOM, it is like posting the constraint as following?

What if the c is a set? is this mean that the constraint would become

I don't get why this could make the "Do not exceed capacity" constraint hold.

for me, it should be(pseudo codes)

0 投票
2 回答
369 浏览

constraint-programming - 如何根据 Gecode 中其他变量的值来约束变量

我正在使用Gecode工具包,我想对以下场景进行建模。

我有两个变量xy。根据x的值,y应该是某个值。例如,如果x是 1,y应该是 3,如果x是 2,y应该是 5。我应该如何在 Gecode 中建模?

我目前使用reified 约束来模拟这种情况,可以在这个gist中看到。关键是使用一个BoolVar和两个具体化的约束来设置相应的值。

我想知道是否有更好的方法来模拟这种情况。

0 投票
0 回答
139 浏览

c++ - GeCode 包括权限被拒绝

我是 GeCode lib(和 g++ 编译器...)的新手,遇到了编译问题。环境和错误信息如下所示:

gecode-4.2.0/下的内容:

../doc/目录下,我需要编译sendmory.cpp

编译命令:

错误:

有人可以帮忙吗?谢谢。

0 投票
1 回答
286 浏览

constraint-programming - 使用约束编程生成独特的解决方案

我曾短暂接触过 CP 和 MiniZinc,但我不是专家。

我有一个 CP 模型,我不能在这里发布 ATM,在 MiniZinc 中实现。我需要为该问题生成所有可行的解决方案。我们预计只有“几个”,比如少于 1000 个,超过 100 个。

我尝试使用传递给 minizinc ver 的 -a 标志来解决模型。1.6 但我注意到打印的很多解决方案都是相同的。

这里他们指的是“投影”。在另一篇论文中,我读到他们使用了一些“回溯机制”。

我还不清楚。

那么我的问题是:

  1. 从 CP 模型仅生成唯一解决方案的最佳方法是什么?
  2. 在 SCIP 或 Gecode 等 CP 库中是否实现了标准机制?它有一个共同的名字吗?
  3. 计算效率高吗?
  4. minizinc 支持吗?如何访问该功能?
0 投票
2 回答
536 浏览

linker-errors - 在 OS/X 上链接 Gecode

Gecode(4.3.0)文档规定,在Mac上安装Gecode后,可以编译链接示例如下:

编译成功但链接失败:

知道如何解决这个问题吗?

0 投票
1 回答
2172 浏览

c++ - 在跳过对角线的向量上映射上三角矩阵

我有一个问题可以归结为找到一种将三角矩阵映射到跳过对角线的向量的方法。

基本上我需要使用 Gecode 库翻译这个 C++ 代码

进入这个 MiniZinc(功能)代码

我需要找出differences[?].

MiniZinc 是一种没有适当 for 循环的函数/数学语言。所以我必须映射那些索引 i 和 j ,它们接触上三角矩阵的所有且仅接触上三角矩阵的单元格,跳过其对角线,将这些单元格从 0 编号到任何值。

如果这是一个规则的三角矩阵(不是),这样的解决方案可以了

我正在处理的矩阵是一个n*n索引从 0 到 n-1 的方阵,但是为矩阵提供更通用的解决方案会很好n*m

这是完整的 Minizinc 代码

谢谢。

0 投票
1 回答
94 浏览

constraint-programming - 在 Gecode 中获取 Space 中的变量列表

Gecode 使用Spaces 来表示正在进行的约束满足问题:每次到达决策点时,Space都会复制 。

我想对这些正在进行的空间进行分析。有没有办法获得在某个注册的变量、约束、...的列表Space?API 文档似乎没有提供这样的方法。

0 投票
3 回答
168 浏览

c++ - 为什么在解决原始空间之前不能在 Gecode 中克隆一个“空间”?

我正在寻找一种在GecodeSpace中复制实例的方法,然后再分析空间之间的差异。

但是,在第一次复制后它已经出错了。当一个人复制Gecode 中的建模和编程一书中的代码时,如下所示,并简单地修改它以便首先复制 ( SendMoreMoney* smm = m->copy(true);),无论选项是还是,都会出现Segmentation faultsharedtruefalse

怎样才能制作出真正的副本?

0 投票
1 回答
159 浏览

constraint-programming - 整数集变量的约束规划

我正在使用 GeCode 构建用于解决特定任务的软件。我使用整数集变量和对这些变量的一些约束来模拟我的问题。但是对于这个问题,让我们考虑一个更简单的情况。

假设我有三个集合变量,其域为 [{},..., {1,2,3}],即 {}、{1}、{2}、{3}、{1,2}、{1 ,3}, {2,3}, {1,2,3} 并且我唯一的约束是 intersection(var_i, var_j) 对于所有 i 和 j 都是空的,并且 i 与 j 不同。

显然,如果我理解自己的逻辑,它应该至少给出 var_1 = {1}、var_2 = {2} 和 var_3 = {3}。但它也可以给出 var_1 = {1,2,3} 和 var_2 = var_3 = {}。事实上,使用这些变量和约束运行 GeCode 只会得到一个结果:var_1 = var_2 = var_3 = {1,2,3} 的所有可能子集,这表明存在不同的解决方案(建议我可以在 var_1 中选择一个子集并且可以找到满足约束的其他两个变量的子集。

我的问题是如何让 GeCode 自己枚举不同的组合。因为很明显,我的最终模型将包含更多的集合中的整数和更多的子集。因此,我无法承担通过自己设置变量来手动进行选择的成本,因为我失去了约束求解器可以提供的所有好处。

有没有可能帮助我解决这个问题?