求解排队论模型问题 下载本文

内容发布更新时间 : 2024/11/9 10:26:51星期一 下面是文章的全部内容请认真阅读。

最优化方法上机实验4

上机时间:2014.01.14

求解排队论模型问题

实验 问题 描述 原理 及 算法 某店令有一个修理工人, 顾客到达过程为Poisson流, 平均3人/h, 修理时间服从负指数分布, 平均需10min. 求 (1) 店内空闲的概率; (2) 有4个顾客的概率; (3) 至少有1个顾客的概率; (4) 店内顾客的平均数; (5) 等待服务的顾客的平均数; (6) 平均等待修理时间; 1. 算法原理 排队现象是由两个方面构成: (1)一方要求得到服务, (2) 另一方设法给予服务。 排队系统: 顾客与服务台就构成一个排队系统(随机服务系统) 顾客:要求得到服务的人或物(设备)统称为顾客 服务台:给予服务的服务人员或服务机构统称为服务员或服务台。 2.算法步骤: 完 整 程 序 清 单 ( 含 注 释 ) 3.1M/M/S/无穷计算程序 lambda =3; mu = 6; s = 1; ro=lambda/mu; ros=ro/s; sum1=0; for i=0:s-1 sum1=sum1+ro.^i/factorial(i); end sum2=ro.^s/factorial(s)/(1-ros); p0=1/(sum1+sum2); p=ro.^s.*p0/factorial(s)/(1-ros); Lq=p.*ros/(1-ros); L=Lq+ro; W=L/lambda; Wq=Lq/lambda; x(1)=p0;x(2)=p;x(3)=Lq;x(4)=L;x(5)=W;x(6)=Wq; for i = 1:10 if(i<=s) pp(i) = 1/factorial(i) * ro^i * p0;

else pp(i) = 1/(factorial(s)*s^(i-s) ) * ro^i * p0; end end 3.2计算机仿真程序 clear clc Total_time=10; N=10000000000; lambda=10; mu=6; arr_mean=1/lambda; ser_mean=1/mu; arr_num=round(Total_time*lambda*2); events=[]; events(1,:)=exprnd(arr_mean,1,arr_num); events(1,:)=cumsum(events(1,:)); events(2,:)=exprnd(ser_mean,1,arr_num); len_sim=sum(events(1,:)<=Total_time); events(3,1)=0; events(4,1)=events(1,1)+events(2,1); events(5,1)=1; member=[1]; for i=2:arr_num if events(1,i)>Total_time break; else number=sum(events(4,member)>events(1,i)); if number>N+1 envents(5,i)=0; else if number==0 events(3,i)=0; events(4,i)=events(1,i)+events(2,i); events(5,i)=1 member=[member,i]; else len_mem=length(member); events(3,i)=events(4,member(len_mem))-events(2,i); events(5,i)=number+1; member=[member,i]; end end end end len_mem=length(member);