format; %初始化
people; %生成时间序列与目标楼层序列
for t=1:n; %开始循环
for d=1:4; %开始选择电梯
g=0; %标记变量归零
p(d)=sum1(t+1)-
time(d); %计算时间差值
if p(d)>=0&p(d)<=15 %若时间间隔满足乘梯条件
g=d; %标记所选电梯
break %跳出选梯循环
else %若时间间隔超过等待时间
if p(d)>0&N(d)==0 %若电梯内无人
g=d; %标记所选电梯
break %跳出选梯循环
else %若电梯内有人
e=d; %标记所排除的电梯
switch e %启动不符合条件的电梯
case 1
if p(d)>0
Time(1)=Time(1)+15;
transfor1
else
end
case 2
if p(d)>0
Time(2)=Time(2)+15;
transfor2
else
end
case 3
if p(d)>0
Time(3)=Time(3)+15;
transfor3
else
end
case 4
if p(d)>0
Time(4)=Time(4)+15;
transfor4
else
end
otherwise
e=0;
end
end
end
end
switch g %将乘客分配给所选的电梯
case 1
lift1
case 2
lift2
case 3
lift3
case 4
lift4
otherwise
g=0;
end
if g==0 %若无满足条件的电梯则乘客排队
W=W+1; %增加一人排队
AW=AW+1; %记录等待总人数
if Wmax<W %记录队伍最大值
Wmax=W;
else
end
WaitStart=sum1(t+1); %记录乘客开始等待时间
k=0;
for d=1:4; %寻找最快到达的电梯
if p(d)>0
fast=p(d);
if fast>=p(d)
fast=p(d);
k=d;
else
end
else
end
end
if k==0;
Wait=0;
else
Wait=p(d); %计算实际等待时间
totalwait=totalwait+p(d); %计算等待总时间
servetime=Wait+15*goal(t); %估算运送时间
if Maxst<servetime
Maxst=servetime; %记录最长服务时间
else
end
if WaitingMax<Wait
WaitingMax=Wait; %记录最大等待时间
else
end
end
else
end
end
??? Undefined function or variable 'people'.
一周热门 更多>