模拟火车调度系统实验要求
1. 火车及铁轨配置
(1) 在长宽设定好的地图上,由用户按照规定的设计规则,自定义铁轨线路。具体由一个用户界面程序实现。
(2) 对于每个确定的线路,只有一辆火车运行。每辆火车可以设定发车时间及运行速度。
(3) 对于自定义的线路可能出现轨道的重复利用,为使每辆火车不会相撞,设计一个调度系统自动调度火车运行。
(4) 线路设计规则:
a) 线路必须有一定长度;
b) 两条线路不能共用起点;
c) 不能反向重叠铁轨;
d) 如果起点与同线路终点重合即变为环路;
e) 起点与不同线路终点不能重合;
(5) 坐标计算为矢量图,适应各种每个确定的地图规格及具体显示模式。
(6) 设计配置保存在文件中,运行时自动读取文件。
2. 火车的运行控制
(1) 每辆火车开动前位置为对应线路起点。
(2) 火车一旦开动,除非等待公共轨道的释放暂停,否则一直运行。
(3) 必须保证火车有序运行,不能相撞。
(4) 火车的启动时间及速度由配置文件保存。
3. 火车的控制策略
(1) 先来先用策略,即先到达的火车先使用公共轨道,其他火车等待该火车离开后,按到达顺序依次使用公共轨道。
(2) 优先级别策略,即先到达的火车先使用公共轨道,其他火车等待该火车离开后,按优先级(=速度大小)顺序依次使用公共轨道。
4. 输入输出的方式
(1) 输入
a) 地图信息:在编辑模式下,根据用户提示用鼠标键盘绘制地图。
b) 配置信息:在控制台模式或图形界面模式下,用配置文件,载入预设的运行信息。
c) 控制信息:在控制台模式下,根据用户提示键盘输入,进行控制策略切换;在图形界面模式下,根据用户提示鼠标键盘输入,进行控制策略切换。
(2) 输出
a) 控制台模式:定时在命令行窗口输出所有火车运行坐标,运行或停止状态。
b) 用户界面模式:定时在窗口绘制火车运行动画,显示所有轨道,车站,火车位置。
c) 文件输出:在以上两种模式运行同时,记录运行信息,包括:
i. 所有轨道位置
ii. 当前时间-每辆火车位置坐标及运行状态
5. 其他高级的功能
(1) 设置火车长度,当车尾离开公共轨道后才算释放轨道资源。
(2) 在轨道上设置若干停靠站点,每个站点有不同停靠时间。
(3) 实现最小代价策略,即对将到达的所有火车评估时间,计算最小等待时间(所有时间之和),按时间逆序依次使用公共轨道。
(4) 实现最大价值策略,即对将到达的所有火车评估价值=权重(=优先级=速度大小)/ 通过时间,按价值顺序依次使用公共轨道。
(5) 允许每条线路有大于一辆火车同时运行。