Skip to content
Extraits de code Groupes Projets

VSN Trip Algo - Système d'Optimisation de Trajets

Description

VSN Trip Algo est un système sophistiqué d'optimisation de trajets conçu pour gérer efficacement le transport de passagers. Le système utilise des algorithmes avancés pour optimiser les itinéraires, gérer les contraintes temporelles et géographiques, et assurer une expérience de transport optimale.

Démarrage de l'Application

Prérequis

  • Docker et Docker Compose installés
  • PowerShell 7 ou supérieur

Commandes de Démarrage

Pour démarrer l'application, utilisez le script PowerShell run.ps1 avec l'un des environnements suivants :

# Environnement local
.\run.ps1 -Environment local

# Environnement de recette
.\run.ps1 -Environment rec

# Environnement de production
.\run.ps1 -Environment pro

Le script va :

  1. Configurer l'environnement approprié
  2. Démarrer les conteneurs Docker nécessaires
  3. Lancer l'application

Fonctionnalités Principales

1. Optimisation des Trajets

  • Regroupement intelligent des passagers
  • Calcul des itinéraires optimaux
  • Gestion des contraintes temporelles
  • Support des trajets aller et retour
  • Détection des routes à péage

2. Gestion des Passagers

  • Regroupement par critères multiples :
    • Jour de la semaine
    • Type de semaine (pair/impair)
    • Direction (départ/retour)
    • Heure
  • Clustering géographique
  • Gestion des établissements desservis

3. Calcul d'Itinéraires

  • Intégration avec OpenRouteService (ORS)
  • Calcul précis des distances et durées
  • Optimisation des routes
  • Système de cache pour améliorer les performances

4. Gestion du Temps

  • Calcul précis des temps de trajet
  • Gestion des fenêtres temporelles
  • Optimisation des horaires de départ et d'arrivée
  • Fusion des trajets similaires

Structure du Projet

Services Principaux

TripOptimizer (optimized_trip_generator.py)

Service principal qui gère l'optimisation des trajets :

  • Regroupement des passagers
  • Optimisation des itinéraires
  • Calcul des temps de trajet
  • Gestion des départs et retours
  • Détection des routes à péage

ORSClient (ors_client.py)

Client pour l'API OpenRouteService :

  • Gestion des requêtes de calcul d'itinéraires
  • Système de cache pour optimiser les performances
  • Mémorisation des résultats avec LRU cache

Processus d'Optimisation

  1. Regroupement Initial

    • Analyse des données des passagers
    • Création de groupes selon les critères définis
    • Validation des contraintes
  2. Clustering

    • Regroupement géographique
    • Analyse des contraintes temporelles
    • Optimisation des groupes
  3. Calcul des Itinéraires

    • Utilisation de l'API ORS
    • Calcul des distances et durées
    • Optimisation des routes
  4. Fusion des Trajets

    • Analyse des similarités
    • Fusion selon la tolérance temporelle
    • Optimisation finale

Performance et Optimisation

Système de Cache

  • Mise en cache des routes communes
  • Réduction des appels API
  • Amélioration des performances

Traitement Parallèle

  • Utilisation du multiprocessing
  • Optimisation basée sur les cœurs CPU
  • Traitement simultané des groupes

Gestion des Erreurs

  • Logging détaillé
  • Validation des données
  • Gestion des exceptions

Dépendances Principales

  • OpenRouteService (ORS)
  • NumPy
  • Multiprocessing
  • Requests

Utilisation

Le système est conçu pour être utilisé dans un environnement de transport de passagers, avec :

  • Gestion des horaires scolaires
  • Support des trajets réguliers
  • Optimisation des ressources
  • Réduction des coûts de transport

Métriques et Suivi

  • Temps de génération des trajets
  • Nombre d'appels API
  • Performance du système
  • Qualité des optimisations