Vous êtes sur la page 1sur 168

Nouveaux modèles de programmation

linéaires et de flots pour la résolution de


problèmes d’optimisation difficiles

K ARINE D ESCHINKEL
H ABILITATION À DIRIGER DES RECHERCHES
de l’Université de Franche-Comté
préparée au sein de l’l’Université de Franche-Comté
Spécialité : Informatique

présentée par

K ARINE D ESCHINKEL

Nouveaux modèles de programmation linéaires et


de flots pour la résolution de problèmes
d’optimisation difficiles

Soutenue publiquement le XX Mois XXXX devant le Jury composé de :


L A ËTITIA J OURDAN Rapporteur Professeur à l’Université de Lille 1
L HASSANE I DOUMGHAR Rapporteur Professeur à l’Université de Haute-Alsace
A MMAR O ULAMARA Rapporteur Professeur à l’Université de Lorraine
Y E -Q IONG S ONG Examinateur Professeur à l’Université de Lorraine
P IERRE -C YRILLE H ÉAM Examinateur Professeur à l’Université de Franche-Comté
R APHA ËL C OUTURIER Examinateur Professeur à l’Université de Franche-Comté
R EMERCIEMENTS

J’exprime mes remerciements les plus sincères envers mes rapporteurs, Laetitia
Jourdan, Lhassane Idoumghar, Ammar Oulamara, qui m’ont fait l’honneur de consacrer
du temps à la lecture de ce manuscrit pour donner leurs conseils avisés et leurs
appréciations sur mes travaux de recherche.
Mes remerciements sont également adressés aux examinateurs Ye-Qiong Song, Raphaël
Couturier, et Pierre-Cyrille Héam, qui m’ont fait l’honneur de participer au jury.
Je tiens aussi à remercier l’ensemble du jury d’avoir accepté de juger mon travail.
Les travaux présentés dans ce mémoire représentent une partie des fructueuses
collaborations scientifiques qui ont jalonné ma carrière. Je remercie sincèrement Sid
Touati qui m’a appris beaucoup sur notre métier. J’ai toujours grand plaisir à travailler
en interdisciplinarité avec d’autres chercheurs. Je les remercie tous de m’avoir exposée
leur problématique et ouvert mon esprit sur de nouveaux domaines d’application.
J’adresse un remerciement collégial, aux différents collègues qui ont croisé ma route au
PRiSM, et à tous les collègues du DISC et de l’IUT avec qui je partage actuellement de
bons moments de détente et de travail.
Je tiens tout particulièrement à exprimer ma profonde reconnaissance à Jacques Bahi,
d’avoir accepté ma venue dans l’équipe AND, et de m’avoir accordée son entière
confiance, depuis mon arrivée à l’Université de Franche Comté, en me chargeant de
plusieurs responsabilités.
Je remercie vivement Raphaël Couturier pour m’avoir accueillie chaleureusement dans
l’équipe AND. J’apprécie fortement sa disponibilité, ses conseils, sa sympathie, et ses
encouragements.
Enfin un grand merci à mon mari qui m’a toujours encourager dans mon travail
d’enseignant-chercheur.

v
S OMMAIRE

1 Renseignement généraux 3
1.1 État civil . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.2 Formation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.3 Parcours professionnel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4

2 Activités de recherche 5
2.1 Historique des activités . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
2.1.1 Thèse de doctorat(1998-2001) . . . . . . . . . . . . . . . . . . . . . 5
2.1.2 Poste d’ATER(2001-2002) . . . . . . . . . . . . . . . . . . . . . . . . 6
2.1.3 Maı̂tre de conférences UVSQ (2002-2009) . . . . . . . . . . . . . . 6
2.1.4 Maı̂tre de conférences UFC (2009-) . . . . . . . . . . . . . . . . . . 9
2.2 Responsabilités scientifiques . . . . . . . . . . . . . . . . . . . . . . . . . . 12
2.2.1 Organisation d’événements scientifiques . . . . . . . . . . . . . . . 12
2.2.2 Expertises scientifiques . . . . . . . . . . . . . . . . . . . . . . . . . 13
2.3 Encadrements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
2.3.1 Encadrement de thèses . . . . . . . . . . . . . . . . . . . . . . . . . 13
2.3.2 Encadrements de stages de Master . . . . . . . . . . . . . . . . . . 14
2.4 Publications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14

3 Activités d’enseignement et tâches collectives 17


3.1 Activités d’enseignement . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
3.1.1 A l’Université de Versailles . . . . . . . . . . . . . . . . . . . . . . . 17
3.1.2 A l’IUT de Belfort . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
3.1.3 A l’UTBM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
3.1.4 Résumé . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
3.2 Tâches collectives . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
3.2.1 Responsabilités pédagogiques . . . . . . . . . . . . . . . . . . . . . 18
3.2.2 Responsabilités administratives . . . . . . . . . . . . . . . . . . . . . 19
3.3 Résumé de carrière . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20

vii
viii SOMMAIRE

4 Motivations et organisation du mémoire 23


4.1 Motivations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
4.2 Plan du mémoire . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24

I Modélisation de problèmes d’optimisation difficiles 27

5 Optimisation de la dose en curiethérapie 29


5.1 Problématique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
5.1.1 Présentation de la curiethérapie . . . . . . . . . . . . . . . . . . . . 29
5.1.2 Phases de traitement . . . . . . . . . . . . . . . . . . . . . . . . . . 30
5.1.3 Calcul d’une distribution de dose . . . . . . . . . . . . . . . . . . . . 31
5.2 État de l’art . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
5.2.1 Minimisation du nombre de violations . . . . . . . . . . . . . . . . . 34
5.2.2 Minimisation linéaire des écarts de dose . . . . . . . . . . . . . . . . 35
5.2.3 Minimisation quadratique des écarts de dose . . . . . . . . . . . . . 36
5.3 Modélisation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
5.3.1 Choix des points de référence . . . . . . . . . . . . . . . . . . . . . 38
5.3.2 Fonction objectif . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
5.3.3 Contraintes de dose . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
5.3.4 Contraintes de surdosage . . . . . . . . . . . . . . . . . . . . . . . . 40
5.3.5 Optimisation du placement des cathéters . . . . . . . . . . . . . . . 40
5.4 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41

6 Minimisation du nombre de registres processeurs 43


6.1 Problématique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
6.2 Etat de l’art . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
6.3 Modélisation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
6.3.1 Modèle de tâches . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
6.3.2 Graphes de réutilisation . . . . . . . . . . . . . . . . . . . . . . . . . 46
6.3.3 Programme linéaire . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
6.4 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50

7 Maximisation de la durée de vie d’un réseau de capteurs 51


7.1 Problématique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
7.2 État de l’art . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
7.3 Modélisation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
SOMMAIRE ix

7.3.1 Couverture de cibles . . . . . . . . . . . . . . . . . . . . . . . . . . . 54


7.3.2 Couverture de la zone d’intérêt . . . . . . . . . . . . . . . . . . . . . 58
7.4 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65

II Résolution par décomposition du problème 67

8 Heuristique SIRALINA 69
8.1 Préalables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69
8.2 Étapes de résolution de l’heuristique SIRALINA . . . . . . . . . . . . . . . . 71
8.3 Résultats expérimentaux . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
8.3.1 Cadre expérimental . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
8.3.2 Comparaisons avec d’autres heuristiques . . . . . . . . . . . . . . . 72
8.3.3 Étude de la perte du parallélisme de tâches . . . . . . . . . . . . . . 74
8.4 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76

9 Heuristique de génération parallèle d’ensembles couvrants 79


9.1 Préalables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79
9.2 Méthode de résolution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80
9.2.1 Principes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80
9.2.2 Exemple . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81
9.3 Obtention d’une solution optimale . . . . . . . . . . . . . . . . . . . . . . . . 83
9.4 Algorithmes de résolution . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84
9.5 Résultats expérimentaux . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85
9.5.1 Nombre d’ensembles couvrants disjoints . . . . . . . . . . . . . . . 85
9.5.2 Comparaison des temps d’exécution . . . . . . . . . . . . . . . . . . 85
9.6 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86

10 Génération de colonnes pour génération d’ensembles couvrants 91


10.1 Description du problème . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91
10.1.1 Formulation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91
10.1.2 Exemple . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91
10.1.3 Méthode de génération de colonnes . . . . . . . . . . . . . . . . . . 92
10.2 Méthode de résolution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93
10.2.1 Génération d’un ensemble couvrant élémentaire . . . . . . . . . . . 94
10.2.2 Génération d’un ensemble couvrant élémentaire attractif . . . . . . . 94
10.2.3 Processus global . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95
x SOMMAIRE

10.3 Résultats expérimentaux . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95


10.3.1 Comparaison des temps d’exécution . . . . . . . . . . . . . . . . . . 96
10.3.2 Comparaisons de durée de vie . . . . . . . . . . . . . . . . . . . . . 96
10.3.3 Comparaison du nombre d’ensembles couvrants générés . . . . . . 97
10.4 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97

III Modélisation sous forme de problèmes de flots 101

11 Problème de flot à coût minimum dans SIRALINA 103


11.1 Préambule . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103
11.2 Formulation du problème de flot à coût minimum . . . . . . . . . . . . . . . 104
11.3 Retour au problème d’ordonnancement initial . . . . . . . . . . . . . . . . . 106
11.4 A propos du choix de l’algorithme de flot de coût minimum . . . . . . . . . . 106

12 Problème de couverture de cibles : un problème de flot ? 109


12.1 Construction du graphe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109
12.2 Flot réalisable . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111
12.3 Flot maximal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111
12.4 Flot à coût minimum . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112
12.5 Comparaison des modèles . . . . . . . . . . . . . . . . . . . . . . . . . . . 115
12.5.1 Comparaison du modèle de flot maximal avec notre modèle . . . . 115
12.5.2 Comparaison du nombre et du type d’ensembles couvrants générés 116
12.6 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117

IV Conclusion et Perspectives 121

13 Conclusion et Perspectives 123


13.1 Synthèse des Contributions . . . . . . . . . . . . . . . . . . . . . . . . . . . 123
13.2 Perspectives . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125

A Rappels de programmation linéaire 127


A.1 Formulation d’un problème de programmation linéaire . . . . . . . . . . . . 127
A.2 Dualité en programmation linéaire . . . . . . . . . . . . . . . . . . . . . . . 128
A.3 Méthode de génération de colonnes . . . . . . . . . . . . . . . . . . . . . . 129
A.3.1 Principe de base . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 129
A.3.2 Algorithme de génération de colonnes . . . . . . . . . . . . . . . . . 130
SOMMAIRE xi

B Problème d’affectation linéaire 131


B.1 Définition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131
B.2 Méthode hongroise . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132
B.3 Exemple . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132

C Rappels de théorie des graphes 135


C.1 Graphe et définitions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 135
C.2 Réseau de transport et flot . . . . . . . . . . . . . . . . . . . . . . . . . . . 136
C.2.1 Flot réalisable . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 136
C.2.2 Valeur d’un flot . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137
C.3 Le problème du flot maximum . . . . . . . . . . . . . . . . . . . . . . . . . . 137
C.3.1 Définition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137
C.3.2 Exemple . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 138
C.3.3 Flot maximum et programmation linéaire . . . . . . . . . . . . . . . . 138
C.3.4 Algorithmes de résolution . . . . . . . . . . . . . . . . . . . . . . . . 138
C.4 Le problème de flot à coût minimum . . . . . . . . . . . . . . . . . . . . . . 139
C.4.1 Définition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139
C.4.2 Flot à coût minimum et programmation linéaire . . . . . . . . . . . . 139
C.4.3 Algorithmes de résolution . . . . . . . . . . . . . . . . . . . . . . . . 139
I NTRODUCTION

1
1
R ENSEIGNEMENT G ÉN ÉRAUX

1.1/ É TAT CIVIL

Date, lieu de naissance : 27 Mai 1975 à Laxou (54)


Nationalité : française
Situation de famille : 2 enfants, nés en novembre 2003 et 2006
Adresse personnelle : 15 grande Rue 25490 BADEVEL
Téléphone personnel : 09.50.51.19.11
Adresse professionnelle : I.U.T. de Belfort – Rue Engel Gros BP 527, 90000 Belfort
Téléphone professionnel : 03.84.58.77.84
Adresse électronique : karine.deschinkel@univ-fcomte.fr
Page personnelle : http ://members.femto-st.fr/karine-deschinkel

1.2/ F ORMATION

2001 T H ÈSE DE D OCTORAT en Systèmes Industriels


Régulation du trafic aérien par optimisation dynamique des prix d’utilisation du réseau
Mention : Très Honorable avec Félicitations
École Nationale Supérieure de l’Aéronautique et de l’Espace (ENSAE)-Toulouse
Thèse soutenue le 8 novembre 2001 devant le jury composé de :
J.L. FARGES, Ingénieur de recherche ONERA, Directeur de thèse
D.DELAHAYE, Chercheur LOG, CENA, Co-directeur
E. FÉRON, Professeur MIT, Rapporteur
J.B. LESORT Directeur LICIT , Rapporteur
M. MINOUX, Professeur Université Paris 6, Président
J.F. BONNANS, Directeur de recherche INRIA, Examinateur

3
4 CHAPITRE 1. RENSEIGNEMENT GÉNÉRAUX

1998 D.E.A. M ATH ÉMATIQUES APPLIQU ÉES


Mention : Assez Bien
Université Blaise Pascal -Clermont-Ferrand
Optimisation, Homogénéisation d’équations aux dérivées partielles, Méthodes
numériques pour la mécanique des fluides, Méthodes stochastiques en analyse
d’images
1998 D IPL ÔME D ’I NG ÉNIEUR G ÉNIE M ATH ÉMATIQUES ET MOD ÉLISATION
P OLYTECH C LERMONT - CUST Institut des Sciences de l’Ingénieur – Clermont-Ferrand

1.3/ PARCOURS PROFESSIONNEL

2009- M A ÎTRE DE CONF ÉRENCES Section 27 UFC Université de Franche-comté


Enseignement : I.U.T. de Belfort-Montbéliard – Département informatique
Recherche : DISC (D EPARTEMENT INFORMATIQUE ET SYSTEMES COMPLEXES ) de
l’institut FEMTO-ST (Franche-Comté Electronique, Mécanique, Thermique et Optique
- Sciences et Technologies)
Equipe AND (Algorithmique Numérique et Distribuée)
2002/09 M A ÎTRE DE CONF ÉRENCES Section 27 UVSQ
Enseignement : Université Versailles Saint Quentin en Yvelines (UVSQ)
Recherche : PRiSM (Laboratoire de recherche en informatique) – Equipe Opale
(Optimisation et Parallélisme), renommée OCCR (Optimisation et Calcul Réparti)
2001/02 A.T.E.R. (Attaché Temporaire d’Enseignement et de Recherche) Section 27
Enseignement : Université Paris 1 - Panthéon Sorbonne
Recherche : CEntre de Recherche en Mathématiques, Statistique et Economie
Mathématique (CERMSEM)
1998/01 D OCTORANTE
Office National d’Études et de Recherches Aérospatiales (O.N.E.R.A.)- Toulouse
Département de Commande des systèmes et Dynamique du Vol
2
ACTIVIT ÉS DE RECHERCHE

2.1/ H ISTORIQUE DES ACTIVIT ÉS

J’ai choisi de débuter ce mémoire par une présentation des différentes étapes d’évolution
de mon activité de recherche.

2.1.1/ T H ÈSE DE DOCTORAT (1998-2001)

J’ai réalisé ma thèse à l’Office National d’Études et de Recherches Aérospatiales


(O.N.E.R.A.) de Toulouse au Département de Commande des systèmes et Dynamique
du Vol. Mes travaux de thèse portent sur la tarification de l’espace aérien pour la
régulation du trafic. La croissance du trafic aérien conduit à des retards importants des
avions. Le problème de congestion de l’espace aérien peut être résolu en adaptant
la demande à la capacité réellement disponible. La tarification se présente comme un
outil possible pour inciter les compagnies aériennes à modifier leurs plans de vols.
La démarche adoptée pour parvenir à une tarification adéquate des secteurs aériens
comporte trois étapes principales :
— Modéliser l’influence des conditions financières sur la définition des horaires et
sur le choix des routes par les compagnies aériennes. C’est le modèle Logit de
choix discret que nous avons choisi pour prédire les décisions des compagnies
aériennes.
— Identifier les paramètres du modèle de choix des compagnies. Nous avons formulé
le problème d’identification des paramètres comme un problème de minimisation
de l’erreur quadratique et nous l’avons résolu.
— Fixer les prix d’options pour que les décisions prises par les compagnies
conduisent à la planification de vols désirée.
Le problème de calcul des prix de secteurs peut se ramener à un problème de
minimisation quadratique entre les nombres de vols issus du modèle et les nombres
de vols définis par la cible. L’algorithme de descente par le calcul du gradient,
l’algorithme du recuit simulé, et un algorithme de recherche Tabou ont été retenus
pour l’identification des paramètres et le calcul des prix de secteurs . Tous ces
algorithmes ont été implémentés en C++ et testés sur deux exemples, un exemple
académique et un exemple plus réaliste. Les résultats obtenus montrent qu’une
affectation cible peut être atteinte en orientant le choix des compagnies par les prix
([Deschinkel, 1998], [Deschinkel, 1999], [Deschinkel, 2000], , [Deschinkel et al., 2000a],
[Deschinkel et al., 2000b], [Deschinkel et al., 2001a], [Deschinkel et al., 2001b],

5
6 CHAPITRE 2. ACTIVITÉS DE RECHERCHE

[Deschinkel et al., 2002a], [Deschinkel et al., 2002b], [Deschinkel, 2003]).

2.1.2/ P OSTE D ’ATER(2001-2002)

Après ma thèse, j’ai effectué une année d’ATER (Attaché temporaire d’Enseignement
et de Recherche) au Centre de Recherche en Mathématiques, Statistique et Économie
Mathématique (CERMSEM). J’ai porté mon intérêt sur les problèmes d’optimisation
inverse car le problème de tarification des secteurs aériens en vue d’atteindre une cible
peut, sous certaines conditions, être assimilé à un problème d’affectation inverse. J’ai
travaillé en collaboration avec le professeur Marc Demange (maintenant Professeur à
Essec Business Scool) sur ce sujet.

2.1.3/ M A ÎTRE DE CONF ÉRENCES UVSQ (2002-2009)

J’ai été recrutée sur un poste de Maı̂tre de Conférences en septembre 2002 à


l’Université de Versailles St Quentin en Yvelines pour intégrer l’équipe de recherche
AOC (Algorithmique, Optimisation et Combinatoire) du laboratoire PRiSM (Parallélisme,
Réseaux, systèmes, Modélisation). Mes axes principaux de recherche dans ce
laboratoire ont porté sur des :
— Problèmes de tarification dans les télécommunications,
— Problèmes d’optimisation en curiethérapie,
— Méthodes de coupes pour des problèmes d’optimisation en électricité,
— Problèmes d’optimisation de registres en compilation.

2.1.3.1/ P ROBL ÈMES DE TARIFICATION DANS LES T ÉL ÉCOMMUNICATIONS

Modèles et Méthodes de tarification Suite à ma thèse, j’ai étendu mes connaissances


des problèmes de tarification au domaine des télécommunications en participant en 2003
et 2004 à une action de recherche coopérative PrixNET financée par l’INRIA. Le but de
l’action est de développer, d’implémenter et de comparer des méthodes de tarification
des réseaux tels que l’Internet, permettant un contrôle de la congestion et une répartition
équitable des ressources.
Dans le cadre de cette action, j’ai entrepris une recherche bibliographique, pour faire
une synthèse ([Deschinkel, 2004]) sur les modèles d’utilité développés dans les études
portant sur la tarification de l’Internet, et voir comment on peut enrichir ces modèles pour
mieux décrire le choix des utilisateurs.
En collaboration avec des membres de l’équipe AlCAAp (Algorithmique, combinatoire
analytique et applications) du PRiSM à Versailles, j’ai poursuivi mon étude sur les
modèles et les méthodes de tarification appliqués à l’Internet. Nous avons intégré le
projet européen EURO-NGI (Network of Excellence for Next Generation Internet) en
rejoignant les équipes travaillant sur le ”workpackage” intitulé : ”Payment and Cost
Models for Next Generation Internet”. Dans le cadre de ce projet, nous avons dressé
un bilan sur la modélisation des comportements des usagers (modèles d’utilités) et
sur les principes généraux de la tarification de l’Internet en proposant des méthodes
prometteuses ([Deschinkel et al., 2004], [Barth et al., 2004a], [Barth et al., 2004b]) pour
garantir une meilleure qualité de service aux usagers en fonction de leur propension à
payer.
2.1. HISTORIQUE DES ACTIVITÉS 7

Problème de planification et tarification dans un réseau Nous nous sommes


intéressés à un problème de tarification dans un réseau de transport (aérien ou routier,
ou de télécommunications). Sous certaines hypothèses idéales, chaque utilisateur du
réseau sélectionne la route qui minimise ses coûts de transport, il en résulte alors un
flot appelé  équilibre utilisateur  car aucun utilisateur ne peut diminuer ses coûts
de transport en changeant de route. Mais cet équilibre utilisateur ne correspond pas
nécessairement à la meilleure utilisation du réseau. On retrouve ce résultat dans la
paradoxe de Braess où le fait d’ajouter une route supplémentaire peut dans certains
cas réduire la performance globale. Un gestionnaire de réseau peut envisager une autre
répartition du flot sur le réseau, appelé  équilibre système . Pour passer d’un équilibre
utilisateur à un équilibre système, un prix/péage peut être imposé sur certains arcs du
réseau.
Ce problème peut être formulé comme un problème de plus courts chemins inverses.
Étant donné un graphe avec des coûts sur les arêtes, le problème consiste à augmenter
artificiellement (en fixant des prix) le coût de certaines arêtes de manière à ce que chaque
option choisie par le gestionnaire pour chaque utilisateur soit effectivement la meilleure
option (du point de vue de l’utilisateur).
Des méthodes de type programmation quadratique convexe ont été proposées mais sans
astreindre les coûts à augmenter. Nous avons travaillé sur ce problème, en proposant
d’autres méthodes de résolution et étudié la manière de l’appliquer, sous certaines
conditions, au problème de tarification de l’espace aérien, et de tarification de requêtes
en télécommunication. J’ai proposé un stage de D.E.A. en juin 2004 autour de cette
problématique et le travail résultant a été présenté à la conférence ROADEF en Février
2005 [Deschinkel and Oudot, 2005].

Routage de requêtes dans un réseau MPLS Ce travail se concentre sur la partie


