🔷 INFORMATIONS GÉNÉRALES
Champ Détail
Nom du script script_273cvmn_273.py
Version 1.0.0
Date de création 07/03/2026
Auteur / Demandeur IA Générée (Gemini)
Objectif principal Simuler et visualiser l’équilibre entre les employés (Cerfs) et le stress managérial (Loups) dans un environnement de travail (Open Space).
🎯 DESCRIPTION FONCTIONNELLE
📌 Que fait ce script ?
Ce script utilise une simulation multi-agents pour modéliser la vie d’un bureau. Il suit l’évolution de deux populations : les Employés, qui travaillent (mangent) et se multiplient (recrutement), et le Stress/Management de Crise, qui se propage en « consommant » l’énergie des employés, menant parfois au burnout ou à la démission.
📌 Problème résolu
Il permet de visualiser de manière ludique et mathématique les cycles de vie d’une entreprise et d’identifier les points de bascule où le stress submerge la force de travail, entraînant un effondrement de la population d’employés.
⚙️ SPÉCIFICATIONS TECHNIQUES
🐍 Environnement
Élément Valeur
Version Python 3.8+
OS cible Tous (Windows / Linux / MacOS)
Mode d’exécution Interface Graphique (Matplotlib Animation)
📦 Dépendances / Librairies
Librairies standard : Aucune (en dehors de l’import interne)
Librairies externes :
numpy (Calcul matriciel et aléatoire)
matplotlib (Visualisation et animation)
📥 ENTRÉES (INPUTS)
📂 Paramètres de configuration (Hardcodés)
# Nom Type Description Valeur
1 SIZE int Taille de la grille (Open Space) 50
2 INITIAL_DEER int Nombre de départ d’employés 50
3 INITIAL_WOLF int Niveau de stress initial 10
📤 SORTIES (OUTPUTS)
📂 Fichiers / Données en sortie
Type Format Description
Graphique Matplotlib Plot Fenêtre interactive affichant la grille 2D et les courbes de population en temps réel.
🧱 STRUCTURE DU SCRIPT
script_273cvmn_273.py
📌 IMPORTS : NumPy, Matplotlib (Pyplot & Animation).
📌 PARAMÈTRES : Constantes de simulation (énergies, tailles).
📌 CLASSES :
Creature (Base) : Logique de mouvement et survie.
Deer (Employé) : Logique de travail et recrutement.
Wolf (Stress) : Logique de prédation et propagation.
📌 MOTEUR DE SIMULATION : OpenSpaceSimulation (Gestion des tours).
📌 MAIN : run_simulation() (Initialisation et boucle d’animation).
🔧 Détail des fonctions principales
Fonction Paramètres Retour Rôle
move(size) size: int None Déplace l’agent aléatoirement sur la grille avec effet de tore (bouclage).
step() Aucun None Calcule une itération complète (mouvement, repas, chasse, reproduction).
get_grid() Aucun np.array Génère une matrice 2D représentant l’état actuel pour l’affichage.
update(frame) frame: int Artist Met à jour les données du graphique pour chaque image de l’animation.
🔄 LOGIQUE / ALGORITHME
Phase Employé (Cerf) :
Déplacement → Perte d’énergie.
Action de travail → Gain d’énergie.
Si énergie > 50% → Division (Recrutement d’un nouveau membre).
Phase Stress (Loup) :
Déplacement → Si collision avec un employé, l’employé est supprimé (Burnout).
Gain d’énergie suite à la « consommation » de l’employé.
Si énergie très élevée → Propagation du stress à une case voisine.
Phase Nettoyage :
Suppression des agents dont l’énergie est ≤0.
🚨 GESTION DES ERREURS
Dépopulation totale : Si le nombre de cerfs tombe à 0, le stress (loups) finit par s’éteindre faute de « nourriture ». La simulation continue de tourner à vide.
Instabilité numérique : Un recrutement trop rapide peut saturer la mémoire (non limité dans ce script, mais géré par le coût énergétique).
✅ CONTRAINTES & RÈGLES MÉTIER
Règle 1 : L’énergie est la ressource vitale. Un mouvement coûte -1.
Règle 2 : Un « Loup » gagne +5 d’énergie par employé éliminé.
Règle 3 : La grille est cyclique (un agent sortant à droite réapparaît à gauche).
🧪 TESTS ATTENDUS
# Cas de test Entrée Résultat attendu
1 Équilibre Paramètres par défaut Oscillation naturelle des populations.
2 Stress Intense INITIAL_WOLF = 100 Extinction rapide des employés.
3 Bureau Vide INITIAL_DEER = 0 Disparition immédiate du stress.
📊 PERFORMANCES ATTENDUES
Temps d’exécution : ~200ms par « cycle de travail » pour une grille 50×50.
Consommation mémoire : Très faible (< 100 Mo). 📝 EXEMPLE D'UTILISATION ▶️ Lancement via terminal : Bash python script_273cvmn_273.py 📋 Sortie console/visuelle : Une fenêtre s'ouvre avec : À gauche : Des points jaunes (employés) et violets/verts (stress) s'agitant. À droite : Un graphique montrant les courbes de population qui se croisent.



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