🔷 INFORMATIONS GÉNÉRALES
Champ Détail
Nom du script onizuka_bfya4uxf1kkkeapj_333.py
Version 1.0.0
Date de création 19/03/2026
Auteur / Demandeur IA Généré (Gemini)
Objectif principal Optimiser et visualiser une tournée de livraison pharmaceutique en utilisant l’algorithme du « plus proche voisin ».
🎯 DESCRIPTION FONCTIONNELLE
📌 Que fait ce script ?
Le script définit les coordonnées géographiques d’un dépôt et de cinq pharmacies. Il calcule ensuite l’itinéraire le plus court en visitant chaque point une seule fois avant de revenir au dépôt, puis génère une carte graphique du trajet.
📌 Problème résolu
Il répond au besoin d’optimisation logistique simple (Problème du Voyageur de Commerce – TSP) pour réduire la distance parcourue lors de livraisons urbaines ou régionales.
⚙️ SPÉCIFICATIONS TECHNIQUES
🐍 Environnement
Élément Valeur
Version Python 3.x
OS cible Tous (Windows / Linux / MacOS)
Mode d’exécution CLI / Script autonome
📦 Dépendances / Librairies
Librairies standard : Aucune.
Librairies externes :
matplotlib==3.x (Visualisation graphique)
numpy==1.x (Calculs mathématiques/Euclidiens)
📥 ENTRÉES (INPUTS)
📂 Fichiers / Sources de données en entrée
Type Chemin / Format Description
Dictionnaire interne locations Contient les noms et coordonnées (x,y) des points de livraison.
📤 SORTIES (OUTPUTS)
📂 Fichiers / Données en sortie
Type Chemin / Format Description
Image PNG route_pharmaceutique_optimisee.png Carte du trajet avec les points et les segments de route.
Console Print message Confirmation de la génération du fichier.
🧱 STRUCTURE DU SCRIPT
onizuka_bfya4uxf1kkkeapj_333.py
📌 IMPORTS (matplotlib, numpy)
📌 CONFIGURATION (Dictionnaire locations)
📌 FONCTIONS
calculate_distance() → Calcul de la distance euclidienne.
solve_routing() → Logique d’optimisation (Heuristique).
📌 VISUALISATION (Bloc de code Matplotlib pour le rendu)
📌 EXPORT / AFFICHAGE (savefig et show)
🔧 Détail des fonctions principales
Fonction Paramètres Retour Rôle
calculate_distance(p1, p2) p1, p2: tuple float Calcule la distance directe entre deux points.
solve_routing(locs) locs: dict list, list, list Applique l’algorithme du plus proche voisin.
🔄 LOGIQUE / ALGORITHME
Étape 1 : Initialisation au point « Dépôt ».
Étape 2 : Identifier tous les points non-visités.
Étape 3 : Calculer la distance entre la position actuelle et tous les points restants.
Étape 4 : Se déplacer vers le point le plus proche, le marquer comme « visité ».
Étape 5 : Répéter jusqu’à ce que tous les points soient visités.
Étape 6 : Ajouter un dernier segment pour retourner au dépôt initial.
🚨 GESTION DES ERREURS
Cas d’erreur Type d’exception Comportement attendu
Coordonnées manquantes KeyError / IndexError Le script s’arrête avec une erreur de structure.
Bibliothèques absentes ModuleNotFoundError Message demandant d’installer numpy ou matplotlib.
✅ CONTRAINTES & RÈGLES MÉTIER
Règle 1 : Le point de départ est impérativement le « Dépôt » (index 0).
Règle 2 : Le trajet doit être un circuit fermé (retour au dépôt).
Règle 3 : Les distances sont calculées à vol d’oiseau (Euclidien), ne prenant pas en compte le réseau routier réel.
📝 EXEMPLE D’UTILISATION
▶️ Lancement en ligne de commande
Bash
python onizuka_bfya4uxf1kkkeapj_333.py
📋 Sortie attendue dans la console
Plaintext
Le graphique a été généré avec succès : route_pharmaceutique_optimisee.png
📊 PERFORMANCES ATTENDUES
Temps d’exécution : <1 seconde pour 6 points. Volumétrie : Supporte jusqu'à une centaine de points (l'algorithme est en O(n2)). Consommation mémoire : Négligeable (<50 Mo).



Avis
Il n’y a pas encore d’avis.