”planification de trafic” dans le réseau Internet sous une architecture MPLS. L’objectif est
de distribuer le trafic (tronçon : paquets de trafic de même classe) sur les différentes
routes de manière efficiente pour obtenir une meilleur utilisation des ressources et
une plus forte stabilité de routage. Ici, nous nous intéressons au problème off-line. A
chaque tronçon, on associe un niveau de trafic dépendant de la classe à laquelle il
appartient. Un tronçon est donc défini par sa demande en bande passante, et son
niveau de priorité. Le réseau est modélisé sous forme d’un graphe avec des capacités
et des coûts associés aux arêtes. Nous cherchons à affecter à chaque tronçon une
route en respectant les contraintes de capacités et de manière à maximiser le produit
total : (demande + priorité) * coût de la route. Nous avons proposé une formulation
mathématique de ce problème sous forme de programme linéaire en nombres entiers
([Deschinkel and Echabbi, 2004]. L’algorithme glouton développé pour ce problème n’est
pas optimal. Nous avons recherché une méthode de résolution exacte et une heuristique
qui permettent d’obtenir des solutions de meilleure qualité.

2.1.3.2/ P ROBL ÈMES D ’ OPTIMISATION EN CURIETH ÉRAPIE

J’ai co-encadré avec Catherine Roucairol la thèse de doctorat de François Galéa sur
cette thématique de 2003 à 2006.
Le but de ce projet était d’apporter une aide à des médecins pour construire des plans de
8 CHAPITRE 2. ACTIVITÉS DE RECHERCHE

traitement plus efficaces et moins ”destructeurs” en curiethérapie (traitement des tumeurs


cancéreuses).
Dans un premier temps, nous avons identifié les problèmes d’optimisation qui se
posent en curiethérapie en montrant leur spécificité et ensuite nous avons analysé
les modèles et les méthodes actuellement utilisées pour les résoudre, sans porter un
jugement médical mais plus à la lueur des techniques de Recherche Opérationnelle
([Deschinkel et al., 2005c], [Deschinkel et al., 2006c]).
Nous avons réalisé cette étude en réponse à une demande de Gilbert Boisserie,
radiophysicien de l’Unité de Physique du service de radiothérapie de l’hôpital de la Pitié-
Salpétrière de Paris, qui souhaitait savoir si le système classique d’implantation des
cathéters (connu sous le nom de Système de Paris) utilisé en curiethérapie LDR (à
bas débit de dose) pouvait être adapté pour le traitement en curiethérapie HDR (haut
débit de dose). Nous avons réalisé un logiciel graphique 3D qui permet de visualiser
la distribution de dose sur un fantôme géométrique, et le placement des cathéters.
L’utilisateur peut sélectionner un outil d’optimisation qui génère automatiquement les
temps d’arrêt en fonction des contraintes de doses qui ont été spécifiées. Les
positions et les temps d’arrêt sont obtenus par la résolution d’un programme linéaire
continu ([Deschinkel et al., 2005a], [Deschinkel et al., 2005b], [Deschinkel et al., 2006a],
[Deschinkel et al., 2006b]) avec des solveurs accessibles dans des logiciels libres
(lp solve, glpk,. . . ). Les résultats de notre étude sur le placement des cathéters ont été
publiés dans la revue APJOR [Deschinkel et al., 2008b].

2.1.3.3/ M ÉTHODES DE COUPES POUR DES PROBL ÈMES D ’ OPTIMISATION EN


ÉLECTRICIT É

De février 2005 à janvier 2009, j’ai co-encadré avec Catherine Roucairol la thèse de
doctorat de Christophe Louat. Cette thèse s’est effectuée dans le cadre d’un contrat
CIFRE établi avec RTE (Réseau Transport Électrique).
Cette thèse a pour but d’étudier l’impact des méthodes de coupes efficaces pour des
problèmes d’électricité de grande taille afin de les intégrer dans un Branch and Bound
(algorithme de séparation-évaluation). Un premier travail consiste à constituer un état de
l’art des méthodes de coupes générales (Gomory, MIR, Lift and Project) qui peuvent
être intéressantes pour des problèmes avec des variables binaires. Il s’agit ensuite
de développer et tester ces méthodes de coupes avec le solveur Xpress Mosel, et
d’envisager, après leur analyse, leur intégration au solveur de programmation linéaire
mixte développé par RTE.
Une hiérarchisation de ces méthodes et les premières phases d’implémentation et
d’analyse ont été présentées à la 3ème édition des Journées Polyèdres et Optimisation
Combinatoire en juin 2006 et à ECCO 2007 [Louat et al., 2007].
Ce travail nous a conduit à développer nos propres outils en logiciels libres pour pouvoir
gérer l’intégration des différentes méthodes de coupes et leurs paramétrages dans les
solveurs commerciaux. Glop est une librairie qui permet de créer, manipuler, résoudre
des programmes linéaires (LP) ainsi que des programmes mixtes entiers (MIP).
Nous avons choisi d’examiner différentes stratégies de générations de coupes en les
testant sur des problèmes MIP 0-1 de la librairie Linlib ([Deschinkel et al., 2008a]).
2.1. HISTORIQUE DES ACTIVITÉS 9

2.1.3.4/ P ROBL ÈMES D ’ OPTIMISATION DE REGISTRES EN COMPILATION

J’ai travaillé sur ces problèmes avec Sid Touati de l’équipe ARPA (Architecture et
Parallélisme) du laboratoire PRiSM, désormais professeur à l’Université de Nice Sophia-
Antipolis. Ce travail a été en partie financé par le projet ANR MOPUCE. J’ai mis à profit
mes compétences techniques de recherche opérationnelle au service d’un domaine de
haute technologie, à savoir l’utilisation efficace des nouveaux processeurs à parallélisme
d’instructions embarqués.
Le problème d’ordonnancement périodique de tâches (instructions) cycliques avec
minimisation du nombre de registres, dans sa forme la plus générale, peut se formuler
sous forme d’un programme linaire en nombre entiers où les variables de décisions
sont les dates de début de chacune des tâches, des variables binaires indiquant une
réutilisation ou non de registres entre deux tâches (non nécessairement distinctes), et
les distances de réutilisation. Le programme linéaire ainsi formé présente une structure
très forte permettant d’envisager l’application de techniques de décomposition qui,
couplées avec des solveurs performants, pourraient rendre possible la résolution exacte
de problèmes d’instances réelles. Nous pouvons nous tourner également vers la mise en
œuvre de méthodes approchées permettant d’obtenir des solutions de bonne qualité
en un temps raisonnable. Nous avons, par exemple, exploité le fait que le problème
en question fait apparaı̂tre un problème sous-jacent d’affectation pour lequel nous
connaissons un algorithme en temps polynomial (méthode Hongroise) pour proposer une
heuristique appropriée. Les différentes contributions (modélisation du problème, méthode
de résolution par décomposition, modélisation sous forme d’un problème de flot de coût
minimum, registres de types multiples) sur ce problème ont fait l’objet de présentations
dans les conférences ([Deschinkel and Touati, 2008b], [Deschinkel and Touati, 2008a],
[Deschinkel and Touati, 2009], [Deschinkel and Touati, 2010]) et de publications en revue
([Deschinkel et al., 2011], [Touati et al., 2011], [Touati et al., 2013]).

2.1.4/ M A ÎTRE DE CONF ÉRENCES UFC (2009-)

En septembre 2009, pour des raisons personnelles, j’ai souhaité quitter la région
parisienne et j’ai obtenu un poste (par une procédure d’échanges croisés) à l’Université
de Franche-comté dans l’équipe AND (Analyse Numérique et Distribuée) du département
DISC (Département Informatique des Systèmes Complexes) du laboratoire FEMTO-ST.
Au cours de ma première année sur Belfort, j’ai finalisé mes travaux de recherche
entrepris avec Sid Touati, sur le problème d’ordonnancement périodique de tâches
cycliques avec minimisation du nombre de registres.
Depuis, j’apporte mes connaissances et compétences en recherche opérationnelle dans
l’équipe AND. Je collabore également avec d’autres chercheurs localisés sur Belfort,
en apportant mon expertise en théorie des graphes et optimisation : des chercheurs
de l’UTBM en conception mécanique et des chercheurs du département ENERGIE
de FEMTO-ST. Mon travail de recherche vise à fournir des modèles originaux et des
algorithmes de résolution pour des problèmes liés aux thématiques suivantes :
— Problèmes d’optimisation dans les réseaux de capteurs (équipe AND,
département DISC, FEMTO-ST, UFC )
— Problème d’optimisation en conception mécanique (équipe INCIS, laboratoire
IRTES-M3M, UTBM)
10 CHAPITRE 2. ACTIVITÉS DE RECHERCHE

— Problèmes d’optimisation dans le domaine de l’énergie (équipe THERMIE et


équipe SHARPAC, département ENERGIE, FEMTO-ST, UFC)

2.1.4.1/ P ROBL ÈMES D ’ OPTIMISATION DANS LES R ÉSEAUX DE CAPTEURS

Dans l’équipe AND, j’ai réorienté mes travaux de recherche vers la thématique
des réseaux de capteurs, en proposant notamment deux algorithmes
centralisés d’optimisation de durée de vie du réseau ([Deschinkel, 2012],
[Deschinkel and Hakem, 2013]). De septembre 2012 à décembre 2015, j’ai co-encadré,
en thèse, Ali Khadum Idrees sur cette problématique. Nous avons étudié des protocoles
d’optimisation distribués avec l’objectif de prolonger la durée de vie opérationnelle
du réseau [Idrees et al., 2015a]. Pour résoudre le problème, nous avons proposé de
nouvelles approches articulées en deux phases. Dans un premier temps, la région à
surveiller est divisée en petites sous-régions en utilisant le concept de diviser pour mieux
régner. Ensuite, l’un de nos protocoles d’optimisation distribués est exécuté par chaque
nœud capteur dans chaque sous-région, afin d’optimiser la couverture et la durée
de vie du réseau. Nous proposons trois protocoles distribués [Idrees et al., 2014] qui
combinent, chacun, deux techniques efficaces : l’élection d’un nœud leader dans chaque
sous-région, suivie par la mise en oeuvre par celui-ci d’un processus d’ordonnancement
d’activité des nœuds capteurs de sa sous-région. Cet ordonnancement est porté
par la formulation et la résolution de programmes linéaires. Pour les deux premiers
protocoles, il s’agit de minimiser simultanément la non couverture ou la sur-
couverture d’un ensemble de points particuliers [Idrees et al., 2015b]. Pour le troisième
protocole, le nouveau modèle repose sur la couverture du périmètre de chacun des
capteurs [Idrees et al., 2016]. Nous avons réalisé plusieurs simulations en utilisant le
simulateur à évènements discrets OMNeT++ pour valider l’efficacité de nos protocoles
proposés. Nous avons pris en considération les caractéristiques d’un capteur Medusa
II pour la consommation d’énergie et le temps de calcul. En comparaison avec deux
autres méthodes existantes, nos protocoles ont la capacité d’augmenter la durée de vie
du réseau de capteurs et d’améliorer les performances de couverture.
Prochainement, j’encadrerai un nouveau doctorant sur cette thématique. Nous
proposerons de nouveaux modèles de maximisation de durée de vie intégrant les
notions de couverture partielle, et d’hétérogénéité (en énergie, en unités de captage)
des capteurs.

2.1.4.2/ P ROBL ÈME D ’ OPTIMISATION EN CONCEPTION M ÉCANIQUE

J’ai tissé des liens de recherche avec les membres de l’équipe INCIS du laboratoire
IRTES-M3M de l’UTBM. J’ai co-encadré une thèse CIFRE [Robert, 2012](thèse d’Aurélie
Robert soutenue en 2012), dont les principaux verrous scientifiques concernent
l’adaptation, le déploiement et puis la validation des concepts, méthodes et outils
développés au laboratoire IRTES-M3M et dédiés à la conception Hautement Productive,
à l’approche de ”Design For Manufacturing and Assembly” DFMA de couples produits-
process modulaires. Mon travail a consisté à proposer des méthodes fondées sur la
théorie des graphes pour la conception de produits modulaires et pour la génération
des gammes d’assemblage associées. Nous utilisons la même modélisation que
celle employée dans l’algorithme ASDA (Assembly Sequences Definition Algorithm)
proposé par Demoly [Demoly et al., 2011] en représentant les composants élémentaires
2.1. HISTORIQUE DES ACTIVITÉS 11

d’un produit à assembler par des nœuds et les relations de contact ou de


précédence entre 2 composants par des arcs. Le graphe orienté ainsi obtenu
est simplifié par application d’un algorithme de réduction transitive, puis coloré en
fonction de l’appartenance des composants à un module, et pour finir, contracté
(regroupement de nœuds) en fonction des informations issues de la matrice de
contact. La génération de séquences d’assemblage ordonnées et admissibles est
réalisée par l’application d’un algorithme de tri topologique, le graphe étant orienté
et acyclique. Afin de rendre opérationnelle cette méthodologie, un outil logiciel
appelé ORASSE Produit a été développé. Il permet de guider pas à pas l’utilisateur
dans certaines étapes complexes et difficiles à mettre en œuvre manuellement. Et
il permet surtout des gains de temps hautement significatifs (jusqu’à 60%) pour
l’architecte produit ([Robert et al., 2011c], [Robert et al., 2011a],[Robert et al., 2011b],
[Deffrenne et al., 2013], [Bettwy et al., 2014]).

2.1.4.3/ P ROBL ÈMES D ’ OPTIMISATION DANS LE DOMAINE DE L’ ÉNERGIE

L’intégration du département DISC au sein de l’Institut FEMTO-ST en 2012 a favorisé


le travail d’interdisciplinarité. Celui-ci s’est traduit pour ma part, par la collaboration avec
des membres du département ENERGIE sur :
— Le contrôle actif en mécanique des fluides ;
— Le dimensionnement et la gestion d’énergie d’un système hybride électrique

Contrôle actif en mécanique des fluides Ce travail a été réalisé en collaboration


avec l’équipe THERMIE (THermique, Ecoulements, instruMentatIon, Energie) du
département ENERGIE de l’Institut FEMTO-ST. L’objectif visé, à terme, est le contrôle
actif d’écoulement aérodynamique. Plus précisément, il s’agit d’aboutir à un dispositif
composé de micro-actionneurs (émettant ou non de l’air sous pression) et de micro-
capteurs (mesurant la pression locale), qui permet de modifier automatiquement
l’écoulement d’air au niveau d’une automobile, afin de réduire sa résistance à l’air. Pour
cela, à une vitesse de déplacement donnée, il faut pouvoir caractériser un écoulement
correspondant à une configuration des micro-actionneurs (ce sont eux qui vont modifier
l’écoulement). Or le calcul de l’écoulement avec un logiciel dédié à la mécanique des
fluides numérique (CFD pour Computationnal Fluid Dynamics) tel Fluent prend beaucoup
trop de temps pour espérer être utilisé en temps réel.
Dans un premier temps, l’étude a porté sur la pertinence de la substitution du calcul CFD
par un approximateur universel, à savoir un Réseau de Neurones Artificiels. Ce choix
tirait partie de l’expertise développée par l’équipe AND sur les réseaux de neurones
notamment dans le contexte de la dosimétrie en radiothérapie. L’étude portait sur un
écoulement à l’aval d’une marche car cette géométrie simple facilite les calculs CFD
et correspond grossièrement à l’arrière d’une voiture. Nous avons ensuite proposé et
validé par simulation un algorithme glouton d’optimisation de la vitesse des jets des
actionneurs de manière à maximiser la force de pression exercée à l’arrière du véhicule
([Couchot et al., 2012], [Couchot et al., 2013]).
12 CHAPITRE 2. ACTIVITÉS DE RECHERCHE

Dimensionnement et gestion d’énergie d’un système hybride électrique Ce travail


de recherche est le fruit d’une collaboration avec l’équipe SHARPAC (Systèmes
électriques Hybrides, ActionneuRs électriques, systèmes Piles A Combustible) engagée
depuis septembre 2013 et qui se concrétise à travers l’obtention en 2014 d’un
projet Région nommé GEOSEFA (Gestion d’énergie des systèmes hybrides électriques
optimisée et fiable) et l’encadrement mutuel d’un doctorant Pierre Saenger (contrat
doctoral Région depuis septembre 2014).
La thèse concerne le déploiement de stratégies de gestion d’énergie sur une maquette
test, composée d’une alimentation, qui émulera une source permanente de puissance
(du type alternateur couplé à une turbine ou un système pile à combustible), d’un
pack d’accumulateurs et d’un pack de super-condensateurs. Il s’agit de dimensionner
les stratégies de gestion d’énergie et d’optimiser la gestion de celle-ci à travers des
algorithmes déployés sur les GPUs. Cette association de sources est générique, on
peut la retrouver dans diverses applications : automobile, véhicules lourds, aéronautique
ou bien stationnaires (en particulier dans le cas de sites ı̂lotés, alimentés par des
sources d’énergie renouvelables). Le cadre applicatif privilégié est celui d’une application
aéronautique car elle rassemble de nombreuses contraintes en termes de dynamiques
de charge, de température ambiante, de qualité de l’énergie. L’objectif de la thèse est de
développer des algorithmes d’optimisation incluant le dimensionnement des éléments de
stockage et les paramètres de la stratégie de gestion d’énergie répartissant la demande
de puissance sur les différentes sources.
Dans un aéronef plus électrique, les éléments de stockage sont multiples et sont
connectés (directement ou via un convertisseur) aux bus. Le premier problème
étudié dans cette thèse concerne le dimensionnement. Il s’agit de déterminer, pour
chaque modèle d’architecture électrique, le nombre et le type de cellules unitaires
(accumulateurs et super-condensateurs) parmi une base de données, qui permettent
de répondre aux besoins énergétiques (énergie et puissance) et qui constituent
des systèmes dont la masse est minimisée. Le problème de dimensionnement est
formalisé sous forme d’un problème de minimisation d’une fonction masse (somme
des masses du pack accumulateurs et du pack super-condensateurs, et masses des
convertisseurs additionnels) dépendante de plusieurs variables (résistance, capacité,
décharge, fréquence de coupure, température,...). Un algorithme de recuit simulé est
utilisé pour résoudre le problème. La formalisation du problème et sa résolution a fait
l’objet d’une publication à la conférence VPPC en 2015 ([Saenger et al., 2015]) et dans
la revue IEEE Transactions on Vehicular Technology en 2016 ([Saenger et al., 2016]).

2.2/ R ESPONSABILIT ÉS SCIENTIFIQUES

2.2.1/ O RGANISATION D ’ ÉV ÉNEMENTS SCIENTIFIQUES

Membre du Comité d’organisation des Journées Franciliennes de Recherche


Opérationnelle (2004-2006)
De juin 2004 à septembre 2006, j’ai fait partie du comité d’organisation des Journées
Franciliennes de Recherche Opérationnelle. Ces journées thématiques ont un double
objectif, celui de présenter un tutoriel sur le sujet abordé ainsi que des applications
industrielles ou scientifiques en rapport direct avec le sujet. Cette expérience est
particulièrement enrichissante, car elle implique un réel travail d’organisation (site web,
2.3. ENCADREMENTS 13

annonces) mais aussi une réflexion et un recul sur mon domaine de recherche, ainsi que
de nombreuses prises de contacts avec des spécialistes du domaine. J’ai participé à
l’organisation de 4 journées, autour des thèmes suivants : Emploi du temps et planning,
Recherche opérationnelle et Théorie des Jeux, Approches polyédrales, Problème de
sac à dos en variables 0-1. Ces journées remportent un franc succès auprès de la
communauté RO d’Île de France, le nombre de participants est généralement compris
entre 40 et 90.
Organisatrice d’une session à ROADEF (2003)
J’ai organisé une session ”Optimisation et Tarification” en Février 2003.
Organisatrice d’une journée Tarification et Optimisation (2003)
Cette journée s’est déroulée au PRiSM en septembre 2003. Cette journée réunit
chercheurs, ingénieurs, industriels concernés par le problème de tarification dans
différents domaines. J’ai créé une page web pour promouvoir cette journée, j’ai diffusé
l’annonce aux personnes susceptibles d’être intéressées et j’ai organisé le programme
de la journée. A cette occasion, j’ai invité Mr P. Reichl du centre de recherche en
télécommunications de Vienne (The Telecommunications Research Center Vienna, ftw.).

2.2.2/ E XPERTISES SCIENTIFIQUES

Relecture d’articles
— pour des articles soumis aux Journées Doctorales en Informatique et Réseaux
(JDIR), aux conférences ROADEF
— pour des articles des journaux EJOR (European Journal of Operational Research),
JCO (Journal of Combinatorial Optimization), RAIRO- Operations Research,
Sensors.
Expertise de projets
— Experte pour une évaluation d’un projet RCE-MITACS (octobre 2008) (Réseau de
centres d’excellence - Les mathématiques des technologies de l’information et des
systèmes complexes) du Canada.
— Experte pour une évaluation d’un projet du programme FQRNT (octobre 2010)
Programme Établissement de nouveaux chercheurs du Fonds québécois de la
recherche sur la nature et les technologies visant une aide au démarrage de la
carrière des nouveaux professeurs des universités québécoises )
Projet de 7 pages avec budget et CV à expertiser Simplexe en nombre entiers
pour les problèmes de partitionnement

2.3/ E NCADREMENTS

2.3.1/ E NCADREMENT DE TH ÈSES

— P. Saenger, thèse débutée en septembre 2014 Stratégies de gestion d’énergie


dans un aéronef (25% encadrement)
— A. K. Idrees, thèse soutenue en décembre 2015 Optimisation de la durée de vie
du réseau de capteurs (40% encadrement) -
http ://www.theses.fr/s111697
Enseignant chercheur à l’Université de Babylon (Iraq)
14 CHAPITRE 2. ACTIVITÉS DE RECHERCHE

— A. Robert, thèse soutenue en novembre 2012 Vers une méthodologie de


structuration de la dynamique des interactions au sein du modèle Multi-Domaines
et Multi-Vues. Application à la conception de familles de produits modulaires (50%
encadrement – encadrement non officiel)
http ://www.theses.fr/2012BELF0189
Conseillère Industrie de la Chambre du Commerce et de l’Industrie de la Région
de Mulhouse
— F. Galea, thèse soutenue en juin 2006 Curiethérapie : un logiciel 3D d’aide au
planning de traitement, bourse MNERT, (70% encadrement)
http ://www.theses.fr/2006VERS0040
Ingénieur-chercheur CEA Saclay
— C. Louat, thèse soutenue en Janvier 2009 Coupes pour la PLNE mixte, thèse
CIFRE RTE (Réseau Transport Electrique).(50% encadrement)
Ingénieur consultant aéronautique Toulouse

2.3.2/ E NCADREMENTS DE STAGES DE M ASTER

2.3.2.1/ E NCADREMENTS DE STAGES DE M ASTER 1

— Sujet 2003 : Problème de tarification de services hôteliers


— Sujet 2005 : Problème de tarification de l’espace aérien
— Sujet 2006 (1) : Problème d’attribution de chantiers
— Sujet 2006 (2) : Tarification bi-niveau en hôtellerie
— Sujet 2008 : Problèmes d’optimisation combinatoire inverses

2.3.2.2/ E NCADREMENT DE STAGES DE M ASTER 2

— Sujet 2004 : Problème de planification et de tarification dans un réseau de


télécommunications
— Sujet 2005 : Problème de routage de requêtes dans un réseau MPLS
— Sujet 2010 : Contrôle actif d’écoulements aérodynamiques par réseaux de
neurones
— Sujet 2016 : Application de la théorie des graphes à l’optimisation centralisée de
la durée de vie des réseaux de capteurs

2.4/ P UBLICATIONS

Mes publications majeures portent sur :


— le développement d’une heuristique efficace pour l’ordonnancement périodique de
tâches sous contrainte de stockage [Deschinkel et al., 2011],
— le développement d’un protocole d’optimisation distribué ayant pour objectif
l’allongement de la durée de vie du réseau et reposant sur la couverture du
périmètre des capteurs [Idrees et al., 2016],
— le dimensionnement d’une plate-forme aéronautique utilisant plusieurs sources
d’énergie (packs de batteries et de condensateurs) [Saenger et al., 2016]
2.4. PUBLICATIONS 15

Le tableau 2.1 synthétise le nombre et le type de publications.

Journaux Conférences Conférences Autres


internationaux internationales nationales travaux
Pendant la thèse
à l’ONERA 2 3 1 4
(1998-2001)
Dans l’équipe OPALE
à l’UVSQ 4 11 4 3
(2002-2009)
Dans l’équipe AND
(DISC, FEMTO-ST) 5 9 2
à l’UFC (depuis 2009)
[Deschinkel, 2012]
[Couchot et al., 2013]
[Idrees et al., 2015b]
[Idrees et al., 2016]
[Saenger et al., 2016]
TOTAL 11 23 7 7

TABLE 2.1 – Nombre et types de publications


3
ACTIVIT ÉS D ’ ENSEIGNEMENT ET
T ÂCHES COLLECTIVES

3.1/ ACTIVIT ÉS D ’ ENSEIGNEMENT

3.1.1/ A L’U NIVERSIT É DE V ERSAILLES

