保证轻轨司机双休日的“双齿轮”轮班模型及其
摘 要: 分析 了轻轨司乘人员的工作特点,日工作时间在6~10h不等,早班从5时左右开始,晚班到夜里23时左右结束.根据轮班的目标函数和约束函数,作者提出了基于“双齿轮”的均衡轮班模型,推导出了均衡轮班的数学公式,在每人有n天休息、m天需要工作的循环轮班条件下,满足了n+m个司乘人员在n+m天内各自轮完n+m个不同任务的要求,同时保证享有的n/2个双休日均匀地分布在各自的m个工作任务之间,通过系统仿真验证了轮班模型及其算法的正确性.
关键词:均衡轮班;城轨 交通 ;双齿轮;双休日
城市公共交通车辆,如地铁、轻轨、公交汽车等,其运行时间一般从早上5时左右开始,到夜里11时左右结束,一般将公交车辆的运行时间分成几个时间段,从6~10h不等,分别由不同的司乘人员来完成,同时,各车辆运行的时间可能还不一样长.设某公司分解任务后,每天共有m个任务需要m个司乘人员来完成,这m个任务中有的时间长、有的时间短,有的是早班、有的是中班、有的是晚班.为了保证司乘人员工作一段时间后享有双休日,每天还必须安排n个任务为休息,即每天有n个司乘人员在休息.为了保证各司乘人员平均每天工作8h左右,每月累计工作少于276h的法定要求,同时追求各司乘人员每天工作任务的相对均衡,这就要求共计n+m个司乘人员在n+m个不同的任务中轮班.
1 司乘人员轮班模型的建立
1.1 任务的描述
设每天共有n个休息任务,任务集合为[1,2,…,n];每天共有m个工作任务,任务集合为[n+1,n+2,…,n+m];每天全部n+m个任务的集合为[1,2,…,n,n+1,n+2,…,n+m].
1.2 司乘人员与任务的关系
设每天有m个工作任务同时需要m个人来完成,每天有n个休息任务可有n个人休息,即每天有n+m个任务需要n+m个人来完成,每人有且仅有一个任务.两天内将n个休息的人轮入工作任务,同时,m个工作的人中两天内有n个人轮入休息,在n+m天内每个人的工作不重复,为便于推导,假设休息任务也不同.为了保证司乘任务的均衡,司乘人员轮班过程中需满足如下基本要求:
(1)有n+m个任务,每人每天承担一个任务,需要n+m天才能把全部n+m个不同的任务轮一圈.
(2)某司乘人员在n+m天内一定对n+m个任务轮一圈,也就是说n+m天后轮完一个完整的循环,即从n+m+1天开始重复第一天的工作.
(3)排列好某人在n+m天内的轮班任务序列后,全部人员以此序列顺序轮班即可保证任务均衡.设合理的轮班任务序列为
[w(1),w(2),w(3),…,w(n+m-2),w(n+m-1),w(n+m)],
则第1人轮班序列为
[w(2),w(3),…,w(n+m-2),w(n+m-1),w(n+m),w(1)],
第2人轮班序列为
[w(3),…,w(n+m-2),w(n+m-1),w(n+m),w(1),w(2)],
依此类推.
1.3 轮班模型的一般数学描述[1]
每天全部n+m个任务的依次编号为
[1,2,…,n,n+1,n+2,…,n+m],
其中前n个任务为休息,后m个任务为出乘任务.
设i为司乘人员的编号,i=1,2,…,n+m;j为第几天,j=1,2,…,n+m;k为第几个任务编号,k=1,2,…,n+m.
为满足在n+m天内每人完成n+m个不同的任务,同时,n+m个人每天完成n+m个不同的任务,则设目标函数为
2 均衡轮班数学公式
上述轮班数学模型不直观,求解也相当麻烦,在此不对上述模型的求解作深入探讨.作者根据双齿轮的启发,提出了轮班中“双齿轮传动”的模型[2].如图1所示.
为了保证轮班过程中享有双休日,要求每天从工作状态轮入休息状态的人数应有n/2,从休息状态轮入工作状态的人数也应有n/2.
基于上面的描述, 自然 想到了轮班过程中存在着一个齿数为n/2的小齿轮在一个齿数为n+m的大齿轮上每天自转一周的过程,即每天跨过n/2个任务,各齿依次编号即为各任务号:1,2,…n,n+1,…,n+m,同时也是对应编号的司乘人员第1天所对应的任务号.
设k(i,j)为第i人在第j天完成的任务编号,取值范围为1~n+m;
设z(i,j)为第i人、第j天在大齿轮上转过的总齿数,即其跨过的总任务数,取值范围为1~(n+m)n/2,则z(i,j)=i+(j-1)n/2;
设初值j=1时,k(i,1)=i,即编号为i的人第1天完成编号为i的工作.
因为小齿轮每天自转一圈,则小齿轮的特定齿在大齿轮上走过n/2个齿,即小齿轮特定齿在n+m天内共走过了(n+m)n/2个齿数.若要保证在n+m天内轮完n+m个不同的任务,则小齿轮在围绕大齿轮公转n/2圈内,各公转圈内的特定齿在大齿轮上的轨迹不能重复.根据齿轮传动的相关 理论 ,即需要n+m和n/2之间没有公约数.下面分两种情况分别推导轮班序列的数据公式.
2.1 大小齿轮的齿数之间没有公约数
第i人第j天在大齿轮上跨过的总齿数为
z(i,j)=i+(j-1)n/2(10)
在大齿轮上公转的圈数为
a=int((z(i,j)-1)/(n+m))(11)
在大齿轮上的当前位置编号为
k(i,j)=z(i,j)-a(n+m)(12)
据此可得第i人在第j天的任务编号为
k(i,j)=z(i,j)-a(n+m)(13)
2.2 大小齿轮的齿数之间有公约数
同上,第i人在第j天在大齿轮上跨过的总齿数为
z(i,j)=i+(j-1)n/2(14)
在大齿轮上公转的圈数为
a=int((z(i,j)-1)/(n+m))(15)
设n+m和n/2之间有最大公约数d,则小齿轮每公转c=(n/2)/d圈,就将重复以前的轨迹.为了防止在公转n/2圈内任务的重复,每公转c圈,自动齿数“+1”,则第i人在第j天的任务编号为
k(i,j)=z(i,j)-a(n+m)+int(a/c)(16)
2.3 有无公约数两种情况下的统一 计算 公式
针对2.1和2.2的描述,若n+m和n/2之间没有最大公约数,可设d=1,式(13)和式(14)可以统一为式(16).
3 系统仿真验证
在推导过程中均以第1人进行推导,得到的轮班序列对于所有的人均适用,第i人就从表中“轮班序列”行中的数值为i的任务号开始循环轮班即可,如表1中第3人的轮班序列为
表中划线的数字为1~n休息任务,仿真验证了均衡算法可以保证每人都有均衡的仅为连续两天的双休日.
(1)没有公约数
例如:n=6、m=10,即每天有6个休息任务、10个工作任务,则n+m=16、n/2=3,因16和3之间没有最大公约数,则令d=1,验证结果见表1.
(2)有公约数
例如:n=16、m=20,因为n+m=36和n/2=8之间有最大公约数d=4、c=2,则每公转2圈任务号多“+1”,推导过程及验证结果见表2.
若n=12、m=24,因为n+m=36和n/2=6之间有最大公约数d=6、c=1,则每公转1圈任务号多“+1”,推导过程及验证结果如表3所示.
4 结语
针对轻轨车辆司乘人员的工作特点,为了保证全部司乘人员轮班过程的任务均衡和相对公平,以及人人享有双休日,且均匀分布于工作日之间,作者提出了基于“双齿轮”的轮班模型及其算法.通过系统仿真,证明模型及其算法的正确性,此算法已成功地 应用 于天津滨海快速轨道 交通 的司乘人员运用管理信息系统之中,并取得了很好的实用价值.
参考 文献 :
[1]马振华.运筹学与最优化理论卷[m].北京:清华大学出版社,1998.
mazhen_hua. the oryofoperationalresearchandopti-mization[m].beijing:tsinghuauniversitypress,1998.(inchinese)
[2]吴宗泽.机械设计[m].北京:人民交通出版社,2003.
icaldesign[m].beijing:chinacommunicationspress,2003.(inchinese)
下一篇:高速公路安全管理研究