Loading [MathJax]/jax/input/TeX/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >OptaPlanner车辆路径.车辆的时间窗口

OptaPlanner车辆路径.车辆的时间窗口
EN

Stack Overflow用户
提问于 2016-10-27 01:26:30
回答 1查看 571关注 0票数 1

首先,感谢那些在这个伟大的图书馆开具发票的人。

我的限制是:

  • 我有顾客已经准备好了,时间到了。
  • 和车辆也有准备和适当的时间。

我对Java没有经验,我试图通过使用提供的示例项目发送和接收OptaPlanner来使用xml。对于客户时间窗口,我使用了"VrmTimeWindowedCustomer“,这是没有问题的。对于车辆时间窗约束,我尝试使用"VrpTimeWindowedDepot“。

我脑子里想的是:当一个仓库(ReadyTime)可用时,车辆就会从那个仓库开始工作,然后到达顾客那里。然而,在我的尝试中,OptaPlanner没有给出我期望的结果:

代码语言:javascript
运行
AI代码解释
复制
<depotList id="139">
    <VrpTimeWindowedDepot id="140">
      <id>1</id>
      <location class="VrpRoadLocation" reference="3"/>
      <readyTime>540000</readyTime>
      <dueTime>1020000</dueTime>
    </VrpTimeWindowedDepot>
    <VrpTimeWindowedDepot id="141">
      <id>2</id>
      <location class="VrpRoadLocation" reference="5"/>
      <readyTime>540000</readyTime>
      <dueTime>1020000</dueTime>
    </VrpTimeWindowedDepot>
  </depotList>

结果是:

代码语言:javascript
运行
AI代码解释
复制
<VrpVehicle id="143">
      <id>1</id>
      <capacity>100001002</capacity>
      <depot class="VrpTimeWindowedDepot" reference="140"/>
      <nextCustomer class="VrpTimeWindowedCustomer" id="144">
        <id>42</id>
        <location class="VrpRoadLocation" reference="85"/>
        <demand>206</demand>
        <previousStandstill class="VrpVehicle" reference="143"/>
        <nextCustomer class="VrpTimeWindowedCustomer" id="146">
           ...
        <vehicle reference="143"/>
        <readyTime>0</readyTime>
        <dueTime>1440000</dueTime>
        <serviceDuration>12000</serviceDuration>
        <arrivalTime>22137</arrivalTime>
      </nextCustomer>
      <vehicle reference="143"/>
      <readyTime>0</readyTime>
      <dueTime>1440000</dueTime>
      <serviceDuration>12000</serviceDuration>
      <arrivalTime>8527</arrivalTime>
    </nextCustomer>
  </VrpVehicle>

ArrivalTime对客户来说是可以的,但是比那辆车的仓库ReadyTime要小。

我不知道我在这里做错了什么。我读过Optaplanner -车辆的可用性和OptaPlanner文档,但不理解和不知道该如何处理我的情况。

我也无法理解drl文件的语法,也找不到解释如何编写它的文档。

编辑- Geoffrey 的另一个问题

Geoffrey,非常感谢您的快速反应,非常感谢。我已经试过你的改变了。根据仓库的ReadyTime,现在到达的时间已经确定了。然而,仓库的DueTime可能还有另一个问题:

代码语言:javascript
运行
AI代码解释
复制
   <VrpTimeWindowedDepot id="144">
      <id>3</id>
      <location class="VrpRoadLocation" reference="7"/>
      <readyTime>540000</readyTime>
      <dueTime>1020000</dueTime>
    </VrpTimeWindowedDepot>

最后一次从这个车库拜访车辆的顾客是:

代码语言:javascript
运行
AI代码解释
复制
<nextCustomer class="VrpTimeWindowedCustomer" id="183">
  <id>36</id>
  <location class="VrpRoadLocation" reference="73"/>
  <demand>187</demand>
  <previousStandstill class="VrpTimeWindowedCustomer" reference="182"/>
  <vehicle reference="146"/>
  <readyTime>0</readyTime>
  <dueTime>1440000</dueTime>
  <serviceDuration>10000</serviceDuration>
  <arrivalTime>1082091</arrivalTime>
</nextCustomer>

到达时间不应该少于1020000吗?)在3个仓库里有3辆车。在解决方案中,只涉及2辆车,两者都有这样的完成时间。)

我尝试把这个添加到规划师-680 JIRA问题的评论,但我无法唱歌和登录。我希望这个编辑是好的,根据Stackoverflow的格式。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-10-27 01:56:37

我记得在txt导入程序(请看这一行)中与车辆/仓库的适当时间有关的示例中进行了黑客攻击。它还没有被清理干净,所以XML可以穿透它。但这不是你的问题。

在ArrivalTimeUpdatingVariableListener中,这一行似乎有一个bug:

