🔷 INFORMATIONS GÉNÉRALES
Champ Détail
Nom du script script_268cvmn_268.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 la dynamique de population entre des prédateurs (loups) et des proies (cerfs) dans un environnement 2D.
🎯 DESCRIPTION FONCTIONNELLE
📌 Que fait ce script ?
Le script simule un écosystème fermé où des agents (Loups et Cerfs) interagissent. Les loups chassent les cerfs pour gagner de l’énergie, tandis que les cerfs tentent de fuir les loups. Les deux espèces se reproduisent lorsqu’elles atteignent un seuil d’énergie spécifique et peuvent mourir d’épuisement ou de prédation.
📌 Problème résolu
Il modélise les cycles biologiques de type Lotka-Volterra via une approche « système multi-agents » pour observer comment les comportements individuels (fuite, poursuite) influencent l’équilibre global d’une population.
⚙️ SPÉCIFICATIONS TECHNIQUES
🐍 Environnement
Élément Valeur
Version Python 3.x
OS cible Tous (Windows / Linux / MacOS)
Mode d’exécution CLI / Script de visualisation
📦 Dépendances / Librairies
numpy : Calculs mathématiques, vecteurs de fuite et gestion des positions.
matplotlib : Génération du graphique de population final.
📥 ENTRÉES (INPUTS)
📂 Paramètres de simulation (Variables hardcodées)
# Nom Type Obligatoire Description Exemple
1 x_max, y_max int ✅ Oui Dimensions de la grille (forêt) 50, 50
2 initial_deer int ✅ Oui Nombre initial de proies 150
3 initial_wolf int ✅ Oui Nombre initial de prédateurs 50
4 simulation_steps int ✅ Oui Durée de la simulation 150
📤 SORTIES (OUTPUTS)
📂 Données en sortie
Type Chemin / Format Description
Graphique Fenêtre Matplotlib Courbes d’évolution des populations au fil du temps.
Console Standard Output Résumé des populations finales (ex: Cerfs=120, Loups=30).
🧱 STRUCTURE DU SCRIPT
Plaintext
script_268cvmn_268.py
│
├── 📌 IMPORTS (numpy, matplotlib)
├── 📌 CLASSES (POO)
│ ├── Animal (Classe mère)
│ ├── Wolf (Hérite d’Animal)
│ └── Deer (Hérite d’Animal)
├── 📌 FONCTION DE SIMULATION
│ └── run_simulation()
└── 📌 MAIN (Exécution et affichage)
🔧 Détail des fonctions principales
Fonction Paramètres Retour Rôle
Animal.move() x_max, y_max None Gère le déplacement aléatoire et la perte d’énergie de base.
Wolf.hunt() deers, x_max, y_max Deer or None Logique de traque : cherche la proie la plus proche et se déplace vers elle.
Deer.flee() wolves, x_max, y_max None Logique d’esquive : calcule un vecteur opposé aux loups à proximité.
run_simulation() Divers tuple Boucle principale qui orchestre les tours de jeu et stocke l’historique.
🔄 LOGIQUE / ALGORITHME
Initialisation : Création des listes d’objets Wolf et Deer avec positions aléatoires.
Boucle Temporelle (Steps) :
Phase Loups : Chaque loup cherche une proie. S’il mange, son énergie monte. S’il est trop chargé en énergie, il crée un nouvel objet Wolf.
Phase Cerfs : Chaque cerf vérifie la présence de loups. S’il y a danger, il fuit ; sinon, il bouge au hasard. Si son énergie est suffisante (survie longue), il se reproduit.
Mise à jour : Les agents avec une énergie ≤0 sont supprimés.
Résultat : Enregistrement des totaux pour le graphique.
🚨 GESTION DES ERREURS
Bords de carte : Utilisation de l’opérateur modulo % pour créer un monde torique (les agents qui sortent à droite réapparaissent à gauche).
Division par zéro : Gérée lors du calcul du vecteur de fuite (if dist_sq > 0).
✅ CONTRAINTES & RÈGLES MÉTIER
Règle 1 : Un loup consomme un cerf uniquement s’il est à une distance ≤1.
Règle 2 : La fuite d’un cerf coûte plus d’énergie (0.3) qu’un mouvement normal (0.1).
Règle 3 : La reproduction divise l’énergie du parent par deux pour l’attribuer à l’enfant.
🧪 TESTS ATTENDUS
Équilibre : Vérifier que si les loups mangent tous les cerfs, la population de loups s’effondre (famine).
Surpopulation : Vérifier que sans prédateurs, les cerfs croissent de manière exponentielle (limité ici par l’absence de nourriture pour cerfs dans le script actuel).
📝 EXEMPLE D’UTILISATION
▶️ Lancement
Bash
python script_268cvmn_268.py
📋 Sortie console
Plaintext
✅ Simulation terminée après 150 étapes.
Population finale : Cerfs=184, Loups=42




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