J’ai eu la responsabilité des enseignements suivants à l’UVSQ et à l’ISTY (Institut des


Sciences et Techniques des Yvelines, école d’ingénieurs au sein de l’UVSQ) :
— Cours d’Algorithmique, ISTY 1ère année
— Cours de Recherche Opérationnelle, ISTY 2ème année
— Cours de Fondements de l’informatique 2, Licence Informatique 1ère année
Cette responsabilité comprenait l’animation de l’équipe pédagogique, le recrutement des
chargés de TD pour les enseignements en vacations, ainsi que la coordination des
groupes de travaux dirigés. Pour réaliser ce travail, j’ai utilisé la plate-forme collaborative
e-campus (http://www.e-campus.uvsq.fr/) de l’UVSQ sur laquelle je mettais en ligne une
partie de mes cours, des énoncés de projets, de tds et d’examens.

3.1.2/ A L’IUT DE B ELFORT

Au sein du département Informatique de l’IUT, je suis responsables du module


Techniques d’Optimisation (2ème année DUT) et du module PPP. Le module Techniques
d’optimisation est une initiation au domaine de la recherche opérationnelle, les bases de
la programmation linéaire et de la théorie des graphes sont enseignées. L’ objectif du
module PPP (Projet professionnel personnalisé) est de faire découvrir aux élèves, les
différents parcours pour atteindre un objectif professionnel, de faire connaı̂tre les métiers
de l’informatique, et de donner une idée des secteurs d’activité dans lesquels ils peuvent
exercer, pour les aider ainsi à construire leurs projets. A ce titre, j’organise une dizaine
de rencontres annuelles entre les étudiants du DUT Informatique et des acteurs du
monde informatique (ex : anciens étudiants du DUT, représentant d’écoles d’ingénieurs
en informatique, direction des services informatiques des finances publiques,...).

17
18 CHAPITRE 3. ACTIVITÉS D’ENSEIGNEMENT ET TÂCHES COLLECTIVES

3.1.3/ A L’UTBM

J’enseigne en anglais un module sur la Théorie des graphes aux élèves ingénieur
de l’Université Technologique de Belfort-Montbéliard (UTBM). Ce module présente un
ensemble de définitions, de théorèmes et d’algorithmes de graphes (plus court chemin,
flot maximal, coloration, arbre couvrant,...).

3.1.4/ R ÉSUM É

Le tableau 3.1 synthétise mes activités d’enseignement, classées par thèmes.

3.2/ T ÂCHES COLLECTIVES

3.2.1/ R ESPONSABILIT ÉS P ÉDAGOGIQUES

3.2.1.1/ R ESPONSABLE DE LA M ENTION I NFORMATIQUE EN L ICENCE (3 ANS : 2004-


2007)

J’ai été responsable de la Mention Informatique en Licence (les 3 premières années


dans le parcours LMD) appuyé par des responsables pour chaque année. J’ai contribué
à la mise en place du système LMD, à l’organisation des parcours informatique et
mathématiques-informatique de la licence mention informatique. Je veillais à ce que
l’offre des unités d’enseignement proposées en Informatique soit cohérente et fournisse
aux étudiants des connaissances de base solides en informatique (algorithmique,
programmation, architecture des ordinateurs). En tant que responsable de la mention,
j’assurais aussi le suivi pédagogique des étudiants en les guidant dans leur choix
de parcours et d’unités d’enseignements obligatoires ou optionnelles. J’ai participé
activement au recrutement sur dossier des étudiants pour la troisième année de licence.
J’ai joué le rôle d’interface entre les enseignants du département d’informatique et
les différents services administratifs qui gèrent les inscriptions, les emplois du temps,
l’organisation des examens et des jurys.

3.2.1.2/ R ESPONSABLE DES STAGES À L’ISTY (3 ANS : 2003-2006)

J’ai été responsable des stages à l’ISTY. Cette responsabilité implique la gestion d’un site
web des stages, la coordination du tutorat des stages et l’organisation des soutenances
de stages. J’étais l’interlocutrice privilégiée pour les entreprises qui proposent des stages
à l’école, en diffusant leurs offres aux étudiants, en répondant à leur interrogations
sur les modalités du stage et les exigences de l’école. J’ai été moi-même tutrice de
stages et je le suis encore en DUT Informatique. Cette tâche consiste à jouer le rôle
d’intermédiaire entre l’école et l’entreprise, à veiller au bon déroulement du stage, à
rendre visite à l’étudiant sur son lieu de stage, à lire le rapport de l’étudiant et à participer
à sa soutenance.
3.2. TÂCHES COLLECTIVES 19

3.2.1.3/ C HEF DU D ÉPARTEMENT INFORMATIQUE DE L’ISTY (2 ANS : 2007-2009)

En septembre 2007, j’ai été élue chef du département informatique de l’école d’ingénieurs
ISTY de l’UVSQ (une soixantaine d’étudiants par promotion).
J’ai obtenu ce poste dans une période où l’ISTY devait relever un grand nombre de défis
pour obtenir sa réhabilitation par la Commission des Titres d’ingénieurs (CTI, avril 2009).
J’ai eu la responsabilité d’animation et du suivi des études des 3 années du cycle
d’ingénieur de la spécialité informatique, en collaboration avec les 3 responsables
d’années. En plus des tâches administratives régulières (jurys, emplois du temps,
conseils pédagogiques, suivi des heures d’enseignement du département), j’ai travaillé
au renforcement du dispositif de classe préparatoire intégrée et à l’élaboration d’un
partenariat avec les IUTs de l’UVSQ pour accroı̂tre nos effectifs. J’ai participé à des
salons pour faire connaı̂tre l’école.
Je me suis efforcée aussi de tisser des passerelles entre la formation d’ingénieur et celles
des autres Masters d’informatique de l’université pour diversifier l’offre.
Pour répondre à la demande de la CTI, j’ai élaboré un système d’évaluation des
enseignements qui comporte des questionnaires accessibles sur le web et dont les
résultats peuvent être facilement exploités sous Excel.
J’ai été également représentante du personnel enseignant au Comité d’administration de
l’ISTY (2004-2008).

3.2.1.4/ J URY AUX ÉPREUVES TIPE (4 ANS , DEPUIS 2013)

Je suis jury aux épreuves orales annuelles d’évaluation des TIPE (travaux d’initiatives
personnelle encadrés). A ce titre, je rédige un dossier scientifique (un article d’une
quinzaine de pages et un éventail de questions/réponses) sur une problématique en
mathématique/informatique. Ce dossier est préparé pendant 2h15 par le candidat qui
le présente au jury pendant 10 minutes. Le jury interroge le candidat en se référant
à des questions qui accompagnent le dossier. Le candidat présente ensuite au jury
son travail d’initiative personnelle encadré sur la thématique scientifique de son choix.
Cette épreuve est une épreuve commune aux Concours Centrale-Supélec, Concours
Communs Polytechniques, et Concours Commun Mines-Ponts.

3.2.2/ R ESPONSABILIT ÉS ADMINISTRATIVES

3.2.2.1/ M EMBRE DE C OMIT ÉS DE S ÉLECTION S ECTION 27

2003- 2007 : Commission de Spécialistes MCF de l’Université de Versailles Saint Quentin


en Yvelines.
2011 : Comité de Sélection MCF Université de Franche-Comté
2015 : Commission de recrutement ATER Université de Franche-Comté
2016 : Comité de Sélection MCF Université de Franche-Comté, Comité de Sélection MCF
Université Haute Alsace
20 CHAPITRE 3. ACTIVITÉS D’ENSEIGNEMENT ET TÂCHES COLLECTIVES

3.2.2.2/ M EMBRE D ’ INSTANCES UNIVERSITAIRES

2012-2016 (4 ans) : membre élue au Conseil d’Institut de l’IUT Belfort Montbéliard


2012-2016 (4 ans) : membre élue de la Commission Recherche du Conseil Académique
(anciennement Conseil scientifique) de l’Université de Franche-Comté
2013-2016 (3 ans) : membre nommée du Conseil Académique Restreint de l’Université
de Franche-Comté
2015-2016 (1 an) : membre nommée du Conseil Académique provisoire de la COMUE
( Communauté d’universités et d’ établissements ”Université Bourgogne Franche-Comté”)

3.2.2.3/ M EMBRE D ’ INSTANCE NATIONALE

2016-2020 (4 ans) : membre élue à la Commission Nationale des Universités (CNU)


en section 27

3.3/ R ÉSUM É DE CARRI ÈRE

La frise 3.2 résume ma carrière en enseignement et en recherche.


3.3. RÉSUMÉ DE CARRIÈRE 21

F IGURE 3.1 – Résumé de mes enseignements


22 CHAPITRE 3. ACTIVITÉS D’ENSEIGNEMENT ET TÂCHES COLLECTIVES

F IGURE 3.2 – Résumé de mon parcours professionnel


4
M OTIVATIONS ET ORGANISATION DU
M ÉMOIRE

4.1/ M OTIVATIONS

La recherche opérationnelle (RO) est une discipline au confluent de l’informatique, des


mathématiques appliquées, de l’économie et du génie industriel. Elle permet de fournir
des bases scientifiques à la prise de décisions, habituellement dans un but de contrôle
ou d’optimisation (améliorer l’efficacité, diminuer les coûts, etc.). Les applications de la
recherche opérationnelle sont nombreuses et se retrouvent par exemple dans le domaine
du transport, de la finance ou de la santé. La RO s’appuie sur de nombreuses méthodes
issues des mathématiques appliquées et sur les progrès en informatique pour essayer de
résoudre en un temps de calcul raisonnable des problèmes NP-difficiles. Beaucoup de
ces méthodes sont génériques, mais dans la plupart des cas, un travail conséquent de
modélisation et de décomposition du problème, est nécessaire pour mettre en oeuvre
de manière performante une telle méthode sur un problème donné. Parmi les outils
de modélisation à disposition des experts en recherche opérationnelle, on trouve entre
autres la programmation linéaire et la théorie des graphes. La programmation linéaire, en
variables réelles ou entières, est fortement liée à l’histoire de la recherche opérationnelle.
En effet, l’algorithme du simplexe créé en 1947 pour la résolution efficace de programmes
linéaires est à l’origine du développement de la RO. La programmation linéaire consiste à
minimiser (ou maximiser) une fonction linéaire sous des contraintes également linéaires,
ce qui, en pratique, permet de modéliser un grand nombre de situations. La théorie
des graphes offre également des possibilités de modélisation très riches (plus courts
chemins, flux de transports, ordonnancement de tâches). De nombreux problèmes
d’échange d’informations (réseaux d’entreprises, internet), de transfert de marchandises
peuvent se modéliser comme un problème de flot dans un graphe.
Mes travaux en recherche opérationnelle sont principalement tournés vers la
modélisation de problèmes d’optimisation difficiles dans des domaines d’applications
variés (aérien, télécommunication, médecine, compilation,...).
Dans ce mémoire, nous utilisons le terme générique problème d’optimisation difficile pour
désigner indistinctement :
— un problème d’optimisation pour lequel les difficultés liées à sa modélisation sont
nombreuses : nombre de paramètres élevé, présence simultanée de plusieurs
objectifs parfois contradictoires, évaluation complexe de la fonction objectif,...
— un problème d’optimisation pour lequel on ne trouve pas d’algorithme en temps

23
24 CHAPITRE 4. MOTIVATIONS ET ORGANISATION DU MÉMOIRE

polynomial pour le résoudre. Ce type de problème d’optimisation est dit NP-


complet 1 .
Je m’intéresse aussi bien au développement de résultats théoriques qu’à la résolution de
problèmes réels dans le cadre de contrats industriels ou institutionnels (ARC PrixNet,
Hopital Pitié Salpétrière, bourse CIFRE RTE). Mes travaux relèvent de différentes
approches : synthèse, étude de complexité, théorie des graphes, optimisation inverse,
programmation à deux niveaux, résolution par méthodes exactes (simplexe, branch
and bound, méthodes de coupes, relaxation lagrangienne, décomposition,...) ou par
algorithmes approchés (recuit simulé, tabou, algorithme génétique,...).
Mes travaux de recherche m’ont également amenée à utiliser des solveurs de
programmation linéaires commerciaux ou libres (CPLEX, XPRESS, GLPK, LPSOLVE,
COIN OSI, BOBPP) et un simulateur de réseaux de capteurs (OMNET++). J’ai aussi
contribué au développement et la réalisation de nouveaux logiciels : Isodose 3D pour
la curiethérapie, GLOP pour l’intégration de méthodes de coupes dans les solveurs de
programmation linéaire, et ORASSE pour la conception de produit en mécanique.
L’ensemble de mes travaux témoigne de ma capacité d’ouverture vers les
autres disciplines pour dialoguer avec des acteurs d’horizons scientifiques variés
(télécommunications, médecine, électricité, énergie, compilation,...) pour comprendre
leurs problématiques, créer des modèles mathématiques et informatiques appropriés et
proposer des méthodes de résolution efficaces. En guise d’illustration, j’ai fait le choix
de centrer ce mémoire sur trois problèmes significatifs dans ma carrière d’enseignant-
chercheur :
— Le problème d’optimisation de la dose en curiethérapie,
— Le problème d’optimisation de registres en compilation,
— Le problème de maximisation de la durée de vie d’un réseau de capteurs.

Le premier problème traité touche au domaine de la santé et m’a permis d’appréhender


toutes les phases de développement d’une solution en recherche opérationnelle, en
passant par une première étape de modélisation, où il faut s’imprégner d’un problème
concret dans une discipline nouvelle par rapport à sa formation, pour finir par une
étape de réalisation logicielle. Le second problème m’a donné l’occasion d’aborder une
nouvelle thématique en informatique, celle du processus de compilation en présence de
parallélisme d’instructions. La difficulté a été d’appréhender un cadre théorique complexe,
mais cet effort a été récompensé par l’obtention d’excellents résultats grâce à une
heuristique appropriée. Enfin, en m’intéressant au problème de couverture et de durée
de vie dans un réseau de capteurs, j’ai rejoint un domaine de recherche de mon équipe
actuelle, et j’ai réussi à proposer de nouveaux modèles et de nouvelles heuristiques pour
le traitement de ce problème. Ces trois problèmes ont en commun d’être abordés sous
l’angle de la modélisation par programmation linéaire et/ou par la théorie des graphes.

4.2/ P LAN DU M ÉMOIRE

Ce mémoire est organisé en 4 parties.

1. On utilise ici et dans le reste du mémoire un abus de langage car on devrait utiliser le terme NP-difficile
pour un problème d’optimisation et NP-complet pour le problème de décision associé.
4.2. PLAN DU MÉMOIRE 25

Partie I : Modélisation de problèmes d’optimisation difficiles

Cette partie est consacrée à la présentation des trois problèmes précédemment cités.
Cette partie se décline en trois chapitres (un chapitre par problème, chapitres 5,6 et 7),
chacun structuré de la même manière : une présentation de la problématique, un état de
l’art, et pour finir une description détaillée de nos propres modèles. Tous nos modèles
sont des modèles de programmation linéaire : un programme linéaire à variables
continues (PL) en curiethérapie, un programme linéaire à variables entières (IP) en
compilation, et des programmes linéaires mixtes (MIP) ou (IP) pour la maximisation de
la durée de vie du réseau de capteurs.

Partie II : Résolution par décomposition du problème

La seconde partie présente nos heuristiques de résolution fondées sur un même


principe, celui de décomposer le problème en sous-problèmes présentant des structures
remarquables pour lesquelles des algorithmes en temps polynomial s’avèrent efficaces.
Nous décrivons les approches conçues pour résoudre les problèmes, ainsi que les
résultats expérimentaux obtenus.
Le chapitre 8 présente l’heuristique SIRALINA dédiée à la minimisation du nombre de
registres. Elle se déroule en deux étapes : résolution d’un problème d’ordonnancement
puis d’un problème d’affectation linéaire.
Les chapitres 9 et 10 se concentrent sur la résolution du problème de maximisation
de la durée de vie d’un réseau de capteurs. Nous avons proposé deux méthodes
centralisées de planification des périodes de réveil des capteurs. Nous avons développé
une heuristique de construction en parallèle de différents ensembles couvrants disjoints
(chapitre 9). La répartition des différents capteurs dans les ensembles est guidée par la
résolution d’un problème d’affectation linéaire.
Dans le cas d’ensembles couvrants non disjoints, le nombre de combinaisons possibles
augmente de manière exponentielle avec le nombre de capteurs et de cibles. Pour
faire face, nous proposons une méthode de génération de colonnes (chapitre 10) qui
nécessite la résolution d’un programme auxiliaire en nombre entiers. Ce problème
auxiliaire est résolu, soit de manière exacte avec un algorithme type Branch and Bound,
soit avec une heuristique gloutonne.

Partie III : Modélisation sous forme de problèmes de flots

Dans la troisième partie de ce mémoire, nous introduisons des nouvelles modélisations


à base de problèmes de flots dans un graphe.
Dans le premier chapitre de cette partie (chapitre 11), nous montrons qu’il est possible
de ramener la résolution d’un des sous-problèmes de SIRALINA à celle d’un problème
de flot à coût minimum pour lequel plusieurs algorithmes polynomiaux sont connus, ce
qui permet ainsi de s’affranchir de l’utilisation d’un solveur de programmes linéaires.
Dans le chapitre suivant (chapitre 12), nous détaillons un modèle de graphe associé à un
problème de flot maximal qui fait office de référence pour le problème de génération
d’ensembles couvrants disjoints. Nous nous intéressons à une modélisation limitant
26 CHAPITRE 4. MOTIVATIONS ET ORGANISATION DU MÉMOIRE

simultanément la sur-couverture et la sous-couverture pour ce même problème. Nous


montrons qu’il est possible d’interpréter ce modèle comme celui d’un problème de flot à
coût minimum dans le graphe précédemment construit.
Une conclusion et des perspectives sont données en dernière partie.
I
M OD ÉLISATION DE PROBL ÈMES
D ’ OPTIMISATION DIFFICILES

27
5
LE PROBL ÈME D ’ OPTIMISATION DE LA
DOSE EN CURIETH ÉRAPIE

5.1/ P ROBL ÉMATIQUE

5.1.1/ P R ÉSENTATION DE LA CURIETH ÉRAPIE

La radiothérapie est une des techniques les plus efficaces de lutte contre le
cancer en particulier pour les tumeurs malignes localisées. A la différence de la
radiothérapie externe où la tumeur est irradiée par la conjonction de faisceaux d’électrons
(figure 5.1(a)), la curiethérapie (appelée également brachythérapie) est un type de
radiation qualifiée d’interne. Les sources radioactives sont en effet introduites par voie
opératoire à l’intérieur du corps du patient (figure 5.1(b)). Cette technique de traitement
s’est développée ces dernières années grâce aux avancées technologiques en imagerie,
et aux outils et équipements informatiques mis à disposition des radio-physiciens et des
médecins. Il existe en fait deux types de curiethérapie. La curiethérapie à bas débit de
dose dite LDR pour Low Dose Radiation (débit de dose de référence compris entre 0.4
et 2 Gray(Gy)/h) 1 et la curiethérapie à haut débit de dose dite HDR (débit de dose
de référence supérieure à 12 Gy/h). Les objectifs de ces deux types de curiethérapie
sont les mêmes, c’est-à-dire détruire la tumeur par irradiation en délivrant une dose
suffisante pour détruire les tissus tumoraux sans surdosage susceptible d’entraı̂ner des
effets secondaires et tout en protégeant les organes à risque (comme le cerveau, la
vessie, etc.) et les tissus sains.
La curiethérapie à bas débit de dose dite LDR pour Low Dose Radiation est très utilisée
pour les cancers de la prostate. Dans le cas d’une curiethérapie par implant pour une
tumeur prostatique, une source de faible énergie est insérée dans le corps humain à
travers une aiguille et ensuite l’aiguille est retirée rapidement, laissant la source sous
forme d’un ‘grain’ dans le patient. Les sources ont dans ce cas une durée de vie limitée :
après peu de mois, il n’y a plus de radioactivité. Il s’agit donc ‘d’implants permanents pour
cancers prostatiques’.
La curiethérapie HDR consiste à introduire temporairement dans le corps du patient
par voie opératoire une source radioactive. La source se déplace à travers un cathéter
(tube étroit) et s’arrête à différents intervalles. Elle est en fait contrôlée par une machine

1. la dose absorbée par l’organe se mesure en Gray(Gy), telle que 1 Gy correspond à une énergie
absorbée de 1 joule dans une masse de matière de 1kg

29
30 CHAPITRE 5. OPTIMISATION DE LA DOSE EN CURIETHÉRAPIE

(a) La radiothérapie externe (b) La curiethérapie

F IGURE 5.1 – Les deux sortes de thérapies par rayonnements ionisants : en radiothérapie
externe, le PTV est irradié par des faisceaux de rayonnements provenant d’une source
placée à l’extérieur du patient. En curiethérapie, les rayonnements sont émis par des
sources radioactives placées à l’intérieur du patient.

programmée qui s’appelle un remote afterloader, et qui pousse la source radioactive à


haut débit (Iridium Ir192) dans chaque cathéter, en s’arrêtant à des positions calculées
dites positions d’arrêt espacées par exemple de 2,5 ou 5 millimètres et pour un temps
prescrit. La distribution de dose peut donc être modulée grâce aux nombreuses positions
d’arrêt en y laissant plus ou moins longtemps la source. Les doses finales reçues peuvent
être évaluées avant de commencer tout traitement. Un autre avantage est qu’une fois la
curiethérapie terminée le patient n’est plus radioactif. Le traitement consiste alors en un
petit nombre de séances (3 ou 10) de quelques minutes (10/15), une fois par semaine.
Nous détaillons ci-dessous les différentes phases du traitement en curiethérapie HDR
pour bien montrer où se posent les problèmes d’optimisation.

5.1.2/ P HASES DE TRAITEMENT

P LACEMENT DES CATH ÉTERS DANS LE CORPS DU PATIENT


Le médecin, après avoir localisé par imagerie 3D la tumeur et défini ce qu’on appelle le
volume cible PTV (Planning Target Volume), choisit le type d’implantation des cathéters
appropriée pour le type de tumeur à soigner : dans une cavité (cancer gynécologique ou
buccaux) ; dans un tube (bronches, œsophage) ou à travers la tumeur (sein, prostate,...).

S IMULATION
Le radiophysicien recalcule l’exacte position des cathéters après leur implantation,
localise la tumeur et les organes à risque adjacents OAR (Organs At Risk) par
imagerie 3D (scanographie, rayons X, ultrasons, tomographie, imagerie par résonance
magnétique,...).
5.1. PROBLÉMATIQUE 31

D OSIM ÉTRIE
Les doses à prescrire sont alors définies. Une prescription peut par exemple donner la
dose minimale pour couvrir le volume cible PTV, les doses maximales à ne pas dépasser
pour les organes à risque OARs. Les positions d’arrêt ainsi que le temps d’arrêt associés
doivent alors être calculés. C’est cette partie qui est automatisée dans les logiciels de
plan de traitement.

T RAITEMENT
Dès que le traitement proposé est approuvé, les données sont transférées à la machine
d’émission de source qui applique le traitement sur le patient. Après le traitement, les
applicateurs sont retirés du corps du patient.
Un plan de traitement consiste à trouver le nombre et la position des cathéters ainsi que
les positions et les temps d’arrêt de la source radioactive dans chacun d’eux. Le meilleur
plan de traitement est celui qui produit une distribution de dose remplissant au mieux
les critères cliniques prescrits qui varient suivant le type de tumeur traitée. Nous verrons
qu’il n’existe pas de critère consensuel pour évaluer un plan de traitement mais que
l’optimisation peut aider à construire un plan de traitement en intervenant sur différentes
phases du traitement : l’implantation des cathéters et la détermination des positions
d’arrêt dans un premier temps, puis le calcul des temps d’arrêt. A ces deux problèmes
d’optimisation liés entre eux s’ajoute un problème annexe : le meilleur choix de points de
référence pour représenter une distribution de dose. Ce problème ne sera pas étudié ici.

5.1.3/ C ALCUL D ’ UNE DISTRIBUTION DE DOSE

Nous expliquons comment est calculée une distribution de dose avant de décrire
comment elle peut être évaluée et optimisée.

P OINTS DE R ÉF ÉRENCE


Pour calculer l’irradiation des tissus du patient pour un plan de traitement donné, un
certain nombre de points de référence vont être choisis sur les organes en cause. Ils
peuvent être distribués sur une grille de points régulièrement espacés, ou choisis au
hasard avec une loi uniforme, ou encore suivre une certaine loi de distribution. Le nombre
de points de référence à l’intérieur ou sur le pourtour d’un organe (PTV ou OAR) a son
importance et va jouer sur la fiabilité des résultats obtenus. Un grand nombre de points
permet de mieux rendre compte de la dose distribuée dans l’organe mais va allonger
le temps de calcul de la distribution de dose. Il y a donc là un problème d’optimisation
annexe puisqu’il faudrait calculer le nombre minimal de points pour rendre compte de
la distribution de dose et donc faire appel à des méthodes d’analyse statistique. Ce
problème a été évoqué mais rarement traité dans la littérature.
Lessard et al. [Lessard and Pouliot, 2001] génèrent uniformément des points sur
le pourtour, et à l’intérieur des organes à risque, et du PTV. Lahanas et al.
[Lahanas et al., 2003] le font également à l’intérieur des OARs, du PTV, et des
tissus normaux et sur la surface triangulée du PTV. Dans [Karouzakis et al., 2002]
Karouzakis et al. proposent deux variantes d’une méthode d’échantillonage stratifié pour
réduire le nombre de points calculés sans perte de précision pour l’optimisation de la
dose.
32 CHAPITRE 5. OPTIMISATION DE LA DOSE EN CURIETHÉRAPIE

Les points de référence ne servent pas uniquement lors de l’optimisation de la dose, mais
également pour évaluer la dose une fois l’optimisation effectuée. Ces deux opérations
sont très différentes du point de vue des traitements effectués : alors que dans le premier
cas des méthodes d’optimisation complexes sont exécutées, dans le second cas n’est
effectué que le calcul séquentiel d’une grande quantité de valeurs. Pour un même nombre
de points, l’optimisation des temps d’arrêt est une opération beaucoup plus longue (en
termes de temps d’exécution) que la dosimétrie a posteriori. Il est donc possible, et même
souhaitable, d’utiliser un ensemble plus grand de points de référence dans ce second cas.
Cela permet de mesurer la qualité d’une optimisation avec beaucoup plus de précision,
et éventuellement, de valider ou non le choix des points utilisés pour l’optimisation.

C ALCUL DE LA DISTRIBUTION DE DOSE

Le débit de dose reçu en point de calcul i à partir d’une source ponctuelle situé en un
point j est donné par la formule suivante [Gerbaulet et al., 2002] :

d(i, j) = S k Λφan g(dist(i, j))/dist(i, j)2 ,

où S k est l’intensité (kerma dans l’air) de la source, Λ est la constante de dose de la
source, φan est le facteur d’anisotropie, dist(i, j) est la distance euclidienne entre les points
i et j, g(dist(i, j)) est la fonction de dose radiale. Cette fonction, dépendante de la source
utilisée et fournie par le fabricant de la source, peut être en général approximée par une
fraction de 2 polynômes. La dose reçue par un point i décroı̂t comme l’inverse du carré
de sa distance à la source. Cette formule montre évidemment que plus on est près de la
source, plus la dose de radiation reçue augmente. Le débit de dose exprime la dose reçue
par unité de temps. Pour un point i irradié par plusieurs sources ou de façon équivalente,
par une source se déplaçant sur ensemble J de positions avec un temps d’arrêt t j en
chaque position, comme en curiethérapie HDR, la dose reçue est :
X
d(i) = d(i, j).t j .
j∈J

En curiethérapie LDR, lorsque toutes les sources sont implantées de façon définitive (par
exemple, traitement de la prostate par des grains d’iode 125), la dose reçue en un point
n’est plus une somme de produits ”contribution de débit de dose × temps” mais une
somme des contributions de dose, en considérant la présence ou non d’une source en
chaque position j. La variable x j est une variable qui vaut 1 si une source est en placée
en j, et 0 sinon.
X
d(i) = d(i, j).x j .
j∈J

É VALUATION QUALITATIVE D ’ UNE DISTRIBUTION DE DOSE

Être capable de calculer la dose en un point quelconque du volume considéré n’est pas
suffisant du point de vue des médecins, car cela entraı̂ne la génération d’une quantité
de données bien trop grande pour pouvoir être évaluée de manière judicieuse. Des outils
5.2. ÉTAT DE L’ART 33

graphiques (Histogrammes dose-volume HDV) et numériques (indices d’homogénéité,


COIN, etc.) ont été introduits, permettant aux médecins d’obtenir rapidement un aperçu
de la qualité d’une simulation de traitement, et par là-même de décider de l’application
de tel ou tel traitement proposé.
Au sein de la communauté médicale, il n’y a pas de critères unanimes pour rendre compte
qualitativement de la distribution d’une dose générée par un plan de traitement spécifique.
Globalement, un bon plan de traitement doit permettre d’obtenir une distribution de dose
qui recouvre totalement ou presque le volume cible avec une dose au moins égale à la
dose prescrite, tout en minimisant la dose reçue dans l’espace environnant, en particulier
dans les éventuels organes à risque.
Les critères permettant de juger cette distribution de dose vont concerner les quantités
de doses délivrées (respect des prescriptions, enveloppes isodose) et leur répartition
à travers les différents organes (histogramme dose-volume, paramètres d’uniformité).
Pour plus de détails, le lecteur peut se référer au chapitre 2 de la thèse de F.
Galéa [Galea, 2006]. Ces critères sont rarement utilisés dans les modèles d’optimisation
de la dose, ils sont utilisés à posteriori pour évaluer la qualité de la distribution de la dose.

5.2/ É TAT DE L’ ART

S’il existe de nombreux articles dans des revues de Recherche Opérationnelle


concernant l’optimisation d’un traitement par radiation externe, le problème du traitement
par curiethérapie est plutôt abordé dans des revues de Radiophysique ou de Médecine.
Cette partie fait une synthèse des modèles et méthodes existantes sur ce problème avant
nos travaux (c’est-à-dire jusqu’en 2005). Ces méthodes s’appuient sur des techniques
d’imagerie médicale (scanner, IRM,...) qui permettent de situer avec précision la forme de
la tumeur à traiter. Les images sont des vues en coupe, parallèles, entre elles du volume à
traiter. Le problème principal consiste à déterminer la façon de placer les sources actives
à l’intérieur du volume à traiter (PTV), de manière à avoir une distribution de dose correcte
en termes de conformation (enveloppement de la tumeur) et d’homogénéité. Nous allons
effectuer une synthèse sur les différents modèles et méthodes de résolution employés en
curiethérapie LDR prostatique, et en curiethérapie HDR.
D’une manière générale, la question posée en curiethérapie LDR prostatique est : ”étant
donnée une position possible de source, doit-on y placer une source ou non ?”. En
curiethérapie HDR, il s’agira plutôt de déterminer, pour chacune des positions possibles
de la source, combien de temps la source devra rester sur cette position. Dans le premier
cas, les problèmes évoqués sont donc des problèmes à variables binaires ; A chaque
position possible de la source est associée une variable binaire x j , dont la valeur est
mise à 1 si une source doit être placée sur la position j, et 0 dans le cas contraire. Dans
le second cas, en curiethérapie HDR, les variables sont continues et correspondent au
temps d’arrêt t j (éventuellement nul) de la source en une position j. Pour tous les cas,
les principes d’optimisation proposés dans la littérature reposent sur des considérations
proches : il s’agit de spécifier pour chaque point de l’espace un intervalle de dose à
respecter et de définir des pénalités en cas de dépassement de l’une ou l’autre des
bornes.
Plusieurs objectifs se retrouvent en conflit pour irradier convenablement la tumeur tout en
protégeant les organes à risques. La présence de plusieurs objectifs en conflit donne lieu
34 CHAPITRE 5. OPTIMISATION DE LA DOSE EN CURIETHÉRAPIE

à deux approches distinctes. La première consiste à regrouper tous les objectifs dans
une seule fonction en pénalisant avec des poids plus ou moins forts pour privilégier
l’un ou l’autre des critères et fait ressortir une seule solution. La seconde approche
fait appel à des techniques d’optimisation multiobjectifs qui fournissent un ensemble
de solutions traduisant les possibilités de compromis possibles. Dans le premier cas,
l’expertise du planificateur intervient en amont de l’optimisation pour fixer les différents
poids. Dans le second cas, le planificateur doit analyser toutes les solutions proposées
après optimisation pour faire le choix d’une solution appropriée. Cette tâche peut
devenir rapidement complexe quand le nombre d’objectifs est élevé, d’où l’intérêt de
proposer, en complément, des outils graphiques de visualisation de solutions, comme
ceux développés par Hamacher [Hamacher et al., 2005] pour faciliter le travail.
En ce qui concerne les méthodes d’optimisation utilisées, la méthode du Simplexe
(et/ou Branch and Bound pour des variables entières) est clairement adaptée pour
la résolution du problème, quand le modèle associé est linéaire, car contrairement
au recuit simulé, elle fournit la solution optimale exacte, et de plus, les solveurs de
programmation linéaire sont suffisamment puissants pour traiter des problèmes de taille
semblable à ceux rencontrés en curiethérapie. Pour des objectifs particuliers avec une
expression analytique explicite comme la minimisation des variances de dose, et convexe,
la méthode de descente du gradient est bien appropriée. Pour le reste, il faut se tourner
vers des méthodes de résolution approchée. Les algorithmes génétiques ont été étudiés
et largement utilisés dans ce cadre, ils répondent bien à l’approche multiobjectifs et
donnent de bons résultats. On peut ajouter que l’ensemble des méthodes implémentées
offre des temps de calculs raisonnables pour être intégrées, comme c’est déjà parfois le
cas, dans des logiciels fournissant des plans de traitement.
Nous donnons ici les principaux modèles proposés en curiethérapie LDR et en
curiethérapie HDR reflétant les différentes approches précédemment décrites.

5.2.1/ M INIMISATION DU NOMBRE DE VIOLATIONS

Il s’agit simplement de minimiser le nombre de violations, c’est-à-dire le nombre de fois où


la dose calculée en un point de référence sera en dehors de l’intervalle de dose prescrit
par le physicien.
En curiethérapie LDR, Gallagher et Lee [Gallagher and Lee, 1997] [Lee et al., 1999]
proposent le programme linéaire suivant :

vi + wi
 P

 max
i∈P



mi, j .x j − Di ≥ −Ni (1 − vi )
 P



 sous : ∀i ∈ P
j∈J



mi, j .x j − Di ≤ Mi (1 − wi )
 P


 ∀i ∈ P


 j∈J
vi , wi ∈ {0, 1}

∀i ∈ P





x j ∈ {0, 1} ∀j ∈ J

Pour chaque point de référence i (P est l’ensemble des points de référence), les valeurs
des paramètres Ni et Mi sont positives et choisies pour être suffisamment grandes pour
que les contraintes soient toujours réalisables quand les valeurs vi ou wi correspondantes
valent 0 (cas où la contrainte de dose n’est pas respectée pour i). Di et Di sont les bornes
respectivement inférieure et supérieure de l’intervalle de dose pour le point i. La fonction
5.2. ÉTAT DE L’ART 35

objectif consiste à maximiser le nombre de fois (le nombre de points de référence) où la
dose reçue est dans l’intervalle de dose prescrit.
En curiethérapie HDR, Lahanas et al. [Lahanas et al., 2003] proposent un ensemble
d’objectifs concernant le recouvrement complet du volume cible par une dose spécifiée et
une protection des organes à risque adjacents. Les fonctions objectif sont les suivantes :
NX
PT V
1
fLPT V = θ[DPT
L
V
− di ],
NPT V i=1

NX
PT V
1
fHPT V = θ[di − DPT V
H ],
NPT V i=1
j
NOAR
j 1 X
j
fOAR = j
θ[di − Dcrit ],
NOAR i=1
avec θ[u] = 1 si u > 0, et 0 sinon.
DPTL
V est la dose prescrite, ou la dose limite inférieure et DPT V est la dose limite
H
j
supérieure pour le volume cible. NPT V et NOAR représentent les nombres de points de
référence pris dans le PTV et dans chaque OAR j. Lahanas et al. [Lahanas et al., 2003]
traitent la résolution du problème par une approche multiobjectifs. Ils proposent un
algorithme génétique, les calculs sont effectués sur une machine 933 MHz Intel III pour
une implantation avec 125 positions d’arrêt et 2500 points de référence (500 répartis
aléatoirement dans le PTV et les OARs, et 2000 points dans les tissus sains adjacents).
Ils obtiennent 1000 à 2000 solutions de l’ensemble Pareto-optimal en moins de cinq
minutes. Le planificateur du traitement fait face alors un choix difficile parmi toutes les
solutions qui lui sont offertes.

5.2.2/ M INIMISATION LIN ÉAIRE DES ÉCARTS DE DOSE

Ce problème proposé également par Lee et al. [Lee and Zaider, 2003] en curiethérapie
LDR consiste à minimiser une somme pondérée de déviations par rapport à l’intervalle de
dose. Pour chaque point i ∈ P, deux variables continues positives yi et zi sont introduites,
représentant les écarts par rapport aux bornes respectivement inférieure et supérieure
de l’intervalle de dose. Des paramètres αi et βi sont en outre utilisés, pour influer sur
l’importance du respect de l’une ou l’autre des bornes, pour un point ou un groupe de
points donnés.
Le modèle est le suivant :

αi yi + βi zi
 P

 min
i∈P



mi, j .x j + yi ≥ Di
 P



 sous : ∀i ∈ P
j∈J



mi, j .x j − zi ≤ Di
 P


 ∀i ∈ P


 j∈J
yi , zi ≥ 0

∀i ∈ P





x j ∈ {0, 1} ∀j ∈ J

Ce modèle permet de s’assurer que l’ensemble des écarts de dose ne soit pas trop
élevé. La résolution du programme linéaire mixte est réalisée de manière exacte avec
36 CHAPITRE 5. OPTIMISATION DE LA DOSE EN CURIETHÉRAPIE

une méthode Branch and Bound et permet d’obtenir des solutions optimales en un temps
de calcul raisonnable.
Un modèle de pénalisation des écarts de dose a été proposé par Lessard et al.
[Lessard and Pouliot, 2001] pour le traitement par curiethérapie HDR du cancer de la
prostate. Les fonctions de pénalités sont les suivantes :
No
1 X
fLo = θ[DoL − di ].(DoL − di ),
No i=1

No
1 X
fHo = θ[di − DoH ].(di − DoH ),
No i=1

avec θ[u] = 1 si u > 0, et 0 sinon.


No est le nombre de points de référence qui appartiennent au volume o, et DoL , DoH
les limites de dose respectivement inférieures et supérieures pour la structure o. Ces
fonctions mesurent la manière dont les critères cliniques spécifiés par le médecin
sont respectés, notamment le respect de la dose prescrite sur le volume cible, le
non dépassement d’une dose maximale pour l’urètre et une irradiation très faible des
tissus sains autour de la prostate. Les auteurs [Lessard and Pouliot, 2001] ont préféré
se tourner vers une méthode de recuit simulé pour obtenir des plans de traitement
efficaces. L’utilisation d’un recuit simulé, plutôt qu’une résolution exacte ne nous semble
pas suffisamment justifiée. D’une part, la méthode du Branch and Bound, contrairement
au recuit simulé, fournit la solution optimale pour le modèle considéré. Et d’autre part,
les solveurs disponibles actuellement en programmation linéaire sont suffisamment
performants pour traiter rapidement des problèmes de grosse dimension semblables
à ceux rencontrés en curiethérapie HDR. De plus, certains de ces solveurs sont
accessibles dans des logiciels libres.

5.2.3/ M INIMISATION QUADRATIQUE DES ÉCARTS DE DOSE

Dans ce type de modèle, l’idée est de pénaliser, encore plus, les fortes déviations pour
essayer d’obtenir une distribution de dose plus homogène dans chaque organe. En
curiethérapie HDR, Lahanas et al. [Lahanas et al., 2003] utilisent la fonction fNT comme
la moyenne des carrés des doses dans les tissus sains autour de la tumeur (NNT est le
nombre de points de référence associé) :
NNT
1 X
fNT = d2 .
NNT i=1 i

Milickovic et al. [Milickovic et al., 2002] proposent un modèle quadratique qui se


concentre sur la distribution de dose dans le PTV et à sa surface par la minimisation
des variances :
NS 2
1 X (diS − mS )
fS = ,
NS i=1 m2S
NV 2
1 X (diV − mV )
fV = ,
NV i=1 m2V
5.3. MODÉLISATION 37

où mS et mV sont les moyennes respectives des valeurs de dose à la surface du PTV
et à l’intérieur. NS , NV correspondent au nombre de points de référence associés, et
diV , diS correspondent aux valeurs de doses calculées au point i, situés à l’intérieur
du PTV ou à sa surface. Les algorithmes de méthode de descente du gradient sont
efficaces et donnent les solutions optimales lorsqu’il s’agit de minimiser les variances
de dose pour le PTV car les fonctions objectif sont convexes dans ce cas. Milickovic
et al. [Milickovic et al., 2002] utilisent l’algorithme de Broyden-Fletcher-Goldberg-Shanno
(BFGS) pour minimiser les variances de dose.
Si l’automatisation du calcul des temps d’arrêt pour optimiser la distribution de dose est
affaire courante, le placement optimal des cathéters reste empirique en s’appuyant sur
des systèmes classiques de dosimétrie, développés à l’origine pour la curiethérapie LDR.
Il parait donc intéressant de voir comment les principales règles de ces systèmes peuvent
être adaptées pour tenir compte des possibilités offertes par la curiethérapie HDR et
proposer des meilleurs schémas d’implantation.

5.3/ M OD ÉLISATION

Nous nous sommes inspirés du modèle proposé par Lee et al. [Lee and Zaider, 2003]
en curiethérapie LDR pour construire un modèle adapté à la curiethérapie HDR. Comme
dans le Système de Paris 2 , nous cherchons à traiter des volumes géométriques simples
appelés ”fantômes”. Ces types de volumes sont le parallélépipède rectangle, et le prisme
à base trapézoı̈dale isocèle, définis dans les cas respectivement d’un plan de vecteurs ou
de deux plans de vecteurs disposés ”en carrés”, et de deux plans de vecteurs disposés
”en triangles” (figure 5.2). Ces volumes géométriques simples (fantômes) sont construits
très facilement par le médecin à partir des dimensions réelles de la lésion obtenues
par images radiologiques ou par palpation au moment de l’examen clinique. Il lui est en
effet facile de mesurer la plus grande longueur, la plus grande largeur, et la plus grande
hauteur de la lésion à partir desquelles il obtient le plus petit volume (parallélépipède
rectangle et prisme à base trapézoı̈dale) englobant parfaitement la lésion.
Notre modèle d’optimisation de la dose est le suivant :

αi ui + βi vi
 P

 min
i∈P


d(i, j).t j + ui ≥ Di ∀i ∈ P

 P



 sous :



 j∈J
P
d(i, j).t j − vi ≤ Di ∀i ∈ P





 j∈J
 P



 d(h, j).t j ≤ 2 ∀h ∈ H
j∈J



ui , vi ≥ 0

∀i ∈ P






 t ≥0
j ∀j ∈ J

Nous rappelons les données du problème :


— αi , βi : coefficients d’importance des dépassements de bornes pour le point de
référence i (P ensemble des points de référence) ;
— Di , Di : bornes inférieure et supérieure de dose sur le point i ;
— d(i, j) : contribution de débit dose d’une source placée à la position d’arrêt j (J
ensemble des points d’arrêt possibles) sur le point i.
2. Règles d’implantation de fils d’iridium 192 en curiethérapie LDR
38 CHAPITRE 5. OPTIMISATION DE LA DOSE EN CURIETHÉRAPIE

(a) Disposition “en carrés” (b) Disposition “en triangles”

F IGURE 5.2 – Les types de volumes cible possibles, et les dispositions de vecteurs
associées

— H : ensemble des points de surdosage


Les variables sont les suivantes :
— ui , vi : dépassements de borne inférieure et supérieure au point de référence i ;
— t j : temps d’arrêt sur la position j .
Nous apportons quelques précisions sur le modèle en détaillant le choix des points de
référence, la construction de la fonction objectif et l’écriture des contraintes.

5.3.1/ C HOIX DES POINTS DE R ÉF ÉRENCE

Notre choix de modélisation consiste à résoudre le problème de trouver la meilleure


conformation possible de l’isodose à 100% de la dose prescrite sur le volume cible. Cela
revient à chercher une distribution de dose pour laquelle :
— la dose reçue en tout point à l’intérieur et en surface du volume cible est supérieure
ou égale à la dose prescrite ;
— la dose reçue à l’intérieur et en surface de chaque organe à risque est inférieure
à un seuil fixé pour chaque organe ;
— la dose reçue en tout point du volume considéré et extérieur à la fois au volume
cible et aux organes à risque est la plus basse possible.
Comme nous l’avons déjà évoqué, il nous est impossible de calculer la dose reçue en
tout point des différents volumes. Un échantillonnage de points jugés représentatifs est
donc effectué.
Pour une instance donnée, nous définissons l’ensemble P comme l’ensemble des points
utilisés pour l’optimisation. A chaque point i ∈ P est attribué un intervalle de dose,
délimité par les bornes Di et Di . Ces bornes dépendent du type de volume à l’intérieur
duquel se trouve le point, et représentent les limites de dose inférieure et supérieure à
ne pas dépasser, elles sont exprimées en pourcentage de la dose requise.

Par exemple, pour un point i du volume cible, la valeur Di est égale à 1 (pour 100%). La
limite supérieure de l’intervalle Di n’ayant pas d’importance, elle sera arbitrairement fixée
à +∞.
5.3. MODÉLISATION 39

Si, en revanche, le point i fait partie d’un organe à risque, la valeur Di pour ce point est 0,
et Di représentera un pourcentage de la dose requise (par exemple 0.5 pour 50%). Pour
un autre organe à risque, ce pourcentage peut être fixé à une valeur différente.
Il est important de constater que les points en surface du volume cible revêtent un intérêt
particulier : si l’objectif est de s’assurer que la dose, en tout point du volume, ne dépasse
pas un certain seuil, il est aisé de constater que la dose dans les points situés à l’intérieur
du volume recevront généralement une dose supérieure à celle reçue par les points situés
en surface du volume cible. En effet, étant donné le fait que la dose est transmise à partir
de positions situées à l’intérieur du volume, et que la dose reçue en un point diminue
lorsque le point s’éloigne des positions de source, la dose reçue est donc plus faible
sur les points les plus éloignés des positions, c’est-à-dire en surface du volume. Ainsi,
optimiser la distribution de dose dans le volume cible revient à optimiser la dose reçue
sur la surface de ce volume. Il est donc dans notre intérêt de chercher à optimiser la dose
sur un échantillonnage de points de dose dont une grande partie est située en surface
du volume cible.
Enfin, pour un point situé dans le tissu normal, sachant qu’il n’y a pas de limite de dose
explicitement formulée, ni inférieure, ni supérieure, une possibilité est de fixer un intervalle
de dose non contraint (dont les bornes sont 0 et +∞) pour ce point. Cela peut s’avérer
judicieux lors de la présence d’organes à risque : le problème à résoudre sera de définir
un compromis entre le traitement convenable de la lésion et le risque lié à la surexposition
des structures à risque, sans tenir aucunement compte du dosage dans le tissu normal.
Il est également possible de fixer une borne supérieure de dose à un pourcentage
relativement faible, voire proche de zéro, en fixant un faible facteur d’importance au
dépassement des bornes de dose sur le point considéré, comme nous allons le décrire
au paragraphe suivant.

5.3.2/ F ONCTION OBJECTIF

L’évaluation de la qualité d’un traitement varie en fonction des choix effectués par le
médecin. Il n’existe donc pas une manière unique d’évaluer la qualité finale du traitement.
Dans notre modèle, la fonction utilisée pour cette évaluation est une somme pondérée
de pénalités obtenues pour des dépassements de dose. La pénalité de dépassement de
dose pour un point de calcul considéré est l’écart entre la dose reçue et la valeur borne
de l’intervalle acceptable de dose pour ce point. Les pénalités de dépassement de borne
sont pondérées par des coefficients constants, choisis en fonction du type de structure
contenant le point. Pour résoudre le problème, la fonction objectif choisie est la suivante :
X
αi ui + βi vi
i∈P

Les valeurs ui et vi sont des variables qu’il faut minimiser afin de minimiser l’amplitude
totale des dépassements de dose. Le principe de l’optimisation consiste donc à trouver
les valeurs pour les temps d’arrêt qui produisent des écarts de dose les plus petits
possibles.
Les valeurs αi et βi sont des paramètres définis avant l’optimisation. Ce sont des facteurs
d’importance associés aux dépassements de bornes pour les différentes structures à
l’intérieur desquelles se trouvent les points de calcul de dose. Ces facteurs sont choisis
40 CHAPITRE 5. OPTIMISATION DE LA DOSE EN CURIETHÉRAPIE

par le médecin, en fonction de ce qu’il cherche à privilégier : dans certains cas, le respect
des contraintes de dose supérieure dans les organes à risque peut être plus important
que le respect de la dose inférieure dans les points du volume cible. Dans d’autres cas,
ce peut être l’inverse. Les valeurs choisies pour les αi et βi des différents points d’une
même structure sont égales. Il est admis que l’importance des dépassements de bornes
dans le modèle puisse être considérée comme proportionnelle à l’importance donnée
aux dépassements réels de dose lors du traitement.

5.3.3/ C ONTRAINTES DE DOSE

Les contraintes de dose en chaque point de calcul i de dose de l’ensemble P garantissent


soit que la dose est bien respectée dans l’intervalle de dose défini pour i, soit en cas de
dépassement de la borne, que la valeur de la variable de pénalité associée soit égale au
dépassement proprement dit.
La contrainte de borne inférieure de dose pour i ∈ P est définie si la borne inférieure de
dose pour i est non nulle. Elle s’écrit sous cette forme :

X
d(i, j).t j + ui ≥ Di
j∈J

Cette contrainte exprime le fait que la somme de la dose reçue en i avec la pénalité de
borne inférieure doit être supérieure ou égale à la borne inférieure de dose en i. Dans
le cas le plus favorable, la dose reçue en i est supérieure ou égale à Di , et donc ui
prendra une valeur nulle. Dans le cas contraire, ui prendra la valeur la plus petite possible
telle que la contrainte soit respectée, on aura donc : ui = Di −
P
d(i, j).t j . De même que
j∈J
précédemment, l’optimisation fournira une valeur nulle pour vi si la contrainte de dose est
respectée, et une valeur positive (vi =
P
d(i, j).t j − Di ) si la dose reçue en i est supérieure
j∈J
à Di .

5.3.4/ C ONTRAINTES DE SURDOSAGE

Notre modèle d’optimisation inclut également des contraintes liées au respect d’une règle
du Système de Paris, indiquant que le diamètre des manchons de surdosage (isodose à
200% de la dose requise) obtenus ne doit pas dépasser 1 cm.
Les manchons de surdosage sont modélisés par un ensemble de points de référence
spécifiques, que nous appelons points de surdosage (ensemble H). Ces points sont
placés de telle sorte qu’un surdosage sur l’un de ces points implique automatiquement
la détection d’un diamètre de manchon supérieur à 1 cm (pour plus de détails, voir la
thèse [Galea, 2006]).

5.3.5/ O PTIMISATION DU PLACEMENT DES CATH ÉTERS

Le modèle d’optimisation décrit précédemment nous permet d’effectuer la simulation


d’implantations de vecteurs tout en respectant les principes du Système de Paris. Le seul
5.4. CONCLUSION 41

F IGURE 5.3 – Vue générale de l’interface du logiciel Isodose 3D

degré de liberté offert pour le placement des cathéters est l’écartement δ des vecteurs,
ainsi que le choix de la disposition, en carrés ou en triangles. Le nombre de vecteurs
est déterminé par la disposition et l’écartement des vecteurs (principe d’équidistance
des vecteurs dans le système de Paris), ainsi que des dimensions du volume cible. La
longueur des vecteurs est déterminée par les positions d’arrêt de la source pour laquelle
il existe des temps d’arrêts non nuls.
Nous avons développé un logiciel graphique Isodose 3D qui permet la visualisation de la
couverture d’un volume cible par la dose requise, selon différents choix et paramétrages
(nombre de points de référence, valeurs des pénalités, écartement des vecteurs) du
calcul des temps d’arrêt. La figure 5.3 présente une vue générale de l’interface du logiciel.

5.4/ C ONCLUSION

En curiethérapie HDR, le problème d’optimisation de la dose consiste à rechercher les


positions et les temps d’arrêt d’une source radioactive. Nous avons proposé un modèle
original incluant des garanties quant au respect des principes fondamentaux du système
de Paris pour le placement des cathéters.
Ce modèle d’optimisation nous a permis d’effectuer la simulation d’implantations
respectant les principes du système de Paris afin d’en tirer des informations sur la
distribution de dose et de rechercher la meilleure implantation de vecteurs possible.
Nous avons mis au point un logiciel Isodose 3D qui permet de visualiser de façon
synthétique la couverture d’un volume ”fantôme” par la dose requise selon différents choix
et paramétrages du calcul des temps d’arrêt.
La poursuite de ce travail consisterait à procéder à des simulations sur des cas réels
impliquant des volumes aux formes plus complexes que les ”fantômes”. Et un axe
de recherche pourrait consister à l’élaboration de nouvelles règles de dispositions des
vecteurs, violant les principes d’équidistance et d’alignement des vecteurs dans le
42 CHAPITRE 5. OPTIMISATION DE LA DOSE EN CURIETHÉRAPIE

système de Paris, principes qui se justifiaient à l’époque par la difficulté d’établir une
méthodologie simple de calcul de la dose mais qui sont devenus désuets avec la
puissance de calcul des ordinateurs.
Nous n’avons pas poursuivi de travaux sur cette thématique après 2006.
Nous remarquons que depuis cette date, il y a eu d’autres propositions de
modèles d’optimisation des temps d’arrêt des sources. Le modèle proposé par
[Alterovitz et al., 2006] est semblable au notre. L’étude compare les solutions obtenues
par recuit simulé et celles obtenues par résolution du programme linéaire et montre
qu’elles sont (statistiquement) équivalentes du point de vue de critères cliniques
spécifiques. Une autre étude [Holm et al., 2013] aboutit à la construction d’un modèle
(PL) incluant directement des indices cliniques issus des histogrammes dose-volumes et
montre que ce dernier se rapproche du modèle précédemment cité à condition de choisir
convenablement les valeurs des pénalités associées aux dépassements de dose.
Concernant le placement des cathéters, des formulations semblables sous forme de
(MIP) sont données dans [Karabis et al., 2009] et dans [Holm et al., 2016]. Le modèle
repose toujours sur la pénalisation des écarts de dose. Il inclut le placement des cathéters
en introduisant un ensemble de positions possibles pour les cathéters et en associant une
variable binaire à chaque cathéter qui indique si celui-ci est utilisé ou non. Le problème
est résolu soit avec un solveur de PL, soit avec des métaheuristiques [Holm et al., 2016]
(Méthode Tabou, algorithme génétique, Méthode de recherche à voisinage variable).
Notons que ces études se restreignent à utiliser des cathéters parallèles entre eux, mais
pas forcément équidistants.
6
LE PROBL ÈME DE MINIMISATION DU
NOMBRE DE REGISTRES

6.1/ P ROBL ÉMATIQUE

Nous nous intéressons au problème d’optimisation du besoin en stockage dans les


graphes de tâches périodiques. En pratique, notre problème tend à minimiser le besoin
en registres dans les programmes, où les instructions d’une boucle sont représentées
par un graphe de dépendances de données cyclique (GDD).
L’introduction massive de processeurs ILP (Instructions Level Parallelism) ces trois
dernières décennies nous conduit à repenser la manière d’optimiser le nombre
de registres de stockage dans les codes assembleur avant de commencer le
processus d’ordonnancement des instructions sous contraintes de ressources. Dans ces
processeurs, les instructions sont exécutées en parallèle grâce à l’existence de plusieurs
petites unités de calcul (additionneurs, multiplicateurs, unités de chargement/stockage,
etc.). L’exploitation de ce parallélisme à grain fin (au niveau du code assembleur)
demande de revenir sur le problème classique de l’allocation de registre initialement
conçu pour les processeurs séquentiels. De nos jours, l’allocation de registre n’a pas
seulement pour effet de réduire au minimum les besoins de stockage, mais elle doit aussi
prendre en compte le parallélisme et le temps d’exécution total du programme.
Ici, nous ne tenons pas compte des contraintes de ressources en dehors des exigences
de stockage. Notre objectif est double :
— soit minimiser le nombre de registres utilisés pour une valeur de période fixe dans
un problème d’ordonnancement de tâches cycliques,
— soit minimiser la valeur de la période pour un nombre fixe et borné de registres.
Notons que ce problème d’optimisation de stockage est suffisamment abstrait pour
s’appliquer dans d’autres domaines de planification qui traitent conjointement du
stockage et de la minimisation du temps total d’exécution pour des tâches répétitives
(fabrication, transport, réseau, etc.).

6.2/ E TAT DE L’ ART

Dans cette étude, nous supposons une exécution parallèle des instructions sans aucun
modèle de ressources - le parallélisme étant borné par les contraintes de stockage

43
44 CHAPITRE 6. MINIMISATION DU NOMBRE DE REGISTRES PROCESSEURS

uniquement. Notre but est d’analyser le compromis entre le besoin en registres et le


parallélisme dans un problème d’ordonnancement périodique de tâches.
Les techniques existantes d’allocation périodique de registres appliquent généralement
un ordonnancement périodique d’instructions sous contraintes de ressources, tout en
étant sensible aux contraintes de registres. Plusieurs travaux proposent des algorithmes
d’ordonnancement d’instructions d’une boucle (sous contraintes de ressources et de
période) tel que le code résultant ne crée pas plus de R variables simultanément en
vie. Or, en pratique, de tels algorithmes n’engendrent pas toujours des codes rapides,
car les contraintes de registres sont plus critiques que les contraintes de ressources :
ceci car les accès mémoire coûtent plus de 100 unités de temps (cycles processeur)
alors que les latences des instructions sont inférieures à 10 cycles. Dans cette étude,
nous garantissons les contraintes des registres avant la phase d’ordonnancement
d’instructions sous contraintes de ressources : nous analysons et modifions le GDD afin
de garantir que tout ordonnancement d’instructions sous contraintes de ressources ne
crée pas plus de R variables simultanément en vie. Notre modification du GDD essaie
de ne pas altérer l’extraction du parallélisme si possible en prenant comme métrique la
valeur du circuit critique du graphe.

6.3/ M OD ÉLISATION

6.3.1/ M OD ÈLE DE T ÂCHES

Notre modèle est similaire à celui proposé par [Hanen and Munier, 1995]. Nous
considérons un ensemble de l tâches génériques (instructions à l’intérieur d’une boucle
de programme) T 0 , . . . , T l−1 . Chaque tâche T i est exécutée n fois, où n est le nombre
d’itérations de boucle. n est entier fini non borné. Chaque tâche T i a n instances (une
par boucle). La kième occurrence de la tâche T i est notée T hi, ki, ce qui correspond à
l’exécution de la tâche i à la kième itération de la boucle, avec 0 ≤ k < n.
Les tâches (instructions) peuvent être exécutées en parallèle. Chaque tâche peut
produire un résultat qui est lu (c’est-à-dire consommé/utilisé) par d’autres tâches. Les
boucles considérées contiennent des dépendances entre les données qui peuvent être
modélisées par un graphe G(V, E) où :
— V est l’ensemble des tâches génériques dans le corps de boucle, V = {T 0 , . . . , T l−1 }.
— E est l’ensemble des arcs représentant les contraintes de précédence
(dépendance de flux ou autres contraintes sérialisées). Chaque arc e = (T i , T j ) ∈ E
a une latence δ(e) ∈ N exprimée en nombre de cycles d’horloge du processeur
et une distance λ(e) ∈ N exprimée en nombre d’itérations de boucle. La distance
λ(e) pour l’arc e = (T i , T j ) signifie qu’il y a une dépendance entre la tâche T hi, ki et
T h j, k + λ(e)i pour k = 0, . . . , n − 1 − λ(e).
Concernant les contraintes de stockage, on doit faire la distinction entre les tâches et les
contraintes de précédence selon si elles sont liées ou non à des données stockées dans
des registres :
— V R ⊆ V est l’ensemble des tâches produisant des données stockées dans des
registres.
— E R ⊆ E est l’ensemble des arcs de dépendances de flux de données entre
registres. Un arc e = (T i , T j ) ∈ E R signifie que la tâche T hi, ki produit un résultat
6.3. MODÉLISATION 45

stocké dans un registre puis lu (consommé) par T h j, k + λ(e)i. L’ensemble des


consommateurs (lecteurs) de la tâche générique T i est alors défini par :
Cons(T i ) = {T j ∈ V | e = (T i , T j ) ∈ E R }
Notons que le graphe de dépendances de tâches (DDG) est en fait un graphe multiple ; en
effet il peut y avoir plus d’un arc entre deux tâches. Figure 6.1 est un exemple de graphe
de dépendance (DDG) où les sommets du graphe en gras correspondent aux tâches de
l’ensemble V R produisant des données stockées dans des registres. Les arcs en gras
représentent les dépendances de flux (chaque sommet final de cet arc lit/consomme
une donnée produite et stockée dans un registre par le sommet initial). Les autres
tâches (sommets non gras) correspondent à des instructions qui n’utilisent pas l’écriture
de données dans un registre (la donnée est stockée en mémoire vive ou simplement
la tâche ne produit aucune donnée). Les autres arcs (non gras) correspondent à des
contraintes de précédence ou d’échanges de données différentes des dépendances de
flux de données précisées précédemment. A chaque arc e dans le DDG est associé le
couple (δ(e), λ(e)).

iteration 0 iteration 1 iteration 2

T1 T h1, 0i T h1, 1i T h1, 2i


(2,2) (1,0)
(1,0) (2,1)

T2 T3 T h2, 0i T h3, 0i T h2, 1i T h3, 1i T h2, 2i T h3, 2i

(5,0)

T4 T h4, 0i T h4, 1i T h4, 2i

Each edge e is labeled with (δ(e), λ(e))

(a) Example of a DDG with Generic Tasks (b) Loop Iterations and Instructions/Tasks Instances

F IGURE 6.1 – Exemple de graphe de dépendance avec des tâches répétitives

Dans notre modèle générique de processeur, nous supposons que l’écriture et/ou
la lecture dans les registres peuvent être retardées par rapport à la date de début
d’exécution de la tâche. On note σ(T hi, ki) ∈ N la date d’exécution de la tâche T hi, ki.
Nous définissons deux fonctions de retard δr (en lecture) et δw (en écriture) :

δw : V R → N
T i 7→ δw (T i )| 0 ≤ δw (T i )
le temps d’écriture de la donnée produite par T hi, ki
est σ(T hi, ki) + δw (T i )
δr : V → N
T i 7→ δr (T i )| 0 ≤ δr (T i )
le temps de lecture de la donnée consommée par T hi, ki
est σ(T hi, ki) + δr (T i )

Ces deux fonctions de retard dépendent du type de processeur et permettent de


modéliser la plupart des architectures des processeurs actuels (VLIW, EPIC/IA64 et
processeurs super-scalaires).
46 CHAPITRE 6. MINIMISATION DU NOMBRE DE REGISTRES PROCESSEURS

Dans notre modèle de tâches, le nombre d’occurrences est indéterminé et non


borné. Nous recherchons une planification périodique de ces tâches pour générer
un code final compact. On associe une période unique p entière (à déterminer) pour
un ordonnancement périodique. La période p est entière et commune à toutes les
tâches, ce qui simplifie la génération de code de la boucle finale. D’autres modèles
d’ordonnancement multi-périodiques peuvent être employés (avec des périodes multiples
ou des périodes rationnelles), mais au détriment de la taille du code généré. Ici,
notre ordonnancement périodique avec une unique période p associe à chaque tâche
générique T i une date d’exécution pour uniquement la première occurrence de la tâche
T hi, 0i que nous notons : σi = σ(T hi, 0i). La date d’exécution des autres occurrences
T hi, ki est égale à σ(T hi, ki) = σi + k × p. L’ordonnancement périodique σ doit satisfaire
aux contraintes classiques :

∀e = (T i , T j ) ∈ E : σi + δ(e) ≤ σ j + λ(e) × p (6.1)

Classiquement, en additionnant ces inégalités sur un circuit Cl Pdu DDG m G, on trouve


e∈C δ(e)
que la période p doit être supérieure ou égale à : maxcircuit C e∈C λ(e) , Dans la suite,
P

nous appelons cette quantité Période Minimale d’Exécution MEP. Calculer MEP pour un
graphe cyclique est un problème polynomial [Hanen and Munier, 1995, Lawler, 1972] :
comme le DDG est construit par une méthode d’analyse des flux de données par
le compilateur, et comme le DDG représente les dépendances de données entre les
instructions d’un programme, la valeur de MEP existe toujours et a une valeur positive.
Le problème usuel d’ordonnancement périodique de tâches consiste à rechercher un
ordonnancement compatible avec un ensemble de contraintes (ressources, stockage
limité,etc). Ici, nous nous limitons aux contraintes de stockage.

6.3.2/ G RAPHES DE R ÉUTILISATION

Touati et Eisenbeis [Touati and Eisenbeis, 2004, Touati, 2002] ont établi un cadre
théorique, basé sur l’usage de graphes, qui fournit des résultats fondamentaux sur
l’allocation de registres. Ils ont introduit notamment la notion de graphe de réutilisation
que nous allons présenter dans la suite et qui nous permettra d’écrire le modèle de
programmation linéaire en nombre entier pour notre problème d’ordonnancement.
La manière la plus simple de présenter la notion de graphe de réutilisation est de
l’appliquer à un exemple. Pour des définitions et des résultats plus formels, il faut se
référer aux travaux de Touati et Eisenbeis [Touati and Eisenbeis, 2004, Touati, 2002].
La figure 6.2(a) montre un DDG initial. Les tâches en gras sont celles qui produisent
des résultats stockés dans des registres. Les dépendances de flux de données sont
représentées par les arcs en gras. Par exemple, Cons(T 2 ) = {T 1 , T 4 }. Un couple de
valeurs (δ(e), λ(e)) est associé à chaque arc e. Dans cet exemple très simple, on
suppose que le délai d’accessibilité aux registres est nul (δw = δr = 0). L’allocation
de registre, qui détermine les tâches qui partagent le même registre, est modélisée à
travers le graphe de réutilisation. Un exemple de graphe de réutilisation est donné à la
figure 6.2(b). Les noeuds sont connectés entre eux par des arcs de réutilisation. Chaque
arc (T i , T j ) de réutilisation est caractérisé par une distance entière µi, j . L’existence d’un
arc de réutilisation (T i , T j ) de distance µi, j signifie que les deux occurrences de tâches
T hi, ki and T h j, k + µi, j i partagent le même registre de destination pour le stockage de
leurs résultats respectifs. Ainsi la connaissance du graphe de réutilisation nous permet
6.3. MODÉLISATION 47

de définir complètement l’allocation de registre pour un DDG donné. Rappelons que


pour être valide, le graphe de réutilisation doit satisfaire à deux contraintes principales
[Touati and Eisenbeis, 2004, Touati, 2002] :
— il doit y avoir une bijection entre les noeuds ; autrement dit, le graphe doit être
composé de circuits disjoints élémentaires,
— Le graphe DDG ”associé” doit être ordonnançable, c’est à dire qu’un
ordonnancement cyclique de période p doit être possible.

(1,0)
T2
T1 T2 µ2,4
(3,2) =2
(3, 1) µ4,2
(1,2) µ1,1 =3
=3
T4
T3 T4 T1
(2,0)
(1,1)

(a) Initial DDG (b) Example of a Reuse Graph

K1 (0,3) K1
(0,0)
(0,3)
T1 T2 T1 T2
K4
K4
(0,−2)
(0,−1)
T3 T4 T3 T4

K2
K2 (0,2)
(0,−1)

(c) DDG with Killing Nodes (d) DDG Associated with Reuse Graph

F IGURE 6.2 – Graphe de réutilisation et DDG associé

Décrivons à présent le lien entre le DDG ”associé” et le graphe de réutilisation. Pour


un graphe de réutilisation fixé, le partage de registres entre plusieurs tâches induit
de nouvelles contraintes entre les tâches. Comme un arc (T i , T j ) dans le graphe de
réutilisation Greuse traduit un partage de registre entre T hi, ki and T h j, k + µi, j i, il faut
s’assurer que T h j, k + µi, j i puisse écrire sur le même registre, une fois que le résultat
de T hi, ki est ”mort”. On dit que le résultat d’une tâche est ”mort” une fois que tous
les tâches consommatrices de ce résultat l’ont lu et qu’il n’est par conséquent plus
nécessaire de le maintenir dans le registre. Le dernier lecteur de la donnée résultat est
appelé le ”tueur”. Si le DDG est déjà ordonnancé, il est aisé de calculer les dates de
”mort” de chaque donnée (la date de ”mort” est la date à laquelle le résultat est ”mort”,
lu par tous ses consommateurs). En revanche, si le DDG n’est pas encore ordonnancé,
comme dans notre cas, les dates de ”mort” ne sont pas encore connues et on doit être en
mesure de maintenir la validité de l’allocation de stockage pour tous les ordonnancements
48 CHAPITRE 6. MINIMISATION DU NOMBRE DE REGISTRES PROCESSEURS

périodiques possibles. Cet objectif passe par la création en deux étapes d’un DDG
”associé” au graphe de réutilisation :

1. Premièrement, on ajoute au DDG initial des sommets fictifs appelés noeuds ”tueurs”
[de Dinechin, 1996] : le noeud ”tueur” Ki pour une tâche T i ∈ V R représente le
dernier consommateur virtuel de T i . Le noeud ”tueur” Ki doit être toujours ordonné
après tous les consommateurs de la tâche T i . Pour traduire cette relation d’ordre
dans l’ordonnancement, on ajoute l’ensemble des arcs {(T j , Ki )|T j ∈ Cons(T i )}. La
figure 6.2(c) montre le DDG après ajout des noeuds ”tueurs”. Pour chaque arc
ajouté e = (T j , Ki ), on fixe sa latence à δ(e) = δr (T j ) et sa distance à −λ, où λ
est la distance de l’arc (T i , T j ) ∈ E R . Cette distance négative est une convention
[Touati and Eisenbeis, 2004, Touati, 2002] qui simplifie les formules mathématiques
et n’influence pas les résultats fondamentaux obtenus sur le graphe de réutilisation.

2. Deuxièmement, une fois les noeuds ”tueurs” insérés, on ajoute de nouveaux arcs
qui résultent de l’allocation de registres établie dans le graphe de réutilisation. Pour
chaque arc (T i , T j ) dans le graphe de réutilisation Greuse , on ajoute un arc e = (Ki , T j )
dans le DDG ”associé”. L’arc ajouté a une latence égale à δ(e) = −δw (T j ) et une
distance égale à λ(e) = µi, j . La figure 6.2(d) montre le DDG ”associé” obtenu à partir
du graphe de réutilisation de la figure 6.2(b), où les arcs de réutilisation ajoutés
apparaissent en pointillé. Un lecteur averti peut noter que le circuit critique du DDG
dans les figures 6.2(a) and (d) sont identiques et que MEP = 24 = 2 (un circuit
critique est (T 1 , T 2 , T 1 )).

Il a été montré dans [Touati and Eisenbeis, 2004, Touati, 2002] que si un graphe de
réutilisation est valide, alors il correspond à une allocation périodique de registres utilisant
exactement µi, j registres. Le problème central est donc de produire un graphe de
P
réutilisation valide avec un nombre de registres µi, j minimal et une période p = MEP
P
minimale. Ce problème est un problème NP-complet [Touati, 2002]. Dans certains cas,
le nombre R de registres disponibles est déjà fixé par les fabricants de processeurs.
Le problème revient à chercher un graphe de réutilisation valide de telle sorte que
µi, j ≤ R avec une période minimale. Notre méthode de résolution devient itérative :
P
on résout le problème d’ordonnancement en commençant par une période p = MEP
et on l’incrémente successivement jusqu’à obtenir µi, j ≤ R. Si la valeur de la période
P
trouvée dépasse une certaine limite L, on dit que le problème n’admet pas de solution. Le
recours possible au ”spilling” dans ce cas pour stocker les variables en mémoire externe,
ne fait pas l’objet de cette étude. Une recherche binaire de période p (entre MEP et L),
plus efficace qu’une recherche incrémentale, peut être utilisée à condition de résoudre le
problème d’ordonnancement de manière exacte pour chaque valeur de période p.

6.3.3/ P ROGRAMME LIN ÉAIRE

Dans cette partie, nous présentons la formulation, sous forme de programme linéaire,
du problème d’ordonnancement périodique, avec une période fixée p ∈ N, et utilisant un
nombre minimal de registres. Nous décrivons l’ensemble des variables et des contraintes
du problème avant de proposer le programme linéaire dans sa globalité.
6.3. MODÉLISATION 49

6.3.3.1/ VARIABLES

— Les variables σi ∈ N de date de début de tâche pour chaque tâche T i ∈ V.


Pour chaque tâche fictive Ki ∈ V, on associe les variables σKi de date de début.
Comme il s’agit d’un ordonnancement cyclique, on s’intéresse uniquement aux
dates d’exécution des premières occurrences σi = σ(T hi, 0i) et les dates des
autres occurrences T hi, ki sont obtenues par périodicité σ(T hi, ki) = σi + k × p ;
— Les variables θi, j pour chaque paire de tâches (T i , T j ) ∈ V R × V R . θi, j est égal à 1 si
et seulement si l’arc (T i , T j ) est un arc de réutilisation, 0 sinon ;
— Les variables de distance de réutilisation µi, j ∈ N pour chaque paire de tâches
(T i , T j ) ∈ V R × V R .

6.3.3.2/ C ONTRAINTES

— Dépendances de données
L’ordonnancement doit respecter les contraintes de précédence défini par le DDG
∀e = (T i , T j ) ∈ E : σ j − σi ≥ δ(e) − p × λ(e) (6.2)
— Dépendances de flux de données
Chaque dépendance de flux e = (T i , T j ) ∈ E R signifie que l’occurrence T h j, k + λ(e)i
lit la donnée produite par T hi, ki à la date σ j + δr (T j ) + (λ(e) + k) × p. On doit donc
ordonnancer le noeud ”tueur” Ki de la tâche T i après tous les consommateurs de
la tâche T i . ∀T i ∈ V R , ∀T j ∈ Cons(T i )|e = (T i , T j ) ∈ E R :
σKi ≥ σ j + δr (T j ) + p × λ(e) (6.3)
— Dépendances de stockage
Il y a une dépendance de partage de registres entre T i and T j si (T i , T j ) est un arc
de réutilisation. ∀(T i , T j ) ∈ V R × V R :
θi, j = 1 =⇒ σKi − δw (T j ) ≤ σ j + p × µi, j
Cette implication peut s’écrire sous forme d’inégalités : ∀(T i , T j ) ∈ V R × V R ,
σ j − σKi + p × µi, j + M1 × (1 − θi, j ) ≥ −δw (T j ) (6.4)
où M1 ∈ N une constante arbitraire suffisamment grande.
S’il n’y a pas de réutilisation de registres entre T i et T j , alors θi, j = 0 et la valeur
de la distance de réutilisation µi, j correspondante doit être nulle. Cette contrainte
peut se formuler aussi sous forme d’inégalité :

∀(T i , T j ) ∈ V R × V R : µi, j ≤ M2 × θi, j (6.5)


où M2 ∈ N une constante arbitraire suffisamment grande.

— Relation de réutilisation de registres


La relation de réutilisation de registres est une bijection de V R dans V R . Un registre
peut-être réutilisé par une seule tâche et une tâche réutilise un seul registre :
X
∀T i ∈ V R : θi, j = 1 (6.6)
T j ∈V R
X
∀T j ∈ V R : θi, j = 1 (6.7)
T i ∈V R
50 CHAPITRE 6. MINIMISATION DU NOMBRE DE REGISTRES PROCESSEURS

6.3.3.3/ F ONCTION O BJECTIF

Il a été démontré dans [Touati and Eisenbeis, 2004] que le nombre de registres
nécessaires, dans le cas d’un graphe de réutilisation valide, est égal à µi, j . Ici, on
P
cherche donc à minimiser cette somme :

(T i ,T j )∈V R ×V R µi, j
 P



 min
sous :





σ j − σi ≥ δ(e) − p × λ(e), ∀e = (T i , T j ) ∈ E





σKi − σ j ≥ δr (T j ) + p × λ(e), ∀e = (T i , T j ) ∈ E R





 σ j − σKi + p × µi, j + M1 × (1 − θi, j ) ≥ −δw (T j ) ∀e = (T i , T j ) ∈ E R



(6.8)

µi, j ≤ M2 × θi, j ∀e = (T i , T j ) ∈ E R




T j ∈V R θi, j = 1

∀T i ∈ V R

 P



T i ∈V R θi, j = 1 ∀T j ∈ V R


 P


σi , µi, j ∈ N






 θi, j ∈ {0, 1}

6.4/ C ONCLUSION

Nous avons proposé une formalisation exacte par programmation linéaire du


problème générique d’ordonnancement périodique de tâches sous contraintes de
stockage (problème NP-complet). Le problème d’ordonnancement périodique de tâches
(instructions) cycliques avec minimisation du nombre de registres, dans sa forme la
plus générale, peut se formuler sous forme d’un programme linéaire en nombre entiers
où les variables de décision sont les dates de début de chacune des tâches, des
variables binaires indiquant une réutilisation ou non de registres entre deux tâches (non
nécessairement distinctes), et les distances de réutilisation.
Nous avons présenté un nouvel environnement formel s’appuyant sur la théorie
des graphes qui permet l’optimisation (hors contraintes de ressources) du besoin
de stockage dans le cas d’un ordonnancement cyclique de tâches. Notre problème
théorique est dérivé d’une application concrète d’optimisation de registres dans les
processeurs modernes à parallélisme d’instructions. Notre formalisme repose sur un
modèle par graphes de dépendances où les contraintes de stockage sont décrites
grâce à l’insertion de nouveaux arcs (appelés arcs de réutilisation) étiquetés avec des
distances de réutilisation. Ce formalisme nous permet de fixer précisément la valeur
exacte du besoin en stockage (nombre de valeurs simultanément en vie) pour quelque
soit l’ordonnancement. Le calcul des arcs et des distances de réutilisation est défini par
la période minimale d’ordonnancement souhaitée (resp. le débit maximal d’exécution)
ainsi qu’avec le besoin en stockage.

Cette approche permet, pour la première fois dans le domaine d’optimisation des
programmes bas niveau, de pouvoir contrôler exactement et précisément la taille de
code induite par l’ordonnancement périodique d’instructions et la coupler au besoin de
stockage et à la période de l’ordonnancement.
7
LE PROBL ÈME DE MAXIMISATION DE LA
DUR ÉE DE VIE D ’ UN R ÉSEAU DE
CAPTEURS

7.1/ P ROBL ÉMATIQUE

Le besoin d’observer/contrôler divers phénomènes tels que la température, la pression


ou encore la détection d’intrusions est essentiel pour de nombreuses applications
industrielles, militaires, scientifiques, et même grand public. Cette tâche est assurée
essentiellement par les réseaux de capteurs dont la fonction est l’acquisition de
l’information sur les phénomènes observés. Les réseaux de capteurs sans fil sont formés
d’un ensemble de petits appareils électroniques, autonomes, équipés de capteurs et
capable de communiquer entre eux sans fil. Il permettent ainsi de contrôler une région
ou un phénomène d’intérêt, de fournir des informations utiles par la combinaison des
mesures prises par les différents capteurs et de les communiquer ensuite via le support
sans fil vers une station de base. Aujourd’hui des capteurs minuscules et bon marché
peuvent être éparpillés sur des routes, des structures, des murs ou des machines, et sont
capables de détecter une variété de phénomènes physiques. De nombreux domaines
en font usage, principalement dans l’aéronautique, l’industrie pétrolière, l’automobile,
l’environnement et la santé.
Les avancées technologiques permettent de déployer un réseau constitué d’un grand
nombre de capteurs collaboratifs afin de surveiller une zone d’intérêt plus large.
Cependant, son exploitation reste difficile et pose beaucoup de difficultés aussi bien
d’un point de vue algorithmique que pratique (localisation, déploiement, collecte/fusion
de données, couverture).
En particulier, la gestion de la consommation d’énergie est un élément clé
pour l’optimisation du fonctionnement du réseau. Nous nous concentrerons ici sur
l’optimisation de la durée de vie du réseau tout en maintenant la couverture de la zone
d’intérêt.
Un nœud capteur contient :
— une unité de captage chargée d’enregistrer des grandeurs physiques, (chaleur,
humidité, vibrations) et de les transformer en grandeurs numériques,
— une unité de traitement informatique et de stockage de données,
— un module de transmission sans fil,

51
52CHAPITRE 7. MAXIMISATION DE LA DURÉE DE VIE D’UN RÉSEAU DE CAPTEURS

— une ressource énergétique.


Selon le domaine d’application, il peut aussi contenir des modules supplémentaires
tels qu’un système de localisation (GPS), ou bien un système générateur d’énergie
(cellule solaire). L’énergie est la ressource la plus précieuse dans un réseau de capteurs,
puisqu’elle influe directement sur la durée de vie des micro-capteurs et du réseau en
entier. La plupart des noeuds capteurs utilisent des piles comme source d’énergie. A
titre indicatif, ce sera souvent une pile AA normale d’environ 2,2-2,5 Ah fonctionnant
à 1,5 V. Toutefois, il est généralement impossible de recharger ces piles en raison de
l’emplacement des nœuds, mais le plus souvent pour la simple raison que cette opération
est pratiquement ou économiquement infaisable.

7.2/ É TAT DE L’ ART

Les problèmes de couverture principalement traités dans la littérature peuvent être


classés en trois grandes catégories [Li and Vasilakos, 2013] selon leur objectif de
couverture. La couverture de zone [Misra et al., 2011] signifie que chaque point à
l’intérieur de la zone doit être couvert. La couverture de cibles [Yang and Chin, 2014a]
concerne la couverture d’un ensemble fini de points, appelés cibles. Et enfin, la
couverture de frontière [He et al., 2014, Kim and Cobb, 2013] se concentre sur les
problématiques de détection d’intrusion dans une zone d’intérêt. Sous certaines
conditions, nous verrons qu’il est possible de transformer un problème de couverture
de zone en un problème de couverture de cibles. Nous avons travaillé, à la fois sur des
problèmes de couverture de zones et de cibles. Nous n’avons pas traité des problèmes
d’intrusion. La suite du texte présente les principaux travaux de recherche traitant du
problème de couverture, indistinctement, de zones ou de cibles.
Chaque capteur a un rayon de couverture R s , ce qui signifie qu’il est en mesure de
couvrir un disque de rayon R s centré sur lui-même. Un nœud capteur peut communiquer
avec son voisin si celui-ci se trouve dans sa zone de communication, c’est-à-dire à
une distance euclidienne inférieure ou égale à Rc (rayon de communication). Dans
notre étude, les rayons de communication Rc et de couverture R s satisfont à la
condition suivante : Rc ≥ 2 · R s . Cette hypothèse forte nous permet d’affirmer d’après
[Zhang and Hou, 2005], qu’une couverture complète d’une région convexe implique la
connectivité des nœuds actifs. Nous pouvons ainsi concentrer tous nos efforts sur le
problème de couverture.

L’approche principale pour diminuer la consommation d’énergie des capteurs et ainsi


augmenter la durée de vie du réseau consiste à tirer partie du surnombre de
capteurs déployés pour ne pas les activer tous à la fois. Les capteurs sont alors
regroupés en ensembles dit ”ensembles couvrants” [Wang, 2011], où chaque ensemble
couvrant couvre entièrement la zone d’intérêt. Les ensembles couvrants disjoints
ou non disjoints sont alors activés successivement. L’activité des nœuds du réseau
peut être planifiée à l’avance pour toute la durée de vie du réseau ou mise à
jour périodiquement, et l’ensemble couvrant activé est décidé au début de chaque
période [Ling and Znati, 2009]. En fait, de nombreux auteurs [Vu, 2009, Yan et al., 2008,
Padmavathy and Chitra, 2010] ont proposé des algorithmes pour ce mode périodique.
Le choix des nœuds activés à chaque période diffèrent selon les besoins. L’accent
peut être mis en priorité sur la couverture totale de la zone, sur le maintien de la
7.3. MODÉLISATION 53

connectivité [Jaggi and Abouzeid, 2006], ou encore sur la gestion de l’énergie.


Des approches centralisées ou distribuées, ou encore un mixte des deux,
ont été proposées pour étendre la durée de vie du réseau [Zhou et al., 2009].
Dans les algorithmes distribués [Vu et al., 2006, Qu and Georgakopoulos, 2013,
Yang and Chin, 2014b], chaque capteur décide par lui même de son propre état de veille
ou d’activité en échangeant des informations avec ses voisins. L’intérêt principal d’une
telle approche est de limiter les communications longue portée (vers la station de base)
et de réduire les coût de communication. Malheureusement, comme chaque capteur n’a
qu’une vision partielle du réseau (information sur ses voisins proches uniquement), il peut
prendre une décision qui conduit à une solution globale sous-optimale. Inversement,
les algorithmes centralisés [Cardei and Du, 2005, Zorbas et al., 2010, Pujari, 2011]
fournissent toujours des solutions quasi-optimales, car la station de base, qui
réalise les calculs pour la planification, a collecté l’ensemble des informations sur
les nœuds du réseau. Les algorithmes centralisés présente l’avantage de requérir
très peu de puissance de calcul de la part du capteur, mais l’inconvénient de
nécessiter un nombre important de communications avec la station de base. De
manière évidente, plus le réseau est grand (c’est-à-dire avec un grand nombre de
capteurs), plus le coût énergétique des consommations l’est aussi. Un étude récente
[Padmavathy and Chitra, 2010] montre cependant qu’il existe un seuil sur le nombre
de capteurs au delà duquel il parait intéressant d’employer une méthode centralisée
plutôt qu’une distribuée car l’échange de nombreux messages entre voisins peut être
considérablement énergivores.
Différents algorithmes de construction d’ensembles couvrants ont été développés ces
dernières années. Il s’agit principalement d’heuristiques. Ces heuristiques s’appuient sur
différents critères de sélection pour faire entrer un capteur dans un ensemble couvrant.
L’un des critères récurrent [Berman et al., 2004a, Zorbas et al., 2010] est celui d’inclure
en priorité dans un ensemble couvrant les capteurs couvrant les cibles les plus critiques
(celles couvertes par le moins grand nombre de capteurs). Les autres approches relèvent
de la programmation mathématique [Cardei et al., 2005, Xing et al., 2010, Pujari, 2011,
Gentili and Raiconi, 2013, Yang and Liu, 2014] et des techniques associées (résolution
avec une méthode Branch-and-Bound dans un solveur de programmes linéaires). Le
problème, connu sous le nom de Maximum Lifetime Problem (MLP) est formulé comme
un problème d’optimisation, l’objectif est généralement la maximisation du nombre
d’ensembles couvrants sous des contraintes de couverture et d’énergie. La technique
de génération de colonnes, largement connue pour gérer des programmes linéaires
avec un grand nombre de variables, a également été utilisée [Castaño et al., 2014,
Carrabs et al., 2015a] dans le cadre de cette problématique.

7.3/ M OD ÉLISATION

Dans cette partie, nous choisissons de nous restreindre au problème centralisé et aux
modélisations sous forme de programmes linéaires.
54CHAPITRE 7. MAXIMISATION DE LA DURÉE DE VIE D’UN RÉSEAU DE CAPTEURS

7.3.1/ C OUVERTURE DE CIBLES

Les premiers algorithmes fournis dans la littérature considèrent que les ensembles
couvrants sont disjoints : un capteur appartient à un seul ensemble couvrant. Il est
fait l’hypothèse que tous les capteurs sont homogènes en termes de capacité de
communication, d’acquisition et de traitement des données, et du point de vue de
leur niveau d’énergie. Les ensembles couvrants seront activés successivement, et
chacun pendant la même période de temps. L’objectif fréquemment rencontré est celui
de maximiser le nombre d’ensembles couvrants pour maximiser la durée de vie du
réseau. D’autres modèles tiennent compte de la sous-couverture ou de la sur-couverture
de certaines cibles pour formuler un objectif. Les auteurs [Berman et al., 2004a] et
[Cardei et al., 2005] ont mis en évidence, chacun de leur côté, que l’usage d’ensembles
couvrants non disjoints pouvait accroı̂tre la durée de vie du réseau. Dans ce cas, un
capteur peut appartenir à plusieurs ensembles couvrants et la durée d’activation est
calculée pour chaque ensemble couvrant.
Cette partie propose de synthétiser les différentes modélisations sous forme de
programme linéaire qui ont été proposées dans la littérature pour le problème MLP qui a
été prouvé NP-complet [Cardei et al., 2005].

7.3.1.1/ N OTATIONS

De manière à homogénéiser les différentes formulations, nous adoptons les notations


suivantes dans tout le document. On considère un réseau de |S | capteurs déployés
aléatoirement et uniformément en grand nombre sur la zone d’intérêt et |T | cibles.
— T : ensemble des cibles
— S : ensemble des capteurs
— |T | = m : nombre de cibles
— |S | = n : nombre de capteurs
— j : indice de capteur
— i : indice de cible
— E j : niveau d’énergie (en unité de temps de vie) du capteur j
— αi j : égal à 1 si la cible i est couverte par le capteur j, 0 sinon
— k : indice d’ensemble couvrant
Chaque capteur j peut être activé en continu pendant E j unités de temps. Nous utilisons
un modèle de couverture classique qui consiste à dire qu’une cible i est couverte par un
capteur j si et seulement si la distance (distance euclidienne) entre i and j est inférieure
au rayon de couverture R s . On désigne par T ( j) l’ensemble des cibles couvertes par le
capteur j, et inversement S (i) l’ensemble des capteurs qui couvrent la cible i.

7.3.1.2/ F ORMULATION POUR DES ENSEMBLES COUVRANTS DISJOINTS

Nous souhaitons obtenir le nombre maximal d’ensembles couvrants disjoints qu’il est
possible de construire. Ce nombre est majoré par :

K = min |S (i)| (7.1)


i=1..m
En effet, chaque ensemble couvrant doit couvrir l’ensemble des cibles et un capteur ne
peut appartenir qu’à un seul ensemble couvrant.
7.3. MODÉLISATION 55

En fixant arbitrairement le nombre d’ensembles couvrants à une valeur K 0 comprise entre


1 et K, le problème de répartition des capteurs dans les ensembles couvrants est donné
par la résolution d’un problème (7.2) de satisfaction de contraintes :

j∈S (i) xj,k ≥ 1, ∀i ∈ T, ∀k = 1..K


 P 0



 Pk=K
 0

 k=1 xj,k ≤ 1, ∀j ∈ S (7.2)

 x ∈ {0, 1}

j,k

Les variables xj,k sont des variables binaires qui sont égales à 1 si le capteur j appartient
à l’ensemble couvrant k et 0 sinon. La première contrainte indique que chaque cible doit
être couverte dans chaque ensemble couvrant k = 1..K 0 . La seconde contrainte indique
qu’un capteur doit appartenir à un seul ensemble couvrant. Pour un nombre K 0 (fixé
arbitrairement) d’ensembles couvrants, il se peut que le problème ci-dessus n’ait pas de
solution. Auquel cas, il faut diminuer la valeur K 0 et le problème (7.2) est résolu à nouveau.
Nous avons proposé cette approche dans [Deschinkel, 2012] après avoir obtenu une
borne inférieure de bonne qualité au moyen d’une heuristique. L’heuristique est détaillée
dans le chapitre 9 de ce mémoire.
Objectif : Maximiser le nombre d’ensembles couvrants
Dans [Cardei and Du, 2005], les auteurs définissent le problème intitulé ”Disjoint Set
Covers” (DSC) pour le cas particulier du problème MLP pour des ensembles couvrants
disjoints. Le problème s’énonce ainsi :
Étant donné un ensemble S de capteurs, il faut trouver une famille de taille maximale
d’ensembles couvrants. Chaque ensemble couvrant Ck est un sous ensemble de S ,
chaque cible de T est couverte par Ck et pour tout ensemble couvrant Ck et Cl (k , l),
Ck ∩ Cl = ∅.
Dans [Cardei and Du, 2005], il est prouvé que le problème (DSC) est un problème NP-
complet. Ce problème, pourtant cité fréquemment dans les articles de recherche, n’a pas
à notre connaissance été formulé sous forme de programme linéaire. Nous nous sommes
donc inspirés de la formulation proposée par [Xing et al., 2010] qui traite d’un problème
un peu plus complexe, avec des capteurs hétérogènes équipés de plusieurs unités de
captage, pour modéliser le problème (DSC).
On utilise les variables de décision suivantes :
— Variable binaire zk : zk = 1 signifie que Ck est un ensemble couvrant, ∀k = 1...K où
K est la borne supérieure définie par (7.1)
— Variable binaire xj,k : xj,k = 1 indique que le capteur j est actif dans l’ensemble
couvrant Ck
La formulation du problème DSC sous forme de programme linéaire en nombres entiers
est la suivante :
max k=K
 P
k=1 zk




sous :




 j∈S (i) xj,k ≥ zk , ∀i ∈ T, ∀k ∈ K


 P

Pk=K (7.3)
xj,k ≤ 1, ∀j ∈ S


k=1







 xj,k ∈ {0, 1}

 zk ∈ {0, 1}

La fonction objectif maximise le nombre total d’ensembles couvrants. La première


contrainte indique que chaque cible est couverte au moins par un capteur dans chaque
ensemble couvrant formé. La seconde contrainte garantie l’appartenance du capteur à
un seul ensemble couvrant. Contrairement au problème de satisfaction de contraintes
56CHAPITRE 7. MAXIMISATION DE LA DURÉE DE VIE D’UN RÉSEAU DE CAPTEURS

défini en (7.2), la résolution du programme linéaire en nombre entiers (7.3) fournit une
solution optimale qui nous permet de déduire le nombre d’ensembles couvrants qu’il est
possible de générer ainsi que leur composition.
Objectif : Minimiser la sous-couverture et la sur-couverture
Les auteurs dans [Pedraza et al., 2006] abordent le problème (DSC) avec une approche
différente et en relaxant, en partie, la contrainte de couverture de toutes les cibles pour
chaque ensemble couvrant. En effet, certains applications ne nécessitent pas forcément
la couverture à 100% de toute la région d’intérêt. Par exemple, une application dédiée
à la détection de feu de forêt nécessite une couverture totale en saisons chaudes et
peut requérir une couverture partielle en saisons pluvieuses [Li et al., 2011]. Un autre
exemple, le suivi du mode de vie d’oiseaux peut nécessiter une couverture à 70% pendant
leur sommeil et une couverture totale pendant les moments de la journée où ils sont
actifs [Kumagai, 2004].
Pedraza et al. souhaitent construire un maximum d’ensembles couvrants disjoints Ck avec
les propriétés suivantes : l’ensemble couvrant Ck+1 généré doit couvrir un maximum de
cibles mais jamais plus que le précédent Ck . Prenons pour illustrer cette propriété, un
exemple de réseau avec 4 capteurs, S = {s1 , s2 , s3 , s4 }, 4 cibles T = {t1 , t2 , t3 , t4 }, et la
matrice M de coefficients (αi j ) :
 
 1 0 1 1 
 1 1 0 0 
M =  
 1 0 0 0 
0 1 1 0
Une solution de couverture est : C1 = {s1 , s2 }, C2 = {s3 } et C3 = {s4 }. Dans ce cas,
les ensembles couvrants couvrent respectivement 4,2 et 1 cibles. Une autre solution
possible est de former les ensembles couvrants : C1 = {s1 , s3 } et C2 = {s2 , s4 }, couvrant
respectivement 4 et 3 cibles. La deuxième solution sera préférée à la première au sens
de la définition d’optimalité apportée par les auteurs [Pedraza et al., 2006] et donnée
dans la suite.

Définition d’optimalité
Une solution d’ensembles couvrants C11 , C21 , ..., C L1 1 est optimale si pour toute autre
solution C12 , C22 , ..., C L2 2 , on a :
— |T (Cl1 )| ≥ |T (Cl2 )| pour chaque l ∈ {1...min(L1 , L2 )}
— et si |T (Cl1 )| = |T (Cl2 )| pour chaque l ∈ {1...min(L1 , L2 )}, alors L1 ≥ L2

Ils proposent un programme linéaire (7.4) qui permet de construire des ensembles
couvrants respectant le principe d’optimalité défini précédemment. La fonction objectif
est une somme pondérée de variables traduisant une sous-couverture (ui,k ) ou une sur-
couverture des cibles (oi,k ). Ils montrent que sous certaines conditions sur les poids wo,i,k
et wu,i,k , une solution optimale au sens de la définition précédente peut être trouvée.
min k∈K i∈T (wo,i,k oi,k + wu,i,k ui,k )
 P P



sous :





xj,k − oi,k + ui,k = 1
 P

 ∀i ∈ T, ∀k ∈ K
 P j∈S (i)


k∈K xj,k = 1


 ∀j ∈ S (7.4)





 o i,k ∈ N ∀i ∈ T, ∀k ∈ K
ui,k ∈ {0, 1} ∀i ∈ T, ∀k ∈ K




∀ j ∈ S , ∀k ∈ K


 x ∈ {0, 1}
j,k
7.3. MODÉLISATION 57

— xj,k : indique si le capteur j est dans l’ensemble couvrant Ck (1 si oui et 0 sinon)


— oi,k : sur-couverture, représente le nombre de capteurs moins un qui surveillent la
cible i dans l’ensemble couvrant Ck
— ui,k : sous-couverture, indique si la cible i est couverte (1 si non et 0 si couverte)
dans l’ensemble couvrant Ck
Si la cible i n’est pas couverte dans l’ensemble couvrant k, ui,k = 1, j∈S (i) xj,k = 0
P
et oi,k = 0 par définition, ainsi la contrainte
P d’
 égalité est satisfaite. Au contraire, si la
cible i est couverte, ui,k = 0, oi,k = j∈S (i) xj,k − 1. Nous remarquons que le nombre à
priori d’ensembles couvrants, noté ici K, doit être de valeur supérieure à celui calculé
dans la formule (7.1) car le modèle (7.4) autorise la construction d’ensembles couvrants
incomplets. Nous gardons néanmoins la notation K.

7.3.1.3/ F ORMULATION POUR DES ENSEMBLES COUVRANTS NON DISJOINTS

Dans [Berman et al., 2004a] et [Cardei et al., 2005], les auteurs définissent le problème
intitulé ”Maximum Set Covers” (MSC) pour le cas particulier du problème MLP pour des
ensembles couvrants non disjoints. Étant donné un ensemble S de capteurs, il faut trouver
un nombre d’ensembles couvrants non nécessairement disjoints de durée d’activation
totale la plus grande. Chaque ensemble couvrant Ck (k = 1..K) a une durée d’activation
tk , le temps durant lequel tous les capteurs de cet ensemble seront actifs pendant que
les autres resteront en veille. Ici, la borne du nombre possible d’ensembles couvrants est
différente et plus grande que celle calculée dans l’expression (7.1) pour le cas disjoint,
P
cependant nous gardons la notation K. Il s’agit donc de maximiser la somme k=1..K tk
sous les contraintes de couverture de toutes les cibles et sur les contraintes de réserve
en énergie E j des capteurs. Dans [Cardei et al., 2005], il est prouvé que le problème
(MSC) est un problème NP-complet.
Le modèle mathématique associé à ce problème est le suivant :

P
max k=1..K tk




sous :




x t ≤ E j, ∀ j ∈ S


 P
Pk=1..K j,k k

(7.5)

j∈S (i) xj,k ≥ 1, ∀i ∈ T, ∀k = 1..K




tk ∈ R+







 xj,k ∈ {0, 1}

A nouveau, la variable xj,k indique si le capteur j appartient ou non à l’ensemble couvrant


Ck . La première contrainte garantit que le temps d’activation total de chaque capteur est
inférieure à sa durée de vie initiale (E j ). La seconde contrainte assure que chaque cible
i ∈ T est couverte par au moins un capteur j dans chaque ensemble couvrant k. On
remarque que la première contrainte n’est pas une contrainte linéaire à cause du terme
”xj,k tk ”. Pour contourner cette difficulté, deux approches sont envisagées, une technique
de relaxation est proposée dans [Cardei et al., 2005]. Tous les capteurs sont supposés
avoir le même niveau d’énergie E j = 1. La technique de relaxation consiste à définir la
58CHAPITRE 7. MAXIMISATION DE LA DURÉE DE VIE D’UN RÉSEAU DE CAPTEURS

variable yj,k = xj,k tk . Le problème devient :


P
max k=1..K tk




sous :





 P
 y ≤ 1, ∀j ∈ S
Pk=1..K j,k

(7.6)

j∈S (i) yj,k ≥ tk , ∀i ∈ T, ∀k = 1..K




tk ∈ R +






yj,k = 0 ou tk et yj,k ≤ 1

Le problème est relâché (la contrainte d’intégrité des variables yjk est relâchée), sa
version continue est :
 P


 max k=1..K tk
sous :





 P

 yj,k ≤ 1, ∀ j ∈ S
 Pk=1..K


j∈S (i) j,k ≥ tk , ∀i ∈ T, ∀k = 1..K

 y (7.7)
+




 tk ∈ R
+


yj,k ∈ R






 0≤y ≤t ≤1
j,k k

Une heuristique basée sur la résolution de programme linéaire est proposée.

De notre côté, nous avons développé une méthode reposant sur la technique de
génération de colonnes [Deschinkel, 2012] qui sera détaillé dans le chapitre 10. Nous
formulons l’hypothèse qu’il est possible de générer tous les ensembles couvrants non
disjoints possibles : ils forment l’ensemble U et l’appartenance ou non d’un capteur j à
un ensemble u ∈ U est noté par l’indice binaire a ju . La durée d’activation de l’ensemble u
est notée tu . Le problème MLP s’écrit :

 P


 max u∈U tu


 sous :
(7.8)

u∈U a ju tu ≤ E j , ∀ j ∈ S

 P


tu ∈ R +


7.3.2/ C OUVERTURE DE LA ZONE D ’ INT ÉR ÊT

La couverture de zone d’intérêt signifie que chaque point à l’intérieur de la zone doit être
couvert. En fait, il n’est pas facile de trouver un moyen de modéliser la couverture de tous
les points de la zone. C’est pourquoi la plupart des approches consiste à ne considérer
qu’un sous-ensemble de points suffisamment représentatifs de la zone à couvrir. Cette
problématique est semblable à celle rencontrée pour l’optimisation et l’évaluation de la
distribution de dose en curiethérapie concernant le choix du nombre et des positions des
points de référence (voir la partie 5.1.3).
Par exemple, les auteurs [Deng et al., 2012] transforment le problème de couverture de
zone en un problème de couverture de cibles. Les cibles sont les points d’intersection
entre les disques de couverture des différents capteurs et avec les frontières de la
zone d’intérêt. Dans [Huang and Tseng, 2005] les auteurs proposent un algorithme en
O(nd log d) pour calculer la couverture du périmètre de chaque capteur (il faudrait dire
le périmètre du disque couvert par le capteur). d est le nombre maximal de voisins d’un
7.3. MODÉLISATION 59

capteur et n le nombre total de capteurs.


Dans les travaux de thèse [Idrees, 2015], nous avons exploré ces deux pistes :
— couverture d’un ensemble discrets de points représentatifs de la zone d’intérêt,
— couverture du périmètre des capteurs.
Nous présentons dans les deux parties qui suivent les modèles d’optimisation développés
dans les deux cas. Contrairement à ce qui a été présenté dans la partie précédente sur
la couverture de cibles, nous nous sommes placés dans un cadre légèrement différent.
Nous avons considéré un réseau, avec des capteurs homogènes en termes de capacité
de communication, d’acquisition et de traitement des données, mais hétérogènes du
point de vue de leur niveau d’énergie. Au lieu de planifier à l’avance l’activité des
nœuds en générant de manière centralisée, dés le début, tous les ensembles couvrants,
nous nous plaçons dans le cadre d’une planification périodique et semi-distribuée. Pour
plus de détails sur le protocole utilisé, nous invitons le lecteur à se référer à la
thèse [Idrees, 2015]. Dans la suite, nous ne présentons que les modèles d’optimisation.

7.3.2.1/ M OD ÈLE DE COUVERTURE DE POINTS PRIMAIRES

La modèle d’optimisation que nous proposons repose sur celui présenté


dans [Pedraza et al., 2006] et déjà évoqué dans la partie 7.3.1.2. Cette-fois
ci, la couverture de zone se traduit par la couverture d’un ensemble P points
primaires. Les détails sur le choix et le nombre de points primaires sont donnés
dans [Idrees et al., 2014]. Ces points primaires sont interprétés comme des cibles pour
le modèle de [Pedraza et al., 2006].
Choix des points primaires
Connaissant la position du nœud capteur (centré au point de coordonnées (p x , py )) et son
rayon de couverture R s , on définit jusqu’à 25 points primaires X1 à X25 (voir figure 7.1).
Les coordonnées de ces points sont les suivantes :
X1 = (p x , py )
X2 = (p x + R s ∗ (1), py + R s ∗ (0))
X3 = (p x + R s ∗ (−1), py + R s ∗ (0))
X4 = (p x + R s ∗ (0), py + R s ∗ (1))
X5 = (p x + R s ∗ (0),√ py + R s ∗ (−1))√
X6 = (p x + R s ∗ ( − 2 2 ), py + R s ∗ ( 2
))
√ √2
X7 = (p x + R s ∗ ( 2 ), py + R s ∗ ( 2 ))
2 2
√ √
X8 = (p x + R s ∗ ( − 2 2 ), py + R s ∗ ( − 2 2 ))
√ √
X9 = (p x + R s ∗ ( 22 ), py + R s ∗ ( − 2 2 ))

X10 = (p x + R s ∗ ( − 2 2 ), py + R s ∗ (0))

X11 = (p x + R s ∗ ( 22 ), py + R s ∗ (0))

X12 = (p x + R s ∗ (0), py + R s ∗ ( 22 ))

X13 = (p x + R s ∗ (0), py + R s ∗ ( − 2 2 ))

X14 = (p x + R s ∗ ( 23 ), py + R s ∗ ( 21 ))

X15 = (p x + R s ∗ ( − 2 3 ), py + R s ∗ ( 21 ))

X16 = (p x + R s ∗ ( 23 ), py + R s ∗ ( −12 ))

X17 = (p x + R s ∗ ( 2 ), py + R s ∗ ( −1
− 3
2 ))
60CHAPITRE 7. MAXIMISATION DE LA DURÉE DE VIE D’UN RÉSEAU DE CAPTEURS


X18 = (p x + R s ∗ ( 2√), py + R s ∗ (0))
3

X19 = (p x + R s ∗ ( − 2 3 ), py + R s ∗ (0))
X20 = (p x + R s ∗ (0), py + R s ∗ ( 12 ))
X21 = (p x + R s ∗ (0), py + R s ∗ (− 12 ))

X22 = (p x + R s ∗ ( 12 ), py + R s ∗ ( 23 ))

X23 = (p x + R s ∗ ( −12 ), py + R s ∗ ( 3
2√))
X24 = (p x + R s ∗ ( −12 ), py + R s ∗ ( √2 ))
− 3

X25 = (p x + R s ∗ ( 21 ), py + R s ∗ ( − 2 3 )).

X4

X23 X22

X12 X7
X6

X15 X14
X20

X19 X10 X1 X11 X18


X3 X2

X21
X17 X16

X8 X13
X9

X24 X25

X5

F IGURE 7.1 – Couverture du disque remplacé par la couverture d’au plus 25 points
primaires

Dans notre étude, nous avons comparé les performances de notre protocole lorsque
celui-ci (ou plus précisément le modèle d’optimisation) se restreint à la couverture de
5 points primaires, de 9, de 13, de 17, de 21 et de 25 points primaires. L’analyse de
plusieurs critères de performance montre qu’il est plus efficace de n’utiliser que 5 points
primaires.
Minimisation simultanée de la sous et sur-couverture des points primaires
Il n’est plus question d’ensemble couvrant Ck , puisque le processus de décision
d’activation des capteurs est réalisé à chaque nouvelle période. Les variables binaires
considérées sont les variables X s , qui indiquent si parmi les capteurs ayant une provision
d’énergie suffisante (notons A ⊆ S l’ensemble de ces capteurs), le capteur s sera activé
dans la prochaine période de mesure.
Pour un point primaire p, soit α sp l’indice de couverture du point p.

1 si le point primaire p est couvert





α sp =

par le capteur s, (7.9)



 0 sinon.
7.3. MODÉLISATION 61

α sp ∗ X s où :
P
Le nombre de capteurs actifs qui couvrent le point p est égal à s∈S
(
1 si le capteur s est activé,
Xs = (7.10)
0 sinon.

On définit la variable de sur-couverture Θ p par :





 0 si le point primaire
Θp = 


   p n’est pas couvert, (7.11)
 P α sp ∗ X s − 1 sinon.


s∈S

Plus précisément, Θ p représente le nombre de capteurs actifs moins un qui couvrent le


point primaire p.
La variable de sous-couverture U p du point primaire p est défini par :
(
1 si le point primaire p n’est pas couvert,
Up = (7.12)
0 sinon.

Notre problème d’optimisation est formulé ainsi :

min p∈P (wθ Θ p + wU U p )


 P



sous :




s∈S α sp X s − Θ p + U p = 1,

 P

 ∀p ∈ P
(7.13)

Θ p ∈ N, ∀p ∈ P





U p ∈ {0, 1}, ∀p ∈ P






 X s ∈ {0, 1}, ∀s ∈ A

La contrainte d’égalité indique que chaque point primaire p doit être couvert par au moins
un capteur et, que si ce n’est pas toujours le cas, les variables de sous-couverture et
de sur-couverture permettent d’équilibrer l’équation en prenant des valeurs positives.
La fonction objectif est une somme pondérée de variables de sous et sur-couverture.
L’objectif étant de limiter la sur-couverture en activant un nombre minimal de capteurs,
mais tout en limitant simultanément la sous-couverture. En choisissant wU bien plus
grand que wθ , la couverture d’un nombre maximal de points p ∈ P est assurée. Et pour
un même nombre de points p couverts, la solution avec un nombre minimal de capteurs
actifs est préférée, ce qui permet de préserver de l’énergie à chaque période et donc
d’étendre la durée de vie du réseau.

7.3.2.2/ M OD ÈLE DE COUVERTURE DU P ÉRIM ÈTRE DES CAPTEURS

La modélisation que nous proposons repose sur les principes de couverture des
périmètres des disques couverts par les capteurs. Ces principes ont été décrits dans
[Huang and Tseng, 2005]. Ils s’expriment ainsi : le périmètre d’un capteur (pour être plus
précis, il faudrait dire le périmètre du disque couvert par le capteur) est dit couvert si
tous les points sur son périmètre sont couverts par au moins un autre capteur que lui-
même. Les auteurs [Huang and Tseng, 2005] ont montré que la zone de surveillance du
réseau est l-couverte (chaque point dans la zone est couverte par au moins l capteurs)
si et seulement si le périmètre de chaque capteur du réseau est l-couvert (son périmètre
est couvert par l autres capteurs). Leur étude donne juste un algorithme de calcul de
62CHAPITRE 7. MAXIMISATION DE LA DURÉE DE VIE D’UN RÉSEAU DE CAPTEURS

couverture du périmètre d’un capteur mais ne propose pas d’optimiser la gestion des
périodes d’activation des capteurs. Nous proposons un modèle d’optimisation qui répond
à cette problématique.
Notations, définitions et modèle géométrique
Pour introduire plus facilement quelques définitions, nous partons d’un exemple de
couverture d’un capteur 0 schématisé sur la figure 7.2(a). Sur cette figure, le capteur 0
a neuf voisins. Pour chaque voisin, deux points d’intersection ont été reportés sur le
périmètre du disque couvert par le capteur 0. Ces points sont notés, pour chaque voisin i,
par iL and iR, désignant respectivement l’intersection gauche ou droite du point de vue
du voisin. L’ensemble de ces points d’intersection subdivise le périmètre du capteur 0 en
portions que nous appellerons arcs ou intervalles.

(a)

(b)

F IGURE 7.2 – (a) Couverture du périmètre du capteur 0 et (b) portion du périmètre de u


couvert par le capteur v.

Figure 7.2(b) décrit les informations géométriques utiles pour déterminer la localisation
des points d’intersection gauche et droite d’un capteur v voisin d’un capteur u et couvrant
une partie de son périmètre. Le nœud v est à gauche du noeud u sur cette figure, avec les
cordonnées suivantes : (v x , vy ) et (u x , uy ). La distance euclidienne entre les deux nœuds
u et v est définie de cette manière :

q
Dist(u, v) = (u x − v x )2 + (uy − vy )2 ,
7.3. MODÉLISATION 63

tandis que l’angle α est obtenu grâce à la formule :


!
Dist(u, v)
α = arccos .
2R s
L’arc du périmètre de u couvert par v est entièrement défini par l’intervalle angulaire [π −
α, π + α].
Chaque couple de points d’intersection (iL, iR) est placé sur l’intervalle angulaire [0, 2π)
dans le sens inverse des aiguilles d’une montre, conduisant à un découpage de
l’intervalle en sous-intervalles. La figure 7.2(a) illustre les arcs des neufs voisins du
noeud 0 et le tableau 7.1 donne les coordonnées angulaires des points d’intersection
gauche et droite sur l’intervalle [0, 2π). La figure 7.3 représente le découpage du périmètre
du capteur 0 en plusieurs intervalles pour lesquels le niveau de couverture (interprété
ici comme le nombre de capteurs couvrant une portion du périmètre) est reporté. Par
exemple, l’arc compris entre les points 5L et 6L a un niveau de couverture maximal
pouvant atteindre 3 (cette valeur est donnée en bas de la figure 7.3). Cela signifie que cet
arc sur le périmètre du capteur 0 peut être couvert par au moins deux autres capteurs.
Le tableau 7.1 regroupe pour chaque intervalle de couverture (CI) le niveau maximal de
couverture possible et les numéros de capteurs impliqués dans cette couverture.

F IGURE 7.3 – Niveau maximal de couverture du capteur 0.

Formulation du problème de couverture


Dans cette partie, nous allons formuler mathématiquement le problème de couverture
du périmètre des capteurs. Il a été démontré dans [Hung and Lui, 2010] que ce problème
est NP-difficile. Dans cet article, les auteurs étudient la couverture du périmètre d’un
large objet exigeant une surveillance. Pour la formulation que nous proposons, l’objet à
surveiller est le capteur lui-même (ou plus précisément son disque de couverture).
Les notations suivantes sont utilisées pour écrire le modèle complet. I j représente
l’ensemble des intervalles de couverture définis dans la partie 7.3.2.2 pour le capteur j.
j
Pour un intervalle de couverture c, le paramètre binaire acs indique si le capteur s participe
à la couverture de l’intervalle c du capteur j.
1 si le capteur s participe à la



j
acs = 

couverture de l’intervalle c du capteur j, (7.14)



 0 sinon.
64CHAPITRE 7. MAXIMISATION DE LA DURÉE DE VIE D’UN RÉSEAU DE CAPTEURS

TABLE 7.1 – Intervalles de couverture et capteurs impliqués


Extrémité Extrémité Niveau Ensemble de capteurs
gauche droite maximal impliqués
angle α de l’intervalle de l’intervalle de couverture dans la couverture de l’intervalle
0.0291 1L 2L 4 0 1 3 4
0.104 2L 3R 5 0 1 3 4 2
0.3168 3R 4R 4 0 1 4 2
0.6752 4R 1R 3 0 1 2
1.8127 1R 5L 2 0 2
1.9228 5L 6L 3 0 2 5
2.3959 6L 2R 4 0 2 5 6
2.4258 2R 7L 3 0 5 6
2.7868 7L 8L 4 0 5 6 7
2.8358 8L 5R 5 0 5 6 7 8
2.9184 5R 7R 4 0 6 7 8
3.3301 7R 9R 3 0 6 8
3.9464 9R 6R 4 0 6 8 9
4.767 6R 3L 3 0 8 9
4.8425 3L 8R 4 0 3 8 9
4.9072 8R 4L 3 0 3 9
5.3804 4L 9R 4 0 3 4 9
5.9157 9R 1L 3 0 3 4

j
Remarquons que ac j = 1 par définition de l’intervalle.
Plusieurs autres variables sont définies. Chaque variable binaire X s précise si le capteur s
(parmi un ensemble A ⊆ S de capteurs toujours en vie au moment de la prise de décision)
sera actif durant la période de surveillance considérée (X s = 1 si le capteur s est activé,
j
0 sinon). La variable Mc mesure la sous-couverture de l’intervalle c pour le capteur j.
j
Parallèlement, la sur-couverture pour le même intervalle c du capteur j est notée Vc .
Pour maintenir un niveau de couverture égal à l tout le long du périmètre du capteur j,
au moins l capteurs impliqués dans la couverture de chacun de ses intervalles c ∈ I j
doivent être actifs. D’après les notations précédentes, le nombre de capteurs actifs dans
P j
l’intervalle c du capteur j est donné par l’expression s∈A acs X s .
Pour étendre la durée de vie du réseau, l’objectif est d’activer un nombre minimal
de capteurs pour chaque période tout en assurant la meilleure couverture de la zone
d’intérêt. Au fur et à mesure des périodes, le nombre de capteurs en vie (avec une
provision d’énergie suffisante pour tenir éveillé une période) diminue et il devient
j
impossible d’atteindre le niveau de couverture souhaité. C’est pourquoi les variables Mc
j
et Vc sont introduites dans le modèle, elles mesurent la déviation entre le nombre requis
de capteurs pour chaque intervalle de couverture et le nombre effectif. Nous cherchons
à minimiser ces déviations, d’une part pour activer un nombre minimal de capteurs pour
assurer la couverture totale de la zone, et si la couverture totale ne peut pas être atteinte,
nous essayons de nous en approcher.
7.4. CONCLUSION 65

Le problème d’optimisation est formulé de la manière suivante :

XX
j j j j
Min (αc Mc + βc Vc )
j∈S c∈I j

sous :
X
j j
(acs X s ) + Mc ≥ l ∀ j ∈ S , ∀c ∈ I j
s∈A
X (7.15)
j j
(acs Xs) − Vc ≤l ∀ j ∈ S , ∀c ∈ I j
s∈A
X s ∈ {0, 1}, ∀s ∈ A
Mc , Vc ∈ R+
j j

Admettons qu’un niveau de couverture l soit requis pour un capteur j. On dit que ce
capteur est sous-couvert (respectivement sur-couvert) si le niveau de couverture de l’un
de ses intervalles est moins grand (respectivement plus grand) que l. Si le capteur j est
sous-couvert, cela signifie qu’il y au moins un de ses intervalles de couverture (disons c)
pour lequel le nombre de capteurs actifs (noté lc ) couvrant l’intervalle c est inférieur à l
j j
et dans ce cas : Mc = l − lc , Vc = 0. Inversement, si le capteur j est sur-couvert, il y au
moins un de ses intervalles de couverture (disons d) pour lequel le nombre de capteurs
j j
actifs (noté ld ) couvrant l’intervalle d est supérieur à l et dans ce cas : Md = 0, Vd = ld − l.
j j
Les poids αc and βc sont positifs ou nuls et sont fixés selon l’importance accordée à
la satisfaction des niveaux de couverture des différents intervalles. Par exemple, si on
veut favoriser la couverture d’une partie de la zone d’intérêt, on peut mettre des poids
plus forts aux intervalles des capteurs présents sur cette partie. Cette formulation de
programme linéaire entier mixte est inspiré du modèle développé en curiethérapie LDR
[Lee et al., 1999] pour optimiser la distribution de dose dans la tumeur et autour. Ce
problème est décrit dans la partie 5.2.2 de ce document. Le choix des valeurs pour les
poids α et β doit être fait selon les besoins de l’application. α doit être suffisamment élevé
pour empêcher la sous-couverture et atteindre un taux de couverture de la zone le plus
grand possible. β doit être suffisamment élevé pour éviter la sur-couverture et limiter ainsi
le nombre de capteurs actifs.

7.4/ C ONCLUSION

Ce chapitre aborde le problème de maximisation de la durée de vie d’un réseau de


capteurs sous l’angle de la recherche opérationnelle. Nous nous sommes intéressés aux
formulations sous forme de programme linéaire qui permettent une génération centralisée
d’ensembles couvrants (groupe de capteurs activés sur une période). Les ensembles
couvrants générés, disjoints ou non disjoints, couvrent totalement ou partiellement des
cibles ou des points spécifiques appelés points primaires. Nous présentons des modèles
existants dans la littérature et proposons de nouveaux modèles dans les cas suivants :
— maximisation du nombre d’ensembles couvrants disjoints couvrant la totalité des
cibles (programmes linéaires (7.2) et (7.3))
— maximisation du nombre d’ensembles couvrants non disjoints par une technique
de génération de colonnes (programme linéaire (7.5))
66CHAPITRE 7. MAXIMISATION DE LA DURÉE DE VIE D’UN RÉSEAU DE CAPTEURS

— minimisation simultanée de la sous-couverture et sur-couverture de points


primaires (programme linéaire (7.13))
— maximisation de la couverture du périmètre de chaque capteur induisant une
couverture de la zone d’intérêt (programme linéaire (7.15))
II
R ÉSOLUTION PAR D ÉCOMPOSITION DU
PROBL ÈME

67
8
U NE HEURISTIQUE EN DEUX TEMPS
POUR LA MINIMISATION DU NOMBRE
DE REGISTRES : SIRALINA

L’utilisation d’une méthode classique de Branch and Bound pour résoudre le programme
linéaire (6.8) permet de traiter, en pratique, uniquement des petites instances de
problèmes (en pratique, des DDG de taille maximale de 12 noeuds), sinon les temps de
calcul deviennent prohibitifs et les besoins en mémoire explosent. C’est pourquoi nous
avons développé une heuristique efficace de résolution appelée SIRALINA.
Notre stratégie de résolution repose sur l’analyse du modèle de contraintes. Le problème
fait apparaı̂tre des contraintes d’ordonnancement et des contraintes d’affectation, et les
distances de réutilisation sont le lien entre les deux ensembles de contraintes. Nous
proposons une décomposition du problème en deux sous-problèmes :
— Un problème d’ordonnancement : trouver un ordonnancement pour lequel les
distances de réutilisation sont les plus petites possibles.
— Un problème d’affectation : sélectionner les paires de tâches qui partageront le
même registre processeur.

8.1/ P R ÉALABLES

Si une paire de tâches (T i , T j ) ∈ V R × V R est reliée par un arc de réutilisation, sa distance


de réutilisation doit satisfaire l’inégalité (6.4), où θi, j = 1. Cette inégalité fixe une borne
inférieure pour chaque distance de réutilisation potentielle. Si (T i , T j ) ∈ V R × V R est un arc
de réutilisation (E reuse représente l’ensemble des arcs de réutilisation) alors :
1
∀(T i , T j ) ∈ E reuse , µi, j ≥ (σKi − δw (T j ) − σ j ) (8.1)
p
Si (T i , T j ) ∈ V R × V R n’est pas un arc de réutilisation alors µi, j = 0 d’après l’inégalité 6.5.
∀(T i , T j ) < E reuse , µi, j = 0
L’agrégation des contraintes 8.1pour chaque arc de réutilisation fournit une borne
inférieure à la fonction objectif
X 1 X
z= µi, j ≥ (σKi − δw (T j ) − σ j )
p (T ,T )∈E reuse
(T i ,T j )∈V ×V
R R i j

69
70 CHAPITRE 8. HEURISTIQUE SIRALINA

La partie droite de cette inégalité peut se décomposer en deux sommes par bijection de
la relation de réutilisation de V R dans V R :
(T i ,T j )∈E reuse σKi − δw (T j ) − σ j
P

X X
= σKi − (δw (T j ) + σ j )
i∈V R j∈V R
 
 X X  X
=  σKi − σ j  − δw (T j )
i∈V R j∈V R j∈V R
(8.2)

Cette expression nous permet de déduire une borne inférieure du nombre de registres
nécessaires. Il parait ici judicieux de chercher un ordonnancement pour lequel cette
valeur est minimale. Dans cette expression, nous pouvons ignorer le terme constant
j∈V R δw (T j ) Nous nous intéressons donc au Problème d’ordonnancement (P) ainsi
P
défini :

min i∈V R σKi − j∈V R σ j


 P P





 sous :
(8.3)

σ j − σi ≥ δ(e) − p × λ(e), ∀e = (T i , T j ) ∈ E




σKi − σ j ≥ δr (T j ) + p × λ(e), ∀e = (T i , T j ) ∈ E R


La matrice de contraintes du système 8.3 est une matrice d’incidence [Schrijver, 1987]
du graphe DDG auquel on a ajouté les noeuds ”tueurs” (voir Figure 6.2(c)). Le nombre
de variables entières est O(|V|) et le nombre de contraintes linéaires est O(|E|). Comme
il s’agit d’une matrice d’incidence, c’est aussi une matrice totalement unimodulaire (le
déterminant de chaque sous matrice carrée est égale à 0 ou à ± 1) et la résolution du
programme linéaire en nombre entiers par la méthode du simplexe fournit une solution
optimale entière au problème [Schrijver, 1987].

Une fois les valeurs optimales σ∗i trouvées pour les tâches T i ∈ V R et les valeurs optimales
σ∗Ki pour chaque noeud ”tueur” Ki , la valeur minimale de chaque distance de réutilisation
σ∗K −δw (T j )−σ∗j
potentielle est égale à µi, j = d i p e d’après l’inégalité 8.1. Connaissant la valeur
de distance de réutilisation µi, j si la tâche T j réutilise le registre libérée par T i , l’allocation
de stockage consiste à déterminer quelle tâche réutilise quel registre libéré. Ce problème
peut être modélisé comme un problème d’affectation linéaire. Nous nous intéressons
donc au Problème d’affectation linéaire (A) ainsi défini :

(T i ,T j )∈V R ×V R µi, j × θi, j


 P


 min




 sous :
R θ = 1,

∀T i ∈ V R
P
(8.4)

PT j ∈V i, j


T i ∈V R θi, j = 1, ∀T j ∈ V R





θi, j ∈ {0, 1}


où µi, j est une valeur fixe pour chaque arc e = (T i , T j ) ∈ V R × V R .


8.2. ÉTAPES DE RÉSOLUTION DE L’HEURISTIQUE SIRALINA 71

8.2/ É TAPES DE R ÉSOLUTION DE L’ HEURISTIQUE SIRALINA

Pour une période donnée p ∈ N, nous proposons de résoudre le problème de


minimisation de registres avec l’heuristique suivante :
— Résoudre le problème (P) pour obtenir les valeurs optimales σ∗i pour chaque tâche
T i ∈ V R et les valeurs optimales σ∗Ki pour chaque noeud ”tueur” Ki .
 σ∗ −δ (T )−σ∗ 
w j
— Calculer les distances µi, j = pour chaque couple (T i , T j ) ∈ V R × V R .
Ki j
p
— Résoudre le problème d’affection linéaire (A) avec la méthode Hongroise
[Kuhn, 1955] (voir annexe B) qui permet une résolution en temps polynomial
(O(|V R |3 )) pour obtenir les valeurs d’affectation optimale θi,∗ j .
— Si θi,∗ j = 1 pour la tâche (T i , T j ) ∈ V R ×V R , alors (T i , T j ) devient un arc de réutilisation
avec une distance égale à µi, j = µi, j .

8.3/ R ÉSULTATS EXP ÉRIMENTAUX

Dans cette partie, nous présentons les nombreux résultats de tests réalisés sur des
milliers de DDG issus de benchmarks bien connus. Nos benchmarks proviennent d’une
sélection de cinq familles d’application : 2 des familles correspondent à des applications
embarquées ((MEDIABENCH et LAO), les 3 autres à des applications générales de
calcul intensif (SPEC2000-CINT, SPEC2000-CFP et SPEC2006). Ces applications se
composent de nombreux fichiers de programmes écrits en langage C et C++ à optimiser
par compilation. Notre heuristique SIRALINA a été incorporée dans un dispositif de
compilation industrielle de la société STMicroelectronics.

8.3.1/ C ADRE EXP ÉRIMENTAL

Pour évaluer l’efficacité de notre heuristique, nous la comparons avec deux autres
heuristiques existantes (désignées ici par H2 et H3) dont la méthodologie est détaillée
dans [Touati and Eisenbeis, 2004]. Nous comparons également les résultats obtenus par
SIRALINA à ceux obtenus par la résolution du programme linéaire entier avec la méthode
Branch and Bound. Comme il est impossible de résoudre à l’optimalité des instances de
DDG de plus de 12 noeuds en un temps de calcul raisonnable, nous avons limité le temps
de résolution à 10 secondes (temps maximal autorisé pour compiler une seule boucle de
programme informatique). La valeur de la solution retenue est alors la meilleure solution
trouvée dans les 10 secondes : cela définit une heuristique naı̈ve basée sur le modèle
linéaire entier. Cette heuristique naı̈ve est appelée H1. Comparativement, SIRALINA
fournit toujours une solution approchée en moins d’une seconde.
Le nombre total de DDGs testés est de 6748. Leurs différentes tailles (nombre de noeuds
et d’arcs) sont représentées par des diagrammes de quartiles (voir figure 8.1). Ce type
de diagramme [Crawley, 2007] est utile pour décrire graphiquement la répartition des
données au moyen de cinq chiffres significatifs (la plus petite valeur, le quartile inférieur
(Q1 = 25%), la médiane (Q2 = 50% ), le quartile supérieur (Q3 = 75%), et les plus grandes
valeurs). La partie gauche de la figure 8.1 représente le nombre de noeuds par famille,
tandis que la partie droite représente le nombre d’arcs. Les 5 ”boı̂tes” correspondent aux
5 familles de référence (LAO, Mediabench, SPEC, etc.) ; 1) le petit trait horizontal inférieur
72 CHAPITRE 8. HEURISTIQUE SIRALINA

est la valeur minimale, 2) le rectangle représente le premier et le troisième quartile, 3) le


trait horizontale coupant le rectangle représente la médiane, 4) le dernier point supérieur
représente la valeur maximale. On peut remarquer par exemple que 50% des DDGs
testés ont entre 15 et 30 noeuds, et entre 50 et 100 arcs. On remarque aussi que la
taille du plus grand DDG est supérieure à 500 noeuds et 2000 arcs.
Nous cherchons à minimiser le nombre de registres utilisés dans un processeur de
type VLIW (processeur de la famille ST231 de STMicroelectronics). Cette famille de
processeurs possède des registres de type BR (registres de branchements) et GR
(registres de type entier). Les registres de type BR sont chargés de stocker les données
booléennes du programme et les registres de type GR les autres données numériques
(entiers). SIRALINA est capable d’optimiser chaque type de registre séparément. Par
exemple, lorsque l’on considère le type GR, l’ensemble de tâches V R du DDG devient
l’ensemble des tâches produisant des résultats de type GR. Pour BR, V R est l’ensemble
des tâches écrivant dans des registres de type BR. La distribution du nombre de noeuds
et d’arcs pour chaque type (BR ou GR) est donnée par les différents diagrammes de la
figure 8.2. Le nombre moyen de tâches produisant des résultats de type BR est d’environ
4, et le nombre moyen d’arcs est égal à 5. Ces valeurs sont multipliées par 5 et plus pour
les registres de type GR (environ 20 noeuds et 30 des arcs).
Nous avons utilisé le solveur commercial de programmes linéaires ILOG CPLEX 10.2.
Les tests ont été effectués sur une station Linux équipée d’un processeur Pentium 2.33
Ghz processor, et 4 GB de mémoire vive.

