Dragon_Coder Ответов: 1

Система слежения за маршрутом поезда


Привет,

Я надеюсь создать приложение для поиска поездов, когда пользователь выберет источник и пункт назначения, чтобы показать поезд, который нужно взять. Я планирую использовать .(веб-API) &ампер сети; SQL-сервер для проекта. В настоящее время я разработал нижеприведенную таблицу. Но я не могу придумать алгоритм поиска маршрутов. Станции определяются в главной таблице, и ниже приведенная таблица является таблицей, используемой для хранения маршрута. Последовательность используется для определения в пределах маршрута в выбранном узле, что является следующей остановкой.


1. Каждая станция имеет вверх и вниз поезда [А - Б &амп; Б-]
2. Иногда пользователю может потребоваться выбрать два или более поездов, чтобы завершить свое путешествие.

Что я уже пробовал:

DECLARE @TrainTimeTable TABLE( 
    ID              INT,
    RoutID          INT, -- Route id (ABC to DEF)
    Sequance        INT, -- determine the next station of the same route
    BeforeStation   INT, - A
    CurrentStation  INT, - B
    [Arr.Time]      TIME, 
    [Dep.Time]      TIME
)

Mehdi Gholam

Посмотрите на проблему коммивояжера, ветви и связанные алгоритмы ...

Dragon_Coder

Будет ли работать коммивояжер? У меня нет расстояний между станциями, кроме того, иногда путешественнику приходится садиться на два или более поездов, чтобы завершить свое путешествие

Mehdi Gholam

Это не простая проблема.

Graeme_Grant

Вам не нужно расстояние, у вас есть время...

1 Ответов

Рейтинг:
1

Patrice T

Цитата:
Посмотрите на проблему коммивояжера, ветви и связанные алгоритмы ...

Извините, что не согласен,но это не чайная ложка.
Проблема коммивояжера-Википедия[^]

Это больше похоже на проблему кратчайшего пути с поворотом.
Алгоритм Дейкстры - Википедия[^]

Нет никакого способа сделать это в SQL. Вы должны загрузить данные с сервера и применить алгоритм.
Вы должны определить, что является кратчайшим путем, вероятно, что-то вроде самого быстрого пути из точки А в точку Б за заданное начальное время. Это "функция затрат", которую вам нужно определить.