问题标签 [or-tools]

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 投票
2 回答
203 浏览

python - 用重复约束优化

我有一组许多(10000 多个)项目,我必须从中准确选择k项目。我只能多次选择每个项目,但有一个订购限制:如果我在位置 1 选择一个项目,直到第 21 位我才能选择它。我的项目有利润和成本。

每个项目都表示为一个元组:

举个例子

并且项目的总集是列表的列表:

我的利润和成本也是列表:

对于选择的每个项目,它都需要有一个最小值,并且该项目不能在接下来的 19 个项目中重复使用。我想根据这个约束选择价值最高的 k 个最便宜的项目,但我很难制定它。

我无法使用谷歌或工具来制定这个。以下只是获得最好的k(在本例中为 100),没有任何额外的限制

我可以通过以下方式获得我选择的一组项目:

在制定约束和目标方面的任何帮助都会非常有帮助。谢谢!

0 投票
2 回答
1033 浏览

python - 优化中的多个目标

所以在一个典型的线性优化问题中,我会有一个像这样的目标:

但是,也许我想有两个目标?例如(不确定这是否可能只是添加一个快速示例)

所以说我想最大化 3x + y 的值,但在这些解决方案中最多有 3*x。基本上我要问的是有两个变量优化吗?我可以在哪里设定两个目标?

我使用专门的 Google-OR 工具在 python 中执行此操作.. 只需要有人指出我正确的方向

0 投票
0 回答
339 浏览

or-tools - 谷歌 OR 工具 CP 求解器

https://developers.google.com/optimization/cp/cp_solver

我正在尝试在 C++ 中编写代码以使用上面与 python 演示的链接中所述的新 cp SAT 求解器,但是我无法弄清楚如何在 C++ 代码语法中获取这个 CP SAT 求解器,不确定其他类型的包含实际上是什么除了 "ortools/constraint_solver/constraint_solver.h" "ortools/sat/cp_constraints.h" "ortools/sat/cp_model.pb.h" 之外,新的 Cp 求解器需要

0 投票
1 回答
457 浏览

or-tools - 定义不必访问的节点

我想使用RoutingModel包括从必须访问约束中解放出来的节点来定义路由问题,但如果访问会影响容量维度。你有什么建议如何做到这一点?

0 投票
1 回答
139 浏览

python-3.x - 优化中的顺序约束

我有一组许多(10000 多个)项目,我必须从中选择 20 个项目。我只能选择每个项目一次。我的项目有利润和成本,以及几个布尔属性(例如颜色)。我需要按特定顺序输出结果:特别是我需要第一项和第三项为蓝色,第二项和第四项为红色。

每个项目都表示为一个元组:

举个例子

并且项目的总集是列表的列表:

我的利润和成本也是列表:

对于选择的每个项目,它需要有一个最小值,并且至少 5 个项目必须将属性 (is_blue) 标志设置为 1。

我想选择价值最高的 20 个最便宜的项目,其中 5 个的 is_blue 标志设置为 1,第一个和第三个项目是蓝色的(等等)。

我无法使用谷歌或工具来制定这个。

范围(MAX_ITEMS)]) >= 5)

我可以通过以下方式获得我选择的一组项目:

这很好用 - 它选择了 20 个项目,这些项目在成本限制的情况下最大化利润,但我坚持如何将其扩展到选择项目以保证第一个是蓝色等。

在制定约束和目标方面的任何帮助都会非常有帮助。谢谢!

0 投票
2 回答
1302 浏览

or-tools - or-tools :如果 `num_nurses` 不等于 `num_shifts`,Python 员工调度不会给出任何解决方案

我正在尝试使用熟悉 google or-tools。我尝试了员工调度 python 示例的简化版本。

如您所见,我保留的唯一限制是轮班和护士之间的关系。当 num_nurses = 3、num_shifts = 3 和 num_days = 1 时,求解器能够找到 6 个解。但是,如果我将 num_shifts 更改为 2,求解器将返回 0 个解决方案。这不应该也有3个解决方案(分配一名护士,不分配其他两名)?

0 投票
1 回答
612 浏览

python - 公平班次分配

我有一个稍微修改过的nurse_sat版本
https://github.com/google/or-tools/blob/master/examples/python/nurses_sat.py
我有一个键值字典(day,nurse,shift) ) = BoolVar 我想让所有护士每次轮班的数量相同。

EG:假设我们有 30 天,每天有 3 个班次{0, 1, 2},我们有 3 名护士 {a,b,c}
我想让所有护士在 0、10 班做 10班次 2 和班次 3 的 10。

我试图实现这一目标的方式是:

从理论上讲,这应该让我知道一名护士有多少特定的轮班。EG: fairshift[(0, 0)] 应该有护士 A 在一周内的 0 班次的数量。然后为了让他们平等,我做了这样的事情:

因此,护士的最大 k 班次将等于最小的班次,如果 num_days 为 30,则他们都应该有 10 班 k 班次。

但是,我无法让它工作,我不确定为什么。为了有 IntVar 而不是 _SumArray,我做了这样的事情:

在 min .== max 的情况下,它可以工作但给出错误的结果。我想我总结错了,但我不确定它是什么。

0 投票
1 回答
546 浏览

or-tools - SetGlobalSpanCoefficient 方法 google or tools

我正在尝试使用谷歌或工具来解决车辆路线问题。这是链接https://developers.google.com/optimization/routing/vrp。我正在尝试使用谷歌的代码,但是当我遇到这段代码时:

我不明白最后一个指令的含义

这个函数的目的是什么,参数的含义是什么?为什么那里有“100”?

0 投票
1 回答
380 浏览

or-tools - 或工具要求变量相等的约束 [ortools]

我想使用 OR-Tools 创建一个线性求解器模型。我有两个 numVar,我的约束之一是这两个变量的相等性。但是我找不到一种方法来设置带有变量的约束。我可以用 gurobi 库做到这一点。以下是这两个库的代码。有没有办法将变量传递到约束的两侧,例如 xa==xb?提前致谢。

古罗比代码:

OR-工具代码:

0 投票
2 回答
242 浏览

c++ - 当我在使用 tools\make cc 编译 OR-Tools 中构建 OR-Tools 的源代码时,未找到第三方 SCIP 文件

我制作了新文件“ Makefile.local ”并将“ WINDOWS_SCIP_DIR=c:/Program Files/SCIPOptSuite ”添加到文件中。

SCIP 也已编译,文件路径正确。

在此处输入图像描述