onizuka_beq8538vef7c6g8g_333.py

49,00 

Simuler et visualiser graphiquement la dynamique proie-prédateur (Cerfs vs Loups) sur une grille 2D avec gestion des ressources (herbe).

UGS : onizuka_beq8538vef7c6g8g_333.py Catégorie : Étiquettes : , ,

🟦 INFORMATIONS GÉNÉRALES

Champ Détail

Nom du script onizuka_beq8538vef7c6g8g_333.py

Version 1.0.0

Date de création 25/03/2026

Auteur Gemini (Basé sur le code fourni)

Objectif principal Simuler et visualiser graphiquement la dynamique proie-prédateur (Cerfs vs Loups) sur une grille 2D avec gestion des ressources (herbe).

🎯 DESCRIPTION FONCTIONNELLE

📌 Que fait ce script ?

Ce script exécute une simulation multi-agents où des Cerfs (proies) et des Loups (prédateurs) interagissent sur une grille. L’herbe repousse au fil du temps, les cerfs la mangent pour survivre, et les loups chassent les cerfs. Le script génère une animation en temps réel montrant l’évolution des populations et de la végétation.

📌 Problème résolu

Il modélise de manière simplifiée un système biologique complexe pour observer les cycles de vie, de reproduction et d’extinction selon des paramètres environnementaux variables (modèle de type Lotka-Volterra spatialisé).

⚙️ SPÉCIFICATIONS TECHNIQUES

🐍 Environnement

Élément Valeur

Version Python 3.x

OS cible Tous (Windows, Linux, MacOS)

Mode d’exécution Graphique (Interface Matplotlib)

📦 Dépendances / Librairies

numpy : Gestion de la grille (matrice d’herbe) et calculs aléatoires.

matplotlib : Visualisation et moteur d’animation (animation.FuncAnimation).

📥 ENTRÉES (INPUTS)

Le script utilise des constantes globales en guise de configuration :

# Nom Type Description Valeur par défaut

1 GRID_SIZE int Taille de la grille carrée 25

2 INITIAL_DEER int Nombre de cerfs au départ 15

3 INITIAL_WOLVES int Nombre de loups au départ 5

4 GRASS_REGROW_RATE float Vitesse de repousse de l’herbe 0.05

5 REPRODUCTION_THRESHOLD int Seuil d’énergie pour procréer 15

📤 SORTIES (OUTPUTS)

Animation Visuelle : Une fenêtre interactive affichant la grille, les points marrons (cerfs) et les triangles rouges (loups).

Statistiques en temps réel : Affichage dans le titre du graphique du nombre d’individus par espèce et du numéro du tour.

🧱 STRUCTURE DU SCRIPT

Plaintext

onizuka_beq8538vef7c6g8g_333.py

├── 📌 CONFIGURATION (Constantes)

├── 📌 CLASSES (POO)

│ ├── Entity (Classe mère)

│ ├── Deer (Hérite d’Entity)

│ └── Wolf (Hérite d’Entity)

├── 📌 INITIALISATION (Grille & Populations)

└── 📌 MOTEUR D’ANIMATION

└── update(frame) → Logique de cycle de vie & Rendu

🔧 Détail des classes/fonctions

Fonction/Méthode Paramètres Retour Rôle

Entity.move() Aucun None Déplacement aléatoire adjacent sur la grille (torique).

Deer.eat(map) grass_map None Consomme l’herbe sur la case actuelle et gagne de l’énergie.

Wolf.hunt(deers) list[Deer] bool Tente de manger un cerf sur la même case.

update(frame) frame None Gère un tour complet : repousse, mouvements, repas, mort, naissance.

🔄 LOGIQUE / ALGORITHME

Phase Végétale : L’herbe sur chaque case de la grille augmente de GRASS_REGROW_RATE.

Phase Proie (Cerf) :

Se déplace ➔ Mange ➔ Perd de l’énergie.

Si énergie < 0 ➔ Mort. Si énergie > Seuil ➔ Division en deux (reproduction).

Phase Prédateur (Loup) :

Se déplace ➔ Chasse.

Si chasse réussie ➔ Gain d’énergie fort.

Si chasse échouée ➔ Malus de fatigue.

Si énergie > Seuil+10 ➔ Division en deux (reproduction).

Phase Rendu : Mise à jour de l’affichage imshow (herbe) et scatter (animaux).

🚨 GESTION DES ERREURS

Population éteinte : Le script continue de tourner même si une espèce disparaît (affichage de listes vides).

Limites de grille : Utilisation de l’opérateur modulo (% GRID_SIZE) pour permettre aux entités de sortir d’un côté et réapparaître de l’autre (monde torique).

✅ CONTRAINTES & RÈGLES MÉTIER

Règle 1 : Un cerf consomme toute l’herbe d’une case (remise à 0) dès qu’elle dépasse le seuil de 0.5.

Règle 2 : Les loups sont plus résistants au départ (15 énergie) mais perdent de l’énergie à chaque mouvement s’ils ne capturent rien.

Règle 3 : La reproduction consomme la moitié de l’énergie du parent pour la donner à l’enfant.

🧪 TESTS ATTENDUS

Stabilité : Vérifier si l’écosystème survit plus de 100 tours sans extinction totale.

Surpopulation : Tester avec GRASS_REGROW_RATE = 1.0 pour voir si les cerfs envahissent la grille.

Famine : Tester avec INITIAL_DEER = 0 pour confirmer que les loups meurent tous rapidement.

📝 EXEMPLE D’UTILISATION

▶️ Lancement direct

Bash

python onizuka_beq8538vef7c6g8g_333.py

Avis

Il n’y a pas encore d’avis.

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

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