库房订单调度算法研究
1. 研究背景
在当前制造业的发展中,信息化已经几乎贯穿整个制造行业,并
发挥着越来越重要的作用。本文研究的某企业的备品备件库的订单调
度算法,其订单特点为种类多、需求变动频繁、实时性强,在此背景
下,同时具有很多订单的时候,计划与调度要具有敏捷性,能够解决
订单的计划与调度的实时性,高效率的安排这些订单并满足订单需求。
本文针对这一问题,对多订单的调度做出研究,并提出相应的调度算
法。
2. 库房订单的调度系统
2.1 问题描述
某企业的库房中的备品备件支撑整个企业的日常生产,如何保证
库房中的备品备件有效的支撑企业的日常生产,成为一个亟待解决的
问题。在日常的调度中,当库房中的备品备件消耗后要及时补充相应
物品,保证日后的需求;当需要备品备件的多个订单提交时,要及时
相应订单,保证及时高效的完成所有订单需求。根据以上需求,我们
将库房的订单调度模型抽象成两部分:订单入库和订单出库,通过相
关的调度算法,及时响应各种订单信息。
2.2 基于先来先服务的入库订单调度算法
在日常的库房维护中,库房管理员会根据日常的订单以及用户的
反馈采购相应的备品备件。当库房管理员采购来备品备件准备放入库
房,调度模型即生成一个入库的订单,并记录备品备件的名称、数量、
价格、采购时间等相关的属性。该入库订单提交给库房调度系统,系
统根据先来先服务的调度算法,根据订单的提交顺序依次处理,将备
品备件放在库房的相应位置,并做好记录,在系统数据库中更新相关
信息。
基于先来先服务的入库订单调度算法表示如下:
步骤 1:对采购的备品备件生成相应的入库订单,病根据订单的
实际情况对备品备件的名称、数量、价格、采购时间的等相关属性进
行赋值,然后将订单放入入库订单的等待队列中。
步骤 2:对入库订单队列中所有的订单,库房调度系统根据其提
交的时间顺序依次进行处理,处理完毕后将该订单从入库订单队列中
提出,并在系统中更新相关的数据记录。
步骤 3:若队列中仍有订单等待,转向步骤 2,否则,转向步骤
4.
步骤 4:订单全部完成,调度算法结束
2.3 基于优先级的出库订单调度算法
当用户需要相应的备品备件时,其会向库房调度系统提交一个出
库订单,包含其所需要的备品备件。库房调度系统会根据其相应的调
度算法,及时相应该订单,满足用户的需求。在日常的使用中,常常
面临这种情况,同时提交了多个出库订单,如何及时相应多个订单,
满足他们的需求,这个库房调度系统必须解决的一个问题。
在订单调度系统中,最常见的调度模型为先来先服务和最短时间
优先服务两种模型。先来先服务调度模型实现最简单,谁先来先处理
水,但是效率较低;最短时间优先的模型是将事件最短的订单有限处
理,但是该模型对大订单不利,可能使得大订单长时间得到不解决。
本文提出一种按订单的优先级进行调度的模型。在每次调度前,调度
算法计算每个订单的优先级,并且每次都安排优先级最高的订单进行
处理。
(1)订单优先级的定义
在基于优先级的订单调度模型中,订单需要交付的时间记为 T1,
订单提交时间为 T2,订单中包含备件数量记为 n,每个备件的准备时
间为 Ti(i=1,2,……,n),订单的价值记为 V,当前时间记为 T。
定义 1:订单的紧迫系数 a,订单越临近交付时间,订单的紧迫
系数越高,计算公式为:a= 1−2
=1
定理 1:当紧迫系数 a 大于 0 时,值越小,就越紧迫,优先级就
越高。
证明:由紧迫系数的公式可得:
当 a<=0 时,订单的提交日期大于等于交付日期,订单过期。
当 a<1 时,订单的剩余时间小于订单的准备时间,时间紧迫,需
要加班加点完成。
当 a=1 时,订单的剩余时间刚好等于订单的准备时间,可以按计
划完成。
当 a>1 时,订单的剩余时间大于订单的准备时间,时间充裕。
定理 1 证明完毕。
定义 2 订单的优先级我们记为 Pn,定义订单的优先级计算公式
Pn=Lg( V+
=1
T1−T )
a
为:
由订单优先级的计算公式我们可以得知:
○1 当订单越紧迫时,订单的优先级越大;
○2 当订单的交付时间越临近,订单的优先级越大;
○3 当订单的备件准备时间越大,订单的优先级越大;
○4 当订单的备件价值越大时,订单的优先级越大。
(2)基于订单优先级的调度算法
在订单等待队列中的订单 Di 的优先级为 Pi ,其属性分别如定义
1 和定义 2,基于优先级的订单调度算法表示如下:
步骤 1:对订单等待队列中的所有订单 Di ,根据订单的实际情
况对订单需要交付的时间、订单提交时间为 T2、订单中包含备件数
量、订单中每个备件的准备时间、订单的价值记以及当前时间等属性
进行赋值。
步骤 2:对队列中所有的订单,通过定义 1 计算其紧迫系数 a,
若 a<0,则表示订单已经过期,将其从订单队列中剔除。
步骤 3:对队列中的所有订单,通过定义 2 计算其优先级 Pn,选
取优先级最大的订单进行处理(若订单的优先级相同,选择等待时间
长进行处理),并从队列中剔除该订单。
步骤 4:若队列中仍有订单等待,转向步骤 2,否则,转向步骤
5.
步骤 5:订单全部完成,调度算法结束。
3. 结语
库房订单调度系统,根据库房的实际操作过程将整个过程分为入
库订单调度和出库订单调度两部分,并根据各自的特点选择的相应的
调度算法。订单入库调度算法,选择了先来先服务的调度算法,保证
所有的入库订单依次完成入库。订单出库的调度算法,对订单的优先
级进行了定义,使用基于优先级的调度算法,保证优先级高的订单能
够及时的相应,并且能够很大程度上避免了先来先服务和短订单优先
的算法的带来的弊端,保证了订单调度算法具有较好的性能,对实际
生产中的订单调度算法具有较好的参考价值。