8.3.2/ C OMPARAISONS AVEC D ’ AUTRES HEURISTIQUES

Cette partie présente une synthèse des comparaisons de performances entre SIRALINA
les différentes méthodes (H1, H2 et H3). H2 et H3 sont d’autres heuristiques basées
sur la résolution de programmes linéaires entiers simplifiés [Touati and Eisenbeis, 2004].
Ces heuristiques sont non polynomiales mais permettent de résoudre des instances de
taille moyenne (ce qui est impossible avec la méthode exacte). Nous avons dû limiter
leur temps d’exécution à une seconde pour une valeur de période p, sinon les temps de
calcul sont trop élevés (de l’ordre de quelques minutes à plusieurs heures suivant la taille
du DDG) : en compilation interactive, il ne faut pas dépasser une seconde de calcul pour
optimiser une boucle (un DDG) pour une période.
Le tableau 8.1 (respectivement 8.3) donne le nombre de problèmes (en pourcentage)
pour lequel le nombre de registres de type BR (resp. GR) fourni par SIRALINA pour la
période minimale p = MEP (période minimale d’éxécution- voir chapitre 6) est strictement
inférieur au nombre de registres calculé avec les trois autres méthodes. Le tableau 8.2
(respectivement 8.4) donne le pourcentage de cas où SIRALINA fournit le même résultat
que les autres méthodes. On s’aperçoit aisément que dans la plupart des cas, SIRALINA
calule au moins une solution aussi bonne que les trois autres méthodes. SIRALINA
surpasse toujours l’heuristique 3. Pour les registres de type BR, il y a peu de cas où
SIRALINA est strictement meilleure que l’heuristique 1. Lorsque le nombre de nœuds V R
est plus élevé, à savoir pour les registres de type GR, SIRALINA est plus efficace. Nous
nous attendions à ce constat : le cas avec des registres de type BR peut être résolu à
l’optimalité avec l’heuristique 1 dans le temps limite car le nombre de nœuds V R et d’arcs
E R est relativement faible. Mais pour les grandes instances, avec des registres de type
GR, SIRALINA produit des résultats nettement meilleurs.
8.3. RÉSULTATS EXPÉRIMENTAUX 73

