随机服务系统模拟—R实现(一)
排队论——随机服务系统
日常生活中存在大量有形和无形的排队或拥挤现象,如旅客购票排队,市内电话占线等现象。排队论的基本思想是 1909 年丹麦数学家、科学家,工程师 A. K. 埃尔朗在解决自动电话设计问题时开始形成的,当时称为话务理论。他在热力学统计平衡理论的启发下,成功地建立了电话统计平衡模型,并由此得到一组递推状态方程,从而导出著名的埃尔朗电话损失率公式。20 世纪 30 年代中期,当费勒(W. Feller)引进了生灭过程时,排队论才被数学界承认为一门重要的学科。在第二次世界大战期间和第二次世界大战以后,排队论在运筹学这个新领域中变成了一个重要的内容。
一、随机服务系统概述
排队论 (queuing theory),或称随机服务系统理论, 是通过对服务对象到来及服务时间的统计研究,得出这些数量指标(等待时间、排队长度、忙期长短等)的统计规律,然后根据这些规律来改进服务系统的结构或重新组织被服务对象,使得服务系统既能满足服务对象的需要,又能使机构的费用最经济或某些指标最优。它是数学运筹学的分支学科,也是研究服务系统中排队现象随机规律的学科。广泛应用于计算机网络、生产、运输、库存等各项资源共享的随机服务系统。 排队论研究的内容有 3 个方面:统计推断,根据资料建立模型;系统的性态,即和排队有关的数量指标的概率规律性;系统的优化问题。其目的是正确设计和有效运行各个服务系统,使之发挥最佳效益。
1. 随机服务系统的建模表示
20 世纪 50 年代初,肯德尔(D. G. Kendall)对排队论作了系统的研究,他用嵌入马尔可夫链方法研究排队论,使排队论得到了进一步的发展。是他首先(1951 年)用 3 个字母组成的符号 X/Y/Z 表示一个排队系统。其中 X 表示顾客到达时间分布,Y 表示服务时间的分布,Z 表示服务机构中的服务台的个数。一般是以相继顾客到达系统的间隔时间分布、服务时间的分布和服务台数目为分类标志。现代常用的分类方法是英国数学家D.G.肯德尔提出而后不断完善形成的。
X/Y/Z/A/B/C
X — 顾客相继到达的间隔时间的分布;
Y — 服务时间的分布(M — 指数分布、D — 确定时间、Ek — k 阶埃尔朗分布、G — 一般分布等);
Z — 服务台个数;
A — 系统容量限制(默认为 ∞);
B — 顾客源数目(默认为 ∞);
C — 服务规则 (默认为先到先服务 FCFS)。
其中M/M/1是最基础的单服务台单队列的随机服务系统模型;其中M/M/C是最基础的多服务台单队列的随机服务系统模型。
2. 随机服务系统的要素
服务系统由服务机构和服务对象(顾客)构成。服务对象到来的时刻和对他服务的时间(即占用服务系统的时间)都是随机的。排队系统包括三个组成部分:输入过程、排队规则和服务机构。
输入过程
输入过程考察的是顾客到达服务系统的规律。它可以用一定时间内顾客到达数或前后两个顾客相继到达的间隔时间来描述,一般分为确定型和随机型两种。例如,在生产线上加工的零件按规定的间隔时间依次到达加工地点,定期运行的班车、班机等都属于确定型输入。随机型的输入是指在时间 t 内顾客到达数 n(t) 服从一定的随机分布。如服从泊松分布,则在时间 t 内到达 n 个顾客的概率为或相继到达的顾客的间隔时间 T 服从负指数分布,即 P(T ≤ t) = 1 – \(e^{-λt}\),式中 λ 为单位时间顾客到达数的期望,称为平均到达率;1/λ 为平均间隔时间。在排队论中,讨论的输入过程主要是随机型的。
排队规则
排队规则分为等待制、损失制和混合制三种。当顾客到达时,所有服务机构都被占用,则顾客排队等候,即为等待制。在等待制中,为顾客进行服务的次序可以是先到先服务,或后到先服务,或是随机服务和有优先权服务(如医院接待急救病人)。如果顾客来到后看到服务机构没有空闲立即离去,则为损失制。有些系统因留给顾客排队等待的空间有限,因此超过所能容纳人数的顾客必须离开系统,这种排队规则就是混合制。
服务机构
可以是一个或多个服务台。多个服务台可以是平行排列的,也可以是串连排列的。服务时间一般也分成确定型和随机型两种。例如,自动冲洗汽车的装置对每辆汽车冲洗(服务)时间是相同的,因而是确定型的。而随机型服务时间 v 则服从一定的随机分布。如果服从负指数分布,则其分布函数是 P(v ≤ t) = 1 – \(e^{-μt}\),式中 μ 为平均服务率,1/μ 为平均服务时间。
3. 随机服务系统的绩效指标
研究排队系统问题的主要目的是研究其运行效率,考核服务质量,以便据此提出改进措施。通常评价排队系统优劣有6项数量指标。
①系统负荷水平ρ :它是衡量服务台在承担服务和满足需要方面能力的尺度;
②系统空闲概率\(P_0\):系统处于没有顾客来到要求服务的概率;
③队长:系统中排队等待服务和正在服务的顾客总数,其平均值记为\(L_s\);
④队列长:系统中排队等待服务的顾客数,其平均值记为\(L_q\);
⑤逗留时间:一个顾客在系统中停留时间,包括等待时间和服务时间,其平均值记为\(W_s\);
⑥等待时间:一个顾客在系统中排队等待时间,其平均值记为\(W_q\)。
M/M/1排队系统是一种最简单的排队系统。系统的各项指标可由状态转移速度图推算出来。其他类型的排队系统的各种指标计算公式则复杂得多,可专门列出计算公式图表备查。现已开始应用计算机仿真来求解排队系统问题。
4. 随机服务系统的应用
排队论已广泛应用于交通系统、港口泊位设计、机器维修、库存控制和其他服务系统。
二、R模拟包Simmer简介
simmer(Ucar and Smeets 2019a)是R的DES软件包,它与其他现代模拟器一样,可以进行面向高级过程的建模。但是除此之外,它还利用了轨迹(trajectory)的新颖概念:模拟模型中相同类型实体的共同路径。换句话说,轨迹由定义等效过程生命周期的一系列标准化动作组成。这种设计模式灵活易用,并利用了magrittr软件包引入的链接/管道工作流程(Bache和Wickham 2014)。让我们用一个来自Pidd(1988)给出的简单例子来介绍如何使用simmer。
考虑一个简单的工程车间:
(1)该车间由几台相同的机器(machines)组成,同时也有几位相同的操作员(operatives)
(2)车间会收到作业(job)和额外任务(task),分别由机器(machines)独立执行(RUNNING)和操作员(operatives)独立外出完成(AWAY)
(3)空余(READY)机器每次完成一个作业后需要空闲(WAITING)操作员重置(RESET)
(4)如果机器执行作业后损坏了(worn),还需要空闲操作员进行额外的更换(RETOOL)环节
(5)所有机器均从可用状态(READY)开始,所有操作员均从等待状态开始(WAITING)
示意图中,圆圈(READY,STOPPED,OK,WAITING)表示机器或操作员的状态。而矩形(RUNNING,RETOOL,RESET,AWAY)表示需要一些(随机)时间才能完成的活动。虚线左右侧分别表示机器和操作员特有状态、活动,虚线上的RETOOL和RESET表示需要共同完成活动。
三、总结
随机服务系统的应用很广,案例众多。例如只有一位员工的邮局,只有一队列。客人进来,排队、接受服务、离开。如果客人进来的数目符合泊松过程,且服务时间是指数分布,则可用M/M/1模拟,并算出平均队列长度、不同等候时间的机率等。M/M/1也可一般化成为M/M/C模型,使可用时接受服务的人数为大于一。历史上,M/M/C模型首先被用来模拟电话系统,因为荷兰工程师Erlang发现客人打电话的速率符合泊松过程,且通话时间是指数分布,所以占用通讯线路的数目和等待接线的人数符合M/M/C模型。
参考文献
1.(Simmer 2019带你飞 )[https://www.sohu.com/a/344940911_100040805]
2.(随机服务系统模拟)[https://www.math.pku.edu.cn/teachers/lidf/docs/statcomp/html/_statcompbook/sim-des.html]