每隔一分钟记录一次系统状态,模拟10分钟的过程如下。
运行程序一:
两次运行的结果:
>>r
r=0.56780.79420.05920.60290.05030.45650.01850.82140.44470.6154
>>n
n=1201010211
>>r
r=0.23110.60680.48600.89130.76210.79190.92180.73820.17630.4057
>>n
n=0112222201
(2)顾客到达收款台的平均间隔时间是0.5分钟。
模拟10位顾客到达收款台的情况。
模拟方法:
取随机数r=exprnd
(2),后一位顾客到达时间=前一位顾客到达时间+y。
记t(i)为第i位顾客到达收款台时间。
模拟10位顾客到达收款台的过程如下。
运行程序二结果:
>>r=0.10232.92950.99901.44320.23020.54341.56857.97960.39351.6207
>>t=0.10233.03184.03085.47395.70416.24747.815915.795516.189017.8097
(3)超市有两个出口的收款台,两项服务:
收款、装袋。
两名职工在出口处工作。
有两种安排方案:
1.开一个出口,一人收款、一人装袋;2.开两个出口,每个人既收款又装袋。
问商店经理应选择哪一种收款台的服务方案。
选择服务方案的标准:
1.顾客平均等待时间最短,2.每分钟服务的顾客数量最多,3.服务的工作效率最高(除去空闲时间,每位职工每分钟实际服务顾客数最多)。
对两种服务方案分别仿真模拟30分钟内收款台的排队情况,通过比较确定首选方案。
假设:
1.服务员为每一位顾客服务的收款和装袋时间相同。
2.在第一种方案中,收款与装袋同时进行。
3.顾客的到达收款台是随机的.
参量,变量:
n(t)=在(t,t+t]时间区间内到达收款台的人数,
L(t)=在(t,t+t]时间区间内在收款台等待的人数,
L1(t)=到时刻t为止到达收款台所有顾客人数的累计,
T1(t)=到时刻t为止所有排队顾客等待时间的总和,
T2(t)=到时刻t为止所有已交款顾客接受服务的时间,
收款或装袋的时间。
取时间步长t=1,收款或装袋的时间=1。
在(t,t+t]时间区间,取随机数r=rand,
当0r<0.4时,n(t)=0,
当0.4r<0.7时,n(t)=1,
当0.7r1时,n(t)=2.
平衡关系:
当L(t)=0且n(t)=0时,L(t+t)=L(t);L1(t+t)=L1(t);T1(t+t)=T1(t);T2(t+t)=T2(t);
否则L(t+t)=L(t)+n(t)-1;L1(t+t)=L1(t)+n(t);T1(t+t)=T1(t)+L(t+t);T2(t+t)=T2(t)+
运行程序三可以得到结果:
a=[x‘,r’,L‘,L1’,T1‘,T2’]
000000
1.00000.566801.000001.0000
2.00000.82301.00003.00001.00002.0000
3.00000.67391.00004.00002.00003.0000
4.00000.99942.00006.00004.00004.0000
5.00000.96163.00008.00007.00005.0000
6.00000.05892.00008.00009.00006.0000
7.00000.36031.00008.000010.00007.0000
8.00000.54851.00009.000011.00008.0000
9.00000.261809.000011.00009.0000
10.00000.5973010.000011.000010.0000
11.00000.0493010.000011.000010.0000
12.00000.5711011.000011.000011.0000
13.00000.70091.000013.000012.000012.0000
14.00000.96232.000015.000014.000013.0000
15.00000.75053.000017.000017.000014.0000
16.00000.74004.000019.000021.000015.0000
17.00000.43194.000020.000025.000016.0000
18.00000.63434.000021.000029.000017.0000
19.00000.80305.000023.000034.000018.0000
20.00000.08394.000023.000038.000019.0000
21.00000.94555.000025.000043.000020.0000
22.00000.91596.000027.000049.000021.0000
23.00000.60206.000028.000055.000022.0000
24.00000.25365.000028.000060.000023.0000
25.00000.87356.000030.000066.000024.0000
26.00000.51346.000031.000072.000025.0000
27.00000.73277.000033.000079.000026.0000
28.00000.42227.000034.000086.000027.0000
29.00000.96148.000036.000094.000028.0000
30.00000.07217.000036.0000101.000029.0000
eL=29%已被服务的人数(30分钟内服务的顾客人数)
L2=262728293031
s=5
L3=31%未被服务的顾客等待时间总和
g1=2.4138%(已被服务顾客)平均等待时间
g2=3.4138%平均逗留时间=平均等待时间+服务时间
g3=0.9667%平均每分钟服务的顾客人数
运行程序四可以得到结果:
b=[t‘,T’,w‘,ww‘,队长];
00000
0.02560.881400.02560
0.75791.32620.12340.02561.0000
1.00772.36800.44190.02561.0000
1.36853.46391.44140.02561.0000
1.42604.08173.47930.02562.0000
1.56195.47875.99910.02563.0000
1.95406.87519.52380.02564.0000
3.94897.862512.45000.02563.0000
4.04728.971616.26530.02564.0000
4.452410.029820.78450.02564.0000
4.695110.967626.11920.02565.0000
4.811812.209532.27500.02566.0000
4.852513.013439.63210.02567.0000
5.004214.741247.64130.02568.0000
5.872115.695756.51030.02568.0000
6.323216.733765.88280.02569.0000
6.356518.089376.26000.025610.0000
6.399919.109087.94930.025611.0000
6.845420.0771100.21290.025612.0000
6.901620.7997113.38850.025612.0000
g1=
5.6694
g2=
6.7081
g3=
0.9616
5实验结果分析与讨论
通过多次模拟取平均值得到顾客平均等待时间,平均逗留时间,每分钟服务顾客数,在两个服务员在一个收款台服务情况下,分别为1.21432.21430.8207:
在两个服务员在两个收款台服务情况下,分别为1.07893.07890.8107,从平均逗留时间,每分钟服务顾客数来评价,设置一个收款台是可取的。
6实验程序(Matlab或者其它软件语言陈述)
程序一:
r=rand(1,10);
fori=1:
10;
ifr(i)<0.4
n(i)=0;
elseif0.4<=r(i)&r(i)<0.7
n(i)=1;
elsen(i)=2;
end;
end
程序二:
r=exprnd(2,1,10);t=zeros(1,10);
t
(1)=r
(1);
fori=2:
10
t(i)=t(i-1)+r(i);
end
程序三:
Matlab程序
clf
L=zeros(1,31);%L等待的顾客人数,
T1=zeros(1,31);%T1等待时间的累加,
T2=zeros(1,31);%T2服务时间的累加,
L1=zeros(1,31);%L1到达顾客人数累加。
t=1;tau=1;x=0:
30;r=rand(1,30);
fori=1:
30;
t=t+1;
if0<=r(i)&r(i)<0.4
n=0;
elseif0.4<=r(i)&r(i)<0.7
n=1;
elsen=2;
end;
ifL(t-1)==0&n==0
L(t)=L(t-1);T1(t)=T1(t-1);T2(t)=T2(t-1);L1(t)=L1(t-1);
else
L(t)=L(t-1)+n-1;T1(t)=T1(t-1)+L(t);T2(t)=T2(t-1)+tau;L1(t)=L1(t-1)+n;
end;
end;
r=[0r];a=[x',r',L',L1',T1',T2']
eL=T2(end)/tau%已被服务的人数,
L2=(find(L1>eL))
s=L(L2
(1)-1)
L3=sum(L(L2))-s*(s-1)/2%未被服务的顾客等待时间总和
g1=(T1(end)-L3)/eL%平均等待时间
g2=g1+tau%平均逗留时间
g3=eL/30%平均每分钟服务的顾客人数.
程序四:
t=zeros(1,21);%每位顾客到达时间
T=zeros(1,21);%每位顾客离去时间
w=zeros(1,21);%顾客等待时间累加
ww=zeros(1,21);%收款台空闲时间累加
r=exprnd(2,1,21);%服从指数分布的随机数
t2=normrnd(1,1/3,1,21);%服从正态分布的随机数
fori=1:
1:
20
t(i+1)=t(i)+t1(i);
ift(i+1)>=T(i);
w(i+1)=w(i);T(i+1)=t(i+1)+t2(i);ww(i+1)=t(i+1)-T(i)+ww(i);
elsew(i+1)=T(i)-t(i+1)+w(i);T(i+1)=T(i)+t2(i);ww(i+1)=ww(i);
end;
end;
b=[t',T',w',ww'];
%求队伍长
[brow,bcol]=size(b);
b=[b,zeros(brow,1)];
b(1,bcol+1)=0;
forj=2:
brow
l=0;
ifj-l-1>0
whileb(j,1)<=b(j-l-1,2)
l=l+1;
end;
b(j,bcol+1)=l;
end;
end;
b
g1=w(end)/20%平均等待时间
g2=sum(T-t)/20%平均逗留时间
g3=20/T(end)%平均每分钟服务的顾客人数
y=[g1g2g3];
functiony=paidui(t)
L=zeros(1,t+1);
T1=zeros(1,t+1);
T2=zeros(1,t+1);
L1=zeros(1,t+1);
x=0:
t;
r=rand(1,t);
fori=1:
t;
if0<=r(i)&&r(i)<0.4
n=0;
elseif0.4<=r(i)&&r(i)<0.7
n=1;
elsen=2;
end
ifL(i)==0&&n==0
L(i+1)=L(i);
T1(i+1)=T1(i);
T2(i+1)=T2(i);
L1(i+1)=L1(i);
else
L(i+1)=L(i)+n-1;
L1(i+1)=L1(i)+n;
T1(i+1)=T1(i)+L1(i+1);
T2(i+1)=T2(i)+2;
end;
end;
end
r=[0r];
a=[x',r',L',L1',T1',T2'];
eL=T2(end)/2;
L2=(find(L1>eL));
l1=L1(L2);
l2=[eLl1(1:
end-1)];
k=length(L2);
L3=sum((l1-l2).*(k:
-1:
1));
g1=(T1(end)-L3)/eL;
g2=g1+1;
g3=eL/t;
y=[g1g2g3]