Famille de benchmarks #benchmarks H1 H2 H3


LAO 286 2% 27% 56%
MEDIABENCH 1168 0% 19% 41%
SPEC2000-CINT 2297 1% 24% 63%
SPEC2000-CFP 293 0% 15% 48%
SPEC2006 2704 0% 29% 67%

TABLE 8.1 – SIRALINA vs. autres Heuristiques (Registre de type BR) - % d’instances où
SIRALINA est strictement meilleure

Famille de benchmarks #benchmarks H1 H2 H3


LAO 286 63% 53% 44%
MEDIABENCH 1168 81% 69% 59%
SPEC2000-CINT 2297 69% 55% 37%
SPEC2000-CFP 293 78% 71% 52%
SPEC2006 2704 68% 49% 33%

TABLE 8.2 – SIRALINA vs. autres Heuristiques(Registre de type BR) - % d’instances où
SIRALINA produit le même résultat

Famillle de benchmarks #benchmarks H1 H2 H3


LAO 286 49% 68% 86%
MEDIABENCH 1168 34% 67% 87%
SPEC2000-CINT 2297 37% 74% 90%
SPEC2000-CFP 293 31% 55% 82%
SPEC2006 2704 36% 80% 92%

TABLE 8.3 – SIRALINA vs. autres Heuristiques (Registres GR) - % d’instances où
SIRALINA est strictement meilleure

