From d0c00a826721350eda19308d734d408b350507ad Mon Sep 17 00:00:00 2001
From: Antaaa28 <diop2802anta@gmail.com>
Date: Tue, 11 Mar 2025 18:21:57 +0100
Subject: [PATCH] maj

---
 Readme.md         | 35 ++++++++++-------------------------
 tp_2_miso_mphf.py |  4 ++++
 2 files changed, 14 insertions(+), 25 deletions(-)

diff --git a/Readme.md b/Readme.md
index b45f36b..4c5c8e5 100644
--- a/Readme.md
+++ b/Readme.md
@@ -17,31 +17,16 @@ Vous devez
 Ecrivez vos réponses et commentaires dans ce document.
 Puis décommenter `compare_taille` à la fin et expliquer les résultats.
 
-###Comparaison des tailles(compare_taille)
-*Résultats:
-#Courbes: 
-Le graphique montre l'évolution de la taille en mémoire de la table de hachage avec
-MPHF et du dictionnaire en fonction du nombre de k-mers(n)
-
-###Interpretation:
-#Table avec MPHF: 
-La taille de la table de hachage avec MPHF augmente linéairement avec n, mais 
-avec une pente plus faible que celle du dictionnaire. Cela est du à l'effcacité de la MPHF qui 
-minimise les collisions et donc la taille de la table.
-
-#Dict: 
-La taille du dictionnaire augmente également linéairement avec n, mais avec une pente elevée.
-Cela est du à la surcharge mémoire associée à la gestion des collisions et à la structure de données
-plus complexe
-
-#Efficacité: 
-La table de hachage avec MPHF est plus efficace en termes de mémoire que le dictionnaire
-standard, surtout pour de grands ensembles de données. Cela est du à la minimisation des collisions
-et à la structure plus compacte de la MPHF.
-
-#Utilisation: 
-Cette méthode est particulièrement utile dans des applications où la mémoire est une ressource
-critique, comme dans le traitement de grands ensembles de données génomiques.###
+###Explication des courble sur l'image  obtenu apres execution du code:
+Sur le graphique, on compare la mémoire utilisée par deux structures : une table de hachage construite avec une MPHF (en bleu) et un dictionnaire Python classique (en orange), en fonction du nombre de k-mers qu’on y stocke.
+
+La table avec MPHF :
+La courbe monte doucement et de façon régulière. Cela montre que la MPHF utilise la mémoire de manière très efficace : elle n’alloue que ce qui est strictement nécessaire. Elle ne laisse pas d’espace vide inutile et reste donc très compacte, ce qui est parfait quand on connaît à l’avance tous les k-mers qu’on veut stocker.
+
+Le dictionnaire :
+La courbe est beaucoup moins fluide. Elle monte par paliers, car le dictionnaire doit régulièrement agrandir sa structure interne pour pouvoir continuer à insérer des éléments. À chaque palier, il réserve plus d’espace que nécessaire, ce qui entraîne un gaspillage de mémoire. Et plus le nombre de k-mers augmente, plus ça devient lourd.
+ En résumé :
+La MPHF est clairement plus avantageuse en termes de mémoire, surtout quand on travaille avec de très grands ensembles de k-mers, comme c’est souvent le cas en bioinformatique. Le dictionnaire, lui, reste pratique et facile à utiliser, mais il devient vite inefficace quand on monte en volume.
 
 Bonus : faites varier `nb_niveaux` et `gamma`, voyez quelle influence ils peuvent avoir.
 
diff --git a/tp_2_miso_mphf.py b/tp_2_miso_mphf.py
index c876bb7..d999231 100644
--- a/tp_2_miso_mphf.py
+++ b/tp_2_miso_mphf.py
@@ -144,6 +144,7 @@ def create_hash_table(set_kmer, n):
     """
     # Créer la MPHF pour les k-mers
     mphf = construction_mphf(set_kmer, n)
+
     # Initialiser une table de taille n (liste de n cases)
     table = [None] * n
     # écrire les kmers aux adresses du tableau données par la mphf
@@ -183,6 +184,7 @@ def compare_taille(n_max, fichier_sortie):
 
         n_values.append(n)
         table_size.append(sys.getsizeof(tableau)+sys.getsizeof(mphf)) # pourquoi ici on ne mesure pas juste la taille en mémoire du tableau ?
+        #On ne mesure pas seulement la taille du tableau, car celui-ci contient uniquement les k-mers, mais pas la structure de la fonction de hachage minimale parfaite (MPHF) elle-même
         dict_size.append(sys.getsizeof(set_kmer))
 
     plt.plot(n_values, table_size, label='Table avec MPHF')
@@ -197,3 +199,5 @@ def compare_taille(n_max, fichier_sortie):
 
 # dé-commenter quand vous êtes prêts, expliquer les résultats
 compare_taille(10000,"mphf.png")
+
+
-- 
GitLab