我正在开发一个航班调度应用程序(免责声明:这是一个大学项目,所以请没有代码答案)。请在回答之前仔细阅读这个问题,因为它有很多特点:(
首先,一些术语问题:
你有飞机和航班,你必须将它们配对。为简单起见,我们假设一架飞机在使用它之前降落的航班是免费的。
航班被视为任务:
- 他们有一个持续时间
- 他们有依赖关系
- 他们有一个预期的开始日期/时间
飞机可以被视为任务(或航班,在我们的术语中)使用的资源。
航班需要特定类型的飞机。例如,航班 200 需要一架 B 型飞机。飞机显然是一种且只有一种特定类型,例如,飞机空军一号是 C 型。
“项目”是航空公司在给定时间段内所有航班的集合。
所需的功能是:
为上述项目寻找最短的持续时间
任务(飞行)的最早和最晚可能开始
关键任务以提供的数据为基础,并带有先前任务的标识符。
自动配对航班和飞机,使所有航班与飞机配对。(注:飞行时间是固定的)
获取带有项目调度的甘特图,其中所有航班尽早开始,以图形方式显示所有先前引用的数据(依赖关系、时间信息等)
所以问题是:我到底是如何做到这一点的?特别:
- 我们需要使用图表。
- 图的边和节点分别代表什么?
- 我们是否需要丢弃任务来完成关键任务集?
如果您还可以推荐一些算法供我们查找,那就太好了。