Skip to content

mart1ny/HackOsen2025

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Система индивидуального проектирования маршрутов для предпринимателей

Проект представляет собой интеллектуальную систему маршрутизации, которая помогает предпринимателям оптимизировать свои выезды к клиентам с использованием машинного обучения и графовых нейронных сетей.

🎯 Задача проекта

Реализовать систему индивидуального проектирования маршрутов для выезда предпринимателей, которая:

  • Анализирует географические данные клиентов
  • Оптимизирует маршруты с учетом временных ограничений
  • Учитывает обеденные перерывы и рабочие часы
  • Предоставляет API для интеграции с внешними системами

📁 Структура проекта

/backend - Backend 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 - Быстрый старт для разработчиков

/ML - Машинное обучение и исследования

Все исследования и модели для решения задачи маршрутизации:

Основные файлы:

  • 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)

🚀 Быстрый старт

Backend API

cd backend
pip install -r requirements.txt
python main.py

ML исследования

cd ML
pip install -r requirements.txt
# Запуск исследований и обучения моделей

🔧 Основные возможности

Backend API:

  • Аутентификация: JWT токены (access/refresh), регистрация пользователей, защищенные маршруты
  • Управление данными: Загрузка CSV файлов с клиентами, создание датасетов, управление клиентами
  • Оптимизация маршрутов: Загрузка предобученной GNN модели, вычисление оптимальных путей с учетом временных окон
  • Временные ограничения: Учет рабочих часов (9:00-18:00), обеденных перерывов (13:00-14:00)
  • Статистика: Анализ эффективности маршрутов, время в пути, количество посещений

ML компоненты:

  • Классические алгоритмы: TSP решение через Christofides, OSM графы дорог
  • GNN модели: Графовые нейронные сети для обучения оптимальной маршрутизации
  • Reinforcement Learning: DQN агенты для обучения стратегий маршрутизации
  • Интеграция с картами: Yandex API для реальных дорожных условий
  • Визуализация: Интерактивные HTML карты с отображением маршрутов

📊 API Endpoints

  • POST /api/jacobs/routing/optimize - Оптимизация маршрута
  • GET /api/jacobs/routing/status - Статус системы
  • POST /api/jacobs/auth/login - Авторизация
  • POST /api/jacobs/dataset/upload - Загрузка данных клиентов

🧠 Технологии

Backend:

  • FastAPI - веб-фреймворк с автоматической документацией
  • SQLAlchemy - ORM для работы с базой данных
  • JWT - аутентификация через токены
  • Pydantic - валидация данных и схемы
  • SQLite - база данных для хранения пользователей и клиентов

Машинное обучение:

  • PyTorch - фреймворк для нейронных сетей
  • NetworkX - работа с графами и алгоритмы TSP
  • OSMnx - загрузка и обработка OpenStreetMap данных
  • Folium - интерактивные карты
  • Pandas/NumPy - обработка данных

Интеграции:

  • Yandex API - получение реальных дорожных условий
  • OpenRouteService - маршрутизация
  • OpenStreetMap - картографические данные

Проект разработан в рамках хакатона для решения реальных задач предпринимателей

About

Intelligent routing system for entrepreneurs that optimizes client visits using ML and Graph Neural Networks. Backend FastAPI with JWT and dataset management, plus GNN/RL models to compute time‑windowed optimal routes with real traffic via Yandex API and OpenRouteService. Interactive maps and a ready API for integration.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors