Académique Documents
Professionnel Documents
Culture Documents
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
min j∈S π j y j
P
sous :
P (10.3)
j∈S (i) y j ≥ 1 ∀i ∈ T
y ∈ {0, 1}
∀j ∈ S
j
les capteurs superflus (qui peuvent être supprimés de l’ensemble tout en garantissant la
couverture complète des cibles).
L’algorithme 3 génère un ensemble couvrant, qui permet de couvrir toutes les cibles,
mais qui n’est pas nécessairement élémentaire. Certains capteurs peuvent être de trop
(il est possible de supprimer un capteur sans perdre en qualité de couverture). La
vérification de capteurs superflus est réalisée par l’algorithme 4. Cet algorithme sera
appliqué pour chaque ensemble couvrant généré quelque soit son mode de génération
(généré initialement ou généré avec une heuristique de recherche d’ensemble couvrant
attractif)
Une fois les ensembles couvrants élémentaires générés pour former un ensemble initial,
le processus de génération de colonnes consiste à introduire des nouveaux ensembles
couvrants (nouvelles colonnes) attractifs dans le problème PMR. Cette tâche est réalisée
par la résolution exacte du problème AUX (voir l’algorithme 5) ou en utilisant une
heuristique (algorithmes 6 ou 7). Nous avons développé deux heuristiques qui reposent
sur le même principe, celui de produire des ensembles couvrants en ajoutant des
capteurs les moins coûteux possibles (au sens des multiplicateurs duaux π j ) de manière
à ce que le coût réduit résultant soit le plus grand possible.
Dans l’heuristique 1, nous sélectionnons d’abord une cible puis nous choisissons un
capteur de coût minimal pour couvrir cette cible. Le processus est répété jusqu’à couvrir
toutes les cibles. L’algorithme 6 de complexité O(mn) correspond à celui de l’heuristique
1. Dans l’heuristique 2, le choix se fait d’abord sur le capteur de coût minimal. S’il y a
plusieurs capteurs de même coût, le choix est fait aléatoirement parmi eux. Puis nous
regardons les cibles couvertes par ce capteur et nous répétons le processus jusqu’à la
couverture de toutes les cibles. L’algorithme 7 correspond à cette deuxième heuristique.
Comme ces algorithmes intègrent une part d’aléatoire, ils doivent être appliqués plusieurs
10.3. RÉSULTATS EXPÉRIMENTAUX 95
fois (pas plus qu’un certain nombre d’itérations notées Nb Max Iterations) jusqu’à ce
qu’un ensemble couvrant au coût réduit positif soit trouvé. Notons que ces deux méthodes
de génération ne produisent pas nécessairement des ensembles couvrants élémentaires
et qu’il faut bien appliquer l’algorithme 4 pour éliminer les capteurs superflus.
Nous comparons la valeur optimale de durée de vie obtenue avec la méthode exacte E
avec celles obtenues par les deux heuristiques H1 et H2. Et nous concluons que H1 est
vraiment efficace car cette méthode fournit la valeur optimale dans tous les cas simulés
avec des temps de calcul réduit. H2 trouve la valeur optimale à l’exception de deux cas
sur les 160 et la différence est inférieure à 1%.
Nous avons utilisé les mêmes instances que celles utilisées dans la génération
d’ensembles couvrants disjoints du chapitre 9. Comme nous avons arbitrairement choisi
des durées de vie de capteur toutes égales à 1, nous pouvons comparer le nombre moyen
d’ensembles couvrants disjoints générés dans le chapitre 9 à la durée de vie moyenne
du réseau obtenue avec des ensembles couvrants non disjoints. Contrairement à ce qui
été suggéré par l’exemple dans [Cardei et al., 2005] et [Berman et al., 2004b] , l’usage
d’ensembles couvrants non disjoints n’accroı̂t pas systématiquement la durée de vie du
réseau. Sur l’ensemble des instances testées, nous obtenons qu’en moyenne, la durée
de vie du réseau est augmentée de 2, 5% avec des ensembles couvrants non disjoints.
Toutefois, pour certains scénarios (par exemple 100 capteurs, 60 cibles), la durée de vie
10.4. CONCLUSION 97
Le tableau 10.3 donne le nombre d’ensembles couvrants générés et nous constatons que
ce nombre est plus élevé avec les heuristiques. Nous pouvions nous attendre à un tel
résultat car la méthode exacte génère toujours, à chaque itération, l’ensemble couvrant
le plus attractif, si bien que la durée maximale est obtenue en moins d’itérations (moins
d’appels à la résolution du problème AUX). Néanmoins la méthode Heuristique (H1 ou
H2) reste très compétitive car elle produit une bonne solution en peu de temps. Et il peut
être parfois intéressant d’avoir un grand nombre d’ensembles couvrants de manière à ce
que les capteurs oscillent fréquemment entre période d’activité et d’inactivité comme cela
est suggéré dans [Slijepcevic and Potkonjak, 2001].
10.4/ C ONCLUSION
L’efficacité énergétique est cruciale dans un réseau de capteurs où la durée de vie de
la batterie est limitée. Nous avons étudié la possibilité de prolonger la vie du réseau en
organisant les capteurs dans des ensembles couvrants non-disjoints qui fonctionnent
successivement afin de surveiller toutes les cibles. Nous avons formulé ce problème
avec un programme linéaire où les variables sont les temps d’activation des ensembles
couvrants et nous avons proposé d’utiliser la technique de génération de colonnes pour
le résoudre. Au lieu de résoudre le problème auxiliaire à l’optimalité pour générer des
ensembles couvrants aux coût réduits positifs, nous avons conçu une heuristique efficace
(version H1). Les résultats des simulations montrent les performances de l’heuristique qui
obtient de très bonnes solutions très rapidement.
Notre approche par génération de colonnes a été reprise très récemment dans l’étude de
[Carrabs et al., 2015b] où les auteurs proposent de résoudre le problème AUX avec un
algorithme génétique. Ils utilisent nos jeux de données pour mesurer l’efficacité de leur
98CHAPITRE 10. GÉNÉRATION DE COLONNES POUR GÉNÉRATION D’ENSEMBLES COUVRANTS
méthode. Celle-ci est exécutée sur une machine différente de la nôtre et le solveur utilisé
est IBM ILOG CPLEX 12.5. Ce dernier offre des performances reconnues en PL et bien
supérieures à celles du solveur GLPK que nous avons utilisé. Il n’en reste pas moins que
les gains obtenus avec l’algorithme génétique sont significatifs.
10.4. CONCLUSION 99
Temps d’exécution
n m Durée de vie Heuristique 1 Heuristique 2 Mixte Exacte
50 30 3.8 0.30 0.35 0.12 0.25
60 3.0 0.53 0.73 0.52 1.03
90 2.8 0.82 1.42 1.55 2.95
120 2.7 1.20 2.14 4.03 8.40
100 30 8.7 2.97 3.6 1.03 3.29
60 7.2 4.25 5.56 8.41 26.53
90 6.9 6.82 10.48 74.19 243.95
120 6.7 9.70 15.3 220.64 749.46
150 30 14.7 14.51 17.40 4.94 17.17
60 12.3 22.21 28.29 48.96 315.66
90 11.8 30.61 45.16 525.21 2365.65
120 11.3 48.15 72.28 1987.04 9249.81
200 30 19.6 34.85 40.35 9.50 38.80
60 17.3 56.34 74.45 126.39 750.40
90 16.6 132.46 162.51 1297.82 8229.53
120 15.5 105.87 145.83 4393.04 28942.49
TABLE 10.2 – Durée de vie et Temps d’exécution (en secondes) entre les 3 versions
H1 H2 Mixte Exacte
Minimum 1.00 1.00 1.00 1.00
Premier quartile 15.00 17.75 16.00 10.00
Médiane 38.00 37.5 34.00 24.50
Troisième quartile 74.50 75 69.50 58.25
Maximum 131.00 135.00 124.00 130.00
101
11
P ROBL ÈME DE FLOT À CO ÛT MINIMUM
DANS SIRALINA
11.1/ P R ÉAMBULE
Considérons le problème d’ordonnancement (P) décrit par le système( 8.3). Pour écrire
le problème dual de (P), renommons les membres droits des inégalités :
Pour faciliter l’écriture du problème dual (voir Annexe A), nous supposons que les
variables σ ∈ Z. La variable σ correspond à une date. Son signe n’est pas important car
il suffit de décaler toutes les dates d’un facteur constant pour obtenir des dates positives.
Le problème d’ordonnancement s’écrit ainsi :
R 1 × σ Ki
P
min
Pi∈V
− j∈V R 1 × σ j
− j∈V\V R 0 × σ j
P
sous : (11.1)
σ j − σi ≥ a(e), ∀e = (T i , T j ) ∈ E
σKi − σ j ≥ b(e), ∀e = (T j , Ki ) ∈ E k
σ∈Z
103
104 CHAPITRE 11. PROBLÈME DE FLOT À COÛT MINIMUM DANS SIRALINA
On associe à chaque contrainte linéaire du problème primal, une variable duale f (e) ∈ N
pour e ∈ E ∪ E k . Pour chaque variable primale σ ∈ Z, on obtient une contrainte d’égalité
dans le problème dual. Les contraintes sont les suivantes 1 :
— Contraintes duales pour les variables primales σKi (T i ∈ V R ) :
X
∀T i ∈ V R , f (e) = 1
e∈E k
? −→ Ki
Dans cette partie, nous montrons que le problème dual correspond à un problème de
flot à coût minimum. Nous allons reprendre chacune des contraintes du problème dual et
montrer en quoi elle correspond à une contrainte de flot.
Cet ensemble de contraintes indique que le flot entrant au noeud Ki doit être égal à 1. La
figure 11.1(a) illustre ce fait. On ajoute des arcs fictifs entre Ki and T i ∈ V R de coût nul,
et de capacité minimale et maximale égale à 1 (voir figure 11.1(b)). Les arcs additionnels
(Ki , T i ) sont les uniques arcs sortant de chaque noeud Ki , on désigne par E f l’ensemble
de ces arcs. on peut maintenant écrire les équations de conservation de flot au noeud
Ki :
X X
∀T i ∈ V R , f (e) − f (e) = 0
e∈E k e∈E f
? −→ Ki Ki −→ ?
1. Pour ces contraintes, nous utilisons la notation ’ ?’ pour désigner un noeud arbitraire : par exemple
e
? → j désigne un arc e d’extrémité terminale j.
11.2. FORMULATION DU PROBLÈME DE FLOT À COÛT MINIMUM 105
Pour le noeud T j ∈ V R,nous savons que le flot entre K j and T j est égal à 1 (voir le
paragraphe précédent, figure 11.1(b)). Nous pouvons donc écrire la contrainte de flot de
cette manière :
X X
∀T j ∈ V R , f (e) − f (e) = 0
e∈E∪E f ∪E k e∈E∪E f ∪E k
? −→ j j −→ ?
Comme aucun arc de E f ∪ E k entre dans T j , et qu’aucun arc de E k ne quitte T j pour des
tâches T j ∈ V \ V R , nous pouvons réécrire la contrainte de conservation de flot au noeud
Tj : X X
∀T j ∈ V \ V R , f (e) − f (e) = 0
e∈E∪E f ∪E k e∈E∪E f ∪E k
? −→ j j −→ ?
Fonction objectif :
Puisque nous avons ajouté l’ensemble E f = {e = (Ki , T i )|T i ∈ V R } d’arcs fictifs, la fonction
objectif devient :
X X X
max a(e) × f (e) + b(e) × f (e) + 0 × f (e)
e∈E e∈E k e∈E f
106 CHAPITRE 11. PROBLÈME DE FLOT À COÛT MINIMUM DANS SIRALINA
Nous avons donc montré que le problème dual correspond à la formulation d’un problème
de flot à coût minimum (voir Annexe C). Le réseau concerné est le DDG auquel ont été
ajouté les noeuds ”tueur” Ki , les arcs entrant aux noeuds ”tueur” E k = {e = (T j , Ki )|T j ∈
Cons(T i )} et les arcs fictifs E f = {e = (Ki , T i )|T i ∈ V R }. On désigne par f (e) le flot entier
sur chaque arc e ∈ E ∪ E k ∪ E f . Les capacités minimales de tous les arcs sont fixées à
zéro en dehors des arcs de E f . Les capacités maximales sont non bornées sauf pour les
arcs de E f . Pour l’ensemble E f , les capacités minimales et maximales sont fixées à 1. Le
problème de flot à coût minimum peut être résolu par plusieurs algorithmes polynomiaux
[Ahuja and ans James B. Orlin, 1993]. Une fois la valeur optimale de flot trouvée, nous
pouvons en déduire les valeurs optimales des variables primales.
différentes [Ahuja and ans James B. Orlin, 1993], mais il n’est pas clairement établi
lequel d’entre eux est le plus efficace en pratique. Nous avons choisi l’algorithme de
”cost-scaling” de Goldberg et Tarjan [Goldberg and Tarjan, 1990] pour sa démonstration
expérimentale d’efficacité [Goldberg, 1992] (Il s’exécute en O(n3 log(n.C)), où n est la taille
du réseau et C le coût maximal) et sa facilité d’implémentation.
Nous avons comparé les temps d’exécution de l’heuristique SIRALINA dans les deux
cas de figure, l’un avec l’utilisation d’un solveur de programme linéaire, l’autre avec la
résolution par un algorithme de flot de coût minimum. Nous avons lancé 30 exécutions
pour chaque instance sur une même machine (pour 6748 instances) : ces 30 essais
sont recommandés par le test de Student [Jain, 1991] pour tenir compte de la variabilité
des temps de résolution d’une exécution à une autre pour la même instance. Sur
la base de ces 30 essais par instance, nous sommes en mesure d’affirmer avec un
niveau de confiance de 90% que le temps de résolution de SIRALINA en utilisant la
méthode simplexe est meilleur en moyenne que celui obtenu en mettant en oeuvre
l’algorithme de ”cost scaling” de recherche de flot à coût minimum. En moyenne,
nous avons constaté que dans le premiers cas, SIRALINA est 70% plus rapide. Ces
résultats étaient inattendus. Nous espérions obtenir une meilleure performance avec la
résolution du problème de flot de coût minimum par la méthode du ”cost scaling” (nous
avions essayé la méthode du ”mean cycle cancelling” [Goldberg and Tarjan, 1989] et les
résultats étaient bien pires). Il se peut que le choix de l’algorithme utilisé soit à l’origine
de ce résultat et que l’étude de comparaison pourrait être poursuivie en implémentant
d’autres algorithmes.
12
P ROBL ÈME DE COUVERTURE DE
CIBLES : UN PROBL ÈME DE FLOT ?
Dans un premier temps, nous allons présenter les différentes étapes de construction du
graphe. Puis nous détaillerons les différentes formulations d’optimisation du flot.
109
110CHAPITRE 12. PROBLÈME DE COUVERTURE DE CIBLES : UN PROBLÈME DE FLOT ?
sommet indice
S0 noeud source
S 0j j = 1..n
Skj k = 1..K, j = 1..n
T ki k = 1..K, i = 1..m
Xk k = 1..K
O noeud puits de sur-couverture
C noeud puits de couverture
au numéro de la copie. Par exemple, un sommet S j ∈ G̃, est copié K fois, et appelé
S 1 j , S 2 j , ..., S K j dans G1 , G2 , ..., G K .
Étape 3
Un flot f réalisable dans le graphe G = (V, E) précédemment construit, est défini comme
une fonction de E à valeur entière qui satisfait les contraintes suivantes :
— Contrainte de capacité : pour tous les arcs (u, v) ∈ E, 0 ≤ fuv ≤ cuv . Comparé au
problème de flot classique, il y a une condition supplémentaire : pour tout sommet
v, fuv ∈ {0, cuv }.
— Contrainte de conservation du flot : ∀v ∈ V \ {S 0 , O, C}, u:(u,v)∈E fuv − u:(v,u)∈E fvu = 0
P P
L’objectif est de maximiser le flot reçu au sommet C.
Les auteurs [Cardei and Du, 2005] ont démontré le théorème suivant : Soit un ensemble
S = {S 1 , S 2 , ..., S n } de n capteurs et un ensemble de m cibles T = {S 1 , S 2 , ..., T m }, le
problème MPL a K ∗ ensembles couvrants disjoints si et seulement si le flot maximal
réalisable reçu au point C du graphe G est égal à mK ∗ . Le problème de flot maximal
s’écrit comme un programme linéaire mixte en nombres entiers :
P
max k=1..K fXk C
sous :
(1) 0 ≤ fuv ≤ cuv ∀(u, v) ∈ E
(12.1)
u:(u,v)∈E fuv − u:(v,u)∈E fvu = 0 ∀v ∈ V; v , {S 0 , O, C}
P P
(2)
(3) fSkj Tki1 = fSkj Tki2 = ... = fSkj Tkij ∀ j ∈ S , k = 1..K, et T ( j) = T i1 , T i2 , ..., T i j
(4) fTk1 Xk = fTk2 Xk = ... = fTkm Xk k = 1..K
avec :
— fSkj Tkip ∈ N pour tout j ∈ S , k = 1..K et p tel que T i p ∈ T ( j)
— fTki Xk ∈ N pour tout k = 1..K et i ∈ T
— toutes les autres variables ∈ R
Les deux dernières contraintes (3) et (4) assurent que pour tout v , O, le flot fuv ∈
{0, cuv }. Remarquons également que dans chaque composante Gk , tous les flots fTkp Xk
ont obligatoirement la même valeur, soit 1 ou 0. Et par conséquent le flot fXk C a
obligatoirement la valeur m ou 0.
Les auteurs [Cardei and Du, 2005] proposent une heuristique pour construire le
nombre maximal d’ensembles couvrants. La première étape consiste à résoudre
le problème (12.1), le flot maximal calculé en C est égal à fC (cette valeur est
obligatoirement un multiple de m). Le nombre maximal d’ensembles couvrants sera égal
112CHAPITRE 12. PROBLÈME DE COUVERTURE DE CIBLES : UN PROBLÈME DE FLOT ?
fC
à ne = m . Il est aisé de déduire ensuite la composition de chaque ensemble couvrant. Ck
est un ensemble couvrant si et seulement si le flot sur l’arc Xk C n’est pas nul. Le capteur
j appartient à l’ensemble couvrant Ck si et seulement si le flot sur l’arc S 0 j S k j n’est pas
nul.
Nous rappelons qu’il est possible d’obtenir le nombre optimal d’ensembles couvrants
disjoints par la résolution du programme linéaire en nombre entiers (7.3) présenté dans
la partie 7.3.1 et redonné ici :
max k=K
P
k=1 zk
sous :
j∈S (i) xj,k ≥ zk , ∀i ∈ T, ∀k ∈ K
P
(12.2)
Pk=K
k=1 xj,k ≤ 1, ∀j ∈ S
xj,k ∈ {0, 1}
zk ∈ {0, 1}
Le modèle proposé par [Pedraza et al., 2006] permet d’étendre la durée de vie du réseau
en divisant l’ensemble des capteurs en un nombre maximal d’ensembles couvrants
tels que chaque nouvel ensemble couvrant Ck+1 couvre le plus de cibles possibles,
mais jamais plus que l’ensemble précédent Ck . Pour atteindre cet objectif, les auteurs
proposent une formulation sous forme de programme linéaire en nombre entier. Ce
modèle (7.4) déjà décrit dans la partie 7.3.1.2 est présenté à nouveau :
12.4. FLOT À COÛT MINIMUM 113
Soit un graphe H = (V 0 , E 0 ) avec des capacités c(u, v) et des coûts unitaires de transport
puv pour les arcs (u, v) ∈ E 0 . La production en un sommet source v est égale à dv et la
demande en un sommet puits v est égale à dv . La formulation générale d’un problème de
flot de coût minimum est donnée par :
P
min (u,v)∈E 0 puv fuv
sous :
∀(u, v) ∈ E 0
0 ≤ f ≤ cuv
P uv
(12.4)
=0 ∀v ∈ V 0 ; v n’est pas une source, ni un puits
P
0 f − 0 f
Pu:(u,v)∈E uv Pu:(v,u)∈E vu
= −dv
f − f v est une source
0 0
Pu:(u,v)∈E uv Pu:(v,u)∈E vu
u:(u,v)∈E 0 fuv − u:(v,u)∈E 0 fvu = dv
v est un puits
Dans le graphe G, le flot sur l’arc T ki Xk , égal à 0 ou 1, indique si la cible T i est couverte
ou non dans l’ensemble couvrant Ck . Il peut donc être mis en relation avec la variable de
sous-couverture, nous avons fTki Xk = (1−ui,k ). De la même manière le flot fTki O représente
le nombre de capteurs moins un qui couvrent la cible T i . Nous pouvons donc l’associer à
la variable oi,k du programme linéaire (12.3) : fTki O = oi,k . Le nombre de capteurs couvrant
P
la cible i dans l’ensemble Ck est égal à j∈S (i) xj,k pour le modèle 12.3. Dans le modèle
de flot, cette quantité correspond à la somme des flots entrant au sommet T ki et s’écrit
P
(S k j ,T ki ) fSkj Tki pour chaque ensemble couvrant C k .
La contrainte de conservation de flot au noeud T ki s’écrit :
X
Tki O − fTki Xk = 0
f − f
S T
kj ki
(S k j ,T ki )
D’après ce qui a été écrit précédemment, cette contrainte peut aussi s’écrire :
X
xj,k − (1 − ui,k ) − oi,k = 0
j∈S (i)
114CHAPITRE 12. PROBLÈME DE COUVERTURE DE CIBLES : UN PROBLÈME DE FLOT ?
Autrement dit : X
xj,k − oi,k + ui,k = 1
j∈S (i)
Nous pouvons réécrire cette fonction objectif en remplaçant fTki Xk par (1 − ui,k ) et fTki O par
oi,k . Nous obtenons :
X X
−wu,i,k (1 − ui,k ) + wo,i,k oi,k
(T ki ,Xk )∈E (T ki ,O)∈E
X X X
= (−wu,i,k ) + wu,i,k ui,k + wo,i,k oi,k
(T ki ,Xk )∈E (T ki ,Xk )∈E (T ki ,O)∈E
XX XX XX
= (−wu,i,k ) + wu,i,k ui,k + wo,i,k oi,k
k∈K i∈T k∈K i∈T k∈K i∈T
La somme w =
P P
k∈K i∈T (−wu,i,k ) est un terme constant. L’objectif à minimiser est :
XX
(wo,i,k oi,k + wu,i,k ui,k ) + w
k∈K i∈T
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 10 à 200 et le nombre
de cibles de 10 à 120. Pour un nombre donné de capteurs et de cibles (un type de
scénario), nous générons 20 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 et nous utilisons le solveur GLPK (GNU linear Programming
Kit) ([Mahkorin, 2010]) pour la résolution de tous les programmes linéaires.
12.5.1/ C OMPARAISON DU MOD ÈLE DE FLOT MAXIMAL AVEC NOTRE MOD ÈLE
Ces résultats étaient attendus. En effet, les deux modèles sont des modèles IP et le
nombre de variables et de contraintes du modèle (12.1) est bien supérieur à celui du
modèle (12.2). Une analyse rapide montre que ce dernier contient nv = K + KS 1 variables
et nc = KT + S contraintes. Comparativement, le graphe associé au problème de flot
maximal (12.1) comporte un nombre d’arêtes E égal à S + K + K ×[ j∈S T ( j)+2T +1] > nv +
P
K(2T +1) et un nombre de sommets V égal à S +KS +KT +K+3 > nc +K(S +1)+3. Le nombre
de variables et de contraintes du problème de flot maximal auquel on ajouté plusieurs
autres contraintes (contraintes (3) et (4) du modèle (12.1)) est supérieur respectivement
à E (nombre de variables) et 2E + V (nombre de contraintes).
1. Pour simplifier les notations, on utilise la notation simplifiée A à la place de |A| pour désigner le cardinal
d’un ensemble A
116CHAPITRE 12. PROBLÈME DE COUVERTURE DE CIBLES : UN PROBLÈME DE FLOT ?
n m Rapport
de temps R
50 30 17.00
60 20.26
90 34.92
120 39.77
100 30 11.12
60 17.86
90 20.80
120 24.13
150 30 7.54
60 10.03
90 10.97
120 8.37
200 30 6.09
60 7.47
90 3.58
120 9.45
TABLE 12.4 – Rapport des temps de résolution entre les deux modèles
Nos résultats montrent que la durée de vie du réseau peut être largement amélioré en
12.6. CONCLUSION 117
acceptant une dégradation très faible de la couverture. En effet, le fait de tolérer une
couverture partielle où seulement 95% des cibles seraient couvertes, permettrait de
générer entre 5% et 25% d’ensembles couvrants supplémentaires. Pour une dégradation
de 10% de la couverture, on peut espérer prolonger la durée de vie du réseau de plus
de 50% (par exemple, pour les instances avec 50 capteurs et 60 cibles). Étrangement,
les résultats obtenus (pourcentages Pγ ) ne présentent pas de régularité par rapport
au nombre de capteurs ou de cibles. Une analyse plus fine serait donc nécessaire. En
particulier, nous pouvons nous interroger sur la pertinence des valeurs des poids wu,i,k et
wo,i,k qui ont été choisies selon la formule proposée dans [Pedraza et al., 2006].
Nous observons que les ensembles couvrants complets générés avec notre modèle de
flot à coût minimum contiennent moins de capteurs que ceux générés avec le modèle
de flot maximal, entre 1 à 13% en moins selon les instances. Encore une fois, nous ne
remarquons pas de corrélation entre le nombre de capteurs et de cibles et les valeurs du
rapport NS .
12.6/ C ONCLUSION
Nos expérimentations montrent que notre modèle IP (12.2) pour générer des ensembles
couvrants complets est plus efficace que le modèle de flot maximal proposé par
[Cardei and Du, 2005] car il est possible d’obtenir de manière beaucoup plus rapide
(entre 3 et 40 fois) les mêmes résultats.
Nous avons mis en évidence que le problème de minimisation simultanée de la
sous et sur-couverture proposé par [Pedraza et al., 2006] peut s’interpréter comme
un problème de flot à coût minimum dans un graphe semblable à celui utilisé par
[Cardei and Du, 2005]. Cette formulation est intéressante. D’une part, elle permet de
générer autant d’ensembles couvrants complets qu’avec les modèles (12.1) et (12.2).
D’autre part, les ensembles couvrants complets générés comportent généralement
moins de capteurs qu’avec les modèles (12.1) et (12.2), ce qui permet la construction
d’ensembles couvrants supplémentaires, certes incomplets, mais assurant tout de même
une couverture partielle admissible pour certaines applications, et allongeant du même
fait la durée de vie du réseau. Néanmoins, les temps prohibitifs de résolution exacte des
modèles IP proposés dans ce chapitre ne permettent pas de traiter des instances de
grande taille.
118CHAPITRE 12. PROBLÈME DE COUVERTURE DE CIBLES : UN PROBLÈME DE FLOT ?
n m Rapport NS
10 30 -3.05
60 -7.56
90 -9.09
120 -13.04
20 30 -6.16
60 -12.90
90 -6.96
120 -7.53
30 30 -7.07
60 -3.61
90 –2.83
120 -2.94
40 30 -9.02
60 -2.05
90 -6.05
120 -6.13
50 30 -5.16
60 -2.73
90 -3.39
120 -1.42
60 30 -2.67
60 -2.65
90 -2.71
120 -1.21
TABLE 12.6 – Rapport NS du nombre moyen de capteurs par ensemble couvrant complet
IV
C ONCLUSION ET P ERSPECTIVES
121
13
C ONCLUSION ET P ERSPECTIVES
123
124 CHAPITRE 13. CONCLUSION ET PERSPECTIVES
variables binaires indiquant une réutilisation ou non de registres entre deux tâches (non
nécessairement distinctes), et les distances de réutilisation (chapitre 6).
Ce problème étant NP-complet, une résolution exacte s’avère trop coûteuse en pratique.
Ici, nous avons exploité le fait que le modèle 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 appelée SIRALINA
(chapitre 8). Cette heuristique, en deux phases, nécessite dans un premier temps la
résolution d’un programme linéaire en nombre entier avec une matrice des contraintes
totalement unimodulaire, puis la résolution d’un problème d’affectation linéaire. Nous
avons montré dans le chapitre 11 que le problème dual du problème d’ordonnancement
correspond à un problème de flot de coût minimum.
Nous avons testé SIRALINA sur un ensemble de benchmarks, issus de la communauté
d’optimisation de codes, et correspondants à des codes de calcul haute performance
pour l’embarqué. Nos expériences montrent que SIRALINA produit des solutions très
satisfaisantes en très peu de temps. Par conséquent, cette méthode a été incluse dans
un compilateur pour l’embarqué chez STMicroelectronics.
Le problème de maximisation de la durée de vie d’un réseau de capteurs
Parmi les nombreux problèmes d’optimisation (localisation, couverture, minimisation
consommation d’énergie,...) soulevés dans le déploiement et l’utilisation des réseaux de
capteurs, nous nous sommes intéressés au problème de maximisation de la durée de
vie (chapitre 7). Nous avons réalisé une synthèse des modèles (centralisés) permettant
de prolonger la durée de vie du réseau tout en maintenant la couverture complète des
cibles ou de la zone à surveiller. Nous avons proposé plusieurs nouveaux modèles de
programmation linéaire :
— Modèle (7.3) pour la génération d’un nombre maximal d’ensembles couvrants
disjoints
— Modèle (7.5) pour la génération d’un nombre maximal d’ensembles couvrants non
disjoints
— Modèle (7.13) pour la génération d’un ensemble couvrant un maximum de points
primaires (représentatifs de la zone à couvrir) et minimisant la sur-couverture.
— Modèle (7.15) pour la couverture du périmètre de chaque capteur induisant une
couverture de la zone d’intérêt.
En parallèle de ces travaux, nous avons proposé deux heuristiques de résolution pour
la génération d’ensembles couvrants disjoints (chapitre 9) et non disjoints (chapitre 10).
La première heuristique fait appel à la résolution d’un problème d’affectation linéaire. La
seconde utilise la technique de génération de colonnes.
Dans la dernier partie de ce mémoire (chapitre 12), nous avons étudié de quelle manière
le problème de génération d’ensembles couvrants disjoints pouvait se transformer en
un problème de flot en nous inspirant d’une étude de référence sur ce sujet. Nous
avons montré que la minimisation simultanée de sous et sur-couverture pouvait se
modéliser sous forme d’un problème de flot de coût minimum (modèle 12.5). Du point
de vue théorique, cette nouvelle modélisation est prometteuse, elle est plus riche dans la
mesure où elle permet de construire autant d’ensembles couvrants complets que dans
l’approche de référence tout en utilisant généralement moins de capteurs. D’un point
de vue pratique, cette nouvelle modélisation autorise la construction d’ensembles de
couverture partielle, ce qui peut être utile pour certaines applications de réseaux de
capteurs.
13.2. PERSPECTIVES 125
13.2/ P ERSPECTIVES
— Nous avons l’intention de simuler toutes nos méthodes sur une plate-forme de
simulation du type OMNET++ pour valider leurs performances sur différentes
configurations de réseaux de capteurs.
127
128 ANNEXE A. RAPPELS DE PROGRAMMATION LINÉAIRE
Cette forme générale peut être simplifiée, dans une forme dite ”canonique”. De manière
évidente, il est toujours possible de ramener :
— l’optimisation à un minimisation,
— toutes les égalités à 2 inégalités (en dédoublant la contrainte d’égalité),
— toutes les inégalités à des inégalités de même type,
— toutes les variables à être non négatives.
En notation vectorielle, la forme canonique est donc :
z = cx
Min
sous :
(A.2)
Ax ≥ d
x ≥ 0
où x = (x1 , ..., xn ) ∈ Rn est un vecteur colonne des variables, A est la matrice (m × n) des
contraintes de cœfficient (ai j ) et d le vecteur colonne du second membre.
De nombreux problèmes réels peuvent être exprimés comme des programmes linéaires.
Les programmes linéaires peuvent être résolus efficacement par certains algorithmes
(par exemple, , algorithme de points intérieurs, ). Il a été montré que l’algorithme du
Simplexe [Dantzig, 1963] pouvait prendre un temps de calcul exponentiel. Néanmoins, il
reste très efficace en pratique et il est implémenté dans tous les solveurs d’optimisation
linéaire. Les algorithmes de points intérieurs ( [Karmarkar, 1984], [Ye, 1991]) plus récents
permettent de résoudre les problèmes en un temps polynomial.
Dans certains problèmes, on requiert en plus que les variables ne prennent que des
valeurs entières (contraintes dites d’intégrité), voire que les valeurs 0 ou 1. On parle alors
de programme linéaire en nombres entiers. Ces derniers problèmes sont beaucoup plus
difficiles à résoudre que les problèmes d’optimisation linéaire à variables continues, à
l’exception de certains problèmes dits classiques (par exemple, problème d’affectation
linéaire, problème de transport,...).
On dit que x ∈ Rn est une solution réalisable du problème (A.2) si x satisfait aux
contraintes, autrement dit si Ax ≥ d. L’ensemble P de toutes les solutions réalisables
d’un problème d’optimisation est appelé son ensemble réalisable. On dit que x ∈ Rn
est une solution optimale du problème (A.2) si x est une solution réalisable du problème
(A.2), et si de plus, quelle que soit la solution réalisable y ∈ Rn du problème A.2, on
a nécessairement cx ≤ cy. Autrement dit, une solution réalisable est optimale si elle
minimise la fonction objectif sur l’ensemble réalisable.
La dualité associe à toute problème linéaire un autre problème linéaire qui est appelé
problème dual du problème initial ; par opposition le problème initial est appelé problème
primal. Reprenons tout d’abord un problème linéaire sous la forme générale :
P j=n
min z = j=1 c j x j
sous :
P j=n
i = 1, .., p
j=1 ai j x j ≥ di
(A.3)
P j=n
j=1 ai j x j = di i = p + 1, .., m
j = 1, .., q
xj ≥ 0
x j de signe quelconque j = q + 1, .., n
A.3. MÉTHODE DE GÉNÉRATION DE COLONNES 129
max z = i=m
P
i=1 di yi
sous :
i = 1, .., p
yi ≥ 0
(A.4)
yi de signe quelconque i = p + 1, .., m
j = 1, .., q
Pi=m
i=1 ai j yi ≤ c j
i=1 ai j yi = c j j = q + 1, .., n
Pi=m
Les variables x j (yi ) sont appelées variables primales (duales). Cette définition est
caractérisée par les règles suivantes :
— à toute contrainte primale correspond une variable duale : si la contrainte est
une inégalité, la variable duale est soumise à condition de non-négativité ; si la
contrainte est une égalité, la variables duale est de signe quelconque ;
— à toute variable primale correspond une contrainte duale : si la variable est
soumise à une condition de non-négativité, la contrainte duale est une inégalité ;
si la variable est de signe quelconque, la contrainte duale est une égalité ;
— les cœfficient de la fonction objectif du primal deviennent les seconds
membres des contraintes duales ; les seconds membres des contraintes primales
deviennent les coefficients de la fonction objectif du dual ;
— le cœfficient de la variable x j dans la contrainte i devient, dans le dual, le cœfficient
de la variable yi dans la contrainte j.
A chaque programme linéaire (primal) à minimiser, on associe un programme linéaire
(dual) à maximiser. Le dual permet de définir une bonne borne inférieure de la
fonction objectif du problème primal. Les valeurs des fonctions objectif du primal
et du dual coı̈ncident à l’optimum sous certaines conditions. D’autres propriétés et
théorèmes [Vazirani, 2006] liés à la dualité ne sont pas présentés ici.
z = cx
Min
sous :
(A.5)
Ax ≥ d
x ≥ 0
Étape 0
Choisir un petit nombre de variables pour constituer le programme linéaire de départ. Soit
J cet ensemble.
Étape 1
— Résoudre le programme linéaire restreint (appelé aussi Problème Maı̂tre restreint
(PMR)) aux variables de l’ensemble J. Remarque : on utilise la notation vectorielle
x(J) pour désigner le vecteur colonne des variables restreint à l’ensemble J.
— Obtenir une solution optimale x(J)∗ du problème PMR telle que :
n o
∗
c(J) x(J) = Min c(J) x(J) sous A(J) x(J) ≥ d, x(J) ≥ 0, x(J) ∈ R(J)
Étape 2
Déterminer les valeurs des variables duales y∗ ∈ Rm associées au (PMR)
Étape 3
Rechercher de nouvelles variables au coût réduit négatif (problème auxiliaire (AUX)). Le
coût réduit c j d’une variable x j (x j < J) est donné par c j = c j − i=m ∗
P
i=1 ai j yi .
B.1/ D ÉFINITION
P P
min i=1..n j=1..n ci j xi j
sous :
x =1 ∀i = 1..n
P
(B.1)
P j=1..n i j
= ∀ j = 1..n
x
i=1..n i j 1
xi j ∈ {0, 1}
Le premier groupe de contraintes indique qu’un agent ne peut réaliser qu’une et une
seule tâche. Le deuxième groupe de contraintes garantit qu’une tâche est réalisée par un
et un seul agent.
L’algorithme hongrois ou méthode hongroise (parfois appelé aussi algorithme de
Kuhn-Munkres) est un algorithme d’optimisation combinatoire, qui résout le problème
d’affectation linéaire en temps polynomial. Il a été proposé en 1955 par le mathématicien
américain Harold Kuhn, qui l’a baptisé méthode hongroise parce qu’il s’appuyait
sur des travaux antérieurs de deux mathématiciens hongrois. James Munkres a revu
l’algorithme en 1957 [Munkres, 1957] et a prouvé qu’il s’exécutait en temps polynomial
0(n4 ). Une amélioration proposée par Edmonds et Karp [Edmonds and Karp, 1972], (et
Tomizawa [Tomizawa, 1971] indépendamment) permet de réduire le temps d’exécution
à 0(n3 ). La méthode hongroise consiste à réaliser des opérations sur les lignes et les
colonnes de la matrice pour faire apparaı̂tre des zéros dits indépendants (c’est-à-dire un
zéro sélectionné par ligne et par colonne dans la matrice des coûts).
131
132 ANNEXE B. PROBLÈME D’AFFECTATION LINÉAIRE
1. Soustraire ligne par ligne, puis colonne par colonne (ou l’inverse) le plus petit
élément de la ligne ou de la colonne.
Phase 2 : Recherche d’une solution de coût nul
B.3/ E XEMPLE
Phase 1
15 40 5 20 20
22 33 9 16 20
40 6 28 0 26
8 0 7 25 60
10 10 60 15 5
−8 0 −5 0 −5
7 40 0 20 15 0
14 33 4 16 15 −4
32 6 23 0 21 0
0 0 2 25 55 0
2 10 55 15 0 0
Phase 2
7 40 0 20 15
10 29 0 12 11
32 6 23 0 21
0 0 2 25 55
2 10 55 15 0
Phase 3, étape 1
∗(b)
7 40 0 20 15 ∗(a)
10 29 0 12 11 ∗(c)
32 6 23 0 21
0 0 2 25 55
2 10 55 15 0
Phase 3, étape 2
∗(b)
7 40 0 20 15 ∗(a)
10 29 0 12 11 ∗(c)
32 6 23 0 21
0 0 2 25 55
2 10 55 15 0
134 ANNEXE B. PROBLÈME D’AFFECTATION LINÉAIRE
Phase 3, étape 3
∗(b)
7 40 0 20 15 ∗(a)
10 29 0 12 11 ∗(c)
32 6 23 0 21 +7
0 0 2 25 55 +7
2 10 55 15 0 +7
−7 −7 0 −7 −7
Fin
0 33 0 13 8
3 22 0 5 4
32 6 30 0 21
0 0 9 25 55
2 10 62 15 0
L’affectation résultante donne les couples (1,1), (2,3),(3,4),(4,2) et (5,5) et un coût total
d’affectation égal à 8+5+5+4-7-7-7+7+7+7+7=29.
C
R APPELS DE TH ÉORIE DES GRAPHES
On appelle ordre d’un graphe le nombre de sommets de ce graphe, noté aussi |V|
(cardinal de l’ensemble V). La taille du graphe est le nombre d’arêtes du graphe, noté
aussi |E|. Lorsque plusieurs arêtes relient deux sommets, on les appelle des arêtes
multiples. Une boucle est une arête dont les deux extrémités sont identiques. Un graphe
est simple s’il ne contient ni boucle ni arêtes multiples. Un multigraphe ou graphe
multiple est un graphe qui n’est pas simple.
Les graphes sont souvent utilisés pour modéliser des problèmes associés à des parcours
ou à des successions d’actions. Pour cela, les notions de chemin, et de chaı̂ne sont
introduites.
On appelle chemin d’origine x et d’extrémité y une séquence d’arcs telle que :
— le premier arc a pour origine x,
135
136 ANNEXE C. RAPPELS DE THÉORIE DES GRAPHES
— l’origine de tous les autres coı̈ncide avec l’extrémité de l’arc qui la précède dans la
séquence,
— le dernier arc a pour extrémité y.
Par exemple, dans la figure C.1, la séquence ((1, 2); (2, 3); (3, 4)) est un chemin d’origine
1 et d’extrémité 4. Un circuit est un chemin dont le nœud initial et le nœud terminal
coı̈ncident. Si on ne tient pas compte de l’orientation des arcs, on parle de cycle. Un
circuit est élémentaire s’il ne passe pas deux fois par le même sommet.
On appelle chaı̂ne reliant x à y une séquence d’arcs telle que :
— le premier arc est adjacent à x par une de ses extrémités, et au deuxième arc de
la séquence par son autre extrémité,
— le dernier arc est adjacent à y par une de ses extrémités, et à l’avant-dernier arc
de la séquence par son autre extrémité,
— chaque arc intermédiaire est adjacent au précédent par une de ses extrémités et
au suivant par l’autre.
Par exemple, dans la figure C.1, la séquence ((3, 4); (1, 4); (2, 1)) est une chaı̂ne liant 3 au
sommet 2 (on ne tient pas compte de l’orientation des arcs).
Soit < = (G = (V, E), s, t, c) un réseau. Un flot f dans < est une application f : E → N. Un
flot f est réalisable dans < si les contraintes (inégalités) suivantes sont satisfaites :
— contraintes de capacité
La définition de flot réalisable exige que les contraintes de conservation de flot soient
vérifiées en chaque sommet j ∈ V \ {s, t}.
En additionnant ces contraintes pour tous les j ∈ J ⊆ V \ {s, t}, on voit clairement que le
flot est conservé dans tous les ensembles J ⊆ V \ {s, t} :
(quantité qui entre dans J = quantité qui sort de J)
Cette propriété est vraie pour J = V \ {s, t}.
X X X X
f (s, j) + f (t, j) = f ( j, s) + f ( j, t)
j|(s, j)∈E j|(t, j)∈E j|( j,s)∈E j|( j,t)∈E
C.3.1/ D ÉFINITION
Soit un réseau < = (G = (V, E), s, t, c). Le problème du flot maximum consiste à
déterminer un flot réalisable entre s et t qui soit de valeur maximum.
138 ANNEXE C. RAPPELS DE THÉORIE DES GRAPHES
C.3.2/ E XEMPLE
On remarque que le flot donné dans le réseau de la figure C.2 n’est pas maximum. En
effet, on peut trouver un flot de valeur 11, comme le montre la figure C.3. Le nouveau flot
est maximum. En effet, on remarque qu’on peut faire rentrer au maximum 11 unités de
flot dans t à cause des limites de capacités (4 et 7) sur les arcs entrants (v1 , t) et (v2 , t).
Soit un réseau < = (G = (V, E), s, t, c). Soit f (i, j) le flot transitant sur l’arc (i, j), ∀(i, j) ∈ E,
et F la valeur du flot f . Le problème du flot maximum entre s et t peut se formuler sous
la forme du programme linéaire suivant :
max F
sous :
f (i, j) − k|( j,k)=∈E f ( j, k) = −F pour j = s
P P
i|(i, j)∈E
(C.1)
f (i, j) − k|( j,k)=∈E f ( j, k) = F pour j = t
P P
Pi|(i, j)∈E
i|(i, j)∈E f (i, j) − k|( j,k)=∈E f ( j, k) = 0
P
pour j , s, t
0 ≤ f (i, j) ≤ c(i, j), ∀(i, j) ∈ E
C.4.1/ D ÉFINITION
Soit un réseau < = (G = (V, E), s, t, c). De plus, chaque arc du réseau est muni d’un
coût ui j dit coût unitaire par unité de flot. Le sommet source s a une production de flot
égale à d unités et le noeud puits a une demande de d unités. Le problème de flot à coût
minimum consiste à trouver un flot f réalisable sur le réseau satisfaisant aux contraintes
de production et de demande tel que le coût du flot soit minimal. Il permet de modéliser
tout un ensemble de problèmes pratiques dans lesquels il s’agit de trouver une manière
optimale d’acheminer une ressource (par exemple, un fluide, de l’électricité) d’une source
à un puits (ou de plusieurs sources à plusieurs puits).
Le problème du flot de coût minimum est fondamental dans la mesure où la plupart des
autres problèmes de flots (problème de flot maximum, problème de transport) peuvent en
être vus comme des cas particuliers.
Soit un réseau < = (G = (V, E), s, t, c). Soient f (i, j) le flot transitant sur l’arc (i, j) et u(i, j)
le coût de transport sur l’arc (i, j). L’offre au noeud source s est égale à d et la demande
au noeud puits t est égale à d. Le problème du flot à coût minimum entre s et t peut se
formuler sous la forme du programme linéaire suivant :
P
max (i, j)∈E u(i, j) f (i, j)
sous :
f (i, j) − k|( j,k)=∈E f ( j, k) = −d pour j = s
P P
Pi|(i, j)∈E
(C.2)
f (i, j) − k|( j,k)=∈E f ( j, k) = d pour j = t
P
i|(i, j)∈E
i|(i, j)∈E f (i, j) − k|( j,k)=∈E f ( j, k) = 0
P P
pour j , s, t
0 ≤ f (i, j) ≤ c(i, j), ∀(i, j) ∈ E
Le problème peut être résolu par programmation linéaire, dans la mesure où la
fonction à minimiser, et les différentes contraintes sont linéaires. Plusieurs autres
algorithmes existent, certains pouvant être considérés comme des généralisations de
l’algorithme de Ford-Fulkerson, d’autres comme des généralisations de l’algorithme
de poussage/réétiquetage, ou encore des variantes de l’algorithme du simplexe. Les
algorithmes les plus connus sont entre autres :
— Cycle canceling [Klein, 1967] et Minimum mean cycle
canceling [Goldberg and Tarjan, 1989] : algorithme fondée sur la recherche
de cycle de coût négatif
— Successive shortest path and capacity scaling [Edmonds and Karp, 1972] :
méthode duale vue comme une généralisation de l’algorithme de Ford-Fulkerson
— cost scaling [Goldberg and Tarjan, 1990] : approche primale-duale, vue comme
une généralisation de l’algorithme de poussage/réétiquetage
— Algorithme du simplexe pour les réseaux [Orlin, 1997]
B IBLIOGRAPHIE
[Ahuja and ans James B. Orlin, 1993] Ahuja, R. K. and ans James B. Orlin, T. L. M. (1993).
Network Flows. Prentice Hall. ISBN=0-13-61-617549-X.
[Alterovitz et al., 2006] Alterovitz, R., Lessard, E., Pouliot, J., Hsu, I.-C. J., O’Brien, J. F.,
and Goldberg, K. (2006). Optimization of hdr brachytherapy dose distributions using
linear programming with penalty costs. Medical Physics, 33(11) :4012–4019.
[Barth et al., 2004a] Barth, D., Deschinkel, K., Diallo, M., and Echabbi, L. (2004a). Pricing,
QoS and Utility models for the Internet . Research Report # 2004/60, Laboratoire
Prism.
[Barth et al., 2004b] Barth, D., Deschinkel, K., Diallo, M., and L.Echabbi (2004b).
Description of current cost and payment models for communication services and
networks. Research Report, EURO-NGI Project, PRiSM (France) GET (France), INRIA
(France), AUEB (Grèce), Université de Rome Tor Vergata (Italie), UC-Spain (Espagne).
[Berman et al., 2004a] Berman, P., Calinescu, G., Shah, C., and Zelikovsky, A. (2004a).
Power efficient monitoring management in sensor networks. In Wireless
Communications and Networking Conference, 2004. WCNC. 2004 IEEE, volume 4,
pages 2329–2334 Vol.4.
[Berman et al., 2004b] Berman, P., Calinescu, G., Shah, C., and Zelikovsky, A. (2004b).
Power efficient monitoring management in sensor networks. In Wireless
Communications and Networking Conference, WCNC. 2004.
[Bettwy et al., 2014] Bettwy, M., Deschinkel, K., and Gomes, S. (2014). An optimization
tool for process planning and scheduling. In APMS 2014, Advances in Production
Management Systems. Innovative and Knowledge-Based Production Management in
a Global-Local World. IFIP WG 5.7 International Conference, volume 438, pages 443–
450, Ajaccio, France. Springer.
[Caprara et al., 1998] Caprara, A., Fischetti, M., and Toth, P. (1998). Algorithms for the set
covering problem. Annals of Operations Research, 98 :2000.
[Cardei and Du, 2005] Cardei, M. and Du, D.-Z. (2005). Improving wireless sensor network
lifetime through power aware organization. Wirel. Netw., 11 :333–340.
[Cardei et al., 2005] Cardei, M., Thai, M., Li, Y., and Wu, W. (2005).
Energy-efficient
target coverage in wireless sensor networks. In INFOCOM 2005. 24th Annual Joint
Conference of the IEEE Computer and Communications Societies. Proceedings IEEE,
volume 3, pages 1976–1984 vol. 3.
[Cardei and Wu, 2006] Cardei, M. and Wu, J. (2006). Energy-efficient coverage problems
in wireless ad-hoc sensor networks. Computer communications, 29(4) :413–420.
[Carrabs et al., 2015a] Carrabs, F., Cerulli, R., DAmbrosio, C., Gentili, M., and Raiconi, A.
(2015a). Maximizing lifetime in wireless sensor networks with multiple sensor families.
Computers Operations Research, 60 :121 – 137.
141
142 BIBLIOGRAPHIE
[Carrabs et al., 2015b] Carrabs, F., Cerulli, R., DAmbrosio, C., and Raiconi, A. (2015b). A
hybrid exact approach for maximizing lifetime in sensor networks with complete and
partial coverage constraints. Journal of Network and Computer Applications, 58 :12 –
22.
[Castaño et al., 2014] Castaño, F., Rossi, A., Sevaux, M., and Velasco, N. (2014). A column
generation approach to extend lifetime in wireless sensor networks with coverage and
connectivity constraints. Computers & Operations Research, 52(B) :220–230.
[Cormen et al., 1990] Cormen, T., Leiserson, C. E., and Rivest, R. (1990). Introduction to
Algorithms. MIT Press, McGraw-Hill, Cambridge, Massachusetts.
[Couchot et al., 2012] Couchot, J.-F., Deschinkel, K., and Salomon, M. (2012). Suitability
of artificial neural network for mems-based flow control. In Bourgeois, J. and
de Labachelerie, M., editors, dMEMS 2012, Workshop on design, control and software
implementation for distributed MEMS, pages 1–6, Besançon, France.
[Couchot et al., 2013] Couchot, J.-F., Deschinkel, K., and Salomon, M. (2013). Active
mems-based flow control using artificial neural network. Mechatronics, 23(7) :898 –
905.
[Crawley, 2007] Crawley, M. J. (2007). The R Book. Wiley. ISBN-13 : 978-0-470-51024-7.
[Dantzig and Wolfe, 1960a] Dantzig, G. and Wolfe, P. (1960a). Decomposition principle for
linear programs. Operations Research, pages 101–111.
[Dantzig, 1963] Dantzig, G. B. (1963). Linear Programming and Extensions. Princeton
University Press, Princeton.
[Dantzig and Wolfe, 1960b] Dantzig, G. B. and Wolfe, P. (1960b). Decomposition principle
for linear programs. Operations Research, 8(1) :101–111.
[de Dinechin, 1996] de Dinechin, B. D. (1996). Parametric Computation of Margins and of
Minimum Cumulative Register Lifetime Dates. In David C. Sehr and Utpal Banerjee
and David Gelernter and Alexandru Nicolau and David A. Padua, editor, LCPC, volume
1239 of Lecture Notes in Computer Science, pages 231–245. Springer.
[Deffrenne et al., 2013] Deffrenne, C., Bettwy, M., Robert, A., Deschinkel, K., and Gomes,
S. (2013). Parameter management in configuration for the design of products families.
In APMS 13, Advances in Production Management Systems. Sustainable Production
and Service Supply Chains, volume 415 of IFIP AICT, pages 501–508, State College,
PA, United States.
[Demoly et al., 2011] Demoly, F., Yan, X.-T., Eynard, B., Rivest, L., and Gomes, S.
(2011). An assembly oriented design framework for product structure engineering and
assembly sequence planning. Robot. Comput.-Integr. Manuf., 27(1) :33–46.
[Deng et al., 2012] Deng, X., Jiguo Yu, D. Y., and Chen, C. (2012). Transforming area
coverage to target coverage to maintain coverage and connectivity for wireless sensor
networks. International Journal of Distributed Sensor Networks, 2012, Article ID
254318 :1–12.
[Deschinkel, 1998] Deschinkel, K. (1998). Recherche avec tabous et génération de
colonnes pour un problème de conception de réseaux. Research Report no 98-51,
Centre de Recherche sur les transports.
[Deschinkel, 1999] Deschinkel, K. (1999). Optimisation dynamique des prix d’utilisation
d’un réseau. Application à la régulation du trafic aérien . Research Report RD
1/7602.11 DCSD, ONERA.
BIBLIOGRAPHIE 143
[Deschinkel et al., 2005c] Deschinkel, K., Galea, F., and Roucairol, C. (2005c). Overview
of optimization problems in HDR brachytherapy. In Workshop on Optimization in
Medicine, Coimbra, Portugal.
[Deschinkel et al., 2006a] Deschinkel, K., Galea, F., and Roucairol, C. (2006a). Automated
Optimization of Brachytherapy Treatment Plans : Software Isodose 3D. In Applied
Optimization and Metaheuristics Innovation, Ukraine.
[Deschinkel et al., 2006b] Deschinkel,
K., Galea, F., and Roucairol, C. (2006b).
Optimization problems in treating cancer tumour by internal radiations : High
Dose Rate Brachytherapy . In Applied Mathematical Programming and Modeling
APMOD, Madrid, Espagne.
[Deschinkel et al., 2006c] Deschinkel, K., Galea, F., and Roucairol, C. (2006c). Problèmes
d’optimisation en curiethérapie. In Conférence Francophone de Modélisation et
Simulation, Modélisation, Optimisation et Simulation, Rabat, Maroc.
[Deschinkel et al., 2008b] Deschinkel, K., Galea, F., and Roucairol, C. (2008b). Basics for
vector implantation schemes in hdr brachytherapy using a new linear programming
model. APJOR, Asia-Pacific Journal of Operational Research.
[Deschinkel and Hakem, 2013] Deschinkel, K. and Hakem, M. (2013). A near optimal
algorithm for lifetime optimization in wireless sensor networks. In van Sinderen, M.,
Postolache, O., and Benavente-Peces, C., editors, SENSORNETS 2013, 2nd Int. Conf.
on Sensor Networks, pages 197 – 202, Barcelona, Spain. SciTePress.
[Deschinkel and Oudot, 2005] Deschinkel, K. and Oudot, A. (2005). Planification et
tarification dans un réseau. In ROADEF’05, conférence de la Société Française de
Recherche Opérationnelle et d’Aide á la Décision, Tours.
[Deschinkel and Touati, 2008a] Deschinkel, K. and Touati, S.-A.-A. (2008a).
Efficient
method for periodic task scheduling with storage requirement minimisation. In
COCOA’08, 2nd Int. Conf. on Combinatorial Optimization and Applications, volume
5165 of LNCS, pages 438–447, St John, Canada.
[Deschinkel and Touati, 2008b] Deschinkel, K. and Touati, S.-A.-A. (2008b). A two-phases
heuristic for the problem of periodic scheduling with storage minimisation. In ECCO’08,
European Chapter on Combinatorial Optimization, pages ***–***, Dubrovnik, Croatie.
[Deschinkel and Touati, 2009] Deschinkel, K. and Touati, S.-A.-A. (2009). Une heuristique
efficace pour l’ordonnancement périodique de tâches avec contraintes de stockage. In
ROADEF’09, 10e conférence de la Société Française de Recherche Opérationnelle et
d’Aide á la Décision, Nancy, France.
[Deschinkel and Touati, 2010] Deschinkel, K. and Touati, S.-A.-A. (2010). Elimination des
circuits nuls dans les graphes cycliques pour l’ordonnancement périodique de tâches.
In ROADEF’10, 11e conférence de la Société Française de Recherche Opérationnelle
et d’Aide á la Décision, Toulouse, France.
[Deschinkel et al., 2011] Deschinkel, K., Touati, S.-A.-A., and Briais, S. (2011). Siralina :
efficient two-steps heuristic for storage optimisation in single period task scheduling.
Journal of Combinatorial Optimization, 22(4) :819 – 844.
[Edmonds and Karp, 1972] Edmonds, J. and Karp, R. M. (1972). Theoretical improvements
in algorithmic efficiency for network flow problems. J. ACM, 19(2) :248–264.
[Ford and Fulkerson, 2010] Ford, D. R. and Fulkerson, D. R. (2010). Flows in Networks.
Princeton University Press, Princeton, NJ, USA.
BIBLIOGRAPHIE 145
[Idrees et al., 2014] Idrees, A. K., Deschinkel, K., Salomon, M., and Couturier, R. (2014).
Coverage and lifetime optimization in heterogeneous energy wireless sensor networks.
In ICN 2014, 13-th Int. Conf. on Networks, pages 49–54, Nice, France.
[Idrees et al., 2015a] Idrees, A. K., Deschinkel, K., Salomon, M., and Couturier, R. (2015a).
Distributed lifetime coverage optimization protocol in wireless sensor networks.
Technical Report RR-FEMTO-ST-2623, FEMTO-ST.
[Idrees et al., 2015b] Idrees, A. K., Deschinkel, K., Salomon, M., and Couturier, R. (2015b).
Distributed lifetime coverage optimization protocol in wireless sensor networks. The
journal of Supercomputing, 71(12) :4578–4593.
[Idrees et al., 2016] Idrees, A. K., Deschinkel, K., Salomon, M., and Couturier, R. (2016).
Perimeter-based coverage optimization to improve lifetime in wireless sensor networks.
Engineering Optimization, 48(11) :1951 – 1972.
[Jaggi and Abouzeid, 2006] Jaggi, N. and Abouzeid, A. (2006). Energy-efficient connected
covereage in wireless sensor networks. In Proceeding of 4th Asian International Mobile
Computing Conference AMOC2006, pages 77–86.
[Jain, 1991] Jain, R. (1991).The Art of Computer Systems Performance Analysis :
Techniques for Experimental Design, Measurement, Simulation, and Modeling. John
Wiley and Sons, Inc., New York.
[Karabis et al., 2009] Karabis, A., Belotti, P., and Baltas, D. (2009). Optimization of Catheter
Position and Dwell Time in Prostate HDR Brachytherapy using HIPO and Linear
Programming, pages 612–615. Springer Berlin Heidelberg, Berlin, Heidelberg.
[Karmarkar, 1984] Karmarkar, N. (1984). A new polynomial-time algorithm for linear
programming. Combinatorica, 4(4) :373–395.
[Karouzakis et al., 2002] Karouzakis, K., Lahanas, M., Milickovic, N., Giannouli, S., Baltas,
D., and Zamboglou, N. (2002). Brachytherapy dose-volume histogram computations
using optimized stratified sampling methods. Medical Physics, 29 :424–432.
[Kim and Cobb, 2013] Kim, H. and Cobb, J. A. (2013). Maximum lifetime of reinforced
barrier-coverage in wireless sensor networks. In 19th IEEE International Conference
on Networks (ICON), 2013, pages 1–6.
[Klein, 1967] Klein, M. (1967). A primal method for minimal cost flows with applications to
the assignment and transportation problems. Management Science, 14(3) :205–220.
[Kuhn, 1955] Kuhn, H. W. (1955). The Hungarian Method for the assignment problem.
Naval Research Logistics Quarterly, 2 :83–97.
[Kumagai, 2004] Kumagai, J. (2004). Life of birds [wireless sensor network for bird study].
Spectrum, IEEE, 41(4) :42–49.
[L. R. Ford and Fulkerson, 1958] L. R. Ford, J. and Fulkerson, D. R. (1958). A suggested
computation for maximal multi-commodity network flows. Management Science,
5(1) :97–101.
[Lahanas et al., 2003] Lahanas, M., Baltas, D., and Zamboglou, N. (2003). A hybrid
evolutionary algorithm for multiobjective anatomy based dose optimization in hdr
brachytherapy. Phys. Med. Biol., 48 :399–415.
[Lawler, 1972] Lawler, E. L. (1972). Optimal Cycles on Graphs and Minimal Cost-to-Time
Ratio Problem. In Marzojlo, A., editor, Periodic Optimization, volume 1, pages 38–58.
Springer-Verlag.
BIBLIOGRAPHIE 147
[Lee et al., 1999] Lee, E. K., Gallagher, R. J., Silvern, D., Wuu, C.-S., and Zaider, M.
(1999). Treatment planning for brachytherapy : an integer programming model, two
computational approaches and experiments with permanent prostate implant planning.
Physics in Medicine and Biology, 44(1) :145.
[Lee and Zaider, 2003] Lee, E. K. and Zaider, M. (2003). Mixed integer programming
approaches to treatment planning for brachytherapy – application to permanent
prostate implants. Annals of Operations Research, 119(1) :147–163.
[Lessard and Pouliot, 2001] Lessard, E. and Pouliot, J. (2001). Inverse planning anatomy-
based dose optimisation for hdr-brachytherapy of the prostate using fast simulated
annealing and dedicated objective function. Medical Physics, 28 :773–779.
[Li and Vasilakos, 2013] Li, M. and Vasilakos, A. V. (2013). A survey on topology
control in wireless sensor networks : Taxonomy, comparative study, and open issues.
Proceedings of the IEEE, 101(12) :2538–2557.
[Li et al., 2011] Li, Y., Vu, C., Ai, C., Chen, G., and Zhao, Y. (2011). Transforming complete
coverage algorithms to partial coverage algorithms for wireless sensor networks. IEEE
Transactions on Parallel and Distributed Systems, 22(4) :695–703.
[Ling and Znati, 2009] Ling, H. and Znati, T. (2009).
Energy efficient adaptive sensing
for dynamic coverage in wireless sensor networks. In Wireless Communications and
Networking Conference, 2009. WCNC 2009. IEEE, pages 1–6.
[Louat et al., 2007] Louat, C., Deschinkel, K., Roucairol, C., and Gonzalez, R. (2007).
Mixing Gomory mixed integer inequalities with others cutting plane. In European
Chapter on Combinatorial Optimization, Chypre.
[Mahkorin, 2010] Mahkorin, A. (2010). GNU Linear Programming Kit, Reference Manual.
[Milickovic et al., 2002] Milickovic, M., Lahanas, M., Pagagiannopoulou, M., Zamboglou, N.,
and Baltas, D. (2002). Multiobjective anatomy-based optimization for hdr-brachytherapy
with constrained free deterministic algorithms. Phys. Med. Biol., 47 :2263–2280.
[Misra et al., 2011] Misra, S., Kumar, M. P., and Obaidat, M. S. (2011).Connectivity
preserving localized coverage algorithm for area monitoring using wireless sensor
networks. Computer Communications, 34(12) :1484–1496.
[Munkres, 1957] Munkres, J. (1957). On the assignment and transportation problems
(abstract). Naval Research Logistics Quarterly, 4(1) :77–78.
[Orlin, 1997] Orlin, J. B. (1997). A polynomial time primal network simplex algorithm for
minimum cost flows. Mathematical Programming, 78(2) :109–129.
[Padmavathy and Chitra, 2010] Padmavathy, T. and Chitra, M. (2010). Extending the
network lifetime of wireless sensor networks using residual energy extraction—hybrid
scheduling algorithm. Int. J. of Communications, Network and System Sciences,
3(1) :98–106.
[Pedraza et al., 2006] Pedraza, F., Medaglia, A. L., and Garcia, A. (2006). Efficient
coverage algorithms for wireless sensor networks. In Proceedings of the 2006 Systems
and Information Engineering Design Symposium, pages 78–83.
[Pujari, 2011] Pujari, A. K. (2011). High-energy-first (hef) heuristic for energy-efficient
target coverage problem. International Journal of Ad Hoc, Sensor & Ubiquitous
Computing, 2(1) :45–58.
148 BIBLIOGRAPHIE
151
L ISTE DES TABLES
153
154 LISTE DES TABLES
Abstract:
This paper summarizes my contributions for modeling and solving difficult optimization problems. The problems
dealt with in this document come from the domains of health, compilation, and sensor networks. This paper
is divided into three parts. The first part presents the state of the art and the construction of new models of
linear programming for dose optimization in brachytherapy, minimization of the number of processor registers in
compilation, and lifetime maximization in wireless sensor networks (WSN) . The second part of this document
presents our heuristics, dedicated to solving problems presented in the first part, and showing themselves to
be particularly effective. These rely on classical operational research tools: decomposition of the problem into
well-known subproblems, linear assignment and column generation method.
In the third part, we are interested in network flow models to propose new resolution approaches, especially
for the construction of cover sets in WSN.
Keywords: Combinatorial Optimization, Linear Programming, Graph, Brachytherapy, Processor Registers,
Sensor Network