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

python - 最小化车辆之间的最大距离

建议使用跨度成本系数来最小化车辆之间的最大距离

取自https://developers.google.com/optimization/routing/vrp#example

当成本函数不是基于距离(即燃料使用)而是基于行驶时间并且目标是让最后一辆车尽早返回站点时,这尤其有用。

Q1:我可以将目标函数定义为车辆之间的最大成本(而不是总成本和全局跨度的总和)吗?

如果这是不可能的,我想知道原因是什么。我可以想象A)很难实现这样的约束或B)我错过了一些导致不良解决方案的隐含缺点(与使用跨度约束相比)。

我注意到全局跨度约束,即使我将其设置为 1000(但这意味着什么?),甚至不能保证所有车辆都在使用。当然,我可以通过使用更多车辆来改进该解决方案,对吧?

编辑:这是一个最小的工作示例。5 辆车可用于服务 20 个站点。我将停靠点之间的统一行驶时间定义为 1 小时,因此最佳解决方案是每条路线包含 4 个停靠点,并且所有车辆在 4 小时后返回站点。在没有全局跨度约束的情况下,一辆车完成所有工作的总时间为 20 小时。使用全局跨度约束(系数 = 1000),两辆车各服务 10 个站点。

解决方案绘图仪的输出:

车辆 0 的路线:0 -> 11 -> 12 -> 13 -> 14 -> 15 -> 16 -> 17 -> 18 -> 19 -> 0 路线的持续时间:10 小时

车辆 1 的路线:0 -> 10 -> 0 路线 1 的持续时间:2 小时

车辆 2 的路线:0 -> 0 路线 2 的持续时间:1 小时

车辆 3 的路线:0 -> 0 路线 3 的持续时间:1 小时

车辆 4 的路线:0 -> 9 -> 8 -> 7 -> 6 -> 5 -> 4 -> 3 -> 2 -> 1 -> 0 路线 4 的持续时间:10 小时

所有路线的总时长:24 小时

0 投票
1 回答
1559 浏览

python - 带时间窗口崩溃的容量车辆路线问题

我正在研究 Google OR Tools 共享的示例代码。此示例适用于带时间窗口的容量车辆路径问题。

当我运行这里共享的整个程序时。它运行良好并提供如https://developers.google.com/optimization/routing/cvrptw上所示的输出。

但是,当我将 self._num_vehicles 从 4 更改为 3 时。它挂起并且不给出输出。

我知道这 3 辆车将无法承受全部负载,这就是它卡住的原因。但是有没有可能它给了我 3 辆车的最佳路线,而留下了车辆无法满足的其余需求。

你能在这里建议一个修复吗?

代码示例:

0 投票
0 回答
116 浏览

anylogic - Anylogic中的路线成本核算

我正在尝试模拟一个制造系统,该系统使用自动导引车 (AGV) 在要处理的网络上承载负载。当 AGV 行驶时,它们最好选择最快的路线到达目的地(不一定是最短的)。

这是我的模型

我有点坚持尝试实现路线成本计算算法,因为我还不太熟悉这个程序的复杂性。任何人都可以给我一些关于如何在以下场景中以伪代码实现它的粗略想法:

负载需要从 A 移动到 B,并且有三种可能的路径。但是,红色突出显示的区域存在拥堵,这将导致负载需要更长的时间才能到达 B 点。

如何读取网络以检查拥塞并计算到达 B 点所需的各种时间?

0 投票
1 回答
546 浏览

or-tools - SetGlobalSpanCoefficient 方法 google or tools

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

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

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

0 投票
1 回答
126 浏览

python - 查找最短路径中osm节点列表的方式ID

在一条路线中,我们得到一个从源到目的地的所有节点的列表。

是否有可能获得从源到目的地的所有 osm 方式 ID?

0 投票
1 回答
493 浏览

routing - 如何在 Jsprit 中使用成本矩阵解决提货和送货问题

我尝试使用 Jsprit 通过成本矩阵来解决提货和送货问题。但是,解决方案不起作用。有谁知道哪个部分出了问题?

我使用了来自 Jsprit TransportOfDisabledPeoplecostMatrixExample的示例来创建我的问题。但是,我的代码似乎无法正常工作。如果我错过了代码中的任何内容,请告诉我。我试图弄清楚但失败了。

0 投票
1 回答
383 浏览

algorithm - 如果货物有多个尺寸的尺寸,Jsprit 的解决方案是不正确的

我是 Jsprit 的新手。我尝试在我的发货清单中使用多种尺寸的尺寸。例如,一些货件我使用 WHEELCHAIRSPACE_INDEX 添加了尺寸大小,而一些货件我在我的 createJob() 中使用了 PASSENGERSEATS_INDEX。但是输出似乎是错误的。

}

这是输出 在此处输入图像描述

装运 1 和装运 5 未分配到作业列表。但是,如果我将所有尺寸的尺寸更改为 PASSENGERSEATS_INDEX,那么所有作业都会正确分配。这是否意味着该算法不支持多种尺寸的尺寸?

当我在调试模式下进入代码时,我发现有一个解决方案可以分配 4 个作业。但是,它被认为是 Jsprit 中不被接受的解决方案。从逻辑上看,这个解决方案应该是正确的解决方案,因为它最大限度地减少了未分配的工作(与原始解决方案相比,仅分配 3 个工作)。

在此处输入图像描述

0 投票
1 回答
101 浏览

drools - 车辆路径问题:时间窗 VRP 应考虑 TimeWindowedDepot.getDueTime()

我正在处理时间窗口车辆路线问题。

我的限制是:

  1. 我有客户 (100) 有准备和到期时间。
  2. 还有车辆(10)也有准备和到期时间。
  3. 求解器运行 150 秒。

结果尊重客户的到期时间,但不尊重仓库(或车辆)的到期时间。我尝试为车辆到期时间添加硬约束。但这让许多客户未初始化,尽管我有足够的车辆。这是我使用的硬约束。

请建议我是否写了不正确的规则。或者有没有其他解决这个问题的方法。询问任何需要的细节。谢谢你。

编辑1: 我稍微改变了规则,但结果仍然相同。

0 投票
1 回答
1166 浏览

python - 如何将时间窗口约束和容量约束添加到 VRP?

我刚刚开始使用 Google 的 OR 工具研究 VRP。我想对我的 VRP 施加多个约束,而不是仅在时间窗口约束或容量约束中添加一个,我希望在不考虑成本的情况下同时拥有这两个约束来解决我的问题。如何做到这一点?

0 投票
1 回答
83 浏览

traveling-salesman - 如何在结果中考虑用户修改并在 VRP 中考虑它们

我正在研究一个 VRP(车辆路线问题)来制定接送服务计划,因为 VRP 是 NP 难题,用户根据他们的要求编辑计划。现在我计划在准备计划时考虑他们的修改。我应该从哪里开始?