通过考察各个站点间的距离,发现每6秒将可能出现车到站的事件。
假设车站总有足够的车发出,考虑单行方向。
Bus_on_e为发车次数,Bus_on_e – bus_on_s为在线车数
初始化t=0 bus_on_e=0; bus_on_s=0; 站点人数station(i)(j)=0; 站点将下车人数free(i)(j)=0; | ||
开始(以6秒为步长)(每6秒线上将有可能有一辆车到某一站) | ||
站点人数改变:station(i)(j)= station(i)(j)+p(i)(j)*6 站点将下车人数改变:free(i)(j)=free(i)(j)+f(i)(j)*6 | ||
遍历所有在线车的位置(车是否到达站点bus_opp(i)?=车站位置)i=bus_on_s:1:bus_on_e | ||
是 | 否 | |
判断车是否在终点bus_opp(n)?=end? | 改变车的位置bus_opp(n)+=(6*20/60) | |
是 | 否 | |
减少在线车数量bus_on_s+=1 | 改变车上人数Num(n)=Num(n)+station(i)(j)-free(i)(j) | |
车到终点不再行驶bus_opp(n)=10000 | 改变车的位置bus_opp(n)+=(6*20/60) | |
计算满意率 | 计算满意率 | |
判断是否为发车时间(最短发车间隔为60秒)Now-last(上一次发车时间)?=T(发车间隔) | ||
是 | 否 | |
增加车数bus_on_e+=1,bus_on_e+1即为车的编号 |
| |
初始化车bus_opp(bus_on_e+1)=0; | ||
初始化车人数为第一站人数Num(bus_on_e+1)=station(i)(1) | ||
结束:t=60*60*18; |