代码语言:javascript
运行
AI代码解释
复制
    protected void updateArrivalTime(ScoreDirector scoreDirector, TimeWindowedCustomer sourceCustomer) {
        Standstill previousStandstill = sourceCustomer.getPreviousStandstill();
        Long departureTime = (previousStandstill instanceof TimeWindowedCustomer)
? ((TimeWindowedCustomer) previousStandstill).getDepartureTime() : null;

这并没有考虑到vehicle.getDepot().getReadyTime()

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40280917

复制
相关文章
模拟退火算法解决带时间窗的车辆路径规划问题
各位读者大家好,今天小编将给大家分享如何用模拟推退火算法解决带时间窗的车辆路径规划问题。本文附带Java代码详解,是根据过去学长写的用禁忌搜索算法求解相关问题的代码修改而来的:
用户1621951
2021/09/02
2.2K1
联网车辆
联网车辆是物联网技术最明显,最熟悉的例子。但是,随着汽车变得越来越由软件驱动,汽车行业中真正的物联网发展就在幕后,因为汽车制造商和软件供应商都对驾驶席位有所保留。到2025年,将有超过5亿辆联网汽车上路,到2030 年,联网汽车服务的价值将达到810亿美元,使联网汽车市场成为增长最快的领域之一物联网,并为移动运营商,汽车制造商和更广泛的生态系统中的公司提供了巨大的收入机会。
用户2605137
2022/04/12
4190
联网车辆
需求可拆分及带时间窗的车辆路径规划问题(SDVRPTW)简介
今天为大家介绍需求可拆分的带时间窗车辆路径问题(Split Delivery Vehicle Routing Problem with Time Window,简称SDVRPTW )。而求解技术是精确算法之王中王——分支定价割平面法(Branch-Price-Cut,简称BPC),因为国内少有这类型算法的介绍,今天小编就给大家分享一下咯。
短短的路走走停停
2020/03/25
3.1K0
需求可拆分及带时间窗的车辆路径规划问题(SDVRPTW)简介
需求可拆分及带时间窗的车辆路径规划问题(SDVRPTW)简介
前言 今天为大家介绍需求可拆分的带时间窗车辆路径问题(Split Delivery Vehicle Routing Problem with Time Window,简称SDVRPTW )。而求解技术是精确算法之王中王——分支定价割平面法(Branch-Price-Cut,简称BPC),因为国内少有这类型算法的介绍,今天小编就给大家分享一下咯。
用户1621951
2020/03/26
2.2K0
需求可拆分及带时间窗的车辆路径规划问题(SDVRPTW)简介
JSPRIT在带时间窗的车辆路径规划问题(VRPTW)上的表现总结
在之前的推文车辆路径优化问题求解工具Jsprit的简单介绍与入门中,相信大家已经对Jsprit这款开源的车辆路径规划问题求解器有了基础的了解,那么Jsprit在具体的车辆路径规划问题上表现到底如何呢?
短短的路走走停停
2019/09/24
1.6K0
JSPRIT在带时间窗的车辆路径规划问题(VRPTW)上的表现总结
车辆路径规划中的Milk Run问题简介
大家好啊,许久不见,新的一年小编在这里向大家拜个年,祝各位新年快乐,身体健康,心想事成。最近由于新冠肺炎,我们正在经历一段较为困难的日子,希望我们可以一起众志成城,共度难关。
用户1621951
2020/02/19
1.9K0
车辆路径规划中的Dial A Ride 问题简介
今天我们给大家带来的是Dial a ride问题(DAR)的介绍,文中所用资料多参考于文献。先上目录
用户1621951
2020/02/19
3.8K0
JSPRIT在带时间窗的车辆路径规划问题(VRPTW)上的表现总结
在之前的推文车辆路径优化问题求解工具Jsprit的简单介绍与入门中,相信大家已经对Jsprit这款开源的车辆路径规划问题求解器有了基础的了解,那么Jsprit在具体的车辆路径规划问题上表现到底如何呢?
用户1621951
2019/09/24
1.4K0
JSPRIT在带时间窗的车辆路径规划问题(VRPTW)上的表现总结
车辆路径规划中的Location-Routing Problem简介
今天为大家介绍的是选址-路径问题(Location-Routing Problem, LRP),首先上目录
短短的路走走停停
2020/03/06
4.4K0
车辆路径规划中的Location-Routing Problem简介
Jsprit和自研车辆路径规划求解器的介绍
前言 哈啰,又见面啦 大家在编写启发式算法程序解决NP难问题时 有没有觉得会很耗时间呀 今天小编给大家介绍 两个可以解决各类VRP问题的工具(即VRP求解器) 一起来看看吧 1 求解器介绍 1.1 Jsprit 1.1.1 Jsprit简介 Jsprit 是一个基于 java 的开源工具包,用于解决旅行商问题 (Traveling Salesman Problem,简称TSP) 和多种车辆路径问题(Vehicle Routing Problem, 简称VRP)。Jsprit是轻量级、灵活且易于使用的V
用户1621951
2022/08/25
2.5K0
Jsprit和自研车辆路径规划求解器的介绍
车辆排队叫号系统提升车辆调度效率
近些年来,工业运输与物流货运行业的井喷式发展,在极大的提升货物运输能力降低运输成本的同时,也带来了车辆排队效率低,运力安排不合理货物运输流程不透明等诸多问题,从而对货主和司机都带来了极大的烦恼。货主对于货运车辆到厂的时间不明确,司机对于进场的时间把握不好。在互相等待的过程中,极容易出现跑单、排队、难卸货、找不到交货点、到货时间不透明等问题。
无锡漫途科技
2023/07/18
3210
车辆排队叫号系统提升车辆调度效率
python从SUMO中获取车辆平均行驶时间
在SUMO的帮助文档中的simulation output中有如下说明。SUMO提供用来记录车辆trip信息的文件。
钱塘小甲子
2019/01/29
3.4K0
干货|蚁群算法求解带时间窗的车辆路径规划问题详解(附Java代码)
当然,玩耍过后也不能忘记学习。本着~造福人类~的心态,小编又开始干活,为大家带来 有 · 趣 的干货算法内容了!
短短的路走走停停
2020/02/25
2.1K0
车辆目标检测
车辆是视频场景中最关键的对象之一,车辆 和 人 是视频检测永恒的话题。 车辆检测 是车辆分析中关键的一步,是后续进行 车型识别、车标识别、车牌识别、车辆特征 的基础。 关于检测的方法和
机器学习AI算法工程
2018/06/07
3.2K0
车辆路径规划中的Electric Vehicle-Routing Problem简介
今天给大家带来的是电动汽车路径规划问题(Electric Vehicle-Routing Problem, EVRP)的介绍,按照惯例先上目录,其中第三部分的主要内容出自文献“The Electric Vehicle-Routing Problem with Time Windows and Recharging Stations”。
用户1621951
2020/03/12
3K2
车辆路径跟踪控制方法系列:LMPC的前世今生
在路径跟踪控制中,线性模型预测控制(Linear Model Predictive Control, LMPC)[1]是一种目前较为常见的控制方法。在LMPC最初应用于路径跟踪控制时,也常被直接称为预测控制(Predictive Control)[2]或模型预测控制(Model Predictive Control, MPC)[3]。考虑到预测模型的参数随时间变化,它也常被叫做线性时变模型预测控制(Linear-Time-Varying Model Predictive Control,LTV-MPC)[4]或线性参变模型预测控制(Linear-Parameter-Varying Model Predictive Control,LPV-MPC)[5]。由于路径跟踪控制系统是非线性系统,所以LMPC有时也会被称为非线性模型预测控制(Nonlinear Model Predictive Control, NMPC)[6]。五花八门的名称,容易使初学者混淆这些概念。本文希望通过介绍LMPC路径跟踪控制的基本特点以及一些典型工作,澄清LMPC路径跟踪控制的概念和历史。
路径跟踪快讯
2020/09/01
3.1K0
车辆未冲洗抓拍系统 工地车辆冲洗监测系统
车辆未冲洗抓拍系统 工地车辆冲洗监测系统过opencv+python对进出工地的渣土车车辆冲洗情况进行自动识别和违规判定,如果车辆未冲洗抓拍系统 工地车辆冲洗监测系统发现车辆冲洗不合格,车辆未冲洗抓拍系统 工地车辆冲洗监测系统就会自动进行抓拍存档同步发送到智慧工地系统平台。
燧机科技
2022/12/30
5560
车辆未冲洗抓拍系统 工地车辆冲洗监测系统
禁忌搜索算法求解带时间窗的车辆路径规划问题详解(附Java代码)
所以赶紧趁考试周来临前,码出了这篇禁忌搜索算法解决VRPTW的文章,临时抱佛脚,假装自己今年学了一点东西。
用户1621951
2020/01/02
2.7K2
车辆路径优化问题求解工具Jsprit的简单介绍与入门
今天小编要为大家介绍一款用于求解车辆路径优化问题(VRP)的工具箱---jsprit。大家可能没听过这个求解工具,小编也是经老师介绍才知道的。这里可以偷偷的告诉大家,老师的团队正在开发一款更厉害的车辆路径优化问题的求解器,将来会与Jsprit做性能比较。大家可以期待一下我们自己的车辆路径优化问题的求解器哦!
用户1621951
2019/09/17
3.6K0
车辆路径优化问题求解工具Jsprit的简单介绍与入门
干货|自适应大规模邻域搜索算法求解带时间窗的车辆路径规划问题(上)
不知道大家在使用启发式算法求解车辆路径规划问题时有没有这样的困惑:设计邻域搜索算子实在是太太太太难了,邻域搜索算子必须在算子搜索范围以及算子复杂度之间达到平衡,高效的邻域搜索算子又是邻域搜索算法的核心。那么有没有这样一种算法,它既不依赖特定的问题结构,也有很好的效果呢?
用户1621951
2019/12/23
7.6K0
干货|自适应大规模邻域搜索算法求解带时间窗的车辆路径规划问题(上)

相似问题

Optaplanner车辆路径更新

10

车辆路径选择的OptaPlanner

14

基于Optaplanner的车辆路径选择

14

OptaPlanner车辆路径路径粒度移动

24

车辆路径问题(VRP)中车辆长行程规划的Optaplanner方法

15
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
社区富文本编辑器全新改版!诚邀体验~
全新交互,全新视觉,新增快捷键、悬浮工具栏、高亮块等功能并同时优化现有功能,全面提升创作效率和体验
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文