Правила назначения водителей
Материал из Такси Диспетчер
Содержание |
Правила назначения водителей
При оформлении заказа, важно быстро определить и назначить водителя, как можно больше удоволетворяющего условиям заказа. Для автоматизации назначения водителя на заказ, реализованы правила назначения водителей, с помощью которых можно гибко настроить порядок назначения водителей. Вы можете настроить правила выбрав пункт меню Автоматизация|Правила назначения водителей главного окна программы. Совместно с настройками программы - Добавление заказа|Фильтры водителей и Работа водителей блок поиска водителей по стоянкам, правила назначения водителей позволяют полностью автоматизировать процесс определения и назначения наилучшего водителя. Окно Правил назначения водителей выглядит таким образом:
С помощью этого инструмента можно создать глобальные правила назначения водителей, нажатием на кнопку Добавить алгоритм в верхней части окна, появится запрос о названии правила:
например как показано на рисунке - правило Ближайшие стоянки создано на левой панели. Внутри этого правила можно создать несколько фильтров (отображены на правой панели)для наилучшего определения водителя. Новый фильтр добавляется нажатием кнопки Добавить фильтр в правой части окна, появится диалог настройки параметров фильтра:
Правила:
"=" - равно "!=" - не равно ">" - больше ">=" - больше или равно "<" - меньше "=<" - меньше или равно "min" - минимальный выбор из списка водителей "max" - максимальынй выбор из списк водителей
Порядок работы: На фильтр поступает список всех водителей на смене с предвдущего фильтра. Если предыдущего фильтра не было - тогда весь список водителей на смене Фильтр по своему правилу удаляет часть (или всех) водителей и оставляет не больший список. Этот список поступает на следующий фильтр или уже на выбор лучшего водителя.
Пример: Фильтр - ближайшеи стоянки, указанный на картинке сверху.
После его применения будут рассматриваться только водители, которые находятся на смене в ближайших секторах (в том числе и свободные и занятые, на всех классах машин и т.д.). Для дальнейшей фильтрации, необходимо добавлять дальнейшие правила
Алгоритм работы
С помощью заданых правил, Вы можете создавать алгоритмы назначения водителей по заказам.
Для этого Вым нужно создавать группы правил, которые должны быть упорядовачены в порядке их важности.
Например, нам нужно создать правила для назначения первого по стоянке, водителя, и, если таких не найдено, первого по ближайшей стоянке.
Тогда необходимо:
Правило 1: Назначение первого по текущей стоянке Правило 2: Назначение первого по ближайшей текущей стоянке
При выполнении алгоритма, если "Правило 1" определит водителя, тогда он и будет назначен. Если "Правило 1" не определит никакого водителя, тогда алгоритм перейдет к следующему правила - "Правило 2", которое в данном примере может дать первого по очереди из билджайших стоянок.
Если под указанные правила подходят несколько водителей - тогда алгоритм случайным образом выберет одного из них. Поэтому, чтобы такого не было, внимательно формируйте условия для правил назначения водителей, чтобы не было неоднознчностей.
Параметры правил
Поле фильтр содержит раскрывающийся список с возможными вариантами настройки. При установке значения параметра, соблюдайте его значение - числовой или строкоывй это параметр. Если Вы оставляете поле "Значение" пустым, тогда этот параметр при определении заказа будет взят из самого заказа.
Пример:
Класс машины = <пусто>
Результат обработки фильтра:
а) если в заказе указан класс машины "Универсал", тогда будут использоваться только водители с машинами, класса "Универсал";
б) если в заказе не указан класс машины, тогда будут исползоваться все классы машины.
Список фильтров
- Класс машины - обозначает класс автомобиля, из справочника Типы машин - строковый параметр.
- Состояние - обозначает состояние водителя, которое настраивается в справочнике Состояние водителя
- Тип состояния - обозначает главный тип состояния водителя - занят/свободен - смотрите Состояние водителя, тип состояния.
- Расстояние - обозначает расстояние, на котором находится водитель от адреса заказа (по карте, с учетом маршрута). Вычисляется динамически для каждого водителя - от его последнего положения до адреса подачи машины.
- Бонусы - обозначает количество призовых очков, которые присваиваются водителям за работу или нарушения. Значение бонусов Вы можете просматривать в карточку водителя. Параметр числовой. Этот параметр удобно испольозвать для огранизации фильтарций водителей ("первый сорт", "второй сорт") - автоматические правила начисляют этот параметр, в зависимости от качества работы водителя, а в правилах автоназначения, Вы можете его использовать.
- Простой без заказа - обозначает время простоя водителя без заказа независимо от стоянки (выборка из всех водителей на смене). Значение задается в минутах.
- Простой на стоянке - обозначает время простоя без заказа на стоянке и позволяет формировать очередь по времени. Значение задается в минутах.
- Количество заказов - количество заказов, которые водитель выполнил на этой смене.
- Канал ID - обозначает номер канала, на котором должен работать водитель - системный номер из справочника Каналы.
- Порядок - порядок водителя на стоянке, учитывается именно упорядочивание водителей по прибытию, а не по времени простоя без заказа. Просматривать Вы его можете в отображении стоянок, изменять там же. Числовое занчение (1 - 1-ый по стоянке и т.д.)
- Доезд - обозначает нахождение водителя в очереди доезда, очередь доезда - позволяет отслеживать ещё не прибывших на стоянку водителей, но направляющихся к ней с помощью выделения курсивом водителя в дереве водителей. Значение может быть 0 (не находиться на доезде) и 1 (находиться на доезде под заказом, еще не закончив его).
- ID Стоянка - обозначает номер стоянки, можно поставить конкретный номер, чтобы назначались водители с определённых стоянок или оставить пустым, тогда будут определяться водители с основной стоянки, ближайшей к адресу заказа
- Своя - обозначает, свою (1 в поле "значение") или не свою машину (пустое поле "значение") - смотрите справочник Машины - "Принадлежит таксопарку". Значение числовое.
- Цена - обозначает цену заказа. Можно создавать правила для передачи денежных заказов своим ("нужным") водителям. Значение числовое.
- Ближайшие стоянки - работает аналогично ID Стоянки, но позволяет отслеживать все приписанные ближайшие стоянки к основной при пустом значении поля. Задание ближайших стоянок происходит в справочнике Ближайшие стоянки.
- Комания - описывает тех водителей, которые хотя выполнить данный заказ - поле в таблице заказов - "Компания водителей" для данного заказа. Значение строковое, перечисление позывных. Используется при работе без стоянок с одной общей очередью, когда заказ отдается всем водителям на смене, далее, из желающих выполнить заказ, назначается самый оптимальный по нужным параметрам водитель.
- Класс ID машины - обозначает внутренний номер класса автомобиля, которые указаны в справочнике Типы машин - числовой параметр, смотрите справочник Типы машин.
- Тендер - тендерный или не тендерный заказ. Если -1 то это правило не будет использоваться для тендерных заказов, при остальных значениях это правило будет применяться и к тендерным заказам - подробнее Модуль обработки удалённых заказов на тендерной основе для программы «Такси-Диспетчер» на основе Астерикса.
К каждому из фильтров назначения определяется операнд: "=" - равно, "!=" - не равно, ">" - больше, ">=" - больше или равно, "<" - меньше, "=<" - меньше или равно, "min" - минимально, "max" - максимально, - позволяющий задавать условия срабатывания фильтра. Кроме того, к каждому фильтру можно (установив флажок Автоматически, и нажав кнопку Условие справа) добавить правило автоматического назначения водителя при срабатывании фильтра. Диалог настройки автоматического условия аналогичен настройке фильтра.
Примеры
Сделать распределение стандартное заказов по районам
Перебирать по стоянке заказа, водителей начиная с первого до последнего.
Для этого нужно указать такие правила:
- Состояние = 1 - перебирать только свободных водителей
- Стоянка = "пусто" - по текущей стоянка заказа.
- Стоянка != 0 - чтобы по заказов без стоянок не переназначало водителей.
Автоматически назначать:
- Порядок - минимальный - назначать тех, кого еще не назначало с минимальным порядком.
После этого нужно включить на странце Настройки "Локальная автоматизация" на сервере установить автоинформеры и указать - автоматически назначать водителя на этом компьютере.
Как указать ближайшие стоянки
Есть основной алгоритм Ближайшие стоянки, указанный в левой части окна Правил назначения водителей для него настроен фильтр (в правой части окна) с параметрами:
Ближайшие стоянки (nearstops) = <пусто>
Что означает, срабатывание правила для назначения водителя с одной из ближайшие стоянки, приписанной к основной стоянке, определившейся по адресу заказа.
К этому фильтру добавлено условие автоматического назначения с параметрами: Порядок = 1
Что означает, автоматическое назначение первого в очереди водителя из всех ближайших стоянок. Следовательно при Добавление заказа на закладке Выбор водителя уже будет автоматически назначен водитель, удоволетворяющий заданным правилам. Так как на ближайших стоянках могут быть несколько водителей, у коотрых будет порядок 1 - то тогда буджет автоматически назначен один из этих водителей в порядке нахождения стоянок "куда" (сверху-вниз) в справочнике ближайшие стоянки.
Аналогично работает и флажок Назначать вручную - только это правило будет применяться в ручном порядке.