约束网络由三元组<X,C,D>定义,其中X是一组变量,C是一组约束,D是X的域(即从变量到值集的映射)。约束满足问题(CSP)是决定约束网络是否具有解决方案的问题。
如何使用 OR-tools 的 CP-SAT 求解器构建自己的全局约束?
我是数据挖掘领域的博士生,我必须使用 OR-Tools 创建全局约束以实现数据挖掘目的。 问题是缺乏有关创建自己的文档......
我一直在探索 SMT 求解器和 SMT-LIB 标准,它提供了一种声明性语言,用于根据逻辑公式和约束定义问题。我的理解是SMT解决...
当分子是两个变量的线性表达式时,在 Ortools 中添加除法约束会导致 MODEL_INVALID 模型
我正在尝试在项目中使用 google CP-SAT 求解器版本 9.11.4210。该问题的一部分包括将两个变量之和除以另一个变量,但求解器返回 MODEL_INVALID。我...
用于 CSP 和 VRP 的 Google OR-Tools 模块使用哪种求解器?
我目前正在评估 googles or-tools,只是注意到它本身并不是一个真正的求解器,而主要是与其他求解器的接口。我想知道这个框架有哪些求解器...
如何在 Google OR-Tools 中添加约束来限制(在作业车间问题的示例中)可以同时活动的作业数量?
在作业车间问题的示例中(https://developers.google.com/optimization/scheduling/job_shop),优化结果表明要优化的所有三个作业都是同时进行的
我在 CP 模型中遇到了特定的边缘情况。我所有的变量都是基于 int 的,但目标是基于 float 的。 在我的模型的大量使用中,这样做没有问题。但在一个具体的方面
如何使用ortools cp-sat将相同类型的任务尽可能的分配到任务包中?
在实验室中,可以将任务分配到任务包中,然后将任务包分配给实验室分析师。 通常我们想要: 最大限度地减少形成的包的数量 尽力把任务...
接下来两天我在车间有两项任务要计划。 车间里只有一名操作员,该操作员在这两天每天只能完成一项任务。 任务不同
在 minizinc 中,有一个内置排序函数可以对一维数组进行排序,该函数按元素的升序对元素进行排序。我该如何做相反的事情?我找不到与它直接相关的函数...
我正在尝试使用Python中的约束编程来制作自定义幻方求解器。为此,我使用 python-constraint (http://labix.org/python-constraint)。 对于这个问题,ma 的定义...
CP 优化器:从 minValue 0 的 cumul 函数中减去时间相关值
在 CP 模型(Laborie 等人 2018 的简化版本)中,我有一个 cumulFunction rUsage 指示随时间的材料需求,由当前区间变量的需求率 dmdR 导出: 德瓦尔
我最近开始使用 Minizinc 来解决这个简单的问题: 问题定义: 我有布尔变量的维度 H 和 W 的网格。唯一的限制是,如果变量为 false,则...
我有一个员工数据库,我让所有员工在第 1 天班次 1 不工作 在那个特定的日期和班次,我可以理解它应该是空值,但它会导致其他班次......
Z3-Solver 的“TransitiveClosure”功能是否有 bug?
这是使用 TransitiveClosure 的简单示例的代码。 从 z3 导入 * defcompute_transitive_closure(图): num_nodes = len(图) # 创建 Z3 上下文 ctx = 上下文() #
我想用 minizinc 建模语言表达带有时间窗口的车辆路径问题(https://ir.cwi.nl/pub/2036),以便使用约束编程来解决它。 因为我是新...
在我的 CP 模型中我有一个状态函数 stateFunction f(a in aRange) 和 TransitionTimes[a] 默认情况下,f[a] 的值等于 -1,直到时间 0,例如 编号,值 1,逐步{ -1 -> 0; 1 -> 3; -...
是否有解决方法可以正确表达此模型: 使用CP; int fooSize[0..3]=[2,2,3,2]; dvar 间隔 foo[t in 0..3] 大小 fooSize[t]; dvar int bar[0..3] in 0..1; dexpr int stop = ...
我是约束编程的初学者,我在我的 c# 程序中使用 Google or-tools 库。 在我的问题中,节点属于区域,其特征是驶向...的最大车辆数量
[OR-Tools]使用 Python CP-SAT 求解器最小化任务“类型”
我正在使用 OR-Tools CP-SAT 求解器使用以下约束生成平衡分配: model.Add(sum(x[分配者_idx, 任务] * 任务[任务].task_idxs 中任务的成本) <= average_workload[