私はフライト スケジューリング アプリに取り組んでいます (免責事項: 大学のプロジェクトのため、コードの回答はありません)。この質問には多くの特徴があるため、答える前に注意して読んでください:(
まず、いくつかの用語の問題
があります。飛行機とフライトがあり、それらをペアにする必要があります。簡単にするために、飛行機は、それを使用するフライトが着陸するとすぐに解放されると仮定します。
フライトはタスクと見なされます。
- それらには期間があります
- 依存関係があります
- 開始予定日時がある
プレーンは、タスク (用語ではフライト) で使用されるリソースと見なすことができます。
フライトには、必要な特定のタイプの飛行機があります。たとえば、フライト 200 にはタイプ B の飛行機が必要です。飛行機は明らかに 1 つだけ特定のタイプです。たとえば、Plane Airforce One はタイプ C です。
「プロジェクト」とは、特定の期間における航空会社によるすべてのフライトのセットです。
必要な機能は次のとおりです。
上記のプロジェクトの最短期間を見つける
タスク (フライト) の可能な最早および最遅の開始
重要なタスクは、提供されたデータに基づいており、先行するタスクの識別子を備えています。
すべてのフライトが飛行機とペアになるように、フライトと飛行機を自動的にペアにします。(注:飛行時間は決まっています)
すべてのフライトができるだけ早く開始され、以前に参照されたすべてのデータ (依存関係、時間情報など) がグラフィカルに表示される、プロジェクトのスケジュールを含むガント ダイアグラムを取得します。
質問は次のとおりです。一体どうすればこれを達成できるのでしょうか? 特に:
- グラフを使用する必要があります。
- グラフのエッジとノードはそれぞれ何を象徴していますか?
- クリティカル タスク セットを達成するために、タスクを破棄する必要がありますか?
また、検索するアルゴリズムをいくつか推奨していただければ、それは素晴らしいことです.