Как заявки превращаются в общий маршрут

В обычном автобусном расписании маршрут и время отправления заданы заранее, даже если заранее неизвестно, сколько людей ими воспользуется. При поездке по запросу порядок обратный: сначала поступают заявки, а затем система рассчитывает, как обслужить их одной машиной.

Алгоритм сопоставляет места посадки и высадки, желаемое время поездки и доступную вместимость. Если несколько пассажиров едут в одном направлении, их можно объединить; автобус заезжает к дополнительной точке, только если это укладывается в допустимые время и расстояние. Такой расчёт похож на составление маршрута курьеру, которому нужно забрать и развезти несколько заказов, — с тем отличием, что пассажиры также задают временные ограничения.

Почему маршрут не может подстраиваться бесконечно

Каждый новый заезд помогает одному пассажиру, но добавляет время другим. Поэтому системе приходится искать компромисс между удобством посадки поблизости и предсказуемой продолжительностью поездки. Учитываются не только запросы, но и ограничения: сколько людей помещается в автобус, сколько занимает объезд и успеет ли машина к назначенному времени.

В малонаселённой местности это особенно важно: фиксированный автобус может проехать длинный участок почти без пассажиров, а небольшая машина — собрать тех, кому действительно нужна поездка. Но гибкость требует координации: пассажирам нужно сообщить о поездке заранее или уточнить её, а перевозчику — иметь возможность пересчитать маршрут и направить машину туда, где она нужна.

В итоге транспортная услуга строится не вокруг неизменной линии на карте, а вокруг группы совместимых поездок. Чем удачнее они совпадают по времени и направлению, тем меньше лишних километров приходится на каждого пассажира.