假设我vector<plane> arriving
和vector<plane> departing
填充了plane
个对象,这些对象根据其着陆优先级排序(例如plane
燃料较少且乘客应降落在具有更多燃料的飞机之前或离开(例如,等待时间最长的飞机应首先离开)。无法着陆的飞机将在跑道上绕圈(停留在arriving
向量中)并且每次“转弯”时失去一个单位的燃料。飞机有预定的到达或离开时间,那时他们可以降落或离开。此外,在此之后,他们将开始失去燃料。所有行动(着陆和离开)需要1个单位时间。
还假设我只有两条跑道,一次只能“处理”两架飞机(陆地/陆地,陆地/离港,出发/离开)。有没有办法使用编程来优化这种情况的统计数据(例如,被杀人数,平均等待时间)?换句话说,我需要弄清楚我是否可以离开多少架飞机而不会造成碰撞。
我想过以递归方式测试每种可能的情况,并以某种方式相互测试它们。有没有类似的算法?也许回溯?
该程序是用c ++编写的,但任何语言都适合我。感谢
修改
详细示例:
在时间0,我有2架飞机到达,一架有1个燃料单元,另一架有0单位燃料。但是,我还有两架飞机计划在时间1到达,两架飞机在时间1都有0单位燃油。在这种情况下,为了“优化”我的统计数据,我需要在零时刻降落两架飞机(即使有1单位燃料的飞机不需要立即到达),这样我就可以在时间1降落这两架飞机。