数学建模论文设计(蒙特卡罗地多服务台和单服务台排队系统)

合集下载

数学建模:排队论2

数学建模:排队论2

无顾客
无顾客
n
无顾客 1 个顾客
n
1 个顾客 无顾客
n
1 个顾客 1 个顾客
n
9
上述四种情况发生概率分别为:
情况
时刻 t 顾客数
区间[ t,t + △t ) 到达顾客 离开顾客
概率
A
n
无顾客 无顾客 pn (t )(1 t )(1 t )
B
n+1
无顾客 1 个顾客 pn1(t )(1 t )t
时刻 t 顾客数
0 1 0
区间[ t,t + △t )
时刻 t + △t
到达顾客 离开顾客 顾客数
无顾客
无顾客
0
无顾客 1 个顾客
0
1 个顾客 1 个顾客
0
16
上述三种情况发生概率分别为:
情况
时刻 t 顾客数
区间[ t,t + △t ) 到达顾客 离开顾客
A
0
无顾客
无顾客
B
1
无顾客 1 个顾客
D
0
12
dpn (t ) dt
pn1(t )
pn1(t )
(
)
pn (t )
解上述方程的解是很困难的。这里只研究系统达到平
稳状态的情况,即系统运行了无限长时间之后,状态
概率分布不再随时间变化,显然此时 dpn (t ) 0
dt
13
由此可得,当 n≥1 时:
pn1 pn1 ( ) pn 0,n 1
第四节 单服务台负指数分 布排队系统
讨论单服务台的排队系统,并设定: 顾客到达过程服从泊松分布。 顾客服务时间服从负指数分布。
2

排队问题-数学建模

排队问题-数学建模

第九届“新秀杯”校园数学建模竞赛摘要医院有一位医生值班,经长期观察,每小时平均有4个病人,医生每小时可诊断5人,病人的到来服从Poisson流,诊断时间服从负指数分布。

根据题目所给信息,可以很明显看出本题是单服务台的排队模型,因此需要用到排队理论来求解这些问题。

本题需要用到排队理论中最简单的M/M/1/∞/∞模型,通过对病人到来及诊断时间的统计研究,得出这些数量指标的统计规律。

针对问题一,通过分析任意时刻t内到达的病人数为n的概率,使用数学期望的方法,,可以得出平均病人数及等待的平均病人数。

由题目给出条件病人的到来服从参数为λ的泊松分布,诊断时间服从参数为μ负指数分布,可以得出病人的平均看病所需时间及病人平均排队等待时间。

以及分析该医院的服务强度,可以粗略的分析该科室的工作状况。

针对问题二,在问题一的条件基础下,要求99%的病人有座位。

可以先假设出座位个数,由于每个时刻病人到来的个数是随机且独立,不可能同时到达两批病人,考虑到来病人的个数与座位之间的关系,考虑病人数不同时,有座位的概率不同。

所以用独立事件概率的加法可以得出概率需要大于等于0.99,从而反推出所需座位数。

针对问题三,分析问题可得,需要求出单位平均损失可以通过题目每小时病人到来数可以得出平均每天医院到来数。

根据问题一结论,可以得出平均看病所花时间,从而求出每天的平均损失。

针对问题四,只需要利用问题一,问题二,问题三的结论并改变医生每小时诊断时间,嵌套进来就能求解。

关键字:排队理论M/M/1/∞/∞模型数学期望Poisson流负指数分布一、问题提出某单位医院的一个科室有一位医生值班,经长期观察,每小时平均有4个病人,医生每小时可诊断5人,病人的到来服从Poisson流,诊断时间服从负指数分布。

(1)试分析该科室的工作状况:(2)如要求99%以上的病人有座,该科室至少设多少座位?(3)如果该单位每天24小时上班,病人因看病1小时而耽误工作单位要损失30元,这样单位平均损失多少元?(4)如果该科室提高看病速度,每小时平均可诊断6人,单位每天可减少损失多少?可减少多少座位?二、模型的准备根据题目所给信息,可以很明显看出本题是单服务台的排队模型,日常生活中存在大量有形和无形的排队或拥挤现象,如旅客购票排队,市内电话占线等现象。

单服务员排队模型及其蒙特卡洛模拟

单服务员排队模型及其蒙特卡洛模拟

单服务员排队模型及其蒙特卡洛模拟
张建航;李宗成;宋晓峰
【期刊名称】《现代电子技术》
【年(卷),期】2006(29)24
【摘要】单服务员的排队模型(M/M/1模型)是排队论中重要的排队系统.介绍排队论的基本概念,讨论和研究单服务员排队模型的过程和基本原理,通过数学计算得出单服务员排队模型中重要的运行指标.针对典型实例,借助于计算机软件包Matlab 6.5进行了蒙特卡洛模拟.
【总页数】3页(P44-45,48)
【作者】张建航;李宗成;宋晓峰
【作者单位】西安通信学院,陕西,西安,710106;西安通信学院,陕西,西安,710106;西安通信学院,陕西,西安,710106
【正文语种】中文
【中图分类】O226;TP311.12
【相关文献】
1.单服务员排队模型在青藏电务管理系统中的应用 [J], 周旭;张振江
2.单服务员排队模型某些指标的优化研究 [J], 尹向飞;陈焕然
3.多服务台等待制排队模型M/G/c/∞的蒙特卡洛模拟 [J], 王培勋;王志芳
4.服务员强制休假的M/M/1排队模型主算子的点谱 [J], 阿里米热·阿布拉
5.具有备用服务员和不耐烦顾客的排队模型及其仿真 [J], 潘恒毅
因版权原因,仅展示原文概要,查看原文内容请购买。

用蒙特卡洛法实现对排队等待问题的计算机模拟

用蒙特卡洛法实现对排队等待问题的计算机模拟

用蒙特卡洛法实现对排队等待问题的计算机模拟蒙特卡洛(MonteCarlo)法,或称统计试验法、计算机随机模拟方法,起源于美国在第一次世界大战进研制原子弹的“曼哈顿计划”。

该计划的主持人之一、数学家冯·诺伊曼用驰名世界的赌城—摩纳哥的MonteCarlo—来命名这种方法,为它蒙上了一层神秘色彩。

一、蒙特卡洛法的基本思想及其应用MonteCarlo方法是一种基于“随机数”,采用统计抽样方法,近似求解数学问题或物理问题的过程。

把统计模拟法用于数值计算已有200多年的历史,最早是法国数学家蒲丰(1707-1788)。

他进行了著名的“蒲丰投针实验”,早以此来求圆周率π的近似值。

本世纪40年代,随着电子计算机的出现,特别是近年来高速电子计算机的出现,使得用数学方法在计算机上大量、快速地模拟这样的试验成为可能。

统计试验法通常用来研究概率过程,研究问题时常涉及下列一些与随机因素有关的概率,如各类概率等,一般来说,建立描述过程的复杂的概率模型是不成问题的,但用数学方法研究与分析这些模型是却很困难,问题的维数(即变量的个数)可能高达数百甚至数千。

对这类问题,难度随维数的增加呈指数增长,这就是所谓的“维数的灾难”(Co urse Dimensionality)。

传统的数值方法难以对付(即使使用速度最快的计算机),甚至达到了无法进行的地步。

因此,唯一可取的研究方法是统计实验法。

统计模拟(蒙特卡洛法),在系统工程中的应用日益广泛,据国外有关文献报道其应用领域大致有:1.航空运输排队,机场设计等;2.港口设计,泊位研究等;3.消防车或救护车的布局和调派;4.城市公共汽车作业调度;5.出租汽车调度计划;- 1 -6.铁路货运调度计划;7.加油站、停车场等设计;8.售票所布局;9.存储模拟,仓库布局等;10.设备维修计划;11.生产过程的安排;12.工厂的单件、小批生产的作业计划;13.销售预测;二、排队或等待问题的分析在日常生活中,我们每天都会遇到各种各样的排队。

