-
MarouaneSaoud a rédigé63702845
- VSN Trip Algo - Système d'Optimisation de Trajets
- Description
- Démarrage de l'Application
- Prérequis
- Commandes de Démarrage
- Fonctionnalités Principales
- 1. Optimisation des Trajets
- 2. Gestion des Passagers
- 3. Calcul d'Itinéraires
- 4. Gestion du Temps
- Structure du Projet
- Services Principaux
- TripOptimizer (optimized_trip_generator.py)
- ORSClient (ors_client.py)
- Processus d'Optimisation
- Performance et Optimisation
- Système de Cache
- Traitement Parallèle
- Gestion des Erreurs
- Dépendances Principales
- Utilisation
- Métriques et Suivi
README.md 3.68 Kio
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 :
- Configurer l'environnement approprié
- Démarrer les conteneurs Docker nécessaires
- 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
optimized_trip_generator.py
)
TripOptimizer (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
ors_client.py
)
ORSClient (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
-
Regroupement Initial
- Analyse des données des passagers
- Création de groupes selon les critères définis
- Validation des contraintes
-
Clustering
- Regroupement géographique
- Analyse des contraintes temporelles
- Optimisation des groupes
-
Calcul des Itinéraires
- Utilisation de l'API ORS
- Calcul des distances et durées
- Optimisation des routes
-
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