c1b1c3c4c5c2e1b2e2b3e3b4e4b5t《运筹学》实验8一、实验名称:排队论模拟二、实验目的:了解模拟的概念及计算机实现方法,服从不同分布的随机数产生方法,通过模拟求解排队论问题。三、实验内容1、随机数产生方法2、计算机模拟实例四、实验步骤1、(1)产生mn阶[a,b]均匀分布U(a,b)的随机数矩阵的Matlab的命令格式:unifrnd(a,b,m,n)(2)产生一个[a,b]均匀分布的随机数的命令格式:unifrnd(a,b)(3)产生mn阶均值为,方差为的正态分布的随机数矩阵:normrnd(,,m,n)(4)产生mn阶期望值为的指数分布的随机数矩阵:exprnd(,m,n)(5)产生mn阶参数为的帕松分布的随机数矩阵:poissrnd(,m,n)2、示例1:(单服务员的排队模型)在某商店有一个售货员,顾客陆续来到,售货员逐个地接待顾客.当到来的顾客较多时,一部分顾客便须排队等待,被接待后的顾客便离开商店.设:(1)顾客到来间隔时间服从参数为0.1的指数分布.(2)对顾客的服务时间服从[4,15]上的均匀分布.(3)排队按先到先服务规则,队长无限制.假定一个工作日为8小时,时间以分钟为单位。[1]模拟一个工作日内完成服务的个数及顾客平均等待时间t.[2]模拟100个工作日,求出平均每日完成服务的个数及每日顾客的平均等待时间。[1]系统的假设:(1)顾客源是无穷的;(2)排队的长度没有限制;(3)到达系统的顾客按先后顺序依次进入服务,即“先到先服务”。[2]符号说明w:总等待时间;ci:第i个顾客的到达时刻;bi:第i个顾客开始服务时刻;ei:第i个顾客服务结束时刻.xi:第i-1个顾客与第i个顾客之间到达的间隔时间yi:对第i个顾客的服务时间ci=ci-1+xiei=bi+yibi=max(ci,ei-1)(一)对问题1进行模拟的程序:cleari=1;%输出第一次标号的结果w=0;x(i)=exprnd(10);c(i)=x(i);b(i)=x(i);[3]模拟框图初始化:令i=1,ei-1=0,w=0产生间隔时间随机数xi~参数为0.1的指数分布ci=xi,bi=xi产生服务时间随机数yi~[4,15]的均匀分布ei=bi+yi累计等待时间:w=w+bi-ci准备下一次服务:i=i+1产生间隔时间随机数xi~参数为0.1的指数分布ci=ci-1+xi确定开始服务时间:bi=max(ci,ei-1)bi>480YNi=i-1,t=w/i输出结果:完成服务个数:m=i平均等待时间:t停止whileb(i)=480y(i)=unifrnd(4,15);%第I个顾客的服务时间e(i)=b(i)+y(i);%第I个顾客的服务结束时刻w=w+b(i)-c(i);%总等待时间i=i+1;x(i)=exprnd(10);%第I个顾客与第I-1个顾客的间隔时间c(i)=c(i-1)+x(i);%第I个顾客的到达时刻tb(i)=max(c(i),e(i-1));%第I个顾客开始服务时刻endi=i-1;t=w/i%顾客平均等待时间tm=i%一个工作日内完成服务的顾客数W(二)对问题2进行模拟的程序:clearcs=100;forj=1:csw(j)=0;i=1;x(i)=exprnd(10);c(i)=x(i);b(i)=x(i);whileb(i)=480y(i)=unifrnd(4,15);e(i)=b(i)+y(i);w(j)=w(j)+b(i)-c(i);i=i+1;x(i)=exprnd(10);c(i)=c(i-1)+x(i);b(i)=max(c(i),e(i-1));endi=i-1;t(j)=w(j)/i;m(j)=i;endpt=0;pm=0;forj=1:cspt=pt+t(j);pm=pm+m(j);endpt=pt/cspm=pm/cs五、实验题目1、某火车站的售票处设有一个窗口,若购票者是以最简单流(即泊松分布)到达,平均每分钟到达1人,假定售票时间服从负指数分布,平均每分钟可服务2人,试求在上午6:00到下午6:00之间的来购票的人数和平均排队时间。[1]模拟某天在上午6:00到下午6:00之间的来购票的人数及购票者平均等待时间.[2]模拟100天在上午6:00到下午6:00之间,求出平均每日来购票的人数及购票者平均等待时间2、某单人理发店,顾客到达服从最简单流(即泊松分布),平均每小时到达3人,理发时间服从负指数分布,平均15分钟,试求在上午8:00到下午8:00之间的来理发的人数和平均等待时间。[1]模拟某天在上午8:00到下午8:00之间的来理发的人数及理发人的平均等待时间.[2]模拟100天在上午8:00到下午8:00之间,求出平均每日来理发的人数及理发人的平均等待时间