script_314cvmn_314.py

49,00 

Simuler et visualiser dynamiquement la croissance, la dispersion et la mortalité d’une population végétale sur une grille 2D.

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

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

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

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