4.2 Heuristiques proposées
4.2.3 Algorithme blacklist
L’algorithme blacklist est un algorithme glouton de construction de couvrant. Il est invoqué à
l’étape 1 de l’approche réactive. L’objectif de cet algorithme est de minimiser le nombre de
capteurs qui couvrent chaque cible critique dans le couvrant. Pour cela, l’algorithme se base sur
l’utilisation d’une liste noire (blacklist). La liste noire contient les capteurs qui couvrent au moins
Etape 1 : Premier appel de l’algorithme adaptatif : adaptatif (S, T, C)
= { , , , } ; = { , , } ; = ∅ ; = 2 ; = 1.5 ; = 3 ; = 2.5
Itération 1 : = { , , } ; = { , } ; = { } ; on choisit ;
Itération 2 : = { } ; = { } ; = { , , } ; on choisit ;
On retourne = { ; }
Etape 2 : On active le couvrant ,
Etape 3 : le capteur épuise sa batterie à la date ∆ = 2
Etape 1 : Second appel de l’algorithme adaptatif : adaptatif (S, T, C)
= { , , } ; = { , , } ; = { } ; = 1.5 ; = 3 ; = 0.5
Itération 1 : = { , } ; = { , } ; = { , } ; on choisit ;
Itération 2 : = { } ; = { } ; = { } ; on choisit ;
On supprime les capteurs redondants du couvrant = { ; ; } : est
redondant
On retourne = { ; }
Etape 2 : On active le couvrant ,
Etape 3 : le capteur épuise sa batterie à la date ∆ = 2 + 1.5 = 3.5
= { , } ; = { , , } ; = 1.5 ; = 0.5
Aucun capteur de S ne couvre la cible : Fin de vie du réseau
Nouvelles heuristiques pour le MLCP
une cible critique déjà couverte par le couvrant en construction. Les capteurs en liste noire ne sont
sélectionnés que lorsque les capteurs hors de la liste noire ne couvrent pas les cibles non encore
couvertes par le couvrant en construction. Cette méthode permet donc d’éviter autant que possible
qu’une cible critique ne soit doublement couverte par un couvrant, l’idéal étant que chaque cible
critique soit couverte par un seul capteur du couvrant. Rappelons qu’une cible est critique si elle
couverte par le nombre minimal de capteurs. En utilisant judicieusement les capteurs qui couvrent
ces cibles critiques, la durée de vie du réseau pourrait être davantage prolongée. Nous avons vu
dans le chapitre précédent que certaines heuristiques de la littérature utilisent des fonctions coût
pour pénaliser les capteurs qui couvrent les cibles critiques. Cependant, les autres paramètres de ces
fonctions peuvent compenser cette pénalité au point où un capteur couvrant une cible critique déjà
couverte soit sélectionné. Contrairement à cette technique (par fonction coût), les capteurs que l’on
ne souhaite pas sélectionner sont clairement identifiés grâce à la liste noire et lorsque la situation
l’impose, le choix de l’un d’entre eux peut se faire selon des critères bien définis. Un autre principe
de base de l’algorithme blacklist est de couvrir en priorité toutes les cibles critiques avant de
chercher à couvrir les autres cibles. Au début de la couverture des cibles critiques, la liste noire est
vide et lorsque toutes les cibles critiques sont couvertes, cette liste est pleine. Etant donné que les
capteurs en liste noire sont (en quelque sorte) exclus, on peut définir une autre forme de criticité. Il
s’agit des cibles couvertes par le nombre minimal de capteurs hors de la liste noire. Afin de couvrir
les cibles non critiques, l’algorithme cherche à couvrir en priorité la cible couverte par le nombre
minimal de capteurs hors de la liste noire. Dans certains cas, ce nombre est nul, autrement dit, tous
les capteurs qui couvrent cette cible se trouvent en liste noire. Cela implique qu’un capteur doit être
pris en liste noire et par conséquent, une ou plusieurs cibles critiques seront couvertes doublement.
Dans ce cas, l’algorithme choisit le capteur qui couvre le plus de nouvelles cibles afin de minimiser
la probabilité que cette situation se reproduise. De manière générale, l’algorithme blacklist cherche
à minimiser la taille des couvrants qu’il forme. Pour cela, lorsqu’un choix de capteurs se pose, la
priorité est donnée à celui qui couvre le nombre maximal de nouvelles cibles (critiques dans un cas,
et non critiques dans l’autre). Si plusieurs capteurs sont dans cette même situation, l’un d’eux est
alors choisi aléatoirement.
L’algorithme blacklist est présenté à la figure 19. Il prend en entrée l’ensemble S des capteurs et
l’ensemble T des cibles. La première instruction (I1) vérifie que toutes les cibles sont couvertes par
au moins un capteur. Si tel n’est pas le cas, l’algorithme retourne l’ensemble vide. La seconde
instruction (I2) identifie l’ensemble ( ) des cibles critiques. Il s’agit des cibles couvertes par le
moins de capteurs de S. Toutes les cibles n’appartenant pas à l’ensemble sont ajoutés à
l’ensemble des cibles non critiques, à l’instruction I3. Ces cibles critiques et non critiques sont
séparées ainsi car elles sont traitées différemment par l’algorithme. A l’instruction I4, le couvrant et
la liste noire sont initialisés à l’ensemble vide. La première boucle tantque concerne les cibles
critiques . Elle s’arrête lorsque toutes les cibles critiques sont couvertes. L’instruction I5
sélectionne le capteur hors de la liste noire ( ∈ ( − )) qui couvre le plus de nouvelles cibles
critiques. Si aucun capteur hors de la liste noire ne couvre nouvellement une cible critique,
l’instruction I5 sélectionne le capteur de la liste noire qui couvre le plus de nouvelles cibles
critiques. Lorsque le capteur est ainsi sélectionné, il est ajouté au couvrant (I6) et supprimé de son
ensemble d’origine ( ou ) selon le cas (I9). De même, toutes les cibles couvertes par le nouveau
capteur sont supprimées de leur ensemble d’origine ( ou ) selon le cas (I7). Pour chaque
Nouvelles heuristiques pour le MLCP
nouvelle cible critique couverte par , tous les autres capteurs qui la couvrent sont déplacés de
l’ensemble vers la liste noire (I8). Lorsque toutes les cibles critiques sont couvertes, on passe à
la seconde boucle tantque qui cherche à couvrir les cibles non critiques. Si l’ensemble est vide à
la sortie de la première boucle, la seconde boucle est ignorée. A chaque itération, la cible la moins
couverte par les capteurs hors de la liste noire est sélectionnée (I10). S’il y’en a plusieurs, l’une
d’entre elles est choisie aléatoirement. A l’instruction (I11), l’algorithme cherche un capteur qui
couvre et qui ne se trouve pas en la liste noire. Si plusieurs capteurs remplissent cette condition,
on cherche celui qui couvre le plus de nouvelles cibles. S’il y’en a plusieurs, on choisit
aléatoirement l’un d’eux. Par contre, si tous les capteurs qui couvrent la cible se trouvent en liste
noire, on sélectionne l’un d’entre eux selon le même critère que précédemment. Lorsque le capteur
est ainsi choisi, on l’ajoute dans le couvrant (I12), on le supprime de et selon le cas et on
supprime de toutes les cibles nouvellement couvertes. Si l’ensemble n’est pas vide, on
démarre une nouvelle itération. Les itérations de la seconde boucle se succèdent ainsi jusqu’à ce que
toutes les cibles non critiques soient couvertes ( = ∅). A la sortie de la seconde boucle, toutes les
cibles sont couvertes et l’algorithme appelle la procédure suppression_redondance( , ) (Fig. 3.4)
pour rechercher et supprimer d’éventuels couvrants redondants du couvrant formé (I14). Enfin,
l’algorithme retourne le couvrant (I15). La complexité de l’algorithme blacklist est en ( ) où
est le nombre de cibles et est le nombre de capteurs.
Nouvelles heuristiques pour le MLCP
Figure 19 - Algorithme Blacklist
Algorithme Blacklist (S, T)
Input: : Ensemble de cibles ; S: Ensemble de capteurs
Début
I1. Si∃ une cible ∈ et ∄ un capteur ∈ tel que couvre , alorsRetourner∅
I2. Identifier l’ensemble des cibles critiques (cibles couvertes par le nombre minimal de capteurs
de S)
I3. Former l’ensemble des cibles non critiques ( = − )
I4. Initialiser le couvrant et la liste noire à l’ensemble vide : = ∅ ; = ∅
Tant que ≠ ∅Faire
I5. Si ∃ ∈ ( − ) tel que couvre une cible de Alors
Sélectionner le capteur ∈ ( − ) qui couvre le nombre maximal de cibles de
Sinon
Sélectionner le capteur ∈ qui couvre le nombre maximal de cibles de
Finsi
I6. Ajouter le capteur au couvrant : = ∪ { }
I7. Supprimer de et de toutes les cibles couvertes par le capteur
I8. Ajouter à la liste noire ( ) tous les capteurs qui couvrent les mêmes cibles critiques que le
capteur
I9. Supprimer le capteur de l’ensemble ou de l’ensemble selon le cas
Fintantque
Tant que ≠ ∅Faire
I10. Choisir la cible ∈ couverte par le nombre minimal de capteurs de −
I11. Si aucun capteur de − ne couvre la cible Alors
Sélectionner le capteur ∈ qui couvre la cible et le nombre maximal d’autres cibles de
Sinon
Sélectionner le capteur ∈ − qui couvre à et le nombre maximal d’autres cibles de
Finsi
I12. Ajouter le capteur au couvrant : = ∪ { }
I13. Supprimer de toutes les cibles couvertes par le capteur
I14. Supprimer le capteur de l’ensemble et de l’ensemble selon le cas
Fintantque
I14. Appeler la procédure suppression_redondance( , ) pour supprimer les capteurs redondants de
I15. Retourner le couvrant
Nouvelles heuristiques pour le MLCP
Figure 20 - Exécution de l’approche réactive avec l’algorithme blacklist
La figure 20 montre une trace d’exécution de l’approche réactive avec l’algorithme blacklist sur
l’exemple de la figure 16. On observe que la durée de vie du réseau obtenue est ∆= 3.5, c’est la
même que celle obtenue par l’algorithme adaptatif lorsque le « bon » capteur a été choisi
aléatoirement (Fig. 3.7). Cela montre que l’algorithme blacklist propose une meilleure gestion des
cibles critiques que l’algorithme adaptatif. Il reste à présent à comparer cette durée de vie à la borne
supérieure (définie plus haut) de la durée de vie optimale. Pour cela, on calcule premièrement la
durée de couverte maximale de chaque cible selon la formule = ∑ ∈ [ ] . On obtient alors
= + = 2 + 3 = 5, = + = 2 + 1.5 = 3.5 et = + + = 1.5 + 3 +
2.5 = 7. Puis on identifie la plus petite de ces durées maximales de couverture. Dans ce cas, nous
avons ∆ = 3.5. Puisque ∆ = ∆, nous déduisons que l’algorithme blacklist a permis d’obtenir la
durée de vie optimale du réseau dans le cas de l’exemple 2.
Dans le document
Minimisation de la consommation d’énergie des réseaux de capteurs dans les applications de couverture de cibles
(Page 65-69)