优先级队列的应用——多服务台排队系统的模拟

优先级队列的应用——多服务台排队系统的模拟

多服务台排队系统的模拟一、与单服务台排队系统相比1.在多服务台系统中,先到达的顾客先获得服务,这个规则仍然存在;但后获得服务的顾客可能先离开,这是因为每个顾客要求的服务时间是不一样的。

如果各科i要求的是一个复杂业务,服务台j提供服务;而顾客i+1要求的是一个简单业务,服务台k提供服务,那么顾客i+1虽然比顾客i晚到达,却比顾客i先离开。

2.在单服务台系统中,到达次序和离开次序是一致的,所以只需要一个先进先出的队列;在多服务台系统中,离开事件不再与到达事件保持一致,先处理的到达事件对应的离开事件可能比后处理的到达事件对应的离开事件发生得晚,因此需要一个优先级队列,将事件发生得时间作为优先级,发生时间早的事件先处理,发生时间晚的事件后处理。

二、多服务台排队系统模拟过程1.模拟开始时,产生所有的到达事件,存入优先级队列,此时队列只有到达事件。

2.模拟器开始处理事件。

首先从队列中取出一个事件,这是第一个顾客的到达事件,根据各科的服务要求生成对应的服务时间,当前时间+服务时间=这个顾客的离开时间,生成一个这个时候离开的事件插入队列,这样在队列中就有了两类事件:到达事件和离开事件。

3.这样模拟器从队列中取出的事件也可能是离开事件,这时只要将这个离开事件从队列中删去,为它服务的服务台就可以为别的顾客服务。

综上:(1)产生所有的顾客到达事件,存入事件队列;(2)模拟器从事件队列中取事件,按照不同的事件类型处理事件。

①若是到达事件,先检查有没有空闲的服务台,如果有,则为此顾客生成服务时间,并产生一个离开事件,插入事件队列。

②如果处理到达事件时,没有空闲的服务台,则该顾客进入到等待队列排队。

等待队列是一个普通的先进先出的队列。

(3)如果处理的是离开事件,则释放该服务台。

如果此时等待队列有人排队,则服务台为他服务,并统计等待时间,如果等待队列没有人排队则置服务台为空闲。

三、伪代码产生CustomNum个顾客的到达事件,按时间的大小存入事件队列;置等待队列为空;置所有柜台为空闲;设置等待时间为0;While(事件队列非空){队头元素出列;设置当前时间为该事件发生的时间;switch(事件类型){case 到达:if(柜台有空){柜台数-1;生成所需的服务时间;修改事件类型为“离开”;设置事件发生时间为当前时间+服务时间;重新存入事件队列;}else 将该事件存入等待队列;case 离开:if(等待队列非空){队头元素出队;统计该顾客的等待时间;生成所需的服务时间;修改事件类型为“离开”;设置事件发生时间为当前时间+服务时间;存入事件队列;}else 空闲柜台+1;}}计算平均等待时间;返回;四、代码分析代码清单6-9 模拟类的定义class simulator{//以下定义了保存模拟参数的数据成员int noOfServer; //服务台的个数int arrivalLow; //到达间隔时间的下界int arrivalHigh; //到达间隔时间的上界int serviceTimeLow; //服务间隔时间的下界int serviceTimeHigh; //服务间隔时间上界int customNum; //模拟的顾客数struct eventT//定义了一个私有内嵌类eventT,用于保存一个事件信息,是事件队列和等待队列中的元素类型,eventT有两个数据成员,time表示事件发生的时间,type表示事件类型{int time; //事件的大小取决于事件发生的时间,发生时间早的事件优先级高,发生时间晚的事件优先级低int type; //事件类型,0为到达,1为离开bool operator<(const eventT &e)const{return time<e.time;}};public: //两个公有函数simulator();//模拟类的构造函数int avgWaitTime();//模拟类的平均等待时间函数};代码清单6-10 构造函数的实现simulator::simulator()//模拟参数的输入{ cout<<"请输入柜台数:"; cin>>noOfServer;cout<<"请输入到达时间间隔的上下界(最小间隔时间最大间隔时间):";cin>>arrivalLow>>arrivalHigh;cout<<"请输入服务时间的上下界(服务时间上界服务时间下界):";cin>>serviceTimeLow >>serviceTimeHigh;cout<<"请输入模拟的顾客数:";cin>>customNum;srand(time(NULL)); //完成随机数发生器的初始化}代码清单6-11 avgWaitTime函数的实现int simulator::avgWaitTime()//根据模拟参数进行模拟,并统计出平均等待时间{ int serverBusy=0; //正在工作的服务台数int currentTime; //表示现在模拟到了什么时间int totalWaitTime=0; //记录整个模拟过程中所有顾客的等待时间总和linkQueue<eventT>waitQueue; //定义了一个类型为eventT的链接队列waitQueue,这个队列是等待队列,用来保存正在排队的顾客信息priorityQueue<eventT>eventQueue; //定义了一个类型为eventT的优先级队列eventQueue,保存的是整个模拟过程中发生的所有事件eventT currentEvent;//根据模拟参数中指定的顾客数生成所有顾客的到达事件,并存入事件队列int i;currentEvent.time=0;currentEvent.type=0;for(i=0;i<customNum;++i){ currentEvent.time+=arrivalLow+(arrivalHigh-arrivalLow+1)*rand()/(RAND_MAX+1); //每个顾客的到达时间为前一顾客的到达时间加上随机生成的到达时间间隔eventQueue.enQueue(currentEvent);}while(!eventQueue.isEmpty())//只要队列非空,就要处理事件,直到队列为空{currentEvent=eventQueue.deQueue();//先从事件队列中取出一个事件currentTime=currentEvent.time; //把模拟时钟直接拨到事件发生的时间switch(currentEvent.type) //然后根据事件发生类型进行不同的处理{case 0: //如果是到达事件if(serverBusy!=noOfServer) //首先检查有没有空闲的服务台{++serverBusy; //如果有空闲的,则分配服务台currentEvent.time+=serviceTimeLow+(serviceTimeHigh-serviceTimeLow+1)*rand()/(RAND_MAX+1); //离开时间=服务时间+当前时间currentEvent.type=1; //服务完后,生成一个离开事件eventQueue.enQueue(currentEvent); //入队,事件队列}else waitQueue.enQueue(currentEvent);//否如果没有空闲的服务台,这位顾客要到等待队列排队,入队,等待队列break;case 1: //若是离开事件if(!waitQueue.isEmpty())//检查有没有顾客在排队,即等待队列是否为空{currentEvent=waitQueue.deQueue();//若有顾客在排队,则为等待队列队头的顾客服务,即让等待队列队头元素出队totalWaitTime+=currentTime-currentEvent.time; //把这位顾客的等待时间加入到总的等待时间,currentTime为当前时间,currentEvent.time为顾客进入到等待队列的时间,即事件发生的事件currentEvent.time=currentTime+serviceTimeLow+(serviceTimeHigh-serviceTimeLow+1)*rand()/(RAND_MAX+1);//currentEvent.time在这指离开时间=当前时间+随机数生成的服务时间currentEvent.type=1; //服务完后,生成一个离开事件eventQueue.enQueue(currentEvent); //入队,事件队列}else--serverBusy; //若没有人排队,则服务台可以休息,所以正在工作的服务台-1}}return totalWaitTime/customNum; //计算并返回平均等待时间}。

数学建模之排队问题

数学建模之排队问题

排队问题教程一:复习期望公式()i i p a X P ==,∑=ii i p a EX ,()()∑=ii i p a g X Eg二:排队问题单个服务台排队系统问题(比如理发店只有一个理发师情况):假定顾客到达时间间隔()λ/1~e X 分钟,每个顾客接受服务的时间长度为()μ/1~e Y 分钟,假定1)、在时间段[]t t t ∆+,内有一个顾客到达的概率为()2t o t ∆+∆λ 2)、在时间段[]t t t ∆+,内有两个或以上顾客到达的概率为()2t o ∆ 3)、在时间段[]t t t ∆+,内有一个顾客接受完服务离开概率为()2t o t ∆+∆μ 4)、在时间段[]t t t ∆+,内有两个或以上顾客离开的概率为()2t o ∆用()t p n 表示在t 时刻,没有离开的顾客数(由于指数分布无记忆性,正在接受服务的顾客还需要接受的服务时间和任何一个顾客的接受服务时间同分布)。

