script_264cvmn_264.py

49,00 

Simuler et visualiser la dynamique proie-prédateur (Cerfs vs Loups) via un modèle à agents sur une grille 2D.

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

🔷 INFORMATIONS GÉNÉRALES

Champ Détail

Nom du script script_264cvmn_264.py

Version 1.0.0

Date de création 07/03/2026

Auteur / Demandeur IA Généré

Objectif principal Simuler et visualiser la dynamique proie-prédateur (Cerfs vs Loups) via un modèle à agents sur une grille 2D.

🎯 DESCRIPTION FONCTIONNELLE

📌 Que fait ce script ?

Ce script simule un écosystème fermé où deux types d’agents (Cerfs et Loups) interagissent sur une grille toroïdale. Il combine une animation spatiale en temps réel des déplacements et un graphique synchronisé illustrant l’évolution des populations, rappelant les modèles de Lotka-Volterra.

📌 Problème résolu

Il permet d’étudier visuellement et numériquement l’équilibre fragile d’un écosystème, l’impact de la disponibilité des proies sur la survie des prédateurs, et les cycles d’extinction ou de prolifération en fonction de paramètres biologiques (énergie, reproduction, faim).

⚙️ 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 (built-in)

random (pour les choix de direction)

# Librairies externes (pip install)

numpy (calculs matriciels et positions)

matplotlib (moteur de rendu graphique et animation)

📥 ENTRÉES (INPUTS)

📂 Paramètres de configuration (Variables GlobalES)

# Nom Type Obligatoire Description Exemple

1 GRID_SIZE int ✅ Oui Taille du monde (côté de la grille) 50

2 N_CERFS_INIT int ✅ Oui Population initiale de proies 100

3 PROBA_REPRO_CERF float ✅ Oui Chance de naissance par étape 0.4

4 ENERGIE_MAX_LOUP int ✅ Oui Seuil de faim et énergie max 10

📤 SORTIES (OUTPUTS)

📂 Fichiers / Données en sortie

Type Chemin / Format Description

Graphique Fenêtre interactive Visualisation 2D (Cerfs en vert, Loups en rouge)

Logs Console Message d’extinction et étape finale

🧱 STRUCTURE DU SCRIPT

script_264cvmn_264.py

├── 📌 IMPORTS (numpy, matplotlib, random)

├── 📌 CONSTANTES / CONFIG (Paramètres biologiques et simulation)

├── 📌 CLASSES D’AGENTS

│ ├── Agent (Classe mère : position, déplacement)

│ ├── Cerf (Hérite d’Agent : reproduction simple)

│ └── Loup (Hérite d’Agent : gestion énergie, faim, reproduction)

├── 📌 LOGIQUE SYSTÈME

│ └── EcosystemSimulation (Gestion des listes d’agents et moteur de simulation)

└── 📌 VISUALISATION & MAIN (visualize() et update())

🔧 Détail des fonctions principales

Fonction Paramètres Retour Rôle

move() Aucun None Déplace l’agent (8 directions + sur place)

step() Aucun bool Calcule une étape (manger, mourir, naître)

update(frame) frame: int tuple Met à jour les graphiques pour FuncAnimation

🔄 LOGIQUE / ALGORITHME

ÉTAPE 1 → Initialisation des populations à des positions aléatoires.

ÉTAPE 2 → Phase Cerfs : Déplacement + tentative de reproduction.

ÉTAPE 3 → Phase Loups : Déplacement + consommation énergie + vérification collision (manger Cerf).

ÉTAPE 4 → Phase Survie : Si Loup a mangé → reproduction possible. Si Loup énergie ≤0 → mort.

ÉTAPE 5 → Mise à jour graphique et stockage de l’historique des populations.

🚨 GESTION DES ERREURS

Cas d’erreur Type d’exception Comportement attendu

Extinction totale Logique interne anim.event_source.stop() : Arrêt propre de l’animation

Population nulle ValueError Géré par une vérification if coords.size > 0 pour éviter le crash de scatter

✅ CONTRAINTES & RÈGLES MÉTIER

Règle 1 (Monde Toroïdal) : Si un agent dépasse le bord (ex: x=51), il réapparaît de l’autre côté (x=1) via l’opérateur modulo.

Règle 2 (Métabolisme) : Les loups perdent 1 point d’énergie par tour, peu importe leurs actions.

Règle 3 (Prédation) : Un loup ne peut manger qu’un seul cerf par tour s’ils partagent la même coordonnée exacte.

🧪 TESTS ATTENDUS

# Cas de test Entrée Résultat attendu Statut

1 Survie Proie N_LOUPS_INIT=0 Explosion de la population verte ⬜ À tester

2 Famine Prédateur N_CERFS_INIT=0 Extinction rapide des loups rouges ⬜ À tester

3 Équilibre Paramètres par défaut Oscillations cycliques des populations ⬜ À tester

📊 PERFORMANCES ATTENDUES

Temps d’exécution : Fluide jusqu’à ~1000 agents. Ralentissement possible au-delà dû à la recherche linéaire de collision.

Mémoire : Faible, gestion par listes d’objets Python.

📝 EXEMPLE D’UTILISATION

▶️ Lancement direct

Bash

python script_264cvmn_264.py

📋 Sortie console type

Plaintext

Simulation terminée à l’étape 342. Extinction.

Avis

Il n’y a pas encore d’avis.

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

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