onizuka_bfya4uxf1kkkeapj_333.py

49,00 

Optimiser et visualiser une tournée de livraison pharmaceutique en utilisant l’algorithme du « plus proche voisin ».

UGS : onizuka_bfya4uxf1kkkeapj_333.py Catégorie : Étiquette :

🔷 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.

Soyez le premier à laisser votre avis sur “onizuka_bfya4uxf1kkkeapj_333.py”

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *