求----关于汽车加油站工作模拟算法

王朝other·作者佚名  2006-01-10
窄屏简体版  字體: |||超大  

日常生活中的各种配对问题,是队列应用的典型例子.以加油站为例,假设某加油站有两台有泵,每台油泵的加油时间为d分钟,若已知该站的到车率为g分钟一辆,则该加油站的工作情况可用以下列队模型描述.

定义一个循环队列,容量为M(足够大,不发生队列满的问题),用语组织等待加油的汽车序列.按照先到先加油的原则进行处理;整个模拟过车工内的时间为Time,每隔t分钟见空一次,获取并输出实际情况.

出事状态设为:队列为空(front=rear=M),每台油泵为空闲(pump(1)=pump(2)=0),油泵未服务过(auto(1)=auto(2)=-1).

整个问题可分为三部分:

1) 汽车排队:已知一分钟来一辆车的概率为1/g,则每隔t分钟来一辆车的概率为t/g.由于来车的问题是随机的,因此,实际处理时,每隔t分钟产生一个随机数rnd,若它小于等于t/g,则认定有一辆车进站,应将它加入队列中.

2) 油泵工作状态:用pump(i)表示第i(i=1,2)每抬油泵工作进程,用auto(i)表示第i台油泵的服务对象.则当第i台油泵开始为一辆车工作时,置pump9i0=d-t,以后每t分钟,令pump(i)=pump(i)-t.若pump(i)<0,说明第i台已完成加油工作,可以继续为下一辆车服务,因此,应从队列中取出一个元素继续处理;若队列为空,置pump(i)=0,表示空状态.

3) 监控结果输出:每隔t分钟输出一次汽车队列现状和每台油泵的工作状态.输出空闲状态.

当auto(i)>0时,若pump(i)>0表示油泵i正在为auto(i)加油;若pump(i)<0表示油泵i刚为auto(i)加完油;若pump(i)=0表示油泵i已经为auto(i)加完油.当auto(i)= -1时,表示油泵i尚未工作过.

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航