Giter Club home page Giter Club logo

shift-planning's Introduction

Предсказание спроса и планирование рабочих смен

Продукт представляет собой реализацию проекта «Предсказание спроса и планирование рабочих смен» в рамках зимней школы CompTech School 2022.

Описание папок:

  • data - папка с исходными и прогнозными данными;
  • docs - папка с документацией проекта;
  • stage1 - папка с кодом, где прогнозируется количество заказов по часам на 7 дней вперед;
  • stage2 - папка с кодом, где рассчитывается количество необходимых курьеров;
  • stage3 - папка с кодом, где оптимизируется количество смен.

Назначение

Основная цель продукта - спланировать привлечение такого количества курьеров на неделю вперед по дням и по часам каждого дня недели, чтобы полностью компенсировать дневные колебания спроса, учитывая утренние и вечерние пики.

Принцип работы

Продукт планирует рабочие смены для курьеров по доставке продуктов и бытовых товаров на 7 дней вперед. Продукт на ежедневной основе «тригерит» функцию (F) для подсчета рабочих смен. Функция F:

  1. Принимает:
  • 1.1. Таблицу с актуальной историей по заказам;
  • 1.2. Таблицу с опозданиями курьеров;
  1. Возвращает:
  • 2.1. Таблицу с расписанием рабочих смен.

Схема проекта

Целевая аудитория (пользователи продукта)

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

Установка и настройка

Описание операций:

main

Для установки необходимых библиотек необходимо выполнить:

  pip install -r requirements.txt

Для получения прогноза спроса, числа курьеров и распределения по сменам на следующую неделю необходимо подключить файл main.py. После этого запустить функцию:

  main() -> (pd.DataFrame, pd.DataFrame)

Stage 1.

Для получения распределения заказов на следующую неделю неделю необходимо подключить файл stage1_main.py. После этого запустить функцию:

  get_next_week(path: str) -> pd.DataFrame

Stage 2.

Для получения оптимального распределения курьеров на следующую неделю неделю необходимо подключить файл stage2_main.py. После этого запустить функцию:

  get_optimal_partners(path_orders: str, path_partners_delays: str, pred_orders: pd.DataFrame) -> pd.DataFrame

Stage 3.

Для получения оптимального распределения курьеров по сменам необходимо подключить файл stage3_main.py. После этого запустить функцию:

  get_partners_distribution(pred_partners: pd.DataFrame) -> pd.DataFrame

Зависимости

При создании системы команда использовала язык программирования python и его библиотеки:

  • numpy
  • pandas
  • matplotlib
  • scikit-learn
  • category-encoders
  • holidays
  • ortools

Команда

  • Захаров Андрей - Куратор
  • Ратушный Алексей - Data Scientist
  • Майоров Константин - Data Scientist
  • Кузнецов Никита - Data Scientist
  • Желтова Кристина - Data Scientist
  • Завьялов Фёдор - Data Scientist
  • Мельникова Маргарита - Data Scientist
  • Сарыглар Орлан - технический писатель

shift-planning's People

Contributors

orlansar avatar fphyds avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.