问题标签 [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.
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]
先感谢您。
modeling - 解决具有许多预分配的任务
我要解决的问题包括大约800 个任务,这些任务必须分配给大约120 个工人。工人必须有资格完成这项任务,并且每周只有一定数量的可用小时数。大约 80% 的作业已经预先分配。这意味着它们应该被保留,但如果其他 20% 无法解决,则可能违反预分配。
我已经有一个使用 Choco 求解器的模型,如果违反了预分配,它会使用惩罚,并且目标是最小化惩罚。然而,我认为这不是很有效,因为求解器不会通过分配预先分配的变量来启动搜索策略。我已经在这里专门针对 Choco 提出了这个问题(如何在 Choco 3.3 中定义传播起点)。
但是是否有另一个求解器可以更轻松地完成此操作?最好写我自己的求解器吗?我将不胜感激任何建议。
编辑:我尝试编写自己的 Choco 策略。对于小问题它可以正常工作,但对于大问题它找不到解决方案。我不确定是否允许我在 getDecision 中所做的一切(例如检查 isInstantiated),并且我找不到任何有关如何编写扩展 AbstractStrategy 的策略的文档或教程。我会很感激任何关于可能是什么问题的指示。(prios矩阵中的绝对优先级越高,越早分配变量。如果优先级为负,则应分配0,如果为正,则应分配1。最高优先级为9999)
constraints - Choco求解器轮班调度
我是 Choco Solver 的初学者。我想做一个简单的班次调度程序。我已经设置了这样的整数变量
其中 0 , 1,...5 是员工的参考 ID。
我总共有 30 个变量(每个月的每一天都有一个),因为这是基于每月的轮班时间表。我已经设置了限制,例如不允许连续两天不值班。
我的问题是,我如何设置一个约束,使每个雇主至少有 5 个班次,即。域中的每个值在所有 30 个变量中至少出现 5 次?
谢谢!
java - 集成 Choco 和 Bloom 过滤器
现在我要集成 Choco 和布隆过滤器。问题是我想知道 Choco 中的哪个 JAVA 文件是关于搜索过程的,因为我想在每个搜索步骤之后将每个节点的决定存储到布隆过滤器中。
choco源代码:https ://github.com/chocoteam/choco-solver
布隆过滤器源代码:import java.util.BitSet;
公共类 BloomFilter {
}
类简单哈希 {
}
constraint-programming - 使用 Choco Solver 在 Var 数组中至少有一个 Var 等于 X
我正在使用 Choco Solver 并给定一个 int vars 数组,我想要一个约束来检查数组中的至少一个 var 是否等于静态值......
类似于IntConstraintFactory#count
但具有以下文档的内容:
有人知道它是否存在或我如何有效地实施它?
c# - csharp中的装箱
我需要尽量减少装运包裹的卡车数量。不到50包。它们按行加载。我可以使用用 java 编写的 choco-solver 解决这个问题,但我需要从 c# 调用它。你知道如何轻松做到这一点吗?是否有一些 c# 库可以解决这个问题?我需要找到完美的解决方案,或者至少非常优化。
java - Choco 4:约束变量域等于一组值
我有以下数组S
:IntVar[]
我也有以下ArrayList
,Integer
称为fromHome
:
fromHome
稍后在程序中派生。
我想将域限制为S[0]
仅包含其中的值,而不包含fromHome
其他任何内容。我怎样才能做到这一点?谢谢!
java - 如何使用适用于 Java 的 Choco 求解器框架对特殊集合约束进行建模
我在建模问题并使用 Java 中的 Choco-solver 解决问题时遇到问题,而且我对约束编程一开始并不熟悉,但我的任务是为以下会议制作一个座位应用程序:
- 每张桌子必须至少有 6 人,并且总是有足够的桌子。
- 人们应该与邻居坐在一起,以最大限度地提高共同利益。
- 在前几天,我们希望尽量减少与之前坐过的人一起坐在桌子上的人。
- 人们要么属于 A 类,要么属于 B 类,我们希望在每张桌子上尽量减少 A 类的出现。
到目前为止,我们有一个 SetVar guest_list,其中包括最多 1 个客人。然后将 guest_list 分区到 SetVar[] 表。
但是我如何让约束说每个 table.size >= 6?
如何在两组之间进行约束,以最小化成员/交叉点?
而且我不知道如何为一组中的邻居建模以最大化共同利益。