通过考察各个站点间的距离,发现每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;