Explorer les Livres électroniques
Catégories
Explorer les Livres audio
Catégories
Explorer les Magazines
Catégories
Explorer les Documents
Catégories
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
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
vii
viii SOMMAIRE
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
1
1
R ENSEIGNEMENT G ÉN ÉRAUX
1.2/ F ORMATION
3
4 CHAPITRE 1. RENSEIGNEMENT GÉNÉRAUX
J’ai choisi de débuter ce mémoire par une présentation des différentes étapes d’évolution
de mon activité de recherche.
5
6 CHAPITRE 2. ACTIVITÉS DE RECHERCHE
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.
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
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
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]).
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
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.
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
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.).
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.4/ P UBLICATIONS
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 É
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
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).
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.
4.1/ M OTIVATIONS
23
24 CHAPITRE 4. MOTIVATIONS ET ORGANISATION DU MÉMOIRE
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
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.
27
5
LE PROBL ÈME D ’ OPTIMISATION DE LA
DOSE EN 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
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.
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.
Nous expliquons comment est calculée une distribution de dose avant de décrire
comment elle peut être évaluée et optimisée.
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.
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] :
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
Ê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
à 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.
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.
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
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
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
F IGURE 5.2 – Les types de volumes cible possibles, et les dispositions de vecteurs
associées
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.
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.
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 .
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]).
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
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
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
6.3/ M OD ÉLISATION
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
(5,0)
(a) Example of a DDG with Generic Tasks (b) Loop Iterations and Instructions/Tasks Instances
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 )
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.
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
(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)
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
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.
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
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é :
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
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
51
52CHAPITRE 7. MAXIMISATION DE LA DURÉE DE VIE D’UN RÉSEAU DE CAPTEURS
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
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
Nous souhaitons obtenir le nombre maximal d’ensembles couvrants disjoints qu’il est
possible de construire. Ce nombre est majoré par :
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}
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
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}
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
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 +
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
√
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
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.
α 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.
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.
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)
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
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
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
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
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 :
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 :
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.
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
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
TABLE 8.1 – SIRALINA vs. autres Heuristiques (Registre de type BR) - % d’instances où
SIRALINA est strictement meilleure
TABLE 8.2 – SIRALINA vs. autres Heuristiques(Registre de type BR) - % d’instances où
SIRALINA produit le même résultat
TABLE 8.3 – SIRALINA vs. autres Heuristiques (Registres GR) - % d’instances où
SIRALINA est strictement meilleure
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.
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
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).
TABLE 8.8 – Nombre de problèmes sans solution (61 registres de type GR disponibles)
76 CHAPITRE 8. HEURISTIQUE SIRALINA
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
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
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
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
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.1/ P RINCIPES
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.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)
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
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 }
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
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 :
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.
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
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.
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.
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
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
TABLE 9.8 – Temps d’exécution (en secondes) pour les différentes méthodes
10.1.1/ F ORMULATION
P
max u∈U tu
sous :
(10.1)
u∈U a ju tu ≤ E j , ∀ j ∈ S
P
tu ∈ R +
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