问题标签 [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 投票
1 回答
2117 浏览

visual-studio - 制作:cl:找不到命令

我正在尝试在 Visual Studio 2015 中安装 Google OR-Tools for Java。当我make all根据需要在 OR-Tools 目录中运行时,我得到

我在某处阅读以运行vcvarsall.bat以设置变量,但此路径上没有此类文件

另外,我应该在本机工具命令提示符中运行它,但我无法为 VS2015 找到它,仅适用于 VS2017,所以我在开发者命令提示符中运行它。这可能是问题吗?

0 投票
1 回答
234 浏览

c# - 访问变量解决方案值时出现 AccessViolationException

我们一直在使用 OR 工具来解决实时 .NET 应用程序中的线性优化问题。也就是说,随着时间的推移,定期使用不同的输入解决线性优化问题。

最近,我们在服务器上长时间运行我们的应用程序时遇到了一个以前从未见过的问题,其中看似随机尝试解决优化问题导致 AccessViolationExceptions。具体来说,

Framework Version: v4.0.30319 Description: The process was terminated due to an unhandled exception. Exception Info: System.AccessViolationException at Google.OrTools.LinearSolver.operations_research_linear_solverPINVOKE.Variable_SolutionValue(System.Runtime.InteropServices.HandleRef) ...

我试图更具体地找出管道中发生这种情况的位置,但鉴于那里的输出,我相信这是我们试图在解决优化后从求解器中检索单个变量解决方案值的部分。

我们在相当数量的变量上使用了各种各样的约束。

有没有人见过这个?

0 投票
1 回答
2068 浏览

python - Google OR 工具:具有可用性限制的员工调度

按照此处的护士调度示例,我正在尝试为问题添加更多约束。例如:护士 A 不能在星期一工作 2 和 3 班,护士 B 只能工作 1 和 3 班。

如何实施这样的约束?

如果在 OR-tools 中不可能,请就如何实现这样的东西提出建议。

0 投票
3 回答
1935 浏览

python - 具有非连接图或工具 Python 的车辆路由问题

我正在使用这个 python 库或工具:https ://developers.google.com/optimization/routing/tsp/vehicle_routing (代码可以在这里找到)。

问题是,当您运行解决方案时,它会为您提供一条覆盖所有节点的路径。但是我的项目需要对节点之间的路径进行限制。例如,如果您在节点 {3} 上,您可能无法前往节点 {18}。或者以另一种方式,如果您在节点 {5},您只能前往节点 {1、12、14}。我不确定如何将此约束添加到当前代码示例中。

请允许我进一步解释...

如果我们看这张图: 在此处输入图像描述

您可以在此处看到此图的表示形式: https ://www.datacamp.com/community/tutorials/networkx-python-graph-tutorial

显然,在这个问题中,您不能从其他节点前往某些节点。我在 google or-tools 示例中使用此图表中的数据来获得车辆路线问题的解决方案。

这是我的代码:

这输出了一个解决方案:

如您所见,我们正在无法在其间旅行的节点之间旅行。

0 投票
1 回答
3207 浏览

python - AttributeError:“模块”对象没有属性“DefaultRoutingSearchParameters”

我已经完全按照此链接中的说明安装了 ortools 。

之后,我从文档中复制了车辆路线问题并尝试执行。我在我的系统中使用 python 2.7.12。

我最终遇到了以下错误:

示例问题链接: https ://developers.google.com/optimization/routing/tsp/vehicle_routing

0 投票
1 回答
764 浏览

python - Or-tools Python Vehicle Routing Prob with Breaks

我正在尝试使用 Google or-tools 将午餐和晚餐时间引入我的车辆路线问题。请参阅以下代码(仅适用于午餐时间):

代码运行但结果与不包括上述部分完全相同,即忽略午餐时间。

任何帮助是极大的赞赏!

0 投票
0 回答
255 浏览

optimization - 使 K 不同(基数) google OR-TOOLS

我想知道在 google or-tools 中是否有solver.AllDifferent(x) 的概括,它允许指定我允许多少个不同的元素。

所以如果 len(x) = 4,那么 AllDifferent(x) 意味着 len(set(x)) = 4。但是如果我只想强制执行“至少 2 个不同”,那么:len(set(x)) >=2 ?

是否存在将 AllDifferent 概括为能够设置解变量的基数的约束?

0 投票
1 回答
848 浏览

constraint-programming - 自定义约束 OR-Tools // 约束编程

我正在使用 OR-Tools 约束编程工具解决几何问题。

你们谁能告诉我创建自定义约束的过程吗?我不太了解恶魔,模型访客行为......

另外,可以插入任何类型的约束吗?

先感谢您

0 投票
1 回答
613 浏览

python - 我可以在 Google 的 ortools 包中提供一个带有 BFS 的求解器来启动吗?

我正在解决一个非常大的 LP——一个没有 0 作为基本可行解决方案 (BFS) 的 LP。我想知道是否通过向求解器传递一个基本可行的解决方案,我可以加快这个过程。寻找类似的东西:solver.setBasicFeasibleSolution()。我将在下面制定一个玩具实例(约束更少)并向您展示我的意思。

希望这样的事情会加快速度(以防求解器必须使用两相单纯形法来找到初始 BFS 或大 M 方法)。

此外,如果有人可以向我指出 python API 文档——不是谷歌提供的示例——那将非常有帮助。希望了解 ortools 的求解器中有哪些对象可用,它们的方法是什么,以及它们的返回值和模式是什么。有点像 C++ 文档。

当然,也欢迎其他资源。

0 投票
2 回答
515 浏览

logic - 约束编程:按照图案规则用颜色填充网格

我是约束编程的新手(来自 c#),我正在尝试解决这个问题。不幸的是,我没有这种拼图的名字,所以我不确定要搜索什么。我能找到的最接近的例子是 Nonogram 和 Tomography 谜题。

谜题描述:给玩家一个空的游戏板(大小不一),他们必须用 n 种颜色填充,使用线索模式作为行和列。每个线索模式是该行/列中的颜色序列,但删除了连续的重复项。

这是一个简单的 4x4 小网格示例,具有 3 种颜色:

解决方案(2):

? 可以是红色或蓝色,但不能是绿色。

下面的模式示例。给定 6 长度序列的示例:

给出潜在解决方案序列模式的示例:

我试图在 C# or-tools 和 MiniZinc 中解决它,但我遇到的最大问题是构建约束。我可以从一个序列中生成模式(以 c# 命令式的方式),但是如何将它变成一个约束呢?

我的想法是:从每个线索模式中生成所有潜在的序列。然后对相应的行/列进行约束,说明它必须是这些序列之一。

上面拼图中顶行的示例:rgb to [4-length sequences] -> rgbb, rggb, rrgb,然后为该行添加一个约束:必须等于这些序列之一。

我在想这个吗?有什么更聪明的方法吗?

感谢您的任何建议。

======================================

取得一些进展后进行编辑:

这个 MiniZinc 正确地解决了模式 abc 的顶行,它有 3 个 4 长度的解决方案:aabc、abbc、abcc。

但是,我不确定如何处理具有许多模式的较大网格,而不是像这样对所有内容进行硬编码。我会多做一些实验。