"Умная очередь" как алгоритм поиска водителя
Наша платформа использует метод справедливого распределения заказов между водителями, который называется «умная очередь».
Когда поступает заказ "на сейчас", система:
ищет лучших водителей на расстоянии до 100км;
составляет список доступных водителей, фильтруя их по рабочему радиусу (который устанавливается водителем лично в приложении);
формирует очередь из водителей в списке, сортируя их по следующим показателям: репутация, время ожидания и расстояние от водителя до места посадки;
предлагает заказ водителям по очереди.
Таким образом заказы справедливо распределяются между водителями.
Очередь формируется из водителей, которые территориально находятся ближе всего к клиенту. Коэффициент приоритетности для каждого водителя автоматически вычисляется как среднее значение следующих показателей:
а) репутация (рейтинг водителя, который основывается на его действиях: отклонить/игнорировать/завершить/отменить заказ);
б) время ожидания (как долго водитель ожидает новый заказ);
в) расстояние от водителя до клиента:
водитель в <1 мин езды до клиента чаще всего получает больший приоритет, чем водитель в >1 мин езды до клиента;
водитель в 1-5 мин езды до клиента получает больший приоритет, чем водитель в 5-8 мин езды до клиента;
водители в более чем 8 мин езды до клиента получают наименьший приоритет.
Затем алгоритм формирует очередь из водителей согласно их приоритетности.
Наконец, система предлагает заказ водителям из списка в зависимости от их места в этой очереди (1й, 2й, 3й) до тех пор, пока заказ не будет принят.
Преимущества алгоритма умной очереди
Время ожидания такси для клиента оптимизируется, что улучшает пользовательский опыт.
Справедливое распределение заказов между водителями на основе их реальных показателей, благодаря чему все водители остаются занятыми.
Водителям не нужно буквально «стоять в очереди». Система автоматически отслеживает их порядок в очереди.
Водители мотивированы принимать новые заказы, поскольку если они будут игнорировать или отклонять заказы, их время ожидания обнуляется, следовательно, они перемещаются в конец очереди в ожидании следующего заказа.
Пример работы алгоритма умной очереди
Давайте смоделируем ситуацию: два водителя находятся в пределах 5-минутной езды от запрошенного места посадки.
В этом примере заказ находится в пределах рабочей зоны обоих водителей. Они оба находятся в пределах пяти минутах езды до клиента, имеют примерно одинаковую карму, но разное время ожидания. Один из них закончил работу 3 минуты назад, а другой ждет заказ уже 15 минут.
На основе среднего значения всех показателей (расстояние до клиента + репутация + время ожидания) первым заказ получит водитель, который ждет 15 минут. Если этот водитель откажется от предложения, заказ отправится следующему в очереди (в нашем примере - водителю, который ждет 3 минуты). До тех пор, пока новый водитель не принял заказ, предыдущий может предложить свои услуги.
Система запускает автоматический поиск водителей дважды:
Изначально система предлагает заказ тем водителям, в чей рабочий радиус попадает адрес посадки предлагаемого заказа.
Если водители не были найдены, поиск расширяется и система учитывает водителей, в чей удвоенный рабочий радиус попадает адрес посадки предлагаемого заказа. Например, если рабочий радиус водителя установлен на 10 км, ему будет предложен заказ с точкой посадки на расстоянии 20 км от местоположения водителя.
Если точка посадки находится за пределами рабочего радиуса водителя, приложение уведомит его об этом на экране с новым заказом:

