🔷 INFORMATIONS GÉNÉRALES
Champ Détail
Nom du script script_246cvmn_246.py
Version 1.0.0
Date de création 02/03/2026
Auteur / Demandeur IA Générée (Gemini)
Objectif principal Simuler un écosystème dynamique (proies/prédateurs) avec gestion de l’énergie, de la reproduction et du cycle de vie.
🎯 DESCRIPTION FONCTIONNELLE
📌 Que fait ce script ?
Le script crée une simulation visuelle animée où des Lions (prédateurs) et des Zèbres (proies) interagissent dans un environnement clos. Chaque agent possède son propre système biologique (faim, âge, reproduction) et des comportements spécifiques (chasse, fuite, cohésion de troupeau).
📌 Problème résolu
Ce script illustre les dynamiques de populations et les systèmes multi-agents. Il permet d’observer l’équilibre fragile entre la disponibilité des ressources (herbe), la survie des herbivores et la pression de prédation.
⚙️ SPÉCIFICATIONS TECHNIQUES
🐍 Environnement
Élément Valeur
Version Python 3.8+
OS cible Windows / Linux / MacOS
Mode d’exécution Interface graphique (Matplotlib Animation)
📦 Dépendances / Librairies
numpy : Calculs vectoriels et gestion des positions.
matplotlib : Moteur de rendu graphique et animation.
📥 ENTRÉES (INPUTS)
📂 Fichiers / Sources de données en entrée
Aucun fichier externe : Les paramètres de simulation (vitesse, énergie, nombre initial d’agents) sont codés en dur dans les classes Environment, Lion et Zebra.
📤 SORTIES (OUTPUTS)
📂 Fichiers / Données en sortie
Visuel : Fenêtre interactive affichant la carte de l’herbe et le mouvement des points (Lions en rouge, Zèbres en blanc).
Console/Titre : Affichage en temps réel du nombre d’individus par espèce dans le titre du graphique.
🧱 STRUCTURE DU SCRIPT
script_246cvmn_246.py
📌 IMPORTS : numpy, matplotlib.pyplot, animation.
📌 CLASSE MÈRE (Agent) : Logique commune (mouvement, rebonds, métabolisme).
📌 CLASSES SPÉCIFIQUES :
Lion : Algorithme de traque et d’attaque.
Zebra : Comportement de groupe (Boids simplifié) et fuite.
📌 ENVIRONNEMENT : Gestion de la grille d’herbe et du cycle de reproduction.
📌 MAIN (Animation) : Configuration de FuncAnimation.
🔧 Détail des fonctions principales
Fonction Paramètres Retour Rôle
Agent.move() dt None Met à jour la position et gère les collisions avec les bords.
Lion.think() agents, grass None Calcule la force de poursuite vers la proie la plus proche.
Zebra.think() agents, grass None Calcule la fuite, la cohésion de troupeau et la consommation d’herbe.
Environment.step() None None Gère la repousse de l’herbe et le cycle de vie global.
🔄 LOGIQUE / ALGORITHME
Initialisation : Création de la grille d’herbe (20×20) et d’une population initiale (3 Lions, 25 Zèbres).
Boucle de Simulation :
L’herbe repousse légèrement.
Chaque agent analyse son entourage (think).
Chaque agent se déplace et consomme de l’énergie (move, update_biology).
Si l’énergie est > 80%, l’agent se divise (reproduction).
Si l’énergie est < 0 ou l’âge > max, l’agent meurt.
Rendu : Mise à jour des coordonnées des points sur le graphique.
🚨 GESTION DES ERREURS
Division par zéro : Gérée dans la méthode normalize (vérification de la norme du vecteur).
Sortie de zone : Gérée par np.clip et inversion de direction sur les axes X/Y.
✅ CONTRAINTES & RÈGLES MÉTIER
Règle 1 : Un Lion ne mange que s’il est à une distance < 2.0 d’un Zèbre.
Règle 2 : Les Zèbres fuient les Lions avec une force 6x supérieure à leur force de cohésion sociale.
Règle 3 : La reproduction divise l’énergie du parent par 2.
🧪 TESTS ATTENDUS
Surpopulation : Vérifier si une trop grande population de Zèbres épuise l’herbe.
Extinction : Vérifier si les Lions meurent si tous les Zèbres disparaissent.
Stabilité : Observer si un équilibre de population se crée après 500 itérations.
📝 EXEMPLE D’UTILISATION
▶️ Lancement en ligne de commande
Bash
python script_246cvmn_246.py



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