# Simulation LEACH vs LEACH-C pour Réseaux Dynamiques ## Vue d'ensemble Ce projet implémente une simulation complète des protocoles **LEACH** (Low-Energy Adaptive Clustering Hierarchy) et **LEACH-C** (centralisé) pour des réseaux de capteurs sans fil (WSN) avec **mobilité dynamique** des nœuds. **Contexte** : Agriculture de précision - suivi en temps réel de bovins avec capteurs se déplaçant dans un champ. **Deadline** : 5 novembre 2025, 23:42 --- ## Structure du Projet ``` /algo/ ├── code/ │ ├── config.py # Configuration et constantes │ ├── node.py # Classe Node │ ├── metrics.py # Classe Metrics (10 métriques) │ ├── leach.py # Protocole LEACH décentralisé │ ├── leach_c.py # Protocole LEACH-C centralisé │ ├── main.py # Contrôleur principal │ ├── analysis.py # Analyseur et graphiques │ └── run.sh # Script de lancement ├── results/ │ ├── simulation_results.json # Résultats bruts │ ├── summary.csv # Tableau récapitulatif │ ├── 01_FDN_Comparison.png # Graphique FDN │ ├── 02_FMR_Comparison.png # Graphique FMR │ ├── 03_DLBI_Comparison.png # Graphique DLBI │ ├── 04_RSPI_Comparison.png # Graphique RSPI │ └── 05_Alive_Nodes_Over_Time.png └── rapport/ └── Rapport_LEACH_LEACHC.typ # Rapport complet (Typst + PDF) ``` --- ## Comment Exécuter ### 1. Installation des dépendances ```bash pip install matplotlib ``` ### 2. Lancer la simulation ```bash cd /home/paul/algo python code/main.py ``` ### 3. Générer les graphiques et analyses ```bash python code/analysis.py ``` Les résultats seront sauvegardés dans `/home/paul/algo/results/` --- ## Implémentation ### Protocoles #### **LEACH (Décentralisé)** - Élection aléatoire des cluster heads (probabilité p) - Formation de clusters basée sur proximité - Communication nœud → CH → BS - Agrégation de données au niveau CH #### **LEACH-C (Centralisé)** - BS reçoit l'état de tous les nœuds - Calcul des clusters optimaux (heuristique : sélection par énergie) - Distribution optimale des rôles - Moins aléatoire mais plus coûteux en énergie ### Mobilité Dynamique - Chaque nœud se déplace aléatoirement chaque round - Déplacement max : 5 mètres - Restent dans les limites du champ (100m × 100m) - Impact majeur sur stabilité et efficacité ### Modèle Énergétique ``` E_Tx(l, d) = - Si d ≤ d0 : E_elec×l + E_fs×l×d² - Si d > d0 : E_elec×l + E_mp×l×d⁴ E_Rx(l) = E_elec × l E_Agg(l) = E_da × l d0 = sqrt(E_fs / E_mp) ``` --- ## Métriques Implémentées ### 1. **Nœuds Vivants** (Alive Nodes Count) Nombre de nœuds actifs après chaque round. ### 2. **Paquets vers CH** (Packets to Cluster Head) Nombre total de paquets envoyés par les nœuds réguliers vers leurs CHs. ### 3. **Paquets vers BS** (Packets to Base Station) Nombre total de paquets envoyés par les CHs vers la station de base. ### 4. **Énergie Résiduelle** (Residual Energy) Énergie restante dans chaque nœud. ### 5. **Muted Rounds** Nombre de rounds où **aucun CH n'est élu** (communication impossible). ### 6. **FMR** (First Muted Round) Le round exact où le premier silence apparaît. ### 7. **FDN** (First Dead Node) Le round quand le **premier nœud** épuise son énergie. ### 8. **Last Dead Node** Le round quand le **dernier nœud** meurt. ### 9. **DLBI** (Dynamic Load Balancing Index) $$DLBI = \frac{1}{N} \sum_{r=1}^{N} DLBI_r$$ $$DLBI_r = 1 - \frac{\sum(L_{j,r} - \bar{L}_r)^2}{m_r \times \bar{L}_r^2}$$ **Interprétation** : Évalue l'équilibre de charge entre les CHs. - Proche de 1 = distribution équilibrée - Bas = déséquilibre grave ### 10. **RSPI** (Relative Silence Period Index) $$RSPI = \frac{2 \times [(1 - FR_{muted}/R_{max}) \times (1 - LR_{dead}/R_{max})]}{(1 - FR_{muted}/R_{max}) + (1 - LR_{dead}/R_{max})}$$ **Interprétation** : Moyenne harmonique entre résilience et durée de vie. --- ## Scénarios de Test | Scénario | Paquets (l) | Probabilité (p) | Nœuds (n) | |----------|-------------|-----------------|-----------| | 1 | 2000 | 0.05 | 100 | | 2 | 2000 | 0.50 | 100 | | 3 | 2000 | 0.95 | 100 | | 4 | 4000 | 0.05 | 100 | | 5 | 4000 | 0.05 | 200 | | 6 | 4000 | 0.10 | 200 | --- ## Résultats Les résultats incluent : 1. **Fichier JSON** : Données complètes de chaque round 2. **CSV récapitulatif** : Tableau avec toutes les métriques 3. **Graphiques** : - FDN Comparison - FMR Comparison - DLBI Comparison - RSPI Comparison - Nombre de nœuds vivants au fil du temps --- ## Points Importants ### Dynamique vs Statique - **Statique** : Clusters stables, peu d'overhead - **Dynamique** : Clusters instables, plus d'énergie perdue, plus réaliste ### Rounds Muets (Muted Rounds) Quand **aucun nœud n'est élu** comme CH → communication impossible. Problème majeur en réseau dynamique. ### LEACH vs LEACH-C - **LEACH** : Scalable, décentralisé, mais élection aléatoire - **LEACH-C** : Meilleure distribution, plus coûteux énergétiquement ### Impact de la Mobilité La mobilité dynamique cause : - Augmentation de la consommation d'énergie - Plus de muted rounds - Nécessité de réélections fréquentes --- ## Technologies Utilisées - **Python 3.x** - **Matplotlib** : Visualisation des résultats - **JSON** : Sauvegarde des résultats - **Simulation événementielle** : Approche discrète des rounds --- ## Fichiers Principaux ### `config.py` Configuration globale, paramètres, scénarios. ### `node.py` Classe représentant un capteur (position, énergie, états). ### `metrics.py` Collecte des 10 métriques de performance. ### `leach.py` Implémentation du protocole LEACH décentralisé. ### `leach_c.py` Implémentation du protocole LEACH-C centralisé. ### `main.py` Contrôleur principal : crée les nœuds, lance les protocoles. ### `analysis.py` Analyseur et générateur de graphiques. --- ## Ressources Académiques 1. **LEACH Original** : W. B. Heinzelman et al., "An application-specific protocol architecture for wireless microsensor networks", IEEE Trans. Wireless Commun., 2002 2. **LEACH-C** : W. B. Heinzelman et al., "Energy-efficient communication protocol for wireless microsensor networks", Proc. HICSS, 2000 3. **Efficacité Énergétique** : N. Wang & H. Zhu, "An energy efficient algorithm based on LEACH protocol", Proc. ICCSEE, 2012 --- ## Checklist - [x] Implémentation LEACH (décentralisé) - [x] Implémentation LEACH-C (centralisé) - [x] Support mobilité dynamique - [x] Modèle énergétique complet - [x] 10 métriques de performance - [x] 6 scénarios de test - [x] Génération de graphiques - [x] Rapport complet (10 pages max) --- ## 📞 Contact Pour des questions ou clarifications, veuillez consulter les spécifications du projet. **Deadline** : 5 novembre 2025, 23:42 ⏰