Famille de benchmarks #benchmarks H1 H2 H3


LAO 286 33% 19% 14%
MEDIABENCH 1168 54% 28% 13%
SPEC2000-CINT 2297 50% 22% 10%
SPEC2000-CFP 293 54% 35% 18%
SPEC2006 2704 52% 16% 8%

TABLE 8.4 – SIRALINA vs. autres Heuristiques(Registres GR) - % d’instances où


SIRALINA produit le même résultat

Pour chaque groupe d’instances, nous calculons le pourcentage de déviation moyenne


(en nombre de registres requis) entre SIRALINA et les autres heuristiques x (x =
1, 2 ou 3). Ce pourcentage de déviation moyenne est calculé ainsi :
P
DDG (S R(x) − S R(S IRALINA))
P × 100%
DDG S R(x)
où S R(x) = µi, j correspond au nombre de registres requis pour la période minimale
P
(p = MEP) calculé avec la méthode x. Ce pourcentage permet de quantifier l’amélioration
74 CHAPITRE 8. HEURISTIQUE SIRALINA

obtenue avec SIRALINA. Les résultats sont fournis dans le tableau 8.6 pour les registres
de type BR et les registres de type GR. Nous pouvons faire les observartions suivantes :
— Pour le type GR, SIRALINA surpasse toutes les autres méthodes. La méthode 1
qui résout le programme linéaire entier (limité à 10 secondes) est incapable de
fournir des solutions meilleures que celles de SIRALINA. Ce résultat est attendu,
étant donné que le nombre moyen de tâches de type GR dépasse 12.
— Pour le type BR, SIRALINA est plus performante que les heuristiques 2 et 3 mais
moins bonne que l’heuristique 1. Ce résultat s’explique par le nombre réduit de
tâches BR qui permet au solveur de fournir une solution exacte dans le temps
imparti.
Famille de benchmarks H1 H2 H3
LAO -25% +8% +65%
MEDIABENCH -17% +23% +44%
SPEC2000-CINT -25% +23% +49%
SPEC2000-CFP -20% +24% +47%
SPEC2006 -27% +26% +52%