记t 时刻在服务系统总人数n 的概率为()t p n ,则在t t ∆+时刻在服务系统总人数n 的概率()t t p n ∆+由以下几个不相容部分构成a):t 时刻有n 个顾客,时间段[]t t t ∆+,内没有顾客到达,也没有顾客离开,概率 ()t p t o t t o t n ))(1))((1(∆-∆-∆-∆-μλb):t 时刻有n 个顾客,时间段[]t t t ∆+,内有1顾客到达,有1顾客离开,概率 ()t p t t n ⋅∆⋅∆μλc):t 时刻有n-1个顾客,时间段[]t t t ∆+,内有1顾客到达,没有顾客离开 概率()t p t o t t n 1))(1(-∆-∆-∆μλd):t 时刻有n+1个顾客,时间段[]t t t ∆+,内没有顾客到达,有1个顾客离开 概率()t p t o t t n 1))(1(+∆-∆-∆λμ e):其他情况,概率()t o ∆由上面分析,()()()()()()()t o t p t t t p t t p t t t t p ∆+∆-⋅∆+⋅⋅∆-+⋅∆⋅∆=∆+1000111λμλμλ()()[]()()()t o t p t o t t t p t o t t t t t o t t o t t p t t p n n n n ∆+∆-∆-∆+∆-∆-∆+∆⋅∆+∆-∆-∆-∆-=∆++-11))(1())(1())(1))((1(λμμλμλμλ,1≥n简写()()()()()()00111p t t t p t t t p t o t λμλ+∆=-∆⋅+∆⋅-∆+∆()()[]()()()t o t p t t p t t t t p t t p n n n n ∆+⋅∆+⋅∆+∆-∆-=∆++-11)1)(1(μλμλ即()()()()()t o t p t t p t t p t t p ∆+⋅∆+⋅∆⋅-=-∆+1000μλ()()()()()()()t o t p t t p t t t p t p t t p n n n n n ∆+⋅∆+⋅∆+∆+-=-∆++-11μλμλ因此得到()()()()t p t p t p 100⋅+⋅-='μλ()()()()()()t p t p t p t p n n n n 11+-⋅+⋅++-='μλμλ假定()k t k p t p −−→−∞→,()()0−−→−∞'→t k t p 得到 010=⋅+⋅-p p μλ()011=⋅+⋅++-+-n n n p p p μλμλ把0p 当作已知,求解通项n p >将p(1)用)0(/p μλ代入得()()()n n n n p p p p μλμλλμμλμ001=→-+-=再,由1=∑kkp,我们得到()10=∑∞=n np μλ,>因此μλμ-=0p , nnn p p ⎪⎪⎭⎫ ⎝⎛-=⎪⎪⎭⎫ ⎝⎛=μλμλμμλ0 问题1:系统平均有几个人没有离开?解答:系统有n 个人没有离开的概率n p ,因此,系统中滞留人数平均∑∞=0n n np>问题2:系统中排队等待服务平均有几个人?()∑∞=-11n npn>问题3:系统中平均每个人排队等待时间?解答:当一个顾客进入系统中,发现前面已经有n 个顾客在系统中,则他排队等待的平均时间就是这n 个顾客的平均服务时间总和(由于指数分布无记忆特性,不管正在接受服务的顾客已经服务了多少时间,其还要接受的服务时间依然服从相同的指数的分布)因此系统中平均每个人排队等待时间为nn pn∑∞=0μ>问题4:系统中每个顾客逗留时间平均?解答:每个顾客平均排队用时+每个顾客平均服务用时为所求 >。

(强烈推荐)单服务台排队系统建模与仿真研究报告

(强烈推荐)单服务台排队系统建模与仿真研究报告

(强烈推荐)单服务台排队系统建模与仿真研究报告(此⽂档为word格式,下载后您可任意编辑修改!)物流系统建模与仿真单服务台排队系统仿真研究报告——选重庆⼤学A区门⼝中国银⾏分⾏某⼀服务窗⼝为单服务台排队系统研究对象⼀、系统基本背景社会的进步越来越快,⼈们的⽣活节奏也随之越来越快。

在科技的发展,新技术的普及下, 我国的银⾏业以计算机和信息技术、互联⽹技术为前提, 通过⼤量资⾦和科技的投⼊, 不断地开发出新产品和新业务。

另外有⽹上银⾏、⽀付宝等新业务的出现, ⼤⼤提⾼了⼯作效率。

然⽽现代的⾦融服务并不是都可以靠刷卡来解决, 许多技术还不完善, 这些新技术也并不适合所有顾客群,去银⾏办理业务的顾客仍然经常性地出现排队现象。

顾客等待时间过长, 造成顾客满意度下降, ⽭盾较为突出, 因此本报告试利⽤单服务台排队论的⽅法, 定性定量地对具有排队等候现象的银⾏服务系统进⾏统计调查与分析研究,希望能帮助改进银⾏⼯作效率, 优化系统的运营。

本报告研究对象为中国银⾏重庆⼤学处分⾏某⼀服务窗⼝,数据取⾃银⾏内唯⼀⾮现⾦业务柜台。

研究对象的选取虽然不是最典型的,但是综合考虑了研究地域范围和⼩组成员作业时间有限,另有其他⽅案由于各种原因⽆法进⾏,故选择离学校较近的有代表性的中国银⾏中的服务窗⼝作为最终⽅案。

中国银⾏简介:中国银⾏是中国历史最为悠久的银⾏之⼀,在⼤家对银⾏的概念中有着⼀定地位。

中国银⾏主营传统商业银⾏业务,包括公司⾦融业务、个⼈⾦融业务和⾦融市场业务。

公司业务以信贷产品为基础,致⼒于为客户提供个性化、创新的⾦融服务和融资、财务解决⽅案。

个⼈⾦融业务主要针对个⼈客户的⾦融需求,提供包括储蓄存款、消费信贷和银⾏卡在内的服务。

作为中国⾦融⾏业的百年品牌,中国银⾏在稳健经营的同时,积极进取,不断创新,创造了国内银⾏业的许多第⼀,在国际结算、外汇资⾦和贸易融资等领域得到业界和客户的⼴泛认可和赞誉。

⼆、系统描述该银⾏⼯作时间为上午8:30⾄下午16:30(周⼀⾄周⽇),另周末不办理对公业务,属于每天8⼩时⼯作制。

单服务员排队模型及其蒙特卡洛模拟

单服务员排队模型及其蒙特卡洛模拟

Carlo ) 方法是一种应用随机数来
。对于所求问题 , 模拟过程见图 1
其中 n = 1 , 2 , …; 当 n = 0 时可以得到 :
d P0 ( t) =- λ P 0 ( t) + μ P 1 ( t) dt
对于稳态情形 , P n ( t) 与 t 无关 , 其导数为 0 。因此可 得差分方程如下 : λ ) P n = 0 n ≥1 P n- 1 + μ P n+1 - (λ+ μ
4 结 语 通过对机械振动系统的 Matlab/ Simulink 建模研究 , 可以看出采用 S
Function 模块建模其模型非常简单 , 可
读性好 , 而且 S 函数的编写只要对系统自带的 S 函数模板 进行适当的修改就行了 ,这样的建模方法非常灵活 。Sim2
ulink 的仿真功能非常强大 , 利用他来解决工程实际问题 ,
- λ P0 + μ P1 = 0
解此方程得到 : P n = (

λ n λ ) ・P0 , 今设ρ = < 1, μ μ λ = 1 - ρ , 从而得到 : μ
( 1)
由于
n=0
∑P
n
= 1 , 故 P0 = 1 P0 = 1 - ρ
n ) ・ ρ Pn = ( 1 - ρ n = 1 , 2 , …
为了将仿真结果绘在一张图上便于分析 , 建立一个名 为 zhdwy 的 M 文件如下 :
subplot ( 2 ,1 ,1) plot ( tout , yout ( : , 1 ) ,′ b′ , to ut , yo ut ( : , 2 ) ,′ r′ , tout , yout ( : , ) 3) ,′ k′ ) ylabel (′ 振动物体的位移′ legend (′ x1′ ,′ x2′ ,′ x3′ ,4) ; grid mino r subplot ( 2 ,1 ,2) plot ( tout , yout ( : , 4 ) ,′ b′ , to ut , yo ut ( : , 5 ) ,′ r′ , tout , yout ( : , ) 6) ,′ k′ ) ylabel (′ 振动物体的速度′ ) xlabel (′ t 的取值范围′ legend (′ v1′ ,′ v2′ ,′ v3′ ,2) ; grid mino r

多服务台排队系统的仿真

多服务台排队系统的仿真

实验3---多服务台排队系统的仿真姓名:学号:一、目标任务已知一个系统有N个服务员,能力相等,服务时间服从指数分布。

顾客的到达时间间隔服从指数分布。

用Monte-Carlo仿真,分别求按下列方案的总体平均排队时间:① M|M|N。

② N个单通道系统并列,按1/N概率分裂到达流。

③ N个单通道并列,挑选最短的队。

要求:①给出程序设计的过程。

②如果采用固定的N,则要求N>2。

③至少取ρ=0.3和ρ=0.7两种强度运行程序。

④对结果进行分析。

二、编程语言Matlab三、关键代码方案一:N = 3; % 服务员人数r = 6; % 顾客到达流强度u = 20; % 服务员服务强度T = 1000000; % 仿真运行时间avg_wait_time = []; % 平均等待时间for i=1:100% 模拟排队函数server_time = [0.0, 0.0, 0.0]; % 用来保存服务员下一空闲时间time = 0; % 绝对时钟,初始为0client_num = 0; % 顾客总数,初始为0CRTime = 0; % 顾客到达时间间隔ServeTime = 0; % 顾客服务时间server_id = 0; % 当前进入排队窗口的服务员编号total_wait_time = 0;% 系统中到达顾客的总等待时间while 1CRTime = exprnd(1/r); % 按指数分布产生顾客到达时间间隔time = time + CRTime; % 更新系统的绝对时钟if time > Tbreak;endclient_num = client_num + 1; % 顾客数加1ServeTime = exprnd(1/u); % 按指数分布产生顾客服务间隔server_id = mod(client_num, N); % 按1..N的顺序循环排入服务员窗口if server_id ==0server_id = N;endif server_time(1, server_id) <= time % 如果当前server_id号服务员空闲,则直接接收服务server_time(1, server_id) = time + ServeTime; % 服务员下一空闲时间为当前绝对时钟加上当前服务时间else % 否则所有服务员都在忙碌,顾客要排队等候total_wait_time = total_wait_time + server_time(1, server_id) - time; % 顾客排队等候时间为当前服务员下一空闲时间减去绝对时钟server_time(1, server_id) = server_time(1, server_id) + ServeTime;endendavg_wait_time = [avg_wait_time, total_wait_time/client_num];end% 计算平均等待时间mean_avg_wait_time = mean(avg_wait_time);fprintf('ρ=%2.1f平均等待时间%6.5f\n', r/u, mean_avg_wait_time); % 打印平均等待时间% 绘制每次仿真的平均等待时间和总体平均等待时间线状图x = 1:100;%plot(x, avg_wait_time, x, mean_avg_wait_time);scatter(x, avg_wait_time, '.');方案二:N = 3; % 服务员人数r = 6; % 顾客到达流强度u = 20; % 服务员服务强度T = 1000; % 仿真运行时间avg_wait_time = []; % 平均等待时间for i=1:100% 模拟排队函数server_time = [0.0, 0.0, 0.0]; % 用来保存服务员下一空闲时间time = 0; % 绝对时钟,初始为0client_num = 0; % 顾客总数,初始为0CRTime = 0; % 顾客到达时间间隔ServeTime = 0; % 顾客服务时间server_id = 0; % 当前进入排队窗口的服务员编号total_wait_time = 0;% 系统中到达顾客的总等待时间while 1CRTime = exprnd(1/r); % 按指数分布产生顾客到达时间间隔time = time + CRTime; % 更新系统的绝对时钟if time > Tbreak;endclient_num = client_num + 1; % 顾客数加1ServeTime = exprnd(1/u); % 按指数分布产生顾客服务时间间隔server_id = randi([1 N]); % 按1/N的概率排入服务员窗口if server_time(1, server_id) <= time % 如果当前server_id号服务员空闲,则直接接收服务server_time(1, server_id) = time + ServeTime; % 服务员下一空闲时间为当前绝对时钟加上当前服务时间else % 否则所有服务员都在忙碌,顾客要排队等候total_wait_time = total_wait_time + server_time(1, server_id) - time; % 顾客排队等候时间为当前服务员下一空闲时间减去绝对时钟server_time(1, server_id) = server_time(1, server_id) + ServeTime;endendavg_wait_time = [avg_wait_time, total_wait_time/client_num];end% 计算平均等待时间mean_avg_wait_time = mean(avg_wait_time);fprintf('ρ=%2.1f平均等待时间%6.5f\n', r/u, mean_avg_wait_time); % 打印平均等待时间% 绘制每次仿真的平均等待时间散点图x = 1:100;scatter(x, avg_wait_time, '.');方案三:N = 3; % 服务员人数r = 6; % 顾客到达流强度u = 20; % 服务员服务强度T = 1000; % 仿真运行时间avg_wait_time = []; % 平均等待时间for i=1:100% 模拟排队函数server_time = [0.0, 0.0, 0.0]; % 用来保存服务员下一空闲时间time = 0; % 绝对时钟,初始为0client_num = 0; % 顾客总数,初始为0CRTime = 0; % 顾客到达时间间隔ServeTime = 0; % 顾客服务时间server_id = 0; % 当前进入排队窗口的服务员编号total_wait_time = 0;% 系统中到达顾客的总等待时间while 1CRTime = exprnd(1/r); % 按指数分布产生顾客到达时间间隔time = time + CRTime; % 更新系统的绝对时钟if time > Tbreak;endclient_num = client_num + 1; % 顾客数加1ServeTime = exprnd(1/u); % 按指数分布产生顾客服务时间间隔temp = min(server_time); % 寻找排队时间最短的服务员窗口[x, y] = find(temp == min(min(server_time)));server_id = y; % 按队伍最短排入服务员窗口if server_time(1, server_id) <= time % 如果当前server_id号服务员空闲,则直接接收服务server_time(1, server_id) = time + ServeTime; % 服务员下一空闲时间为当前绝对时钟加上当前服务时间else % 否则所有服务员都在忙碌,顾客要排队等候total_wait_time = total_wait_time + server_time(1, server_id) - time; % 顾客排队等候时间为当前服务员下一空闲时间减去绝对时钟server_time(1, server_id) = server_time(1, server_id) + ServeTime;endendavg_wait_time = [avg_wait_time, total_wait_time/client_num];end% 计算平均等待时间mean_avg_wait_time = mean(avg_wait_time);fprintf('ρ=%2.1f平均等待时间%6.5f\n', r/u, mean_avg_wait_time); % 打印平均等待时间% 绘制每次仿真的平均等待时间散点图x = 1:100;scatter(x, avg_wait_time, '.');四、实验结果与分析方案一:图1 方案一仿真的平均等待时间散点图图2 方案一平均等待时间M|M|N1. 输入参数:服务员人数N,顾客到达流强度r,服务员服务强度u,仿真运行时间T;2. 各变量初始值置0:绝对时钟time,服务员下一空闲时刻数组server_time[](其中按顺序保存每一个服务员的下一空闲时刻),顾客总数client_num,顾客到达时间间隔CRTime,顾客服务时间ServeTime,当前进入排队窗口的服务员编号server_id,系统中顾客总等待时间total_wait_time;3. 按照指数分布产生下一顾客到达的时间间隔CRTime,time+=CRTime。

单服务台排队系统仿真

单服务台排队系统仿真

单服务台排队系统仿真单服务台排队系统是指在一个服务台只有一个服务员的情况下,客户需要按顺序等待服务的系统。

本文将介绍一个针对单服务台排队系统的仿真模型。

在设计仿真模型之前,我们需要确定一些重要的参数。

首先是服务时间,即每个客户接受服务所需要的时间。

服务时间可以通过实际观察数据或者估算得出。

其次是到达间隔时间,即每个客户到达的时间间隔。

到达间隔时间可以通过实际观察数据或者使用随机数生成器进行模拟。

首先,我们需要创建一个事件队列来模拟客户的到达和离开。

事件队列是一个按照发生时间顺序排序的队列,每个事件都包含两个属性:时间和类型。

接下来,我们创建一个时钟来记录仿真进行的时间。

初始时,时钟指向第一个到达事件的时间。

然后,我们从事件队列中取出第一个事件,并更新时钟指向该事件的时间。

如果当前事件类型是到达事件,我们需要进行如下操作:首先,模拟下一个客户到达的时间,并将该事件添加到事件队列中。

然后,判断当前是否有客户正在接受服务。

如果没有,我们将当前事件类型设置为离开事件,并模拟该客户的服务时间和离开时间,并将该离开事件添加到事件队列中。

如果有客户正在接受服务,我们将当前事件类型设置为到达事件。

如果当前事件类型是离开事件,我们需要进行如下操作:首先,更新服务台的空闲状态。

然后,判断是否还有等待服务的客户。

如果有,我们将当前事件类型设置为离开事件,并模拟下一个客户的服务时间和离开时间,并将该离开事件添加到事件队列中。

如果没有等待服务的客户,我们将当前事件类型设置为到达事件。

重复上述步骤,直到事件队列中没有事件为止。

最后,我们可以根据仿真的结果,比如客户的等待时间、服务时间和系统繁忙率等指标,来评估和优化该排队系统的性能。

通过以上的模型,我们可以对单服务台排队系统进行仿真,并评估其性能。

我们可以通过改变服务时间、到达间隔时间等参数,来探究不同情况下系统的表现和优化方案。

同时,我们还可以根据仿真结果,对系统进行调整和改进,以提高客户的满意度和服务效率。

带优先级的多服务台排队系统MonteCarlo模拟_以医院病床安排为例

带优先级的多服务台排队系统MonteCarlo模拟_以医院病床安排为例

,带

调整优先级,转入Step1循环执行。
四、医院病床安排的实例分析
下面是某眼科诊所2008-7-13到2008-9-11的病人信息分别 是各类病人每天的平均就诊人数、一周中每天入院的不同类型病人 平均住院时间、当前医院病床利用情况等相关数据。其中,白内障
相当于 , 外伤对应于 。
星期一
表1 星期二 星期三
随机变量来组合产生泊松分布的随机数列。

为参数 负指数分布的随机数序列,因为有
因此, 将 值按序累加,使得满足关系式:
则求得的 就是参数 的泊松分布的随机数。 ②确定
在假设条件下,可认为 近似等于各类顾客平均接受服务时 间,进而根据 号顾客的服务类型和 的值确定 。
3.2 优先级模型的建立 首先,在到来时为每个顾客依次编号并分配初始优先级,紧急 服务顾客的优先级最大,可近似于无穷大,即该优先级高于其它任 何服务顾客在任何情况下的优先级,从而保证紧急服务顾客尽快接
不同顾客的优先级相同时,按照FCFS的规则安排接受服务。
在算法设计中,初始时赋予需要接受服务时间较短的顾客更
高的优先级,从而使 减小;同时随着 的增长,顾客优先级提 高,避免了顾客长时间等待的情况。这样既保证了需要接受服务时
间较短的顾客优先接受以获取较高的服务台利用率,又避免了某些
顾客需要长时间等待。
的。分析此情况时,需利用上文建立的基于患者优先级的病床分
配模型,计算优先级的表达式为:
,可将其简化为基
于优先级的病床安排的简化模型,具体做法为:将比例系数 设
定为1,将一周中每天入院的同类病人住院时间近似为相等的,
即利用 代替 。经分析比较,在该患者就诊后的

内就诊的青光眼患者具有更高的优先级,同理,在该患者就诊后

多服务台指数分布排队系统

多服务台指数分布排队系统

2、系统状态转移速度图和状态转移速度矩阵:
0
1
2
…… c-1
c
2 3 (c-1) c
()
2 (2)
3 (3)
(c2) ((c2))
(c1)
((c1))
c c
()
(c2) ((c2))
(c1)
((c1))
=5
=5
=8
维修组 维修组
=5
=5
=4
=4
单队两个服务台
两个单队单服务台
对于两个单队单服务台系统,λ=4台/天,μ=5台/天,于
是:
P0=1-λ/μ=1-4/5=0.2;
W q W s 1 () 5 (5 4 4 ) 0 .8 (天 )
e(1p0) Ls544( 4 台)
L qW qe( 2 )4 5 23 .2 (台 )
其中λ=4(辆/h),μ=5(辆/h), ?
c=2,ρ=λ/cμ=0.4 ;
1 单位顾客服务时间
(12 /
1 60)小时
(5 辆/
小时)
p0
[12
22(2 5)]1 2!(1)
[10.82 0.42 0.45 ]1 0.435 10.4
p12p0 0.348
p2 p10.1392
p3 p2 0.0556
对于两个单队单服务台系统,λ=4台/天,μ=5台/天,于是:
其中λ=4(辆/h),μ=5(辆/h), ?
5条线全部被占用的概率 诊病时间平均每人6min,且服从负指数分布;
2
3
(c-1)
c
c
c
8
(天)
8
(天)
n=1,2, … , c;

多服务台等待制排队模型M_G_c_的蒙特卡洛模拟

多服务台等待制排队模型M_G_c_的蒙特卡洛模拟

2 随机数的产生
) 在各种统计计算中常需要产生各种概率分布的随机数 , 而大多数概率分布 的 随 机 数 的 产 生 均 基 于 均 1 ) 匀分布 U ( 的随机数 , 产生随机数的基本方法有三种 , 逆变换法 , 合成方法 , 筛选方法 . 这里我们用拟变换 0, 1
2 0 1 1 1 2 2 4 * 收稿日期 : - - , 王培勋 ( 男, 甘肃岷县人 , 硕士 , 西安财经学院统计学院教授 , 主要从事统计建模研究 . 1 9 5 6 作者简介 : -)
/ /∞ 的 模 拟 还 是 比 较 少 的 , 但是目前对多服务台等待制 排 队 模 型 M/ 本 文 运 用 蒙 特 卡 洛 模 拟 方 法, 研究 G c / /∞ 模型的仿真算法 . M/ G c
/ / /∞ 模型介绍 1 排队论及 M G c
排队论是研究系统随机聚散现象和随机服务系统工作过程的数学理论和 方 法 , 排队论的排队规则分为 损 失 制、 等待制和混合制. 其 中, 损 失 制 是 指 顾 客 到 达 时, 如 果 所 有 服 务 台 都 没 有 空 闲, 该顾客不愿等 3 类: 待, 就随即从系统消失 ; 等待制是指顾客到达时 , 如果所有服务台都没有空闲 , 他 们 就 排 队 等 待; 混合制是指 既有等待又有损失的情况 , 如顾客等待时考虑排队的队长 、 等待时间的长短等因素而决定去留 . / /∞ , 本文所模拟的是多服务台等待制 排 队 模 型 M/ 系 统 空 间 是 无 限 的, 顾客 来 源 也 是 无 限 的, 即设 G c 各服务窗口独立工 作 , 又 各 窗 口 的 服 务 时 间 服 从 一 般 分 布 G, 假设顾客按参 系统有c 个服务窗口并联排列 , 数为λ 的泊松分布到达 , 即顾客到达的间隔服从指 数 分 布 , 如 果 顾 客 到 达 系 统 时c 个 服 务 窗 都 忙 着 , 则顾客 排队等待 , 并且假设各个服务窗口工作时相互独立的遵循先到先服务原则 , 允许永远排队 .

排队论模型与蒙特卡罗仿真

排队论模型与蒙特卡罗仿真

排队论模型与蒙特卡罗仿真
4
排队论就是研究排队现象及其规律的一门 学科,是运筹学的一个分支。如同数学的特 质那样,排队论研究的内容比我们感觉中的 排队现象要广泛得多,它是研究那些本质上 都有排队特征的一类现象。具体表现在:
排队可以是有形的,也可以是无形的。
如几个顾客打电话到出租车站要车,如 果出租车站无足够车辆,则部分顾客只得在 要车处等待,他们分散在不同地方,形成一 个无形的排队序列。
10
顾客排队时间的长短与服务设施规模的 大小,就构成了随机服务系统中的一对矛盾。
如何做到既保证一定的服务质量指标, 又使服务设施费用经济合理,恰当地解决顾 客排队时间与服务设施费用大小这对矛盾。
这就是随机服务系统理论——排队论所 要研究解决的问题。
排队论模型与蒙特卡罗仿真
11
三 排队论的研究方法
排队论模型与蒙特卡罗仿真
5
排队的不一定是人,也可以是物。 例如:生产线上等待加工的原料、半 成品;
因故障停止运转等待修理的机器等。
排队论模型与蒙特卡罗仿真
6
上述问题虽互不相同,但却都有 要求得到某种服务的人或物以及提供 服务的人或机构。
排队论里把要求服务的对象统称 为“顾客”,提供服务的人或机构称 为“服务台”或“服务员”。
排队论模型与蒙特卡罗仿真
15
(3)混合制.这是等待制与损失制相结合的一种服务规 则,一般是指允许排队,但又不允许队列无限长下去。具 体说来,大致有三种:
① 队长有限。当排队等待服务顾客人数超过规定数量 时,后来顾客就自动离去,另求他处服务。
如水库的库容、旅馆的床位等都是有限的。
另两种情况指等待时间和逗留时间限制的情形,略去。 一般的,损失制和等待制可认为是混合制的两种极端特 殊情形。

剖析超市排队的仿真模型应用论文

剖析超市排队的仿真模型应用论文

剖析超市排队的仿真模型应用论文论文关键词:动态模拟;蒙特卡洛模拟;排队论论文内容摘要:综合考虑顾客等待成本和商场的成本效益,进而得出超市为满足一定服务水平应该开设的服务器个数。

本文根据超市顾客到达的随机性和服务时间的随机性,用蒙特卡洛方法模拟不同的顾客到达和服务水平,在MATLAB/Simulink上对超市单队列多收银台的服务系统进行了动态模拟仿真,得到不同顾客到达率和不同服务水平下,顾客的排队等待时间,服务器的空闲率等要素。

在超市收银排队系统中,顾客希望排队等待的时间越短越好,这就需要服务机构设置较多的收银台,这样可以减少排队等待时间,但会增加商场的运营成本。

而收银台过少,会使服务质量降低,甚至造成顾客流失。

如何科学合理地设置收银台的数量,以降低成本和提高效益,是商场管理人员需要解决的一个重要问题。

蒙特卡洛方法简介蒙特卡洛方法又称随机模拟方法,它以随机模拟和统计试验为手段,从符合某种概率分布的随机变量中,通过随机选择数字的方法,产生一组符合该随机变量概率分布特性的随机数值序列,作为输入变量序列进行特定的模拟试验、求解(杜比,2007)。

在应用该方法时,步骤1:建立概率模型,即将所研究的问题变为概率问题,构造一个符合其特点的概率模型;步骤2:产生一组符合该随机变量概率分布特性的随机数值序列;步骤3:以随机数值序列作为系统的抽样输入进行大量的数字模拟试验,以得到模拟试验值;步骤4:对模拟试验结果进行统计处理(如计算频率、均值等),进而对研究问题做出解释。

基于排队理论的仿真模型建立(一)超市服务排队模型(M/M/C)超市收款台服务是一个随机服务系统(唐应辉,2006),该系统具有如下特征:服务的对象是已经选购好商品的顾客,顾客源是无限的,顾客之间相互独立,顾客相继到达的时间间隔是随机的。

系统有多个服务员且对每个顾客的服务时间是相互独立的。

服务规则遵从先到后服务(FCFS)的原则。

每个收款台前都有排队队列,顾客选择较短的队列排队等候,这样形成单队列多服务员(M/M/C)的排队系统。

蒙特卡罗方法在求解单服务台排队系统中的应用

蒙特卡罗方法在求解单服务台排队系统中的应用

蒙特卡罗方法在求解单服务台排队系统中的应用陈杰东【摘要】随机模拟方法是一种具有独特风格的广义的数值计算方法,同时也是求解实际问题近数值解的一种方法.应用该方法来解决单服务台排队系统的实际问题,具有一定的实用性.【期刊名称】《广东轻工职业技术学院学报》【年(卷),期】2016(015)001【总页数】3页(P9-11)【关键词】模拟;模拟方法;蒙特卡罗方法【作者】陈杰东【作者单位】广东轻工职业技术学院,广东广州 510300【正文语种】中文【中图分类】O026在实际生活中,我们经常遇到这样的情况:如在一个理发店中,顾客到店中时有理发师正闲着,可随时为顾客服务,有时理发师正处于工作状态,则顾客需要等待,由于顾客到来时间是随机的,我们关心的不是每个顾客各需等待多少时间,而是顾客平均等待时间,这样可以提高理发师的服务效率,我们这里研究的是这类问题中最简单的一种,即单服台排队系统,也就是考虑只有一个服务员的情况。

1777年法国学者蒲丰提出用投针试验求圆周率π的问题。

给出模型:在平面上画一些间距均为的平行线,向此平面随机地投掷一枚长针 l(l<a)的针。

试求此针与任一平行线相交的概率p。

针的位置可由中点A与最近一平行线的距离及针与平行线的夹角来确定。

随机投针的概率含义是:针的中点A与平行线的距离X 均匀分布在[0,a/2 ]区间内:针与平行线的夹角φ均匀的分布在[0,π]区间内,且X与φ相互独立。

显然针与平行线相交的充要条件是,故相交概率为。

利用该式求π值。

设随机投针N次,其中M次针线相交,当N充分大时,可用频率M/N作用的估计值,可求得π的估计值。

由于该问题实际操作较麻烦,我们可以用统计模拟试验方法来代替。

(1)产生随机数,首先产生相互独立的随机变量X,φ的抽样序列:{xi,(i=1,……,N)},其中X~U(0, /2),φ~U(0, π)。

(2)模拟试验,检验不等式sinφi是否成立,若成立,表示第i次试验成功,设N次试验中成功次数为M次,则π的估值为(a>1,均为预先给定)。

实验2单服务台单队列排队系统仿真

实验2单服务台单队列排队系统仿真

实验2排队系统仿真一、学习目的1.了解仿真的特点2.学习如何建构模型3.熟悉eM-Plant根本的对象和操作4.掌握排队系统的特点与仿真的实现方法二、问题描述表2.4 每个顾客效劳时间的概率分布效劳时间〔min〕概率密度累计概率123456对于上述这样一个单效劳待排队系统,仿真分析30天,分析该系统中顾客的到达、等待和被效劳情况,以及银行工作人员的效劳和空闲情况。

三、系统建模3.1 仿真目标通过对银行排队系统的仿真,研究银行系统的效劳水平和改善银行效劳水平的方法,为银行提高顾客满意度,优化顾客效劳流程效劳。

3.2.系统建模3 系统调研1. 系统结构: 银行效劳大厅的布局, 涉及的效劳设备2. 系统的工艺参数: 到达-取号-等待-效劳-离开3. 系统的动态参数: 顾客的到达时间间隔, 工作人员的效劳时间4. 逻辑参数: 排队规那么, 先到先效劳5. 系统的状态参数: 排队队列是否为空, 如果不为空队长是多少, 效劳台是否为空6. 系统的输入输出变量:输入变量确定其分布和特征值,顾客的到达时间间隔的概率分布表和每个顾客被效劳时间的概率分布. 输出变量根据仿真目标设定. 包括队列的平均队长、最大队长、仿真结束时队长、总效劳人员、每个顾客的平均效劳时间、顾客平均排队等待效劳时间、业务员利用率等。

3.系统假设1.取号机前无排队,取号时间为02.顾客排队符合先进先出的排队规那么3.一个效劳台一次只能对一个顾客效劳4.所有顾客只有一种单一效劳5.仿真时间为1个工作日〔8小时〕6.等候区的长度为无限长3系统建模系统模型:3.2.4 仿真模型1.实体:银行系统中的实体是人〔主动体〕2.属性:到达时间间隔、接受效劳的时间、接受效劳类型3.事件:顾客到达、开始取号、取号结束、进入队列、出队列、接受效劳、效劳完成、离开银行。

4.活动:到达、取号、排队、效劳、离开5.资源:取号机、排队的座椅、效劳柜台 到达离开取号机排队座椅 服务柜台到达取号排队服务离开顾客到达顾客接收服务时间顾客到达时间间隔顾客离开结束服务开始服务结束排队开始排队结束取号开始取号实体活动事件资源4 系统仿真4.1 eM-plant 界面与主要控件介绍1. 实体:eM-Plant 中包括3类实体:entity ,container ,transporter 。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

课程名称:数学建模与数学实验学院:专业:姓名:学号:指导老师:利用Monte Carlo方法模拟单服务台排队系统和多服务台排队系统摘要蒙特卡罗方法(Monte Carlo)又称统计模拟法随机抽样技术,是一种随机模拟方法,以概率和统计理论方法为基础的一种计算方法,是使用随机数(或更常见的伪随机数)来解决很多计算问题的方法。

将所求解的问题同一定的概率模型相联系,用电子计算机实现统计模拟或抽样,以获得问题的近似解。

本文通过两个具体的服务机构为例,分别说明如何利用蒙特卡洛方法模拟单服务台排队系统和多服务台排队系统。

单服务台排队系统(排队模型之港口系统):通过排队论和蒙特卡洛方法解决了生产系统的效率问题,通过对工具到达时间和服务时间的计算机拟合,将基本模型确定在//1M M排队模型,通过对此基本模型的分析和改进,在概率论相关理论的基础之上使用计算机模拟仿真(蒙特卡洛法)对生产系统的整个运行过程进行模拟,得出最后的结论。

多服务台排队系统(开水供应模型):为了解决水房打水时的拥挤问题。

根据相关数据和假设推导,最终建立了多服务窗排队M/G/n模型,用极大似然估计和排队论等方法对其进行了求解,并用Matlab软件对数据进行了处理和绘图。

用灵敏度分析对结果进行了验证。

本模型比较完美地解决了水房排队拥挤问题,而且经过简单的修改,它可以用于很多类似的排队问题。

关键词:蒙特卡洛方法,排队论,拟合优度,泊松流,灵敏度分析。

一、问题重述港口排队系统:一个带有船只卸货设备的小港口,任何时间仅能为一艘船只卸货。

船只进港是为了卸货,响铃两艘船到达的时间间隔在15分钟到145分钟变化。

一艘船只卸货的时间有所卸货物的类型决定,在15分钟到90分钟之间变化。

开水供应系统:学院开水房的供水时间有限,水房面积有限,水管易受水垢堵塞。

根据调查数据可知:通畅时几乎无人排队,堵塞时水房十分拥挤。

由此可以看出水房设计存在问题,我们可以把开水房看成是一个随即服务系统,应用排队论的方法对系统运行状态做定量的描述。

二、基本假设港口排队系统:通过对问题的重述,那么,每艘船只在港口的平均时间和最长时间是多少?若一艘船只的等待时间是从到达到开始卸货的时间,每艘船只的平均等待时间和最长等待时间是多少?卸货设备空闲时间的百分比是多少?船只排队最长的长度是多少?开水供应系统:假设Ⅰ、顾客流满足参数为λ的Poisson分布,其中λ为单位时间到达的顾客平均数。

每个顾客所需的服务时间相互独立,顾客流是无限的,在观测期间平稳。

假设Ⅱ、排队方式为单一队列的等候制,先到先服务。

虽然水房内有多个服务台,每个服务台都有自己的队列,但同时顾客总是自由转移到最短的队列上,不可能出现有顾客排队而服务器空闲的情况。

本文最后对两种排队方式的比较也表明这一假设是合理的。

假设Ⅲ、水房共有20个并联的服务台(水龙头),设每个服务台的服务时间服从某个相同的分布,t和σ分别是服务时间的均值和均方差,γ=σ/ t为偏离系数。

由于锅炉及输水管容量的限制,使t依赖于正在进行服务的水龙头个数m,设此时平均服务时间t(m)。

且存在一临界值当m<= m0 时,t(m)为常数t0;m>m0时,管道中的水便分给 m 个龙头流出,从而 t(m)> t0,且 t(m)是 m 的单增函数。

假设Ⅳ、污垢的积累与时间成线性变化,设为f(x)=kT(k>0,表示污垢积累速率;T为距上次清理污垢时间间隔。

假设Ⅴ、单位时间为 10 秒。

显然,假设Ⅱ、Ⅲ、Ⅳ都是合理的,对假设Ⅰ进行拟合优度检验,得出假设Ⅰ也是合理的。

三、符号约定开水供应系统用到的符号和参数:L ——系统内顾客数的期望值;Lq——系统内排队顾客数的数学期望;W ——顾客在系统内的平均逗留时间;Wq——顾客排队等待时间的期望;P0——系统内有服务台空闲的概率;ρ=t /n ——系统的服务强度(即用水龙头的程度);n ——水龙头的个数。

α——Wq的上限值β——Po的上限值四、问题分析港口排队系统:排队论:排队论(Queuing Theory) ,是研究系统随机聚散现象和随机服务系统工作过程的数学理论和方法,又称随机服务系统理论,为运筹学的一个分支。

本题研究的是生产系统的效率问题,可以将磨损的工具认为顾客,将打磨机当做服务系统。

//1M M:较为经典的一种排队论模式,按照前面的Kendall记号定义,前面的M代表顾客(工具)到达时间服从泊松分布,后面的M则表示服务时间服从负指数分布,1为仅有一个打磨机。

排队论研究的基本问题1.排队系统的统计推断:即判断一个给定的排队系统符合于哪种模型,以便根据排队理论进行研究。

2.系统性态问题:即研究各种排队系统的概率规律性,主要研究队长分布、等待时间分布和忙期分布等统计指标,包括了瞬态和稳态两种情形。

3.最优化问题:即包括最优设计(静态优化),最优运营(动态优化)。

为了得到一些合理的答案,利用计算器或可编程计算器来模拟港口的活动。

假定相邻两艘船到达的时间间隔和每艘船只卸货的时间区间分布,加入两艘船到达的时间间隔可以是15到145之间的任何数,且这个区间内的任何整数等可能的出现。

再给出模拟这个系统的一般算法之间,考虑有5艘传至的假象情况。

对每艘船只有以下数据:相邻两艘船到达的时间间隔20 30 15 120 25卸货时间55 45 60 75 80 因为船1在时钟于t=0分钟计时开始后20分钟到达,所以港口卸货设备在开始时空空闲了20分钟。

船1立即开始卸货,卸货用时55分,其间,船2在时钟开始计时后t=20+30=50分中到达。

在船1与t=20+55=75分钟卸货完毕之前,船2不能开始卸货,这意味着船2在卸货前必须等待75-50=25分钟。

在船2开始卸货之前,船2于t=50+15=65分钟到达,因为船2在t=75分钟开始卸货,并且卸货需45分钟,所以在船2与t=75+45=120分钟卸货完毕之前,船3不能开始卸货。

这样,船3必须等待120分钟。

船4在t=65+120=185分钟之前没有到达,因此船3已经在t=120+60=180分钟卸货完毕,港口卸货设备空闲185-180=5分钟,并且,船4到达后立即卸货。

最后,在船4于t=185+75=260分钟卸货完毕之前,船5在t=185+25=210到达,于是船5在开始卸货前等待260-210=50分钟。

五、模型的建立和求解港口排队系统:对于问题中存在的服务系统,建立排队论模型,在仅能为一艘船通过是一个标准的//1M G 模型:所谓//1M G 模型,就是输入过程为泊松流时,服务时间为任意的条件之下的,服务机器只有一个得时候。

对于//1M G 模型,服务时间T 的分布式一般的,(但是要求期望值()E T 和()Var T 方差都存在),其他条件和标准的//1M M 型相同。

为了达到稳态1ρ<还是必要的,其中有()E T ρλ=。

单服务员的排队模型设:(1) 船只到来间隔时间服从参数为0.1的指数分布.(2) 对船只的服务时间服从[4,15]上的均匀分布.(3) 排队按先到先服务规则,队长无限制.系统的假设:(1) 船只源是无穷的;(2) 排队的长度没有限制;(3) 到达系统的船只按先后顺序依次进入服务, 即“先到先服务”。

符号说明w :总等待时间;c i :第i 个顾客的到达时刻;b i :第i 个顾客开始服务时刻;e i :第i 个顾客服务结束时刻;x i :第i-1个顾客与第i 个顾客之间到达的间隔时间;y i :对第i 个顾客的服务时间c i =c i-1+ x ie i =b i +y ib i =max(c i ,e i-1)单服务台单队系统… …船只到达 进入队列服务台 接受服务 船只离去开水供应模型:由假设Ⅱ、Ⅲ可知,若 n时,则 n 个服务台是相互独立,服从相同分布,即是一个 M/G/n 型排队模型。

如果则相当于服务台之间可以相互帮助的服务系统,平均服务时间 t 为正在服务的服务台数 m 的函数。

考虑一简单情形:当 m 时,t(m)=;当< m ≤n 时,t(m)=,此模框时 m个服务员以的速率进行服务,但总的服务速率总是即n>时的系统实际相当于M/G/的排队模型。

首先得求出临界服务台数 ,设水龙头及输出管直径分别为;水的流速为v,从而由的含义知:(1-2)即。

由实际估测,=6.5cm,=1.3cm.于是>20=n,因此现有的水房系统服从M/G/20的排队模型。

; (1-3); (1-4); (1-5)(1-6)L=;(1-7)Wq=L/. (1-8)另外公式中要求ρ<1,否则系统永远不能到稳定状态,排队的人越来越多,即队长将趋于无穷大。

对水房系统,λ=2.17,n=20, 当管道通畅时,=7.58,=3.45, ρ=0.8224<1代入解出:=0.292, L =14.97,=0.134,W=0.134,=0.945根据假设Ⅳ,水垢的积累与时间成线性递增变化,f(x)=kT。

随着水垢的积累,服务时间相应增加。

那么处于水房通畅和爆满这两个极端状态之间的水房运营情况又如何呢?下面的模型当=12.10时, >1,水房爆满,进一步分析以了解拥挤情况,拥挤原因以及缓解的办法。

六、模型的检验与评价港口排队系统:表1 100艘船港口和系统的模拟结果上图为一艘船呆在港口的平均时间上图为一艘船呆在港口的最长时间一艘船的平均等待时间上图为一艘船的最长等待时间上图为一艘船的最长等待时间以上就是对港口问题的具体分析,其实港口问题还可以从船只的排队角度出发,我们还可以对多个港口通行做相应的模拟试验,让船主尽量减少等待时间且港口卸货设备的利用率达到最高,从而是港口的主人获得更大的利润。

从排队角度来解决问题,可以使问题的广度增加,选秘书问题就是一个很典型的例子,可以从排队角度解决,如果用我在文章中应用的方法来解决也是可以的,这仅仅是一个港口的小问题,甚至可以说是一个非常简单的问题,但是已经让我感觉到了数学的美,在老师的引导下慢慢接近一种抽象的美,在写论文的这几天中,数据的整理和分析是最值得享受的时刻,在Excel里输入自己的数据,是一种忐忑的感觉,因为在那么多的数据面前,我真的不知道将会发生什么,拟合的过程就更是有意思了,一次一次的尝试,一次一次的比较,在这个过程中,如果有一点点的进步都会让我兴奋,数学建模在生活中处处存在,如果真的能够掌握这个本领,生活一定会变得简单而精彩!开水供应系统:一、灵敏度分析:由公式(1-3)、(1-4)、(1-5)和(1-8)知,直接影响系统各运行指标λ,,t,其中λ为不可控的参数,在分析中可以看成不变。

的参数是n,γ首先,我们讨论Lq、Po和服务时间t之间的关系。

相关文档
最新文档