Я работаю над приложением для планирования полетов (отказ от ответственности: это проект для колледжа, поэтому, пожалуйста, никаких ответов по коду). Пожалуйста, внимательно прочтите этот вопрос, прежде чем отвечать, так как у него много особенностей :(
Во-первых, некоторые проблемы с терминологией:
У вас есть самолеты и полеты, и вам нужно объединить их в пары. Для простоты предположим, что самолет становится свободным, как только самолет на нем приземлился.
Полеты рассматриваются как задачи:
- У них есть продолжительность
- У них есть зависимости
- У них есть ожидаемая дата / время начала
Самолеты можно рассматривать как ресурсы, которые будут использоваться для выполнения задач (или полетов в нашей терминологии).
Для полетов нужен конкретный тип самолета. например Для полета 200 требуется самолет типа B. Самолеты, очевидно, относятся к одному и только одному конкретному типу, например, Plane Airforce One относится к типу C.
«Проект» - это совокупность всех рейсов авиакомпании за определенный период времени.
The functionality required is:
Поиск минимально возможной продолжительности указанного проекта
Самый ранний и самый поздний возможный старт задачи (полета)
Критические задачи, основанные на предоставленных данных, с идентификаторами предыдущих задач.
Автоматически объединяйте рейсы и самолеты в пары, чтобы все полеты совпадали с самолетом. (Примечание: продолжительность полетов фиксированная)
Получите диаграмму Ганта с расписанием проектов, в которой все полеты начинаются как можно раньше, графически отображая все ранее упомянутые данные (зависимости, информацию о времени и т. Д.)
Итак, вопрос: как мне этого добиться? Особенно:
- We are required to use a graph.
- What do the graph's edges and nodes respectively symbolise?
- Обязаны ли мы отказываться от задач для достижения поставленных критических задач?
Если бы вы также могли порекомендовать нам несколько алгоритмов, это было бы здорово.