Требования:
- Знание основ линейной алгебры, методов оптимизации, теории вероятностей и математической статистики;
- Уверенное владение Python и/или C++;
- Знание классических задач комбинаторной оптимизации (задача коммивояжера, задача о маршрутизации транспортных средств, задача об упаковке в контейнеры) и соответствующих алгоритмов их решения;
- Практический опыт решения оптимизационных задач на солверах (Google OR Tools, Gurobi, IBM Cplex, CBC и пр.) или с разработкой собственного солвера.
Будет плюсом:
- Глубокое понимание алгоритмов для решения следующих классов задач: линейное программирование, целочисленное программирование, комбинаторная оптимизация;
- Опыт применения численных методов линейной алгебры;
- Опыт работы с Reinforcement Learning;
- Опыт работы с имитационным моделированием.
Чем предстоит заниматься:
- Строить модели оптимизации, и решать их. Модели как линейного/линейно-целочисленного программирования, так и модели программирования в ограничениях;
- Взаимодействовать с бизнесом, понимать их ограничения, описывать плюсы и минусы различных подходов к оптимизации;
- Помогать продуктовым командам интегрировать модели в продукты;
- Проводить сравнительный анализ доработок и оптимизаций;
- Проверять продуктовые гипотезы;
- Искать узкие места в работе с маршрутами и заказами;
- Повышать эффективность доставки заказов курьерами на различных видах транспорта.