调度即为运输业务中,货物与运力的匹配环节。调度系统是业务系统基础属性,链接上游OMS系统,下游司机/车队系统;或调度模块内嵌到TMS系统中,做单独的操作模块。
随着数据的积累,派车规则的总结完善,越来越多的调度系统力求实现智能调度即自动派车的功能,依托算法或规则配置,优化运力分配。
调度系统的核心,一是派车的准确度高,系统匹配出的为派车的最优解;二是操作的便捷高效性,调度目前还有大量人工操作的场景,系统的使用便捷交互流畅是非常重要的;三是数据的积累及可视化展现,历史数据的宏观微观展示,均可以在多个环节对调度策略进行优化指导。
调度模式简而言之分为两种,抢单和派单。
抢单的逻辑较为简单,将符合条件的活放到资源池中,司机自行筛选以及预定订单。这种模式基础的要求是司机端有完善的产品而且司机愿意配合使用;司机抢到的单,理论讲一定可以运,延伸对司机的管控,比如主动撤单率高的司机和履约情况良好的司机区别收入或评分,适用于有固定运力,司机管控较为完善的运输公司;针对信息匹配平台,及时记录抢单及放单行为,完善推荐匹配策略。
抢单的弊端,就是订单及运力分配的不均匀,平台公司无法强管控如利润、客户服务等。
例如好客户的好订单,被“坏司机”抢到,可能影响平台口碑;再例如“坏客户”的坏订单,被好司机抢到,可能影响司机的运输体验或收入,会加大司机对平台的抱怨程度;抢单模式不灵活,给平台角色的自由度较大,因而很难精细化管理。很多运输公司选择用固定路线或固定运力池作为抢单模式的场景,用抢单代替固定的排班,通过减少场景来加强管控。
派单的逻辑可以很深入,也可以很简单。
简单的派单,就是调度人员找到订单,选派合适的司机,调度过程即结束。这其中需要考虑司机是否有时间接单,不会和上一单或下一单有重叠即可,这也是大部分TMS系统所实现的程度。再进一步,司机端多考虑一步,是否让已分派的司机撤单或设置司机需点击接单的模式,上下游互选后履约成立,这也是网络货运平台要求的履约模式。这一步往往会设置反馈,不接或撤单的原因,便于日后数据分析。
数据及规则积累到可量化的程度,即可尝试自动调度。基础的自动调度,即把调度人员的派车规则转换成为系统语言,自动推荐运力;到策略层,即会考虑路径规划,多因素相互影响的算法。
调度考虑的因素列举起来有如下:司机作息、运输是否可成立、定向匹配、司机偏好、司机收入、平台利润、平台报价、第三方服务等等。要精确的量化以上条件,必须对三部分数据进行建模分析,即司机画像、车辆基础信息维护、地址画像。
- 司机画像标记司机的收入要求、运输偏好远途近途、运输习惯休息时间等;
- 车辆基础信息,如核定载质量、轴数、燃油类型、国五国六等,以此来判断运输能否成立;
- 地址画像,能否走国道、是否有山路、是否有高台等属性,依次直接可作为运力筛选条件使用。
1)调度顺序模型
初步探索自动调度,首选建立一个匹配的顺序模型,即把上述条件顺次排列依次匹配,触发到即停止匹配。下面简单举一个顺序模型的例子:司机作息>定向匹配>收入>…
第一优先级:司机作息;即保证司机有能力接这单活,如果司机还在途或需要休息,调度无法成立。
简单举例,如司机在途一个往返150公里的订单,默认可以当天返程,后一天的单理论可以继续派此司机;另一个简单的维度是时间,同样往返150公里的订单,默认司机可接20小时后的订单,也是理论成立;精细一些的分析方向,依靠货车导航精确判断司机返程情况,或根据历史订单及历史路径选择,精确估算到达时间。
第二优先级:定向匹配;即合约司机或固定路线司机优先匹配。
例如一些专线司机,只跑某一条路线,即可在其作息允许的基础上,直接匹配分派。这个模式必须留一个兼容性,固定司机可用数量为0时,系统触发正常匹配逻辑,否则会导致无车可派的情况。如若多个固定司机对应一个路线,进入下一条条件的判断。
第三优先级:收入,司机收入和公司平台收入。大部分运输公司和司机的合作模式,都会有保证最低收入的限制,所以系统需将这个权重影响到自动调度中。广义区分,近途订单收入少,远途订单收入多,所以针对最低收入较低的司机,派近途订单的权重高于远途订单的权重,反之亦然。针对社会车辆或临时合作的车辆,平台收入的优先级高于司机收入的优先级。
物流平台调度环节的收入,即为既定派车价-司机运费,司机运费越低,平台收入越高(此处暂不展开其他维度 仅举例说明),保证平台总体利润最大化,是高优条件,但是收淡旺季、油价波动等因素的印象,会导致平台利润最大化的条件“不是最优解”,年度利润最大不等于每天或每月的利润最大,多因素的波动也会影响利润的计算取舍。
第四优先级 … 不同企业可自行选择。
以上为较为简化的顺序模型,企业可以根据自身的情况,设置个性化的权重。如果是TMS或调度的SAAS平台,可将优先级做为可配置项,按需设置。
2)算法示例
自动调度的另一个方向,是用算法来进行路径规划选择,一般会细分到某一行业或领域,如城市配送、干线配送或医疗行业、服装行业等,都是在场景下寻找路径的最优解,综合路径、路况、路桥费等因素,计算最优选择。常用的如路径规划算法、遗传算法、蚁群算法等。下面简述两个算法的应用逻辑。
遗传算法是一种模拟自然选择和遗传机制的优化算法,具体来说,遗传算法可以通过以下步骤进行物流派车调度:
- 个体编码:将物流车辆的行驶路线和配送计划转化为染色体编码,例如使用二进制编码或者排列编码。
- 初始化种群:随机生成一组初始染色体,作为种群的初始状态。
- 适应度函数:定义适应度函数,即评价染色体的好坏程度。在物流派车调度中,适应度函数可以根据物流车辆的行驶距离、时间、成本等综合因素进行评价。
- 选择操作:根据适应度函数对种群进行选择,从中选择适应度较高的染色体进行进化。
- 交叉操作:将选出的染色体进行交叉操作,生成新一代染色体。
- 变异操作:对新一代染色体进行变异操作,以增加种群的多样性。
- 替换操作:将新一代染色体替换原始种群中适应度较低的染色体,以保证种群的进化方向。
- 迭代操作:重复进行选择、交叉、变异和替换操作,直到达到预定的停止条件,例如达到最大迭代次数或者适应度达到一定的阈值。
蚁群算法是一种基于模拟蚂蚁觅食行为的优化算法,蚁群算法可以通过以下步骤进行物流派车调度:
- 蚂蚁模拟:将物流车辆视为蚂蚁,通过模拟蚂蚁的觅食行为来寻找最佳的配送路径和配送计划。
- 路径选择:蚂蚁在搜索过程中,通过释放信息素和选择路径的方式,寻找最佳的路径。释放信息素的方式是将信息素分布在路径上,选择路径的方式是根据路径上的信息素浓度进行选择。在物流派车调度中,信息素可以表示为物流车辆的行驶距离、时间、成本等综合因素。
- 更新信息素:当蚂蚁完成路径选择后,需要将路径上的信息素进行更新,以影响其他蚂蚁的选择。在物流派车调度中,可以根据物流车辆的行驶距离、时间、成本等综合因素,更新路径上的信息素浓度。
- 重复迭代:重复进行路径选择和更新信息素操作,直到达到预定的停止条件,例如达到最大迭代次数或者信息素浓度达到一定的阈值。
- 通过以上的逻辑,自动调度模型已经跑通,进一步可以加强运营管理和数据监控。特别说明一点,自动调度的基础建设是一个较为复杂且研发量较大的模块,如果企业想自建的话,首先考虑企业的订单量是否可以支持模型跑通,例如一个小三方每月一两万单的数量,就没有必要做自动调度模块,其次考虑投入产出比,投入较大进而ROI较低,可以横向比较是否要做,做到什么程度。
关于监测数据,检测自动调度系统运行情况的指标,基础的就是自动调度成功率=衡量系统是否能匹配到运力,自动调度接受率=衡量系统是否匹配的准,可以建立漏斗模型进一步分析再哪个环节需要改进,粗略的说,自动调度接受率超过10%可以说方向就是对的,超过30%已经及格,超过60%是相当不错的程度,初期的预测可以大致依此作为预测目标基数或阶段。
调度的背后有几个支撑模块,报价模型、司机评分和客户分级。报价模型衡量调度的可行性,在上述例子中涉及利润的环节均需要报价模型的支撑。司机评分考核司机的服务情况,类似滴滴专车快车的概念,可以区分定价影响分派。客户分级主要区分客户,可以精细化运营“保大客户”等运营策略。
物流公司的报价模式,常用成本定价法。从成本的基础上加上利润部分,作为对外报价,差值即为最终利润。
首先确定公司的成本结构,包括运输成本、人工成本、燃料成本等,做加法后即为运输成本价。在确定成本结构后,需要设定利润要求,以保证公司的盈利能力,使用一次函数模型即可,例如y=kx+b,x为成本,k为利润系数,b为附加利润值,得出的y即为客户报价。其中k、b均为可延展参数,均可由多个参数叠加。
建立市场变化参数,监测市场变化,包括油价波动、淡旺季等因素,及时更新成本结构和利润要求。通过实时监测和分析市场变化,可以及时调整市场变化参数,定价实时跟随市场波动。淡旺季同比大概稳定,初期可固定参数降权考虑;油价波动可直接与国际油价表保持一致。
制定价格策略,根据基准价格、成本结构和利润要求,制定相应的价格策略。价格策略可以根据货物类型、运输距离、发货时间等因素进行分类,以满足不同的客户需求。定价策略和业务类型紧密相关,例如快递快运按重泡比的计费方式、大宗商品按重量考虑亏吨涨吨的场景、首重+续重的计费方式、阶梯定价等等。
根据以上模型,实时更新价格策略,根据市场变化及时调整价格参数,计算实时准确报价。
司机评分按网络货运的官方要求,货主可直接评价司机,但实际运营中,多建立司机、货主、平台三方互评的评级机制,各方加权平均的结论为最终评分。
评分项围绕运输环节展开,例如准点情况、驾驶安全、货物安全、服务态度、专业技能等等,评分项公司可以自行细分。
评分后的结果,需要做归一化的处理,保证分值的规范性。另外,分值的有效性需要考虑,例如前三个月或前半年的分数,是否可以代表目前司机的服务情况,依此思路设计评分的更新机制。司机红线、退出机制需要提前设置。例如司机私自吞货或司机殴打客户等等红线条例,触发扣分甚至退出机制。
客户分级参数直接影响报价、调度。例如大客户或重要客户的报价,略低于市场价,并且该客户的货,需要调度保证可以匹配运力,甚至需要预留120%的运力给大客户。不同的分级的客户,制定不同的运营策略,用分级参数影响报价及自动调度的计算。
客户如何分级是个顶层的议题,财务可以说利润率高的是好客户,业务可以说货量大的是好客户,老板可以说他的朋友公司是好客户,各角色对好客户的定义不尽相同。如果用历史数据来测算结论,未必可以涵盖全部诉求场景。初期的分级可以直接设置为高权限操作手动选择,线下约定更新频次及机制,以此来简化系统及场景。
调度系统的交互设计,可以尝试脱离常规的列表表单的设计,因为其有大量图形结合的场景,可在一张地图上完成操作,即运输可视化。主要包含以下几方面内容:运力监控、地图打点标记、路径规划/历史路径查看、延伸场景。
- 运力监控;物流企业对运力的在途行驶、车辆状态等的监控,标记在地图一目了然。常用的实现方式有两种,一是车上放置硬件获取实时定位,二是对接北斗获取定位。
- 地图打点标记;调度对部分地址会进行标记,辅助操作。例如某天同市的出口订单标记红色的点,聚合显示数量,以便于预留运力。系统可保留筛选项,灵活打点标记,做好聚合放大缩小的信息展示。
- 路径规划/历史路径查看;针对某地址的路径查看,可辅助调度选择行驶路径估算到达时间等。可对路线进行进行标签建模,快速展示核心信息。
- 延伸场景较为综合例如集装箱运输常用的匹配运输、分段运输等,通过上述地点标记、运力监控功能的结合,辅助调度实现两个小箱拼车或长途分段的操作。
自动调度是很多物流公司信息化的白月光,它就在那里,好像能够一够又好像去之甚远。
我自己曾经带着二十多个研发,大干两个月搞出来了一个自动调度1.0版,调度成功率仅1%,存在无数诟病,被老板喷、被调度喷、被司机喷…仿佛自动调度是个伪命题,通过不断地迭代调度成功率缓慢提升,过程及其痛苦。
但不可忽视的一点,调度本身存在太多无法系统化公式化的场景,充斥着人情世故及私人交易。另一个角度如果都实现了自动化,传统的调度岗位就不存在了么?所以调度人员内心也不希望自动派车的结果那么准自然也不会那么配合…
总之确定立项自动调度前,一定做好打硬仗的准备。