当前位置: 首页 > 知识库问答 >
问题:

车辆路线问题-如何完成/确定何时访问某些地点?

余弘毅
2023-03-14

我有VRP问题。我有车辆起始位置和距离矩阵。我希望在访问某些位置时终止/完成解决方案。

所以我不希望它实际访问位置矩阵的每个索引,但如果访问“必须访问”旁边的不同索引有助于更好的解决方案,那么我没有问题。因为你知道有时候直接从1到3比1-2-3慢。(访问2,这不是必须的,但要走捷径)

定义了一个成本为0的虚拟仓库,我用它作为结束,因为如果你使用开始,你必须定义结束。我把末端放在基本上是末端位置。你可能会问为什么不把你的“工作”地点。但这意味着他们必须就此结束。所以它似乎不是最优的,因为一辆车可能真的离两个“工作”地点都很近,但如果它终止/结束,因为它有末端定义,车辆将停止。

我不知道该怎么做。基本上我想要的是,如果某个地点被访问过一次,就终止——这就是解决方案。因此,如果作业是(1,3,5),车辆1访问了1,3,车辆2刚刚访问了2,则应该完成。

如果我在或工具中使用求解器,它将像TSP问题一样,试图访问distance_matrix中的每个位置。我真的不想这样。它可以访问,如果结果更好的解决方案(这有意义吗?)但它应该关注“工作”地点以及如何更快地完成它们

共有1个答案

宫铭
2023-03-14

潜在的方法:计算一个只有“必须访问”位置的新距离矩阵,并使用该矩阵运行VRP。

  • 计算仅包含“必须访问”位置的距离矩阵
  • 每个单元格包含两个“必须访问”位置之间的最短路径
  • 存储找到的所有成对最短路径
  • 在此距离矩阵上运行常规VRP
  • 使用前面找到的最短路径重建完整路径
 类似资料:
  • 要求 我有一个车队。每辆车都有一个容量和它的存款,这个存款有一个时间窗口。从VRP的OptaPlanner的例子来看,我只对我作为浮点处理的容量做了一个变化。据我所知,OptaPlanner示例中的所有车辆都被移动到一个仓库。在我的情况下,每辆车都有自己的车辆段,每辆车都有自己固定的车辆段,有可能几辆车都有同一个车辆段。 R2-我有访问(送货服务)。每次访问都有一个需求和一个时间窗口。从VRP的O

  • 但是如果我不知道我想要获得的属性的名称怎么办?比方说,基于设计,模型由开发人员具有一些固定的属性,同时还有用户可以动态设置的特性。 因此,目前我使用并通过使用索引来访问由用户创建的属性,因为我知道我得到的列表将以模型的固定属性作为它的第一个元素,以索引0开头。但我发现这个解决方案不明确而且效率低。也有的时候,说我想工作,不适合。 例如: 每一次的帮助都将得到感激。

  • 面试官:「你是怎么定位线上问题的?」 这个面试题我在两年社招的时候遇到过,前几天面试也遇到了。我觉得我每一次都答得中规中矩,今天来梳理复盘下,下次又被问到的时候希望可以答得更好。 下一次我应该会按照这个思路去答: 1、如果线上出现了问题,我们更多的是希望由监控告警发现我们出了线上问题,而不是等到业务侧反馈。所以,我们需要对核心接口做好监控告警的功能。 2、如果是业务代码层面的监控报警,那我们应该是

  • 我有一个使用Google的工具或python库实现的工作车辆路径问题解决方案。我有一个包含9个位置的时间矩阵,每个位置都有时间窗口。所有值均以秒为单位。 (例如,第一个时间窗口是从28800到28800。28800秒相当于上午8:00。我希望在上午8:00访问此位置,即车辆段) 我有意只用一辆车来解决这个问题(本质上是解决一个旅行推销员问题)。我相信我正确地增加了我的维度,但我肯定可能犯了一个错误

  • 但这一个也不起作用。正确的答案是加入线程并删除2个睡眠: 我的问题是:为什么我的答案都不能被接受?我的实验室领导问,但他不能给我一个答案。在家里编写了测试代码,它似乎工作得很好。提前感谢您的帮助!

  • 我有一个页面,用户需要输入他们的电子邮件,然后点击底部的按钮进行确认。确认电子邮件时,屏幕上会显示一个进度对话框。当在编辑文本中输入无效电子邮件时,就像只输入字母“a”一样,编辑文本下方会以文本视图的形式显示一条错误消息。我正在努力让这个页面更容易访问。 我的预期方法是,当错误文本出现时,让对讲模式聚焦在错误文本上。然而,这并不是很有效。相反,当解除“进程”对话框覆盖时,屏幕上的任何内容都不会通过