script_246cvmn_246.py

49,00 

Simuler un écosystème dynamique (proies/prédateurs) avec gestion de l’énergie, de la reproduction et du cycle de vie.

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

🔷 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.

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

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