TABLE 8.5 – Pourcentage de déviation moyenne entre SIRALINA et les autres méthodes
(Registre de type BR)

Famille de benchmarks H1 H2 H3
LAO +27% +47% +75%
MEDIABENCH +13% +35% +65%
SPEC2000-CINT +7% +33% +62%
SPEC2000-CFP +7% +29% +61%
SPEC2006 +8% +34% +63%

TABLE 8.6 – Pourcentage de déviation moyenne entre SIRALINA et les autres méthodes
(Registre de type GR)

Dans cette partie, nous avons étudié le problème de minimisation du nombre de registres
pour une période fixée p = MEP. Dans la partie suivante, nous suivons une démarche
différente, nous fixons un nombre limite de registres (donné par le fabricant) et nous
étudions l’accroissement minimale de période nécessaire pour utiliser le nombre de
registres à disposition.

8.3.3/ É TUDE DE LA PERTE DU PARALL ÉLISME DE T ÂCHES

Le problème étudié ici est de trouver la plus petite période p pour laquelle le nombre
de registres requis µi, j sera inférieur ou égal au nombre de registres R effectivement
P
disponibles. On cherche si une solution existe avec p = MEP et on fait croı̂tre p si
nécessaire jusqu’à obtenir µi, j ≤ R. L’augmentation de la période p conduit à une perte
P
de parallélisme de tâches que nous analysons dans cette partie. Nous distinguons trois
cas :
— Cas 1 ( µi, j > R) : la demande de stockage est strictement supérieure au nombre
P
de registres disponibles quelque soit la période p (MEP ≤ p ≤ L ). On dit dans cas
là que le problème de stockage n’a pas de solution.
— Cas 2 ( µi, j ≤ R) : la demande de stockage est plus petite ou égale au nombre de
P
registres disponibles pour la période minimale (p = MEP).
8.3. RÉSULTATS EXPÉRIMENTAUX 75

— Cas 3 : La demande de stockage est plus grande que le nombre de registres


disponibles pour la période (p = MEP), mais il existe une période p0 (la plus petite
possible mais supérieure à p) pour laquelle la demande de stockage est plus petite
que le nombre de registres disponibles. Dans ce cas, nous exprimons la perte de
p0 −MEP
parallélisme par le pourcentage de déviation : MEP × 100%.
Comme exemple concret, prenons le nombre de registres dans le processeur VLIW
ST231 de STMicroelectronics. Le nombre de registres disponibles de type GR est égal
à 61, celui de type BR à 8. Les tableaux 8.7 et 8.8 indiquent le nombre de benchmarks
dans chaque famille qui se trouvent dans le cas 1 pour les registres de type BR ou GR. Le
nombre de cas sans solution est rare avec SIRALINA, ce qui signifie qu’une architecture
de processeur avec 61 registres GR et 8 registres BR semble être suffisante pour éviter
de recourir à la mémoire centrale. En effet, dans la plupart des cas, l’augmentation de la
période permet de n’utiliser que le nombre de registres à disposition.

Famille de benchmarks SIRALINA H1 H2 H3


LAO 2 5 11 24
MEDIABENCH 0 1 2 29
SPEC2000-CINT 0 0 0 4
SPEC2000-CFP 0 0 0 2
SPEC2006 0 0 0 25

TABLE 8.7 – Nombre de problèmes sans solution (8 registres de type BR disponibles)

Nous examinons plus en détails la perte de parallélisme dans le cas 3. Nous observons
une perte avec SIRALINA pour seulement 5 instances sur 6748 avec les registres de
type BR. (La perte de parallélisme est égale à 5.6%, 544%, 526%, 255%, 255%). Pour
ces cinq instances, les méthodes H1 et H2 fournissent un nombre de registres inférieur
au nombre disponible pour la période minimale. La perte de parallélisme avec SIRALINA
peut paraı̂tre énorme pour ces 5 instances, mais rappelons que les heuristiques H1 et
H2 s’avèrent efficaces pour traiter un nombre réduit de tâches de type BR. Pour les
registres de type GR, nous identifions seulement trois instances pour lesquelles une
perte de parallélisme est observée. Les résultats obtenus sur ces trois instances sont
détaillés dans le tableau 8.9. La perte de parallélisme est indiquée entre parenthèses.
Ce tableau montre que lorsque SIRALINA est capable de trouver une solution avec une
perte de parallélisme (cas 3), les autres méthodes ne fournissent pas de solution (cas 1).
Et mieux encore, pour la troisième instance, SIRALINA trouve une solution sans perte de
parallélisme (cas 2) alors que H1 conduit à une perte de parallélisme et les méthodes H2
et H3 ne donnent pas de solution (cas 1).

Famille de benchmarks SIRALINA H1 H2 H3


LAO 4 2 3 69
MEDIABENCH 0 0 3 34
SPEC2000-CINT 1 0 3 62
SPEC2000-CFP 0 0 0 8
SPEC2006 0 0 10 95

TABLE 8.8 – Nombre de problèmes sans solution (61 registres de type GR disponibles)
76 CHAPITRE 8. HEURISTIQUE SIRALINA

Nom de l’instance SIRALINA M1 M5 M3


LAO-polysyn Cas 3 (642%) Pas sol Pas sol Pas sol
MEDIABENCH-gsm-long-term Cas 3 (162%) Pas sol Pas sol Pas sol
MEDIABENCH-ghostscript Cas 2 Cas 3 (5.6%) Pas sol Pas sol

TABLE 8.9 – Perte de parallélisme (61 registres de type GR disponibles)

8.4/ C ONCLUSION

Le calcul d’une allocation optimale de stockage périodique est intraitable dans la pratique
(problème NP-complet). Nous avons proposé une heuristique en deux étapes nommée
SIRALINA. Une première étape calcule les variables de planification et permet de
calculer les distances de réutilisation potentielles si l’arc de réutilisation correspondant est
ajouté. Ensuite, une deuxième étape résout un problème d’affectation linéaire en utilisant
la méthode hongroise afin de sélectionner les arcs de réutilisation appropriés. Cette
heuristique améliore grandement notre capacité à résoudre le problème pour de grandes
instances. L’amélioration provient essentiellement du fait que SIRALINA commence par
calculer les valeurs minimales µ avant de fixer les arcs de réutilisation, tandis que les
méthodes précédentes procédaient dans le sens contraire.
SIRALINA a été mise en œuvre dans le compilateur industriel de STmicroelectronics
pour la génération et l’optimisation de code embarqué. Des expériences pratiques sur
des benchmarks de référence (SPEC2000, Mediabench, LAO, SPEC2006) montrent que
SIRALINA fournit des solutions satisfaisantes avec un temps de résolution rapide (moins
d’une seconde). Dans presque tous les cas, SIRALINA réussit à limiter le nombre de
registres utilisés par rapport au nombre de registres disponibles dans le processeur
embarqué ST231. Et ceci sans aucune perte de parallélisme, c’est à dire que la période
calculée dans presque tous les DDGs est égal à la période minimale p = MEP. Dans
certains cas critiques, SIRALINA conduit à une perte de parallélisme alors que les autres
méthodes ne fournissent pas de solution.
Voici quelques pistes de travail qui avaient été envisagées au cours de notre étude :
— Étudier la structure particulière des contraintes de modèle exact afin d’envisager
l’application d’une relaxation lagrangienne.
— Considérer des contraintes supplémentaires sur le graphe de réutilisation pour
tenir compte de la particularité de certains processeurs. (Par exemple, pour un
processeur à registres rotatifs, le circuit de réutilisation doit être hamiltonien)
8.4. CONCLUSION 77

Statistics on number of nodes |V| Statistics on number of arcs |E|

2000
500

1000
200

500
100

200
50

100
20

50
10

20
5

10
5

LAO MEDIABENCH SPEC2000CINT SPEC2000CFP SPEC2006 LAO MEDIABENCH SPEC2000CINT SPEC2000CFP SPEC2006

F IGURE 8.1 – Taille des DDG


78 CHAPITRE 8. HEURISTIQUE SIRALINA

Number of nodes |V_R| for type BR Number of nodes |V_R| for type GR

500
100

200
50

100
50
20
10

20
10
5

5
2

2
1

LAO MEDIABENCH SPEC2000CINT SPEC2000CFP SPEC2006 LAO MEDIABENCH SPEC2000CINT SPEC2000CFP SPEC2006

Number of arcs |E_R| for type BR Number of arcs |E_R| for type GR
1000
100

500
50

200
100
20

50
10

20
5

10
5
2
1

LAO MEDIABENCH SPEC2000CINT SPEC2000CFP SPEC2006 LAO MEDIABENCH SPEC2000CINT SPEC2000CFP SPEC2006

F IGURE 8.2 – |V R | et |E R | pour les registres de type BR et GR


9
H EURISTIQUE DE G ÉN ÉRATION
PARALL ÈLE D ’ ENSEMBLES COUVRANTS
DISJOINTS

9.1/ P R ÉALABLES

Dans cette étude, nous considérons un ensemble S de capteurs déployés dans une
zone d’intérêt et devant surveiller un ensemble T de cibles fixées. Nous utilisons les
notations proposées dans le chapitre 7. Nous supposons que les capteurs sont capables
de se localiser et de déterminer les cibles qu’ils sont en mesure de couvrir. Ainsi pour
chaque capteur j, l’ensemble des cibles couvertes par ce capteur est connue et notée
T ( j). Inversement, l’ensemble des capteurs couvrant une cible i est défini et noté S (i).
Un capteur s couvre une cible t, si la distance euclidienne d(t, s) est inférieure à R s , le
rayon de couverture du capteur. La figure 9.1 représente 4 capteurs s1 , s2 , s3 , s4 de même
rayon de couverture, et t1 , t2 , t3 sont les cibles couvertes par ces capteurs. T (1) = {t1 },
T (2) = {t2 }, T (3) = {t1 , t3 } et T (4) = {t2 , t3 }. De la même manière, nous avons : S (1) = {s1 , s3 },
S (2) = {s2 , s4 }, S (3) = {s3 , s4 }.

s2

s1
t2

t1 t3 s4

s3

F IGURE 9.1 – Capteurs et cibles

Nous supposons que les durées de vie initiales de chaque capteur sont identiques. On
entend par durée de vie d’un capteur la période de temps durant laquelle il peut rester
actif (jusqu’à épuisement de sa batterie). Pour augmenter la durée de vie du réseau,

79
80CHAPITRE 9. HEURISTIQUE DE GÉNÉRATION PARALLÈLE D’ENSEMBLES COUVRANTS

on répartit l’ensemble des capteurs dans des ensembles disjoints, appelés ensembles
couvrants, où chaque ensemble couvrant Ck est capable de surveiller l’ensemble des
cibles sous surveillance. Chaque ensemble couvrant (ensemble de capteurs) est activé
successivement tandis que les autres capteurs restent en sommeil. Les calculs pour le
groupement et l’activation des capteurs sont réalisés de manière centralisée par une
station de base qui diffuse l’information aux différents capteurs. Formellement, notre
problème consiste à trouver un nombre maximal K d’ensembles couvrants tels que :

Ck ⊆ S , ∀k = 1..K

