Основной посыл — если нужно что-то дорисовать на картинке с текстом, то можно привязаться к координатам текста.
Например, есть целевое словосочетание, которое нужно найти в большом отчете, можно прочитать весь текст и ответить на вопрос — есть оно в отчете или нет. Но нагляднее не только ответить на вопрос «есть в тексте», но и показать конкретную страницу (картинку) с выделенным в рамку словосочетанием. Такую картинку/отчет можно показывать руководителю.
Реализация — алгоритм на python, закодили «Алгоритм набора расписания» по картинке в статье. Алгоритм выполняется циклично для всех тороговых агентов и всех дневных расписаний каждого агента. Заполняем расписание агента, корректируем доступные для заполнения следующего расписания точки (убираем точки первого агента), заполняем расписание следующего агента и т.д. пока доступные точки есть.
Как использовали данные — положили их в несколько pandas DataFrame, их не много — БД не стали использовать. Промежуточные данные складывали в списки и DataFrame.
Спасибо.
Метрики дали на хакатоне, главная — количество торговых агентов. Про геометрию — в задании даны адреса торговых точек, по ним можно самостоятельно получить координаты, а уже по ним работать с фигурами (но мы пока не пробовали). Мы использовали только матрицу расстояний от точки до точки.
Попробовали применять случайности — рандомно выбирать первую точку маршрута, плохо помогло.
Попробовали изменять лимит дневного времени ( от 8 часов до 9 часов 40 минут) — это помогло равномерно «утрясти» точки в расписаниях, чтобы не получилось, что все агенты загружены, а последние два съездять всего в пару точек.
Помогло управление критерием «частая точка с большим временем работы» — меняли показатель на сколько она частая (2 — 4 раза в неделю посещение) и как долго в ней нужно работать, т.е. управляли отбором таких точек.
Уменьшить расписание 13 до 12 торговых агентов помогло добавление условия: при заполнении первого рабочего дня очередного торгового агента (ТА) мы смотрим на точки в расписании предыдущего ТА и ищем точки как можно дальше от них. С этих дальних точек начинаем набор нового расписания. Таким образом расставляем расписания ТА по разным концам города. До 11 ТА расписание уменьшить нельзя — в один из дней будет превышено рабочее время сотрудников (даже без учета времени на передвижения между точками), остается только оптимизировать длину маршрутов для 12 ТА.
Например, есть целевое словосочетание, которое нужно найти в большом отчете, можно прочитать весь текст и ответить на вопрос — есть оно в отчете или нет. Но нагляднее не только ответить на вопрос «есть в тексте», но и показать конкретную страницу (картинку) с выделенным в рамку словосочетанием. Такую картинку/отчет можно показывать руководителю.
Как использовали данные — положили их в несколько pandas DataFrame, их не много — БД не стали использовать. Промежуточные данные складывали в списки и DataFrame.
Метрики дали на хакатоне, главная — количество торговых агентов. Про геометрию — в задании даны адреса торговых точек, по ним можно самостоятельно получить координаты, а уже по ним работать с фигурами (но мы пока не пробовали). Мы использовали только матрицу расстояний от точки до точки.
Попробовали применять случайности — рандомно выбирать первую точку маршрута, плохо помогло.
Попробовали изменять лимит дневного времени ( от 8 часов до 9 часов 40 минут) — это помогло равномерно «утрясти» точки в расписаниях, чтобы не получилось, что все агенты загружены, а последние два съездять всего в пару точек.
Помогло управление критерием «частая точка с большим временем работы» — меняли показатель на сколько она частая (2 — 4 раза в неделю посещение) и как долго в ней нужно работать, т.е. управляли отбором таких точек.
Уменьшить расписание 13 до 12 торговых агентов помогло добавление условия: при заполнении первого рабочего дня очередного торгового агента (ТА) мы смотрим на точки в расписании предыдущего ТА и ищем точки как можно дальше от них. С этих дальних точек начинаем набор нового расписания. Таким образом расставляем расписания ТА по разным концам города. До 11 ТА расписание уменьшить нельзя — в один из дней будет превышено рабочее время сотрудников (даже без учета времени на передвижения между точками), остается только оптимизировать длину маршрутов для 12 ТА.