Проект представляет собой интеллектуальную систему маршрутизации, которая помогает предпринимателям оптимизировать свои выезды к клиентам с использованием машинного обучения и графовых нейронных сетей.
Реализовать систему индивидуального проектирования маршрутов для выезда предпринимателей, которая:
- Анализирует географические данные клиентов
- Оптимизирует маршруты с учетом временных ограничений
- Учитывает обеденные перерывы и рабочие часы
- Предоставляет API для интеграции с внешними системами
FastAPI приложение с системой аутентификации и API для маршрутизации:
main.py- Точка входа в приложение, настройка CORS, SSL сертификатов, подключение роутеровapp/auth.py- Система аутентификации с JWT токенами (регистрация, логин, refresh токены)app/routing.py- API для оптимизации маршрутов, загрузка GNN модели, вычисление оптимальных путейapp/dataset.py- Загрузка CSV файлов с данными клиентов, создание записей в БДapp/schemas.py- Pydantic схемы для валидации данных (пользователи, клиенты, датасеты)app/database.py- Настройка SQLAlchemy, модели БД (User, Client, Dataset)app/model/improved_gnn_dynamic.pth- Предобученная GNN модель для маршрутизации
docs/- API документация, интеграционные гайдыQUICK_START.md- Быстрый старт для разработчиков
Все исследования и модели для решения задачи маршрутизации:
model.py- Классические алгоритмы маршрутизации (TSP с Christofides, OSM графы, визуализация Folium)model_yandex.py- GNN модель с интеграцией Yandex API, обучение с подкреплением (DQN)pipi.py- Пайплайн для запуска предобученной модели на новых данныхrl/model_rl.py- Reinforcement Learning модели для обучения агентов маршрутизации
*.html- Интерактивные карты с маршрутами (rostov_map.html, route_map_yandex.html)
cd backend
pip install -r requirements.txt
python main.pycd ML
pip install -r requirements.txt
# Запуск исследований и обучения моделей- Аутентификация: JWT токены (access/refresh), регистрация пользователей, защищенные маршруты
- Управление данными: Загрузка CSV файлов с клиентами, создание датасетов, управление клиентами
- Оптимизация маршрутов: Загрузка предобученной GNN модели, вычисление оптимальных путей с учетом временных окон
- Временные ограничения: Учет рабочих часов (9:00-18:00), обеденных перерывов (13:00-14:00)
- Статистика: Анализ эффективности маршрутов, время в пути, количество посещений
- Классические алгоритмы: TSP решение через Christofides, OSM графы дорог
- GNN модели: Графовые нейронные сети для обучения оптимальной маршрутизации
- Reinforcement Learning: DQN агенты для обучения стратегий маршрутизации
- Интеграция с картами: Yandex API для реальных дорожных условий
- Визуализация: Интерактивные HTML карты с отображением маршрутов
POST /api/jacobs/routing/optimize- Оптимизация маршрутаGET /api/jacobs/routing/status- Статус системыPOST /api/jacobs/auth/login- АвторизацияPOST /api/jacobs/dataset/upload- Загрузка данных клиентов
- FastAPI - веб-фреймворк с автоматической документацией
- SQLAlchemy - ORM для работы с базой данных
- JWT - аутентификация через токены
- Pydantic - валидация данных и схемы
- SQLite - база данных для хранения пользователей и клиентов
- PyTorch - фреймворк для нейронных сетей
- NetworkX - работа с графами и алгоритмы TSP
- OSMnx - загрузка и обработка OpenStreetMap данных
- Folium - интерактивные карты
- Pandas/NumPy - обработка данных
- Yandex API - получение реальных дорожных условий
- OpenRouteService - маршрутизация
- OpenStreetMap - картографические данные
Проект разработан в рамках хакатона для решения реальных задач предпринимателей