🔷 INFORMATIONS GÉNÉRALES
Champ Détail
Nom du script script_314cvmn_314.py
Version 1.0.0
Date de création 09/03/2026
Auteur / Demandeur IA Générée (Gemini)
Objectif principal Simuler et visualiser dynamiquement la croissance, la dispersion et la mortalité d’une population végétale sur une grille 2D.
🎯 DESCRIPTION FONCTIONNELLE
📌 Que fait ce script ?
Le script exécute une simulation d’automate cellulaire modélisant le cycle de vie d’une flore. Il gère trois états (vide, jeune, adulte), la reproduction par dispersion de graines dans un voisinage défini, et la régulation naturelle par la mort aléatoire, le tout affiché via une animation en temps réel.
📌 Problème résolu
Il permet de modéliser visuellement des dynamiques de populations biologiques simples, d’étudier l’impact des probabilités de survie et de reproduction sur l’occupation d’un espace, et de visualiser des motifs d’expansion végétale.
⚙️ SPÉCIFICATIONS TECHNIQUES
🐍 Environnement
Élément Valeur
Version Python 3.x
OS cible Tous (Windows / Linux / MacOS)
Mode d’exécution Interface graphique (Matplotlib Window)
📦 Dépendances / Librairies
# Librairies externes (pip install)
numpy (Calcul matriciel pour la grille)
matplotlib (Moteur de rendu graphique et animation)
📥 ENTRÉES (INPUTS)
📂 Paramètres de la classe FloraSim
# Nom Type Obligatoire Description Exemple
1 size int ❌ Non Taille de la grille (côté) 100
2 density float ❌ Non Densité initiale de plantes adultes 0.05
3 seed_prob float ❌ Non Probabilité de dispersion de graines 0.1
4 death_prob float ❌ Non Probabilité de mort par cycle 0.02
📤 SORTIES (OUTPUTS)
📂 Visualisation
Type Description
Fenêtre Interactive Animation FuncAnimation montrant l’évolution de la grille.
Grille (Numpy) Matrice d’entiers (0, 1, 2) mise à jour à chaque frame.
🧱 STRUCTURE DU SCRIPT
script_314cvmn_314.py
│
├── 📌 IMPORTS (numpy, matplotlib)
├── 📌 CLASSE FloraSim (Cœur de la logique)
│ ├── __init__() → Initialisation de la grille
│ └── update() → Logique de cycle de vie (mort, semis, croissance)
├── 📌 CONFIGURATION (Instanciation de la simulation)
└── 📌 VISUALISATION (Matplotlib & FuncAnimation)
🔧 Détail des fonctions principales
Fonction Paramètres Retour Rôle
__init__ size, density, etc. None Initialise la grille avec des plantes aléatoires.
update Aucun np.array Calcule l’état suivant de la simulation.
animate i (frame index) list Met à jour les données de l’image pour l’animation.
🔄 LOGIQUE / ALGORITHME
ÉTAPE 1 → Initialisation d’une matrice 2D avec une densité D de plantes adultes (état 2).
↓
ÉTAPE 2 → Pour chaque cellule :
↓
SI ADULTE (2) :
– Tirage aléatoire pour la MORT (Pdeath) → si succès, devient VIDE (0).
– Tirage aléatoire pour le SEMIS (Pseed) → si succès, dépose une GRAINE (1) sur une case vide proche.
SI JEUNE (1) :
– Croissance automatique → devient ADULTE (2).
↓
ÉTAPE 3 → Mise à jour globale de la grille et rendu graphique.
↓
ÉTAPE 4 → Répétition (Boucle d’animation).
🚨 GESTION DES ERREURS
Le script actuel est un prototype de recherche/visualisation :
Absence de Try/Except : Le script suppose que les dépendances sont installées.
Voisinage : Utilise un modulo (% self.size) pour gérer les bords de la grille (monde torique), évitant les erreurs d’index hors limites.
✅ CONTRAINTES & RÈGLES MÉTIER
Règle 1 : Une graine ne peut être déposée que sur une case vide (state == 0).
Règle 2 : Le voisinage de dispersion est un carré de 5×5 autour de la plante (rayon de 2).
Règle 3 : Le passage de « Jeune » à « Adulte » est déterministe (prend exactement 1 cycle).
🧪 TESTS ATTENDUS
# Cas de test Entrée Résultat attendu
1 Survie Pdeath=0 La grille doit finir totalement remplie d’adultes.
2 Extinction Pdeath=1.0 La grille doit devenir vide instantanément.
3 Stérilité Pseed=0 La population initiale doit mourir sans se renouveler.
📊 PERFORMANCES ATTENDUES
Temps d’exécution : Fluide pour une grille 100×100.
Complexité : O(N2) par itération (double boucle sur la grille).
Optimisation possible : Utiliser des opérations vectorisées Numpy au lieu des boucles for imbriquées pour augmenter la taille de la grille.
📝 EXEMPLE D’UTILISATION
▶️ Lancement
Bash
python script_314cvmn_314.py
💻 Modification des paramètres
Python
# Pour une forêt dense et résistante :
sim = FloraSim(size=100, density=0.1, seed_prob=0.3, death_prob=0.01)



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