问题标签 [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.
python - Python OR-tools 使用起点和终点设置初始路由会产生无
我有一个使用 Google OR 工具解决的路由问题。它运行良好,我一直在尝试调整我的代码以适应起始和结束位置。
问题是当我设置它时,routing.ReadAssignmentFromRoutes
yield None
,下面是我重现场景的代码快照:
我在用:
- 蟒蛇 3.6
- ortools 7.3.7083
感谢任何帮助
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
求解器都会找到正确的分配。如果我将车辆限制在正确的位置,即
我得到了正确的分配(这意味着原始模型确实可行)。
代码示例:
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 找到它没有问题。我是个新手,非常感谢您的帮助。
问候,本
gps - 如何仅使用 GPS 数据识别公交车站?
我正在尝试使用包括这些属性的 GPS 数据集来识别公交车站:
- 巴士号码
- 当前巴士纬度
- 当前巴士经度
- 当前记录时间
我按 bus_no 和 date 对数据进行了分组,并对数据进行了计算以获取距离、持续时间、速度,并且每次停靠发生的时间及其持续时间,直到发生移动。现在我想从这些停靠站中识别公共汽车站,其中一些停靠站是由于交通或因为它是一个公共汽车站而发生的,我想确定这一点,这是一种方法吗?我试图阅读有关此问题的论文,但没有找到任何类似的东西。大多数论文已经确定了止损。
那么有没有人可以给我一个关于如何解决这个问题的建议?
c# - 无法理解如何设置 time_window Google or-tools
我是谷歌或工具的新手。我正在尝试解决 c# 中的时间窗口约束问题,但不了解时间窗口值。
从距离矩阵 API 获取时间矩阵
问题
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 对位于同一路线上的位置(因此没有上述容量),则求解器无法找到解决方案约束。
- 有没有更优雅的方式来模拟我的需求?
- 为什么求解器找不到解决方案?
我还考虑了放弃访问的可能性(以高成本),以使求解器有可能从放弃访问的解决方案开始,这样它就会找到从这一点到没有任何放弃的解决方案的方法。我没有运气。
提前致谢。
python - 可以多次访问客户的 CVRP
我想解决一个看起来像载客车辆路线问题 (CVRP) 的问题,但可以多次访问客户以便满足他们的需求。
我有:
- 包含供应商和存款的完整图 G(V,A)
- 成本矩阵 M
- 4辆容量Q的车辆
- V 上的正函数 f,表示必须为每个客户提供的数量。
我的目标是为所有客户提供这 4 辆车。可以乘坐两辆车拜访客户。
总路由距离必须最小化。
我想用python解决这个问题。
我已经查阅了一些文档(流程问题、TSP、VRP、CVRP 装箱...)。但没有成功。
你知道这个问题是否有名字吗?如果记录在案?否则,我应该如何制定问题?我应该使用哪个 Python 库?
谢谢 !
python-3.x - 将容量约束与取件和交付一起使用
作为 OR-Tools 库的新手,我无法根据我的要求修改现有代码。我有一个要求增加取货和交付的容量限制,即一个人将交付物品,如取货和交付算法中提到的那样,但会有一个限制,他可以容纳多少物品。我尝试使用带有取货和交付代码的容量限制代码,但没有成功。这是一个示例代码:
python - 这个用于车辆路由的 Python/Google OR 工具程序是否有一个简单的修复程序以使其按预期工作?
我正在尝试使用此 Python 程序进行车辆路由,使用 OR 工具创建“数据矩阵”。示例程序发布在https://developers.google.com/optimization/routing/vrp 它是页面最底部的完整程序。该程序应该从 GoogleDistance Matrix API 获取数据,并使用输入的地址打印出用于车辆路线/优化问题的数据矩阵。但我得到了错误。如果我取出最后几行,程序似乎运行没有错误(但是,当然没有打印所需的数据)我有工作的 API 密钥,并且安装了 OR 工具,所以这不是问题。
运行完整程序时出现这些错误
我可以修改一些简单的东西以使该程序在我的计算机上按预期工作/这里发生了什么?请注意,除了插入我自己的 API 密钥(它本身有效,但没有发布)之外,我已经完全按照谷歌网站上发布的方式运行该程序。例如,第 94 行是读取“main()”的程序的最底部,如果它也有用的话,这是我的代码的图片。 codeimage任何有用的建议将不胜感激。谢谢。
c# - 如何在时间窗口解决方案中添加服务时间?
我对每个位置都有不同的服务时间。如何在时间窗口解决方案中添加这些服务时间?
我已经通过 or-tools/ortools/constraint_solver/samples/cvrptw.py
但想不通