Ck ∩ Cl = ∅, ∀k, l : 1 ≤ k, l ≤ K et k , l
et
∀i ∈ T, ∀k = 1..K, Ck ∩ S (i) , ∅
Pour notre application comportant |S | = n capteurs et |T | = m cibles à surveiller, le nombre
maximal d’ensembles couvrants disjoints pourrait être, dans le meilleur des cas, égal à :

K = min |S (i)|
i=1..m

car chaque ensemble couvrant doit surveiller toutes les cibles et qu’un capteur peut faire
partie d’un seul ensemble couvrant (rappels de la partie 7.3.1.2).

9.2/ M ÉTHODE DE R ÉSOLUTION

9.2.1/ P RINCIPES

L’algorithme 1 de construction des ensembles couvrants disjoints est donné en pseudo-


code dans la partie 9.4. Au début de l’algorithme, on considère un nombre K d’ensembles
couvrants notés Ck (pour k = 1..K). Chaque ensemble est initialement vide (ne contient
aucun capteur) et chaque itération de l’algorithme consiste à ajouter, parmi les capteurs
non encore affectés (ensemble S de capteurs disponibles), un capteur dans chaque
ensemble couvrant de manière à couvrir un maximum de cibles.
Pour ce faire, nous calculons à chaque itération et pour chaque cible i non encore
couverte dans tous les ensembles couvrants (T désigne l’ensemble des cibles non
encore couvertes par tous les ensembles couvrants) un taux de criticité R(i), que
nous définissons comme le rapport entre le nombre de capteurs non encore affectés
(disponibles) à un ensemble couvrant, capables de surveiller la cible i, et le nombre
d’ensembles couvrants ne réalisant pas encore la couverture de la cible i. Nous
désignons par NS (i) l’ensemble des capteurs non encore affectés et capables de
surveiller la cible i. Nous désignons par NC(i) l’ensemble des ensembles couvrants ne
réalisant pas la surveillance de la cible i.
|NS (i)|
R(i) = (9.1)
|NC(i)|

Nous choisissons parmi l’ensemble des cibles T non encore couvertes par tous les
ensembles couvrants, la cible la plus critique, c’est-à-dire avec le taux de criticité le plus
faible. En cas d’égalité de taux entre plusieurs cibles, le choix est fait aléatoirement. Une
fois la cible critique choisie, les capteurs capables de surveiller cette cible doivent être
9.2. MÉTHODE DE RÉSOLUTION 81

répartis dans chaque ensemble couvrant. Cette répartition peut être totalement aléatoire
ou faite de manière judicieuse pour faire diminuer à chaque itération le nombre de cibles
non encore couvertes par tous les ensembles couvrants.
Pour réaliser cette répartition des capteurs dans chaque ensemble couvrant, nous
associons un coût p jk d’affectation du capteur j à l’ensemble couvrant Ck et qui
représente le nombre supplémentaire de cibles que l’ensemble couvrant Ck pourra couvrir
si le capteur j lui est affecté. On désigne par T (Ck ) l’ensemble des cibles couvertes par
l’ensemble couvrant Ck . Ainsi T \ T (Ck ) représente l’ensemble des cibles non encore
couvertes par l’ensemble couvrant Ck . T ( j) correspond aux cibles couvertes par le
capteur j. Le nombre supplémentaire de cibles couvertes par l’ajout du capteur j dans
l’ensemble couvrant Ck est donc égal à |T ( j) \ T (Ck )|.
Nous sommes face à un problème classique d’affectation linéaire (voir l’annexe B)
qui consiste à placer exactement un capteur dans chaque ensemble couvrant de
telle manière à ce que le coût total d’affectation soit maximisé. Dans notre cas, le
nombre de capteurs à répartir peut être différent du nombre d’ensembles couvrants.
Si le nombre de capteurs est plus grand que le nombre d’ensembles couvrants, nous
créons artificiellement des ensembles couvrants supplémentaires avec des coûts nuls
d’affectation entre les capteurs et ces ensembles. Si inversement, le nombre de capteurs
à placer est inférieur au nombre d’ensembles couvrants, nous ajoutons des capteurs
fictifs avec des coûts d’affectation nuls. Au cours de la résolution, si nous rencontrons
cette dernière situation, cela signifie que certains ensembles couvrants ne permettront
pas de surveiller l’ensemble des cibles du domaine à surveiller. Nous dirons que ce sont
des ensembles couvrants incomplets.
La phase finale de l’algorithme consiste à comptabiliser le nombre total d’ensembles
couvrants permettant de couvrir l’ensemble des cibles. Parmi tous les ensembles
construits avec la procédure décrite précédemment, certains sont dits incomplets, ils ne
permettent pas de couvrir toutes les cibles. Un ensemble couvrant est dit incomplet si le
nombre de cibles qu’il couvre est inférieur à m (nombre total de cibles), autrement dit, si
|T (Ck )| , |T |. A la fin de l’algorithme, ils ne seront pas comptabilisés car ils ne vérifient
pas la contrainte que nous nous sommes fixée, garantissant que chaque ensemble
couvrant surveille toutes les cibles du domaine. Le nombre d’ensembles couvrants
disjoints obtenus avec notre heuristique est noté Kheur .

9.2.2/ E XEMPLE

Pour illustrer notre méthode, nous présentons un exemple simple avec seulement 20
capteurs et 10 cibles. Le tableau 9.1 donne la liste des capteurs surveillant chacune des
cibles. Ici le nombre maximal d’ensembles couvrants possibles est égal à K = 4. La cible
la plus critique est la cible 1 (en effet, R(1) = 44 = 1). Nous affectons chaque capteur j de
S (1) à chaque ensemble couvrant (k = 1..4) comme présenté dans le tableau 9.2.
82CHAPITRE 9. HEURISTIQUE DE GÉNÉRATION PARALLÈLE D’ENSEMBLES COUVRANTS

TABLE 9.1 – Ensemble des capteurs surveillant chaque cible

cible i Capteurs dans S (i)


t1 s1 , s3 , s4 , s5
t2 s6 , s8 , s13 , s14 , s20
t3 s2 , s5 , s9 , s10 , s12
t4 s1 , s6 , s7 , s8 , s13 , s15
t5 s4 , s17 , s18 , s19 , s20
t6 s2 , s5 , s11 , s14 , s16
t7 s8 , s9 , s10 , s17 , s18
t8 s6 , s7 , s10 , s14 , s20
t9 s1 , s2 , s3 , s4 , s5
t10 s2 , s4 , s8 , s12 , s14 , s17 , s19

TABLE 9.2 – Capteurs et cibles couvertes pour chaque ensemble couvrant après la
première itération

k Ck T (Ck )
1 s1 {t1 , t4 , t9 }
2 s3 {t1 , t9 }
3 s4 {t1 , t5 , t9 , t10 }
4 s5 {t1 , t3 , t6 , t9 }

Nous faisons une mise à jour des ensembles T ← T \ {t1 , t9 }, car les cibles t1 et t9 sont
couvertes par tous les ensembles. S ← S \{s1 , s3 , s4 , s5 }. Puis nous obtenons les nouveaux
ensembles NS (i) et NC(i) pour chaque cible i et le taux de criticité correspondant (voir
tableau 9.3).

TABLE 9.3 – Après la première itération : capteurs disponibles pour surveiller la cible i,
ensembles couvrants ne surveillant pas la cible i, taux de criticité R(i)

Cible NS (i) NC(i) R(i)


i∈T
t2 s6 , s8 , s13 , s14 , s20 {C1 , C2 , C3 , C4 } 5/4
t3 s2 , s9 , s10 , s12 {C1 , C2 , C3 } 4/3
t4 s6 , s7 , s8 , s13 , s15 {C2 , C3 , C4 } 5/3
t5 s17 , s18 , s19 , s20 {C1 , C2 , C4 } 4/3
t6 s2 , s11 , s14 , s16 {C1 , C2 , C3 } 4/3
t7 s8 , s9 , s10 , s17 , s18 {C1 , C2 , C3 , C4 } 5/4
t8 s6 , s7 , s10 , s14 , s20 {C1 , C2 , C3 , C4 } 5/4
t10 s2 , s8 , s12 , s14 , s17 , s19 {C1 , C2 , C4 } 6/3

Les cibles les plus critiques sont t2 , t7 et t8 d’après le tableau 9.3. Nous choisissons
aléatoirement la cible t7 . Nous devons répartir des capteurs de NS (7) = {s8 , s9 , s10 , s17 , s18 }
9.3. OBTENTION D’UNE SOLUTION OPTIMALE 83

dans chaque ensemble couvrant k de NC(7) = {C1 , C2 , C3 , C4 }.


Nous calculons p jk = |T ( j) \ T (Ck )}| pour chaque capteur j ∈ NS (7) et pour chaque
ensemble couvrant Ck ∈ NC(7). p jk représente le nombre supplémentaire de cibles
que l’ensemble couvrant Ck pourra surveiller si le capteur j lui est affecté. Les coûts
d’affectation linéaire sont résumés dans le tableau 9.4.

TABLE 9.4 – Matrice des coûts d’affectation

C1 C2 C3 C4
s8 3 4 3 4
s9 2 2 2 1
s10 3 3 3 2
s17 3 3 1 3
s18 1 1 1 1

Une solution optimale du problème d’affectation linéaire consiste à affecter les capteurs
s10 , s8 , s9 , s17 respectivement aux ensembles couvrants C1 , C2 , C3 , C4 . Remarquons qu’il
y a plusieurs solutions optimales possibles pour ce problème d’affectation. Une autre
solution est de placer s17 dans C1 , s10 dans C2 , s9 dans C3 , et s8 dans C4 . Nous faisons
une mise à jour des ensembles T ← T \ {t7 }, S ← S \ {s10 , s8 , s9 , s17 }. Puis nous
recommençons le processus avec les informations fournies dans les tableaux 9.5 et 9.6,
et ainsi de suite. A la fin de l’algorithme, nous avons traité l’ensemble des cibles et réparti
les capteurs dans les différents ensembles couvrants. Seuls les ensembles couvrants
complets (couvrant toutes les cibles) seront comptabilisés.

TABLE 9.5 – Capteurs et cibles couvertes dans chaque ensemble couvrant après 2
itérations

k Ck T (Ck )
1 {s1 , s10 } {t1 , t3 , t4 , t7 , t8 , t9 }
2 {s3 , s8 } {t1 , t2 , t4 , t7 , t9 , t10 }
3 {s4 , s9 } {t1 , t3 , t5 , t7 , t9 , t10 }
4 {s5 , s17 } {t1 , t3 , t5 , t6 , t7 , t9 , t10 }

9.3/ O BTENTION D ’ UNE SOLUTION OPTIMALE

Pour mesurer la qualité de la solution trouvée Kheur par notre heuristique, nous cherchons
une manière de construire un nombre optimal Kopt d’ensembles couvrants disjoints. Nous
savons que ce nombre est borné par K = min1..m |S (i)|. Nous savons également que le
nombre d’ensembles disjoints Kheur obtenus avec notre heuristique constitue une borne
inférieure.
84CHAPITRE 9. HEURISTIQUE DE GÉNÉRATION PARALLÈLE D’ENSEMBLES COUVRANTS

TABLE 9.6 – Après deux itérations : capteurs disponibles, ensembles couvrants ne


surveillant pas la cible, et taux de criticité

Cible NS (i) NC(i) R(i)


i∈T
t2 s6 , s13 , s14 , s20 {C1 , C3 , C4 } 4/3
t3 s2 , s12 {C2 } 2/1
t4 s6 , s7 , s13 , s15 {C3 , C4 } 4/2
t5 s18 , s19 , s20 {C1 , C2 } 3/2
t6 s2 , s11 , s14 , s16 {C1 , C2 , C3 } 4/3
t8 s6 , s7 , s14 , s20 {C2 , C3 , C4 } 4/3
t10 s2 , s12 , s14 , s19 {C1 } 4/1

Nous avons donc un encadrement de la valeur optimale :

Kheur ≤ Kopt ≤ K (9.2)

Pour trouver la valeur optimale Kopt , nous effectuons une recherche dichotomique entre
Kheur et K. A chaque étape de cette recherche dichotomique, nous vérifions s’il existe une
partition possible des capteurs en K 0 ensembles couvrants. Pour cela, nous résolvons le
problème 7.2 de satisfaction de contraintes formulé dans la partie 7.3.1.2 et redonné ici :

j∈S (i) xj,k ≥ 1, ∀i ∈ T, ∀k = 1..K


 P 0



 Pk=K
 0

 k=1 xj,k ≤ 1, ∀j ∈ S (9.3)

 x ∈ {0, 1}

j,k

Les variables de décision xj,k sont des variables binaires égales à 1 si le capteur j
appartient à l’ensemble couvrant Ck et égales à 0 dans le cas contraire. Le premier
type de contrainte j∈S (i) xj,k ≥ 1, ∀i ∈ T, ∀k = 1..K 0 garantit que chaque ensemble
P
couvrant surveille toutes les cibles. Le second groupe de contraintes indique que chaque
capteur est présent au maximum dans un seul ensemble couvrant. Si ce problème
n’a pas de solution réalisable pour une valeur K 0 donnée, nous devons recommencer
avec une valeur de K 0 inférieure. L’algorithme 2 fourni dans la partie 9.4 présente
la recherche dichotomique permettant de trouver la valeur optimale Kopt d’ensembles
couvrants disjoints pouvant être formés. A chaque itération de la recherche dichotomique,
on résout le problème 9.3 de satisfaction de contraintes. Nous avons intérêt à limiter le
nombre d’appels à la résolution d’un tel problème, car celle-ci s’avère très coûteuse en
temps de calcul. Plus la borne inférieure obtenue avec l’algorithme 1 sera bonne, plus
vite la solution optimale sera trouvée.

9.4/ A LGORITHMES DE R ÉSOLUTION

Cette partie donne les deux algorithmes qui permettent de générer le nombre optimal
d’ensembles couvrants disjoints. L’algorithme 1 construit heuristiquement en parallèle
des ensembles couvrants disjoints. Connaissant une borne inférieure et une borne
supérieure, l’algorithme 2 par recherche dichotomique et par résolution d’un problème
de satisfaction de contraintes fournit un nombre optimal d’ensembles couvrants.
9.5. RÉSULTATS EXPÉRIMENTAUX 85

9.5/ R ÉSULTATS EXP ÉRIMENTAUX

Dans cette partie, nous évaluons l’efficacité de nos algorithmes au moyen de simulations.
Nous simulons un réseau de capteurs et de cibles déployés sur une surface de 500m2 .
Nous supposons que le rayon de couverture des capteurs est égal à 150m. Dans les
différents scénarios, on fait varier le nombre de capteurs de 50 à 200 avec un incrément
de 50 et le nombre de cibles de 30 à 120 avec un incrément de 30. Les conditions
suivantes sont satisfaites : chaque capteur recouvre au moins une cible et chaque cible
est couverte par au moins un capteur. La connectivité du réseau est assurée et tous
les capteurs sont capables de communiquer avec la station de base. Pour un nombre
donné de capteurs et de cibles, nous générons 100 topologies différentes de réseau.
Nous avons réalisé nos calculs sur une station de travail Linux avec un processeur AMD
Athlon 64 X2 Dual Core 4000+ de 2.1 GHz.

9.5.1/ N OMBRE D ’ ENSEMBLES COUVRANTS DISJOINTS

Nous mesurons le nombre moyen d’ensembles couvrants Kheur et Kopt sur les 100
instances par scénario. Comme l’algorithme 1 intègre une part d’aléatoire (dans le
choix de cible critique en cas d’égalité), il est exécuté 50 fois pour chaque instance.
Le tableau 10.2 montre que notre algorithme est très efficace car il est capable de fournir
une solution approchée Kheur égale à la solution optimale dans la majorité des cas. Nous
avions également implémenté un algorithme de construction aléatoire des ensembles
couvrants [Deschinkel and Hakem, 2013] et celui-ci fournissait des résultats éloignés de
Kopt −Kr
plus de 38% de l’optimum ( où Kr est le nombre d’ensembles couvrants construits
Kopt
aléatoirement) pour un nombre de capteurs égal à 200 et un nombre de cibles égal à
120.

9.5.2/ C OMPARAISON DES TEMPS D ’ EX ÉCUTION

Nous comparons les temps CPU d’exécution des 3 méthodes (aléatoire, heuristique,
exacte). Le tableau 9.8 donne les moyennes de temps (en secondes) pour les 16
scénarios. La méthode dite ”exacte” consiste à effectuer une recherche dichotomique
entre Kmin and K et à résoudre le problème de satisfaction de contrainte à chaque
pas. Nous distinguons deux cas de figure pour le temps d’exécution de la méthode
exacte. Dans le premier cas, la recherche dichotomique commence en considérant le
nombre d’ensembles générés par notre heuristique (Kmin = Kheur ). Dans le second
cas, Kmin correspond au nombre obtenu par l’algorithme de génération aléatoire. Nous
observons que le temps de calcul augmente logiquement avec le nombre de capteurs
et de cibles. Notre algorithme 1 permet d’atteindre dans la plupart des cas le nombre
optimal d’ensembles couvrants si bien qu’il n’est pas nécessaire de recourir à d’autres
calculs (résolution du problème de satisfaction de contraintes), les temps d’exécution
sont tous quasi nuls pour la méthode exacte dans ce cas (voir colonne 5). En revanche,
ils peuvent dépasser 9 minutes quand la borne inférieure n’est pas bonne (voir colonne
6).
86CHAPITRE 9. HEURISTIQUE DE GÉNÉRATION PARALLÈLE D’ENSEMBLES COUVRANTS

TABLE 9.7 – Nombre d’ensembles couvrants disjoints obtenus : aléatoirement Kr ,


heuristiquement Kheur et à l’optimum Kopt

N M Kr Kheur Kopt
50 30 2.97 3.46 3.46
60 2.44 2.96 2.96
90 2.19 2.60 2.60
120 2.06 2.49 2.49
100 30 7.16 8.84 8.84
60 5.54 7.54 7.54
90 4.97 6.99 6.99
120 4.65 6.70 6.70
150 30 10.75 13.50 13.50
60 8.80 12.03 12.03
90 7.89 11.34 11.34
120 7.42 10.91 10.91
200 30 14.53 19.03 19.03
60 11.65 16.94 16.98
90 10.44 16.11 16.11
120 9.67 15.53 15.59

9.6/ C ONCLUSION

Nous nous sommes intéressés au problème de maximisation de la durée de vie d’un


réseau de capteurs. Nous avons proposé une heuristique centralisée qui construit
conjointement plusieurs ensembles couvrants disjoints. Notre algorithme inclut la
résolution d’un problème d’affectation linéaire dans le but de couvrir un maximum de
cibles dans chaque ensemble à chaque itération. Les simulations ont montré l’excellent
comportement de notre algorithme qui produit des solutions optimales dans la plupart
des scénarios avec une complexité en O(max(n, m)4 ). La qualité de la borne inférieure
obtenue permet de réduire significativement la recherche du nombre optimal d’ensembles
couvrants, car il faut très peu recourir à la résolution du problème de satisfaction de
contraintes.
9.6. CONCLUSION 87

TABLE 9.8 – Temps d’exécution (en secondes) pour les différentes méthodes

N M Aléatoire Heuristique Exacte Exacte


(Kmin = Kheur ) (Kmin = Kr )
50 30 0.010 0.023 0.000 0.026
60 0.019 0.031 0.000 0.053
90 0.026 0.037 0.000 0.058
120 0.036 0.046 0.000 0.030
100 30 0.026 0.145 0.000 1.445
60 0.056 0.176 0.000 2.443
90 0.086 0.205 0.000 3.540
120 0.118 0.227 0.000 4.070
150 30 0.041 0.503 0.000 17.478
60 0.100 0.653 0.000 25.733
90 0.160 0.698 0.000 42.646
120 0.222 0.768 0.000 58.182
200 30 0.063 1.270 0.000 123.600
60 0.150 1.660 16.190 251.467
90 0.250 1.730 0.000 345.877
120 0.352 1.936 83.26 543.568
88CHAPITRE 9. HEURISTIQUE DE GÉNÉRATION PARALLÈLE D’ENSEMBLES COUVRANTS

Algorithme 1 Algorithme de génération d’ensembles couvrants disjoints


Entrée: Un ensemble de cibles T et de capteurs S
Sortie: Des ensembles couvrants disjoints C1 , .., C Kheur
{INITIALISATION}
Pour tous ensemble couvrant k = 1..K faire
{Chaque ensemble couvrant est initialement vide}
Ck ← ∅
{ L’ensemble des cibles couvertes par chaque ensemble couvrant est vide}
T (Ck ) ← ∅
Fin Pour
{L’ensemble des capteurs disponibles contient tous les capteurs déployés dans la
zone}
S ←S
{L’ensemble des cibles non couvertes contient toutes les cibles de la zone}
T ←T
Pour tous cibles i = 1..m faire
{Tous les ensembles couvrants ne couvrent pas la cible i}
NC(i) ← {C1 , .., C K }
{Tous les capteurs couvrant i peuvent être affectés}
NS (i) ← S (i)
Fin Pour
{PHASE ITERATIVE}
{Tant qu’il existe une cible non encore couverte dans un des ensembles couvrants et
non encore ”traitée”, et qu’il reste des capteurs disponibles}
Tant que T , ∅ et S , ∅ faire
Pour tous cibles i ∈ T faire
|NS (i)|
Calculer R(i) = |NC(i)|
Fin Pour
{Choisir la cible la plus critique}
i∗ = mini∈T R(i)
Pour tous j ∈ NS (i∗ ) faire
Calculer p jk = |T ( j) \ T (Ck )}| pour chaque Ck ∈ NC(i∗ )
Fin Pour
Résoudre le problème d’affectation linéaire pour affecter un capteur j ∈ NS (i∗ ) dans
chaque ensemble couvrant k ∈ NC(i∗ ) avec les coûts p jk
Mettre à jour Ck , T (Ck ) ∀k = 1..K
Mettre à jour T , S
Mettre à jour NS (i), NC(i) ∀i ∈ T
Fin Tant que
{PHASE FINALE}
Kheur ← K
{Certains ensembles couvrants ne surveillent pas toutes les cibles. Il ne faut pas
comptabiliser ces ensembles couvrants ”incomplets”}
Pour tous ensemble couvrant Ck faire
Si |T (Ck )| , T | Alors
Kheur ← Kheur − 1
Fin Si
Fin Pour
9.6. CONCLUSION 89

Algorithme 2 Recherche dichotomique


Entrée: Un ensemble de cibles T , un ensemble de capteurs S
Sortie: Des ensembles couvrants C1 , C2 , ..., C Kopt
Kmin ← Kheur
Kopt ← Kmin
Tant que Kmin ! = Kmax faire
K ← d Kmin +K
2
max
e +1
Résoudre le problème (9.3 )
Si le problème (9.3 ) n’a pas de solution Alors
Kmax ← K − 1
Sinon
Kmin ← K
Kopt ← K
Solution y∗jk de (9.3 ) sauvegardée
Fin Si
Fin Tant que
Pour tous k = 1..Kopt faire
Ck ← ∪(s j /y∗jk =1) {s j }
Fin Pour
10
M ÉTHODE DE G ÉN ÉRATION DE
COLONNES POUR CONSTRUCTION
D ’ ENSEMBLES COUVRANTS NON
DISJOINTS

10.1/ D ESCRIPTION DU PROBL ÈME

10.1.1/ F ORMULATION

Le problème de surveillance de l’ensemble des cibles par des ensembles de capteurs


disjoints peut se formuler sous forme d’un programme linéaire. Les variables sont les
suivantes : tu est la durée d’activation de l’ensemble couvrant u, cela signifie que tous les
capteurs dans l’ensemble couvrant u seront activés durant une période de temps tu . On
note U l’ensemble des ensembles couvrants élémentaires. Le problème s’écrit ainsi :

 P


 max u∈U tu


 sous :
(10.1)

u∈U a ju tu ≤ E j , ∀ j ∈ S

 P


tu ∈ R +


La fonction objectif maximise la durée totale d’activation des ensembles couvrants.


Chaque contrainte impose une durée d’activation limitée pour chaque capteur. L’indice
binaire a ju vaut 1 si le capteur j appartient à l’ensemble couvrant u et 0 sinon. Un
ensemble couvrant élémentaire correspond à un ensemble de capteurs pour lesquels
toutes les cibles sont couvertes et la suppression de l’un ou l’autre de ces capteurs ne
permet plus de couvrir toutes les cibles. Le nombre d’ensembles couvrants élémentaires
croit rapidement avec la taille du problème (nombre de capteurs et de cibles).

10.1.2/ E XEMPLE

Pour illustrer notre problème, nous présentons un exemple simple avec seulement 10
capteurs et 4 cibles. Le tableau 10.1 donne la couverture des cibles par chaque capteur.
On se limite pour l’instant à deux ensembles couvrants C0 = {0, 3, 9} et C1 = {0, 4, 8}.

91
92CHAPITRE 10. GÉNÉRATION DE COLONNES POUR GÉNÉRATION D’ENSEMBLES COUVRANTS

Cible Capteurs
0 3,4,9
1 4,6,9
2 0,2
3 1,3,5,8

TABLE 10.1 – Couverture des cibles par les capteurs

Le programme linéaire qui correspond à cet exemple simple est :


max t0 + t1








 sous :
t0 + t1 ≤ 1.00 (capteur 0)






≤ 1.00 (capteur 3)


 t0
(10.2)

t 1 ≤ 1.00 (capteur 4)





t1 ≤ 1.00 (capteur 8)









 t 0 ≤ 1.00 (capteur 9)
 t0 , t1 ∈ R+

t0 et t1 sont respectivement les durées de vie des ensembles couvrants C0 et C1 . La


partie droite de chaque inégalité correspond à la durée de vie maximale de chaque
capteur, arbitrairement fixée à 1 (1 unité de temps) pour l’exemple. Dans cet exemple,
nous n’avons pas énumérer tous les ensembles couvrants. Nous résolvons le programme
linéaire avec seulement deux ensembles couvrants et la durée de vie du réseau obtenue
est égale à 1 avec t0∗ = 0.5 et t1∗ = 0.5. Cela signifie que les capteurs de l’ensemble
couvrant C0 sont activés durant 0.5 unités de temps et les capteurs de l’ensemble
couvrant C1 également. Les capteurs (1, 2, 5, 6, 7) n’apparaissent pas dans le PL car ils
ne font partie d’aucun ensemble couvrant généré. Seul le capteur 0 a consommé toute
son énergie. Si nous avions généré plus d’ensembles couvrants, nous aurions atteint une
durée de vie du réseau égale à 2. Par exemple, en ajoutant les ensembles couvrant C2 =
(2, 3, 4) et C3 = (1, 2, 9), la planification optimale est obtenue pour t0∗ = t1∗ = t2∗ = t3∗ = 0.5.

10.1.3/ M ÉTHODE DE G ÉN ÉRATION DE COLONNES

Comme l’ensemble U des ensembles couvrants élémentaires peut croı̂tre rapidement


avec le nombre de capteurs et de cibles, nous proposons d’utiliser une méthode de
génération de colonnes [Dantzig and Wolfe, 1960a] (voir Annexe A) pour résoudre (10.1).
Cela signifie que nous résolvons un problème maı̂tre restreint (PMR) avec seulement
un sous-ensemble U 0 ⊆ U d’ensembles élémentaires couvrants et nous enrichirons ce
sous-ensemble U 0 au fur et à mesure. Pour un sous-ensemble U 0 ⊆ U donné et les
multiplicateurs duaux π j ≡ π j (U 0 ) associés aux capteurs j, le problème auxiliaire (AUX)
consiste à chercher un ensemble couvrant u ∈ U \ U 0 avantageux (dit ”attractif”), c’est à
dire avec le coût réduit ru le plus grand.
X
ru = (1 − a ju π j )
j∈S

Si ru > 0 alors l’ensemble couvrant u est intéressant et il est ajouté à la formulation du


problème restreint, sinon le problème (10.1) est résolu à l’optimalité.
10.2. MÉTHODE DE RÉSOLUTION 93

Le problème auxiliaire revient à chercher un ensemble couvrant u qui maximise r = (1 −


j∈u π j ), ou qui minimise j∈u π j . Si cette somme est inférieure à 1, alors l’ensemble
P