问题标签 [vehicle-routing]

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 回答
487 浏览

python - Python OR-tools 使用起点和终点设置初始路由会产生无

我有一个使用 Google OR 工具解决的路由问题。它运行良好,我一直在尝试调整我的代码以适应起始和结束位置。

问题是当我设置它时,routing.ReadAssignmentFromRoutesyield None,下面是我重现场景的代码快照:

我在用:

  • 蟒蛇 3.6
  • ortools 7.3.7083

感谢任何帮助

0 投票
0 回答
618 浏览

python - VRPTW:OR-Tools 在非常简单的情况下没有返回可行的解决方案

我已经使用 or-tools 几个月了,但最近遇到了以下问题:

模型:

  • 2辆车,每辆车都有一个起始位置s0, s1和一个结束位置t0, t1
  • 2个参观地点x0, x1

时间窗口:

持续时间矩阵:

哪里horizon = 86760- 这只是一个很大的价值,可以忽略这个潜在的任务。

None当我将它传递给求解器时,我得到了。不知道为什么求解器不返回简单可行的解决s_i -> x_i -> t_i方案i=0, 1

评论:

  • 我正在使用PARALLEL_CHEAPEST_INSERTION它,因为它为我的目的提供了更好的解决方案,PATH_CHEAPEST_ARC但梯子返回了正确的解决方案。

  • 经过一番折腾,似乎问题不在于开始位置的关闭时间窗口,而在于结束位置的持续时间。即,如果前两行是:

    对于任何 b >= a求解器都会找到正确的分配。

  • 如果我将车辆限制在正确的位置,即

    我得到了正确的分配(这意味着原始模型确实可行)。

代码示例:

0 投票
0 回答
156 浏览

or-tools - 车辆路径问题,如何调用数据

我现在正在尝试使用该网站的代码:

https://developers.google.com/optimization/routing/vrp

我只是做了一个小改动,当然它不再起作用了=D。

我所做的只是将数据从一个大字典(如这句话后面所示)更改为一个字典和一些列表(如代码中所示)。

当然,我将整个文档中的名称更改为新名称。

我在这里发布了所有更改的代码,因为我不太确定问题是否来自代码的不同部分。

错误是:

manager = pywrapcp.RoutingIndexManager(len(data_distance), data_num_vehicles, data_depot)

NameError:未定义名称“data_distance”

该程序现在不再识别列表和字典,我不知道为什么它根本不起作用。当我尝试在程序的任何其他部分打印列表时,python 找到它没有问题。我是个新手,非常感谢您的帮助。

问候,本

0 投票
1 回答
87 浏览

gps - 如何仅使用 GPS 数据识别公交车站?

我正在尝试使用包括这些属性的 GPS 数据集来识别公交车站:

  • 巴士号码
  • 当前巴士纬度
  • 当前巴士经度
  • 当前记录时间

我按 bus_no 和 date 对数据进行了分组,并对数据进行了计算以获取距离、持续时间、速度,并且每次停靠发生的时间及其持续时间,直到发生移动。现在我想从这些停靠站中识别公共汽车站,其中一些停靠站是由于交通或因为它是一个公共汽车站而发生的,我想确定这一点,这是一种方法吗?我试图阅读有关此问题的论文,但没有找到任何类似的东西。大多数论文已经确定了止损。

那么有没有人可以给我一个关于如何解决这个问题的建议?

0 投票
1 回答
147 浏览

c# - 无法理解如何设置 time_window Google or-tools

我是谷歌或工具的新手。我正在尝试解决 c# 中的时间窗口约束问题,但不了解时间窗口值。

从距离矩阵 API 获取时间矩阵

问题

0 投票
1 回答
584 浏览

modeling - OR-Tools VRP:限制同一车辆服务的位置

我想限制由同一辆车服务的位置。我使用容量限制来实现这一点。假设我们有l = [[1,2], [3,4]]这意味着位置 1、2 必须由同一辆车服务,3、4 也必须由同一辆车服务。所以 1, 2 结束route_1, 3, 4结束route_2

我实现这一目标的代码是:

这个想法是 1,2 每个 1 单位的容量需求(所有其他单位为零)。由于只有车辆 1 的容量为 2,因此它是唯一能够为 1,2 服务的车辆。

如果 len(l) == 1,这似乎工作正常。如果更大,如果我在没有上述代码的情况下放入 l 对位于同一路线上的位置(因此没有上述容量),则求解器无法找到解决方案约束。

  1. 有没有更优雅的方式来模拟我的需求?
  2. 为什么求解器找不到解决方案?

我还考虑了放弃访问的可能性(以高成本),以使求解器有可能从放弃访问的解决方案开始,这样它就会找到从这一点到没有任何放弃的解决方案的方法。我没有运气。

提前致谢。

0 投票
1 回答
225 浏览

python - 可以多次访问客户的 CVRP

我想解决一个看起来像载客车辆路线问题 (CVRP) 的问题,但可以多次访问客户以便满足他们的需求。

我有:

  • 包含供应商和存款的完整图 G(V,A)
  • 成本矩阵 M
  • 4辆容量Q的车辆
  • V 上的正函数 f,表示必须为每个客户提供的数量。

我的目标是为所有客户提供这 4 辆车。可以乘坐两辆车拜访客户。

总路由距离必须最小化。

我想用python解决这个问题。

我已经查阅了一些文档(流程问题、TSP、VRP、CVRP 装箱...)。但没有成功。

你知道这个问题是否有名字吗?如果记录在案?否则,我应该如何制定问题?我应该使用哪个 Python 库?

谢谢 !

0 投票
2 回答
1017 浏览

python-3.x - 将容量约束与取件和交付一起使用

作为 OR-Tools 库的新手,我无法根据我的要求修改现有代码。我有一个要求增加取货和交付的容量限制,即一个人将交付物品,如取货和交付算法中提到的那样,但会有一个限制,他可以容纳多少物品。我尝试使用带有取货和交付代码的容量限制代码,但没有成功。这是一个示例代码:

0 投票
1 回答
176 浏览

python - 这个用于车辆路由的 Python/Google OR 工具程序是否有一个简单的修复程序以使其按预期工作?

我正在尝试使用此 Python 程序进行车辆路由,使用 OR 工具创建“数据矩阵”。示例程序发布在https://developers.google.com/optimization/routing/vrp 它是页面最底部的完整程序。该程序应该从 GoogleDistance Matrix API 获取数据,并使用输入的地址打印出用于车辆路线/优化问题的数据矩阵。但我得到了错误。如果我取出最后几行,程序似乎运行没有错误(但是,当然没有打印所需的数据)我有工作的 API 密钥,并且安装了 OR 工具,所以这不是问题。

运行完整程序时出现这些错误

我可以修改一些简单的东西以使该程序在我的计算机上按预期工作/这里发生了什么?请注意,除了插入我自己的 API 密钥(它本身有效,但没有发布)之外,我已经完全按照谷歌网站上发布的方式运行该程序。例如,第 94 行是读取“main()”的程序的最底部,如果它也有用的话,这是我的代码的图片。 codeimage任何有用的建议将不胜感激。谢谢。

0 投票
1 回答
286 浏览

c# - 如何在时间窗口解决方案中添加服务时间?

我对每个位置都有不同的服务时间。如何在时间窗口解决方案中添加这些服务时间?

我已经通过 or-tools/ortools/constraint_solver/samples/cvrptw.py

但想不通