我是新的路由优化,并将感谢您的帮助解决以下业务需求使用jsprit。我从Stefan Schr der那里得到了一些反馈,他帮助我学习了jsprit的一些基础知识。我会先解释业务要求,然后再问几个问题。
目标是安排一个月内需要完成的维护工作列表。需要为整个月准备一份每日日程安排。这里的目标是每天完成最大数量的工作。
我的基本理解是,维护任务可以定义为jsprit中的服务,并且可以为每个车辆设置启动/返回时间。此外,还可以使用成本矩阵来增加车辆与仓库之间关系的时间和距离。我要问的问题是:
我非常感谢在解决上述案件方面提供任何帮助。
谢谢,亚当
EDIT1:
几个问题
答: setEarliestStart()和setLatestArrival()方法接受双值,如何将最早的出发日期和最近到达日期指定为这些方法的实际日期?例如,开始时间是2014年11月28日下午2点,结束时间是同一天的晚上10点。
有什么方法可以以分钟为单位指定服务时间吗?
C. VehicleTypeImpl.Builder.setMaxVelocity(double inMeterPerSeconds)方法期望最大速度,有办法指定车辆的平均速度吗?
所有车辆都必须在三班制下工作,这是否意味着我必须给同一辆车下三次定义,每班一班,有不同的最早出发时间和最近到达时间?
由于作业可以在月份内的任何时候执行,是否会将每个作业的时间窗口作为开始和月底传递给Service.Builder.setTimeWindow()方法?
发布于 2014-11-26 12:58:00
( ad1)正确
ad2)如果容量不起作用,则不需要addCapacityDimension(..)。如果是这样的话,您可以使用此方法定义任意数量的容量维度,例如重量、体积、托盘数量(然后是三个维度)。与.setCostPerDistance(..)你设定--顾名思义--单位距离的成本(例如1欧元/公里)。因此,使用.setCostPerTime(..)你设定每个时间单位的成本,例如20欧元/小时。因此,如果你的车辆/司机在1小时内行驶100公里,它将花费100公里*1欧元/公里+20欧元/小时*1小时。
ad3)服务可能会消耗车辆的容量。一项服务可指在客户/服务地点接货。它可能有一定的体积,重量,它可以被加载到一个特定的不。托盘的。这就是用.addCapacityDimension(..)定义的
ad4)定义单元。当您设置成本参数时,应该是同一个单元。
( ad5)正确。但你不一定需要坐标。您要么需要一个locationId,要么需要一个坐标,但是可以同时设置两者。当将时间和距离关系添加到locationId时,costMatrix应该是相同的。
( ad6)再一次,你决定这个单位。
https://stackoverflow.com/questions/27127248
复制相似问题