问题标签 [choco]

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

java - Java Choco CSP 使用变量总和进行优化

我正在使用Choco来解决 CSP。我想做这样的事情:

换句话说,我希望系统找到一个解决方案,其中 badRow 的真实值最少。我不希望这是一个“约束”,因为这样系统就会失败,我想避免失败。但我找不到任何方法来创建 IntVar 作为其他变量的总和。

我该如何做到这一点?

0 投票
1 回答
202 浏览

java - Choco 3 中的 ExceptionInInitializerError

当我尝试在 Choco 的网站上运行示例时:

我得到以下输出:

我的错误是什么?当我用IntVars 运行它时。我没有错误。当我尝试RealVars 时,我总是会出错。

0 投票
1 回答
187 浏览

java - 在 Choco 2 中使用或约束 RealVariables

我在 Windows 8.1 中使用 Choco 2.1.5 和 Eclipse IDE

当我编译下面的代码时:

我得到以下输出:

但是当我尝试使用IntegerVariables 时,我没有收到任何错误。会有什么问题?有没有办法解决?

0 投票
2 回答
805 浏览

java - 求解带约束的多变量方程 - Choco

我想用像这样的离散值求解一个非线性多变量方程:

有约束:

ETC..

我正在尝试使用 Choco 库来做这件事,但我有点迷茫。我找到了这段代码:

但我不明白我把方程放在哪里。

0 投票
0 回答
66 浏览

java - Set complex constrain - Choco

I have a constrain in this format:

How can I add this constraint?

IntConstraintFactory class provide a method called arithm to add simpler constraints like this one:

but it's format is fixed.

0 投票
1 回答
536 浏览

java - Choco 3.3.3 NoClassDefFoundError

今天早些时候,我发现自己在回答一个问题,该问题使用了一个我以前没有使用过的库(Choco 3.3.3)。当我测试我的代码以检查它是否有效时,我收到了一个异常,java.lang.NoClassDefFoundError. 为了解决这个问题,我尝试使用他们网站上的早期版本的库。我从他们的一个 zip 文件中提取的源代码编译了我自己的版本(有关构建信息,请参见下文),我什至从 git 下载并编译了它。然而,这些解决方案都没有奏效。

使用Choco提供的代码示例可以显示完全相同的异常。

有人能帮我解决这个问题吗?

有关更多信息,请参见下文

异常堆栈

这是我编译并运行代码时输出的内容

Maven 构建信息

这是我尝试从源代码构建时输出的内容

0 投票
1 回答
193 浏览

optimization - choco 中带有惩罚的资源分配

对于我的模型,我有大约 120 个人和 650 个任务。我现在想用 choco 3.3.3 分配这些任务。为此,我有一个 boolMatrix "assignment" 120x650,如果任务分配给该人,则为 1,否则为 0。但现在我必须以不同的标准进行优化,例如尽量减少加班,遵守人民的意愿等等。最好的方法是什么?

我的直觉:我看不到只累积惩罚的方法,所以我的直觉是有一个矩阵,其中每个人都有一系列“惩罚”,所以如果我有加班,惩罚[i][0]有例如,惩罚 5,如果他不想执行任务,惩罚 [i][1] 有惩罚 4。然后我有一个 IntVar 分数,这是惩罚的总和,我优化分数。

  1. 惩罚矩阵是要走的路吗?
  2. 以及如何初始化这些变量?
  3. 是否可以在合理的时间内使用 choco 进行优化(每个可行的解决方案都有分数)?
    在护士调度示例中,使用了此策略:solver.set(IntStrategyFactory.domOverWDeg(ArrayUtils.flatten(assignment), System.currentTimeMillis()));
  4. 我应该使用什么策略?阅读 choco 用户指南并没有帮助我获得一个好主意......
0 投票
1 回答
314 浏览

java - IntVar 的 Choco abs 不工作

[我使用的是 Choco 3.3.3]

我有一个 IntVar a 和一个 int b。我想将差异保存到 IntVar[] 数组 d 中。我在代码中的另一点以完全相同的方式完成了此操作,并且它没有问题地工作,但在这里我只是没有让它工作。

当我只使用 c (d[t] = c;) 时,打印出 d 的值时的结果是 [0, -1, 0, -1, 0, 0],但我需要绝对值,所以[0,1,0,1,0,0]

这些是我尝试过的不同方法以及 d 的结果:

谁能告诉我我做错了什么?我特别困惑 [-7,-6,-7,-7,-7,-7] 来自哪里......

0 投票
1 回答
484 浏览

java - 使用 choco 求解器求解方程

我正在寻找一种在 Choco Solver 上对数学方程进行编码的方法。我看到有一种方法可以对约束进行编码,例如:

x + y < 9

但我正在尝试编码类似

3x + 4y < 9

其中 x 和 y 是 int 变量。

任何帮助将不胜感激。

0 投票
1 回答
244 浏览

java - 使用 Choco (CSP) 模拟网球比赛

我正在尝试用 Choco 建模一个问题,以获得网球赛事(或任何运动)中可能的比赛组合。

我尝试这样做的方式如下:

我的主要问题是,通过这种设置,我想不出一种方法来定义我的问题。我一直在这上面花了几天没有成功。我的问题似乎有点相似,但应该组合的不同元素的数量较少,通常是 1 或 2,但在我的问题中,有 3 个:球员、时间段和球场。

在这上面花了很多时间之后,我没有比这更进一步的了:

第一个双循环只是将玩家不可用的时间段强制为 0(加上基于比赛持续时间值的范围),如果他可用,则大于或等于。这样,最终的矩阵开始看起来像这样:

然后我只是确保每个球员的时间段中的值的总和在最小数字的球场乘以比赛持续时间和最大数字的球场乘以比赛持续时间之间。这是我想到的约束之一,所以每一行看起来都是这样的,例如,球员 0 在时间段 3 和 4 在球场 2 上比赛:

我尝试定义nvalues应该强制执行的约束,即不超过n不同的值符合数组,但是如果我像您在上面看到的那样使用它,问题只会呈现一个解决方案(什么?!)。

但是我需要定义更多我什至不知道如何开始的约束:

  • 如果确实分配了该场地,则对于每一排球员所在的场地必须有连续的数字
  • 对于每一行,我只能有 0 和法院编号 [1 - nCourts]
  • 列应配对以创建一对玩家之间的匹配。
  • 同一场地不能在同一时间段范围内多次配对(意味着同一时间场地内最多可进行一场比赛)

这就是我能想到的所有限制条件,但我相信还有更多。

我希望有任何建议可以帮助我继续这样做,因为现在我感到完全一无所知,而且关于 Choco 的在线信息几乎为零,可以帮助我解决这个问题。