问题标签 [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 回答
122 浏览

java - 限制赋值 - Choco

有没有办法限制变量特定值的赋值次数?

我正在使用Choco [4.0.1]课程、教师和时间段编写日程安排问题。同一位老师可以教很多课程,我需要定义他/她可以教的课程数量。我正在考虑计算时隙的数量,就像 B 老师可以工作一样12 hours (12 timeslots),所以我可以发布一个约束arithm()来确保这一点。有任何想法吗?

[更新]

这是一些代码:

每门课程都有老师和N时间段,所以老师 A 可以教 {1,2,3,4},老师 B {3,4,5},每门课程每周有 4 小时。现在想象 A 可以工作 12 小时。我想限制 A 只教 12 小时(3 门课程),而 B 会教剩下的课程;

我不能说有多少课程有老师,但他/她可以教多少,所以我正在使用

约束以确保他/她能够教授某些课程。

teacherTimeslots充满了所有可能的时间段,我model.allDifferent(teacherTimeslots[teacher]).post()用来保持每个教师时间段都是唯一的。

我的课程是固定的

我想过为老师获取所有时间段,但是当我构建模型时,没有选择时间段,所以我得到了所有的可能性。

0 投票
1 回答
3741 浏览

chocolatey - Chocolatey:之前如何重新安装已卸载的软件包

我正在使用Chocolatey管理计算机上的软件。
我在重新安装已卸载的软件包时遇到了麻烦。

我试图重新安装它,但没有任何反应。
如何重新安装之前卸载的软件包。

我怀疑卸载失败,我尝试使用命令“choco list -lo”列出。
但是红宝石没有显示在列表中。

0 投票
1 回答
374 浏览

compiler-errors - Java Choco 求解器错误(IntVar 读取为 Int)

我正在尝试使用 java choco 求解器(一个 CP 求解器)来为图形着色。但是我似乎无法让它工作。甚至教程中的代码也不起作用:

我总是收到以下错误:

IIntConstraintFactory 类型中的方法 arithm(IntVar, String, int) 不适用于参数 (IntVar, String, IntVar),我不明白,因为 vars[j] 应该是 IntVar。

我希望有人能帮帮忙!

亲切的问候,

尼古拉斯

0 投票
1 回答
118 浏览

java - 在通过类类型或接口收集实例的情况下如何替换instanceof

我有很多类,它们都派生自 AbstractVariable 类。我需要将它们收集到相应的列表中,因为我需要使用它们。将它们收集到一个列表中然后由 getter 通过 instanceof 过滤它们可能更简单,但是我不确定性能。

其中一些是类,其中一些是装饰器接口。访问者似乎是一种过度杀伤,因为它必须在包括子类在内的所有类中声明,并且考虑到一个类可能有多个接口,维护将是可怕的。

这不是类和接口的最终列表。它会变得更大。

现在我真的在考虑吸气剂过滤,因为这个选择只是在算法的最开始。

问题是——在这个问题上最好的设计选择是什么?游客?吸气剂过滤?维护不同的列表?还是其他一些设计模式?

0 投票
1 回答
199 浏览

java - 如何在 Choco 中搜索期间创建/发布和删除/取消发布约束

我在 Choco 求解器中有一个项目,但我对搜索过程中的外部影响有疑问。

我有一个计划图,其中(比方说)按层组织的 BoolVars 和分配给层的持续时间,这意味着一些动作开始和一些结束。从计划结束到计划开始,变量选择是静态的(层中动作的选择是任意的)。

我正在研究一种使用单纯形算法来帮助分配持续时间的解决方案,因为在动作A的开始和结束之间,我们需要有一个等于N的持续时间。两者之间还有一些限制。

附加约束是基于 BoolVar 的实例化创建的,但是它们被组织在一个外部矩阵中,因此当添加动作A的结束动作时,在效果中会向矩阵添加额外的行并且重新制定当前约束. 在回溯时,我们想以相反的方式修改矩阵,即删除行并取消约束。

有没有办法在 Choco 中实现这种复杂的行为?

0 投票
0 回答
182 浏览

constraint-programming - 使用 choco 进行约束求解:寻找变量的唯一解

我正在使用 Choco 来解决 CSP。一开始,我创建了一个变量数组,v如下所示:

添加几个约束后,我将搜索解决方案并找到其中的多个。但是,我只想要独特的解决方案,例如v[4]。因此,所有解决方案都应该在变量中具有不同的值v[4]

我怎样才能做到这一点?

0 投票
1 回答
1263 浏览

java - 用 choco 在一个约束中对多个变量求和

我正在使用 choco 来解决 CSP ,我的限制之一是我所有 5 个变量的总和小于 10 。对于两个变量的总和,我们可以使用函数 arithm

但是这种方法不能接受更多的变量,所以有没有办法添加这个约束?

0 投票
2 回答
91 浏览

java - choco 中的复变量

如果复杂变量满足约束条件,如何检查 Choco?例如,如果我有以下配置列表:

其中 config1 = {20, 24, 10, 3, 4} 和 config2 = {20, 13, 1, 3, 4}

是一个约束列表,对于给定的配置,配置中的每个元素都需要高于(或低于)对应的约束。例如:config1 = {20, 24, 10, 3, 4} 约束 = {21, 15, 2, 10, 10}

如果满足所有约束,则只需将其标记为解决方案。这就是我所拥有的

0 投票
2 回答
421 浏览

java - Choco求解器传播和搜索策略交互

我已经开始在我的工作中使用 choco-solver 并且不了解传播者和搜索策略如何相互配合。

我认为 choco 有一些标志可以告诉我在传播过程中是否有任何约束变量域发生了变化。如果有,那么传播会一次又一次地开始,直到没有发生域更改。之后,如果约束仍然不满足或失败,搜索策略将连接到求解过程。

但是我的程序的输出告诉我我错了。Propogator 确实工作了 2 或 3 次,每次都更改域,但随后调用了搜索策略。

请帮助我,我的结论哪里错了?或者它应该按照我的想法工作并且我的代码中有一些错误导致错误的输出?

对不起,我的英语不好

0 投票
0 回答
227 浏览

java - 在 Eclipse 上使用 choco 添加约束时出现 NullPointerException

我在 Eclipse 上使用 choco 时遇到问题,我试图添加一个约束,但我得到了一个 nullPointerException 任何人都可以向我解释吗?

以下指令是 NullPointer 异常的来源:

错误代码:

choco.kernel.common.util.tools.ArrayUtils.getNonRedundantObjects(ArrayUtils.java:343) 的 choco.kernel.model.VariableArray.doExtractVariables(VariableArray.java:108) 的线程“main”java.lang.NullPointerException 中的异常choco.kernel.model.VariableArray.extractVariables(VariableArray.java:123) 在 choco.kernel.model.VariableArray.getVariableIterator(VariableArray.java:72) 在 choco.cp.model.CPModel.addConstraints(CPModel.java:896)在 choco.cp.model.CPModel.addConstraints(CPModel.java:853) 在 Games.main(Games.java:27)