Я занимаюсь разработкой сайта Планировщика путешествий.В настоящее время в этом случае есть несколько простых вещей, т. Е. Сейчас веб-сайт сможет планировать только автобусные маршруты, время движения автобусов в настоящее время недоступно.Таким образом, это означает, что у нас есть только автобусные маршруты, сохраненные в БД, и поскольку время в автобусе не доступно, поэтому время ожидания для путешественника также не имеет значения.Доступно время и расстояние, пройденное между двумя остановками для отдельного автобуса.
Я думаю, что было бы лучше использовать неориентированный взвешенный график, хранящий затраты времени и расстояния каждой автобусной остановки для каждого отдельного автобуса.Затем я мог бы использовать алгоритм Дейкстры для вычисления кратчайшего пути между двумя точками, введенными пользователем, на основе времени или расстояния в соответствии с предпочтениями пользователя.Я бы выяснил, требуются ли два или три автобуса с помощью простых функций C #, если автобусные маршруты пересекаются на остановках, а затем используют эти остановки пересечения, чтобы путешественник сменил автобус.Но для каждого автобуса был бы индивидуальный график.Альтернативный (не уверен, что это правильно) способ состоит в том, чтобы использовать график, содержащий каждую автобусную остановку города в качестве узлов, а затем использовать эту технику, чтобы выяснить способ проезда между двумя остановками.Какой правильный подход?Должен ли я использовать алгоритм A * вместо алгоритма Дейкстры?
Несколько общих моментов для дизайна: я хотел бы, чтобы приложение было расширяемым, чтобы я мог добавить другие транспортные средства позже, когда возникнет такая необходимость.Кроме того, время автобусов также может быть добавлено позже, если это возможно, без серьезных изменений на сайте.Я видел немало экспертов, которые работали над очень сложными проектами транспортировки.Поэтому, пожалуйста, помогите мне с наилучшим способом реализации этой функциональности наиболее масштабируемым, модульным и расширяемым способом.