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

java - 使用 Choco Solver 在背包中分配物品

我尝试通过 JAVA 用 Choco Solver 实现一个多维背包问题。我的想法是在 2 个背包中分配 3 件物品。

我的物品有重量,背包有限制:int[] itemWeight = {2, 2, 2}; int[] knapsackLimit = {4, 4};

还有我的决策变量,其中 3 个项目在 {0, 1} 之间有一个背包: int[] itemAllocation = {1, 1, 0};

我使用 Choco Solver 编写了这个问题:

不幸的是,这种方法不起作用。我总是得到以下分配:[x0 = 0, x1 = 0, x2 = 0]

先感谢您。

0 投票
1 回答
117 浏览

modeling - 解决具有许多预分配的任务

我要解决的问题包括大约800 个任务,这些任务必须分配给大约120 个工人。工人必须有资格完成这项任务,并且每周只有一定数量的可用小时数。大约 80% 的作业已经预先分配。这意味着它们应该被保留,但如果其他 20% 无法解决,则可能违反预分配。
我已经有一个使用 Choco 求解器的模型,如果违反了预分配,它会使用惩罚,并且目标是最小化惩罚。然而,我认为这不是很有效,因为求解器不会通过分配预先分配的变量来启动搜索策略。我已经在这里专门针对 Choco 提出了这个问题(如何在 Choco 3.3 中定义传播起点)。

但是是否有另一个求解器可以更轻松地完成此操作?最好写我自己的求解器吗?我将不胜感激任何建议。

编辑:我尝试编写自己的 Choco 策略。对于小问题它可以正常工作,但对于大问题它找不到解决方案。我不确定是否允许我在 getDecision 中所做的一切(例如检查 isInstantiated),并且我找不到任何有关如何编写扩展 AbstractStrategy 的策略的文档或教程。我会很感激任何关于可能是什么问题的指示。(prios矩阵中的绝对优先级越高,越早分配变量。如果优先级为负,则应分配0,如果为正,则应分配1。最高优先级为9999)

0 投票
1 回答
757 浏览

constraints - Choco求解器轮班调度

我是 Choco Solver 的初学者。我想做一个简单的班次调度程序。我已经设置了这样的整数变量

其中 0 , 1,...5 是员工的参考 ID。

我总共有 30 个变量(每个月的每一天都有一个),因为这是基于每月的轮班时间表。我已经设置了限制,例如不允许连续两天不值班。

我的问题是,我如何设置一个约束,使每个雇主至少有 5 个班次,即。域中的每个值在所有 30 个变量中至少出现 5 次?

谢谢!

0 投票
1 回答
89 浏览

java - 集成 Choco 和 Bloom 过滤器

现在我要集成 Choco 和布隆过滤器。问题是我想知道 Choco 中的哪个 JAVA 文件是关于搜索过程的,因为我想在每个搜索步骤之后将每个节点的决定存储到布隆过滤器中。

choco源代码:https ://github.com/chocoteam/choco-solver

布隆过滤器源代码:import java.util.BitSet;
公共类 BloomFilter {

}

类简单哈希 {

}

0 投票
1 回答
549 浏览

constraint-programming - 使用 Choco Solver 在 Var 数组中至少有一个 Var 等于 X

我正在使用 Choco Solver 并给定一个 int vars 数组,我想要一个约束来检查数组中的至少一个 var 是否等于静态值......

类似于IntConstraintFactory#count但具有以下文档的内容:

有人知道它是否存在或我如何有效地实施它?

0 投票
1 回答
741 浏览

c# - csharp中的装箱

我需要尽量减少装运包裹的卡车数量。不到50包。它们按行加载。我可以使用用 java 编写的 choco-solver 解决这个问题,但我需要从 c# 调用它。你知道如何轻松做到这一点吗?是否有一些 c# 库可以解决这个问题?我需要找到完美的解决方案,或者至少非常优化。

0 投票
0 回答
319 浏览

constraints - 限制对数组进行排序(Choco + java)

我正在尝试为电话支持中心的规划问题开发一个 choco 求解器。从 8:00 到 20:00 的 12 小时内。

变量和约束:

  • 员工人数 = 9
  • 每个员工的最小和最大工作时间(h 和 H)
  • 所有员工的营业时间:42 小时 <= 总小时数 <= 42+C(在我的情况下 C 等于 2)
  • 每小时工作的员工人数表(表大小=12)

限制我不能制造的人:

我知道每个员工的烦人时间,我无法将它们纳入跟踪时间:/

结果将是:

最后结果

但直到现在我得到了我的结果直到现在

我认为这是排序问题......如果你能救我的命,请告诉我我的代码中缺少什么约束。

我的代码

0 投票
1 回答
93 浏览

java - Choco 4:约束变量域等于一组值

我有以下数组SIntVar[]

我也有以下ArrayListInteger称为fromHome

fromHome稍后在程序中派生。

我想将域限制为S[0]仅包含其中的值,而不包含fromHome其他任何内容。我怎样才能做到这一点?谢谢!

0 投票
1 回答
599 浏览

java - 如何使用适用于 Java 的 Choco 求解器框架对特殊集合约束进行建模

我在建模问题并使用 Java 中的 Choco-solver 解决问题时遇到问题,而且我对约束编程一开始并不熟悉,但我的任务是为以下会议制作一个座位应用程序:

  • 每张桌子必须至少有 6 人,并且总是有足够的桌子。
  • 人们应该与邻居坐在一起,以最大限度地提高共同利益。
  • 在前几天,我们希望尽量减少与之前坐过的人一起坐在桌子上的人。
  • 人们要么属于 A 类,要么属于 B 类,我们希望在每张桌子上尽量减少 A 类的出现。

到目前为止,我们有一个 SetVar guest_list,其中包括最多 1 个客人。然后将 guest_list 分区到 SetVar[] 表。

但是我如何让约束说每个 table.size >= 6?

如何在两组之间进行约束,以最小化成员/交叉点?

而且我不知道如何为一组中的邻居建模以最大化共同利益。

0 投票
1 回答
336 浏览

constraint-programming - Choco Sat 配方

我正在尝试使用 Choco 4.0.1 对 SAT 公式进行建模。我阅读了文档,我试图从javadoc中理解,但不幸的是我到目前为止失败了。这是我第一次处理这些类型的问题,也是 choco。所以,我可能会问一些非常明显的问题。

我需要向模型添加一些约束,例如(每个 var 都是 BoolVar):

我正在尝试在模型中使用 ifOnlyIf 方法,但我不知道如何否定变量或使用 and。有人可以(理想情况下)为我提供一些示例代码或有关如何对这些类型的约束进行建模的任何想法吗?