script_244cvmn_244.py

49,00 

Simuler un écosystème de savane interactif utilisant une approche de modélisation à base d’agents (ABM) pour observer les dynamiques populations-ressources.

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

🔷 INFORMATIONS GÉNÉRALES

Champ Détail

Nom du script script_244cvmn_244.py

Version 1.0.0

Date de création 02/03/2026

Auteur / Demandeur IA Généré (Modèle Gemini)

Objectif principal Simuler un écosystème de savane interactif utilisant une approche de modélisation à base d’agents (ABM) pour observer les dynamiques populations-ressources.

🎯 DESCRIPTION FONCTIONNELLE

📌 Que fait ce script ?

Ce script simule la survie, la reproduction et l’évolution de trois espèces (Lions, Zèbres, Éléphants) dans un environnement doté d’une ressource dynamique (végétation). Il utilise matplotlib pour afficher une animation en temps réel montrant les déplacements, les chasses, la consommation d’herbe et l’évolution génétique des traits (vitesse).

📌 Problème résolu

Il permet d’étudier visuellement et statistiquement les cycles de Lotka-Volterra (prédateur-proie), l’impact de la raréfaction des ressources sur une population et la sélection naturelle (mutation des gènes de vitesse et de coût énergétique).

⚙️ SPÉCIFICATIONS TECHNIQUES

🐍 Environnement

Élément Valeur

Version Python 3.8+ (pour le typage typing)

OS cible Tous (Windows / Linux / MacOS)

Mode d’exécution CLI / Interface Graphique (Matplotlib)

📦 Dépendances / Librairies

Librairies standard (built-in)

random, typing, math

Librairies externes (pip install)

numpy (Calculs matriciels et positions)

matplotlib (Moteur de rendu graphique et animation)

📥 ENTRÉES (INPUTS)

📂 Fichiers / Sources de données

Le script est autonome et utilise un dictionnaire de configuration interne nommé CONFIG.

CONFIG (dict) : Définit la taille du monde, les rayons de détection, les taux de reproduction et les probabilités de mutation.

📤 SORTIES (OUTPUTS)

📂 Fichiers / Données en sortie

Type Chemin / Format Description

Graphique Fenêtre Matplotlib Animation interactive du monde en 2D.

Rapport Fenêtre Matplotlib Graphiques de synthèse affichés à la fermeture de la simulation.

🧱 STRUCTURE DU SCRIPT

script_244cvmn_244.py

📌 CONFIGURATION : Constantes globales (vitesse, énergie, mutation).

📌 CLASSE VegetationGrid : Gère la croissance logistique de l’herbe sur une grille 2D.

📌 CLASSE MÈRE Agent : Logique commune (vieillissement, mouvement, mutation, perception).

📌 CLASSES FILLES :

Lion : Comportement de chasse et poursuite.

Zebra : Comportement de fuite et pâturage rapide.

Elephant : Comportement robuste, consommation lente, grande longévité.

📌 CLASSE SafariSimulation : Orchestre les tours de jeu (steps) et l’historique.

📌 VISUALISATION : Fonctions run_simulation et update pour l’animation.

🔧 Détail des fonctions principales

Fonction Paramètres Retour Rôle

step_simulation() Aucun None Calcule un tour complet (mouvement -> repas -> mort -> naissance).

perceive_environment() agents, cible, rayon List[Agent] Détecte les proies ou prédateurs aux alentours.

reproduce() Aucun Optional[Agent] Crée un descendant avec des traits légèrement modifiés (mutation).

update(frame) frame: int tuple Met à jour les positions des points sur le graphique pour l’animation.

🔄 LOGIQUE / ALGORITHME

Initialisation : Génération de la grille de végétation et placement aléatoire des agents.

Boucle de Simulation (par Step) :

Végétation : Repousse selon un modèle logistique.

Agents :

Détection des cibles (nourriture ou menace).

Mouvement (vers, loin de, ou aléatoire).

Consommation d’énergie et vieillissement.

Test de reproduction (si énergie > seuil).

Visualisation : Rafraîchissement de la Heatmap (herbe) et des Scatter plots (animaux).

🚨 GESTION DES ERREURS

Mortalité : Si l’énergie tombe à 0 ou si l’âge dépasse max_lifespan, l’agent est marqué comme alive = False.

Surpopulation : Un nettoyage automatique de la liste self.agents est effectué au-delà de 500 agents pour préserver la mémoire.

Bornes : Mode toroïdal (les agents qui sortent à droite réapparaissent à gauche).

✅ CONTRAINTES & RÈGLES MÉTIER

Mutation : Les traits mutés sont bridés entre 50% et 200% des valeurs de base pour éviter des agents « immortels » ou « 超-rapides » non réalistes.

Fuite : La fuite consomme plus d’énergie qu’un déplacement normal pour les herbivores.

🧪 TESTS ATTENDUS

Stabilité : Vérifier que la population de zèbres ne tombe pas à zéro dès les 100 premiers steps.

Génétique : Observer si la vitesse moyenne des zèbres augmente avec le temps (sélection par la pression des lions).

📝 EXEMPLE D’UTILISATION

▶️ Lancement en ligne de commande

Bash

python script_244cvmn_244.py

Le script ouvrira une fenêtre affichant la savane. À la fermeture de celle-ci, un rapport statistique final s’affiche automatiquement.

Avis

Il n’y a pas encore d’avis.

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

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