le fichier pdf du livre (ejcim 2015)

262
Florent Becker Nathalie Bertrand Wadoud Bousdira Jérôme Durand-Lose Serge Haddad Christophe Lenté Mathieu Liedloff Frédéric Loulergue Mohab Safey El Din Julien Tesson Vincent T’kindt Ioan Todinca Informatique Mathématique une photographie en 2015 Nicolas Ollinger (éd.) CNRS Éditions

Upload: dinhhanh

Post on 07-Feb-2017

248 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: Le fichier pdf du livre (EJCIM 2015)

Florent BeckerNathalie BertrandWadoud BousdiraJérôme Durand-LoseSerge HaddadChristophe LentéMathieu LiedloffFrédéric LoulergueMohab Safey El DinJulien TessonVincent T’kindtIoan Todinca

Informatique Mathématiqueune photographie en 2015

Nicolas Ollinger (éd.)

CNRS Éditions

Page 2: Le fichier pdf du livre (EJCIM 2015)

Comité scientifique

Valérie Berthé, CNRS, LIAFA, Université Paris DiderotArnaud Durand, ELM, Université Paris DiderotJérôme Durand-Lose, LIFO, Université d’OrléansPhilippe Langlois, LIRMM, Université de PerpignanFrédéric Loulergue, LIFO, Université d’OrléansJean-Michel Muller, CNRS, LIP, ENS de LyonNatacha Portier, LIP, ENS de LyonBrigitte Vallée, CNRS, GREYC, Université de Caen Basse-Normandie

Ce livre est diffusé sous licence Creative Commons

cbea

(paternité, pas d’utilisation commerciale, partage dans les mêmes conditions)http://creativecommons.org/licenses/by-nc-sa/3.0/fr/

CNRS Éditions, 2015, ISBN : 978-2-271-08791-1

Dépôt légal : premier semestre 2015

Page 3: Le fichier pdf du livre (EJCIM 2015)

Sommaire

Sommaire i

Liste des auteurs iii

Préface v

1 Algorithmes efficaces en géométrie algébrique réelle 1

2 Algorithmes modérément exponentiels 47

3 Calcul de programmes parallèles avec Coq 87

4 Construire et calculer dans un monde 2D 135

5 Contrôle, probabilités et observation partielle 177

Bibliographie 229

Table des figures 245

Table des matières 249

Page 4: Le fichier pdf du livre (EJCIM 2015)
Page 5: Le fichier pdf du livre (EJCIM 2015)

Liste des auteurs

Florent Becker, Université d’Orléans, LIFO, Orléans

Nathalie Bertrand, Inria Rennes – Bretagne Atlantique, Rennes

Wadoud Bousdira, Université d’Orléans, LIFO, Orléans

Jérôme Durand-Lose, Université d’Orléans, LIFO, Orléans

Serge Haddad, École Normale Supérieure de Cachan, LSV, Cachan

Christophe Lenté, Université de Tours, LI, Tours

Mathieu Liedloff, Université d’Orléans, LIFO, Orléans

Frédéric Loulergue, Inria πr2 et Université d’Orléans, LIFO, Orléans

Mohab Safey El Din, Université Pierre et Marie Curie, LIP6, Paris

Julien Tesson, Université Paris-Est Créteil, LACL, Créteil

Vincent T’kindt, Université de Tours, LI, Tours

Ioan Todinca, Université d’Orléans, LIFO, Orléans

Page 6: Le fichier pdf du livre (EJCIM 2015)
Page 7: Le fichier pdf du livre (EJCIM 2015)

Préface

Ce livre recueille les cours donnés à Orléans en avril 2015 lors del’École des Jeunes Chercheurs en Informatique Mathématique. Les Écolesdes Jeunes Chercheurs en Informatique Mathématique sont organiséeschaque année depuis la création en 2006 du GDR de même nom, le GDR IM.Cette série d’écoles remonte aux écoles organisées en 1996 et 1997 par leGDR-PRC Algorithmes, Modèles, Infographie (AMI).

Ce qu’est l’Informatique Mathématique

À la création du GDR IM, Christiane Frougny et Brigitte Vallée ontproposé cette définition :

« Dans l’informatique mathématique, le domaine informatiqueapporte en premier lieu ses problèmes, ses objets, ses moti-vations. Mais, dans la modélisation et la résolution de cesproblèmes (de nature informatique), l’outil et les méthodesmathématiques s’avèrent essentiels, souvent même incontour-nables. Et, il est très rare que les techniques mathématiques« classiques » puissent être utilisées directement, « clés en main »,car les objets manipulés ou le type de réponses attendues (parexemple en terme d’effectivité) apparaissent souvent commenon-classiques aux mathématiciens. C’est ce qui explique l’éner-gie consacrée, au sein de la communauté du GDR IM, au dévelop-pement de techniques mathématiques spécifiques, imprégnéesdu point de vue informatique. L’informatique mathématiqueest donc un domaine de l’informatique qui utilise non seule-ment des mathématiques, mais qui se révèle aussi créateur denouvelles mathématiques ».

Presque tous les thèmes de l’informatique — pourvu que la démarcheadoptée soit mathématisable — ont une interaction avec le GDR IM. Très

Page 8: Le fichier pdf du livre (EJCIM 2015)

vi PRÉFACE

souvent, on apportera un regard algorithmique sur la manipulation d’ob-jets issus des mathématiques traditionnelles ou de l’informatique, avecune réflexion sur l’efficacité et sur la notion de preuve. On s’intéresseraégalement à la complexité des problèmes.

Ce qu’est un GDR

C’est une structure du CNRS, dont le sigle signifie «groupement derecherche», qui vise à rassembler tous les chercheurs du territoire nationalqui travaillent dans une thématique donnée — ici l’informatique mathéma-tique. Comme le domaine IM est très large, notre GDR s’appuie d’abord surdes groupes de travail (il y en a 18 au moment où nous écrivons ces lignes),plus focalisés thématiquement, et regroupés en trois pôles : Algorithmique etcombinatoire ; Calcul formel, arithmétique, protection de l’information, géométrie ;et Logique et complexité. Le groupe de travail est la structure essentielle duGDR, d’une taille suffisamment petite pour être «intime», suffisammentgrande pour permettre l’ouverture.

Le GDR IM joue un rôle essentiel dans l’animation de notre com-munauté scientifique. En sus de l’animation faite par l’intermédiaire desgroupes de travail, il organise chaque année des journées nationales, ainsiqu’une École des Jeunes chercheurs, qui aident à faire vivre et évoluerl’ensemble du domaine IM, et il favorise l’organisation d’événements.

L’École des Jeunes Chercheurs

Il s’agit de donner une formation complémentaire de haut niveau àde jeunes chercheurs (qui sont en général à plus ou moins deux ans deleur soutenance de thèse) : cela peut être pour eux une mise à niveaudans certains domaines, ou une ouverture vers de nouveaux domaines.Ceci est important : qui travaillera exactement sur son sujet de thèse dans10 ans ? En leur montrant l’état de la recherche dans des domaines voisinsde leur spécialité, nous leur donnons des outils qui leur permettent demieux s’adapter à des environnements variés, et nous contribuons ainsià faciliter leur recrutement et leur mobilité. En leur donnant l’occasionde se rencontrer et de présenter leurs travaux, nous contribuons aussi àcréer une communauté de jeunes scientifiques autour des thèmes de l’IM.Ce livre est le troisième d’une série : depuis l’École jeunes Chercheurs dePerpignan (2013), les supports de cours sont édités. Ces livres constituentautant de photographies instantanées de notre domaine, qui illustrent sa

Page 9: Le fichier pdf du livre (EJCIM 2015)

PRÉFACE vii

perpétuelle évolution. Nous remercions les auteurs d’avoir accepté avecenthousiasme de faire un travail de qualité, et nous tenons tout particulière-ment à remercier Nicolas Ollinger d’avoir accepté la charge de coordonnerla rédaction de ce livre, ainsi que tous les membres du comité d’organi-sation de l’École Jeunes Chercheurs 2015, et en particulier son présidentJérôme Durand-Lose.

À Paris, le 5 mars 2015,Arnaud Durand et Jean-Michel Muller, co-directeurs du GDR IM.

Remerciements

Les auteurs et le comité scientifique remercient très chaleureusementPierre Lairez pour la traduction en français du premier chapitre, ainsique les relecteurs pour leur travail et leurs remarques sur les versionspréliminaires de cet ouvrage : Abderrahim Ait Wakrime, Valérie Berthé,Guillaume Cano, Philippe Langlois, Sébastien Maulat, Irène Marcovici,Pedro Montealegre, Nicolas Ollinger, Vivien Pelletier et Bruno Salvy.

L’éditeur remercie Valérie Berthé et Philippe Langlois pour leur aide àla mise en forme de cet ouvrage.

Page 10: Le fichier pdf du livre (EJCIM 2015)
Page 11: Le fichier pdf du livre (EJCIM 2015)

Chapitre 1

Algorithmes efficaces engéométrie algébrique réelle

Mohab Safey El Dintraduit par Pierre Lairez

En calcul scientifique, la résolution de problèmes algébriques non li-néaires est une tâche importante et difficile. Dans plusieurs domaines del’ingénierie, les problèmes algébriques encodent des contraintes géométriquessur des variables à valeurs réelles. C’est ainsi qu’il est fréquent de chercher àobtenir des informations sur l’ensemble des solutions réelles d’un systèmepolynomial.

La complexité théorique de la résolution de ces problèmes est souvent sim-plement exponentielle par rapport au nombre de variables. Les algorithmesinitialement proposés dans cette classe de complexité se sont révélés inexploi-tables en pratique. Ainsi, jusque récemment, la plupart des logiciels mettenten œuvre des algorithmes dont la complexité est doublement exponentiellepar rapport au nombre de variables. De plus, la nature non linéaire desproblèmes considérés fait qu’il est difficile d’utiliser des méthodes numé-riques tout en garantissant l’exactitude du résultat fourni. Cela encouragel’utilisation de méthodes issues du calcul formel.

Dans ce contexte, il s’agit alors de développer des algorithmes exacts, decontrôler adéquatement leur complexité, de les implémenter efficacement etcerner les spécifications les plus utiles.

Ce cours présente des idées récentes guidées par des principes géomé-triques. Elles sont à la base d’algorithmes simplement exponentiels, parfoissous des hypothèses de généricité supplémentaires, et d’implémentations quireflètent en pratique ces complexités. Nous étudierons plusieurs problèmes :

Page 12: Le fichier pdf du livre (EJCIM 2015)

2 Chapitre 1. Algorithmes efficaces en géométrie algébrique réelle

calcul d’une solution d’un système d’équations algébriques multivariées, leproblème de décider si deux points sont dans la même composante connexeet un cas particulier de l’élimination des quantificateurs.

1.1 Introduction

Soient f1, . . . , fp, g1, . . . , gs des polynômes de Q[X1, . . . , Xn] et S ⊂ Rn

l’ensemble semi-algébrique défini par

f1 = · · · = fp = 0, g1 > 0, . . . , gs > 0. (1.1)

De tels systèmes apparaissent dans de nombreux problèmes d’ingénierie,en particulier quand les objets étudiés sont soumis à des contraintes géomé-triques — distance entre ensembles de points, défaut de rang d’une matriceà coefficients polynomiaux, positivité de certains mineurs, etc. Bien sûr, lanature du problème à résoudre dépend de l’information recherchée. Cecours porte principalement sur trois problèmes :

Calcul d’au moins un point par composante connexe.Le système (1.1) étant donné, décider si S est vide ou non, et lecas échéant, calculer au moins un point dans chaque composanteconnexe de S . Ce problème apparaît fréquemment, par exempleen reconnaissance de forme, robotique, géométrie algorithmique,traitement du signal, ou encore pour l’étalonnage de caméra.

Connexité. Le système (1.1) et un ensemble fini P de points de Sétant donnés, partionner P de sorte que deux points soient dansla même classe d’équivalence si et seulement s’ils sont dans lamême composante connexe de S . Ce problème est résolu par lecalcul d’une carte routière pour S et P . C’est une courbe algébriquequi contient P , qui est contenue dans S et dont l’intersection avecchaque composante connexe de S est connexe et non vide.Les problèmes de planification de mouvement peuvent être traitésen résolvant des questions de connexité [178, 42]. Ces questionsapparaissent aussi en géométrie algorithmique dans certains pro-blèmes de classification.

Élimination des quantificateurs. Le système (1.1) étant donné, ainsiqu’une projection affine π : Rn → E sur un sous-espace affine Ede Rn, donner des équations décrivant π(S). Souvent vu commeun problème d’élimination de quantificateurs existentiels, ce pro-blème intervient dans de nombreux contextes, comme l’optimi-sation globale de polynômes, l’analyse de la stabilité en biologie,

Page 13: Le fichier pdf du livre (EJCIM 2015)

1.1. Introduction 3

les schémas numériques pour les EDP et les équations avec condi-tions au bord, la vérification de programme, la preuve automatiqued’algorithmes, etc.

Outre leur intérêt propre, les algorithmes résolvant les problèmessusnommés peuvent être utilisés au sein d’autres algorithmes traitant dessystèmes algébriques réels :

Résolution des systèmes à paramètres, cas de la dimension nulle.Soit S un système polynomial dépendant de r paramètres. Suppo-sons que pour des valeurs génériques des paramètres le systèmen’ait qu’un nombre fini de solutions complexes. On peut classifierle nombre de solutions réelles du système selon la valeur desparamètres en calculant une variété D ⊂ Rr telle que le nombredes racines réelles soit constant sur les composantes connexesde Rr \ D.Ainsi, si on sait calculer un ensemble fini de points P dans l’es-pace des paramètres et qui intersecte chaque composante connexede Rr \ D, notre problème revient à compter le nombre de solu-tions réelles pour chaque système obtenu en remplaçant dans S lesparamètres par les points de P

Description des composantes connexes. Les composantes connexesde l’ensemble semi-algébrique S sont en nombre fini et sont indivi-duellement des ensembles semi-algébriques, décrits par égalitéset inégalités polynomiales. Par exemple, si S est l’hyperbole dé-finie par X1X2 = 1, l’une des composantes connexes est décritepar X1X2 = 1 et X1 > 0, tandis que l’autre est décrite par X1X2 = 1et X1 < 0.Dans [15, chap. 16], les auteurs calculent un système semi-algébrique pour chacune des composantes connexes de S en résol-vant des questions de connexité via le calcul d’une carte routière.

État de l’art et objectifs de ce cours

Comme précédemment, des polynômes f1, . . . , fp et g1, . . . , gsde Q[X1, . . . , Xn] sont donnés et S ⊂ Rn est l’ensemble semi-algébriquedéfini par f1 = · · · = fp = 0 et g1 > 0, . . . , gs > 0. Soit V ⊂ Cn

la variété algébrique définie par f1 = · · · = fp = 0. On notera aussiD = max(deg( fi), deg(gj), 1 6 i 6 p, 1 6 j 6 s).

Les complexités sont mesurées en termes de nombre d’opérationsarithmétiques dans Q : les opérations de corps et la comparaison d’élé-ments ont un coût unitaire. Le coût de la multiplication de deux polynômes

Page 14: Le fichier pdf du livre (EJCIM 2015)

4 Chapitre 1. Algorithmes efficaces en géométrie algébrique réelle

de Q[X] de degré d est noté M(d), et on note ω un réel tel que la multi-plication de deux matrices de Qn×n ait une complexité O(nω). On peutchoisir 2,374 < ω < 3.

Décider l’existence d’un point dans un semi-algébrique et calculer aumoins un point par composante connexe. Il convient de distinguer leproblème de décider si S est vide ou non du problème de calculer unpoint dans chacune des composantes connexes de S . Résoudre le secondproblème demande un nombre d’opérations au moins égal au nombrede composantes connexes de S , et ce nombre est majoré par la borne deThom-Milnor en sn(2D)n, où s est le nombre d’inégalités dans la définitionde S . Cette borne est simplement exponentielle en n et il existe des famillesde semi-algébriques pour lesquelles le nombre de composantes connexesest effectivement exponentiel en n. Ainsi, tout algorithme calculant unpoint par composante connexe de semi-algébriques quelconques a unecomplexité au moins exponentielle en n.

Décider de l’existence d’un point dans S peut être fait différem-ment en calculant des certificats algébriques en lien avec le Positivs-tellensatz [32, chap. 4]. Par exemple, pour prouver qu’un polynôme fde Q[X1, . . . , Xn] est positif, il suffit de l’écrire comme une somme de car-rés dans Q(X1, . . . , Xn) [4]. Ce cours portera non pas sur les algorithmesproduisant des certificats d’inconsistence à la Positivstellensatz, mais sur leproblème du calcul d’au moins un point par composante connexe.

Ceci peut être réalisé avec l’algorithme de décomposition algébriquecylindrique de Collins [53]. Cet algorithme calcule une partition d’un semi-algébrique donné en cellules cylindriques chacune homéomorphe à Ri pourun certain i. Pour ce faire, les variables intervenant dans les polynômesdéfinissant le semi-algébrique sont éliminées récursivement en utilisantun opérateur de projection construit à partir des suites de sous-résultants.À chaque itération, le degré des équations est le carré du degré à l’itéra-tion précédente ce qui donne une complexité ((p + s)D)O(1)n

doublementexponentielle en n. La décomposition algébrique cylindrique a été beau-coup étudiée et considérablement améliorée, mais en pratique même lesmeilleures implémentations sont limitées à des problèmes à 4 variables oumoins, à cause de cette complexité doublement exponentielle.

Le problème du calcul de points dans les composantes connexespeut en fait être résolu en complexité polynomiale en la borne de Thom-Milnor [107, 15, et sa bibliographie]. Ces algorithmes reposent sur la méthodedes points critiques, exploitant le fait élémentaire que toute fonction polyno-miale sur un ensemble algébrique compact lisse atteint ses extremums auxpoints où la différentielle s’annule, appelés points critiques.

Page 15: Le fichier pdf du livre (EJCIM 2015)

1.1. Introduction 5

L’idée est alors de trouver une fonction polynomiale qui atteint ses ex-tremums sur chacune des composantes connexes de l’ensemble algébriqueréel considéré. On peut s’attendre à ce que le système d’équations quidécrit l’ensemble des points critiques soit de dimension zéro (c’est-à-direavec au plus un nombre fini de solutions complexes) et que la borne deBézout associée, qui majore le nombre de solutions complexes, soit au plussimplement exponentielle en le nombre de variables. On peut alors utiliser desoutils algébriques, commes les bases de Gröbner, pour calculer une para-métrisation rationnelle de ces solutions et par là même isoler les solutionsréelles.

Cette procédure s’étend au cas des ensembles semi-algébriques : desmanipulations algébriques (utilisation de la somme des carrés des po-lynômes donnés) et des déformations infinitésimales permettent de seramener au cas d’une hypersurface algébrique lisse et bornée. Le résultatest un algorithme déterministe de complexité snDO(n) (sn est un facteurcombinatoire alors que DO(n) est un facteur algébrique).

Néanmoins, ces algorithmes reposant sur la méthode des points cri-tiques ne donnent pas de performances pratiques à la mesure du gain decomplexité. Il est donc naturel d’essayer de s’inspirer de la méthode despoints critiques pour obtenir des algorithmes de complexité snDO(n) maissusceptibles d’implémentations efficaces reflétant le gain de complexité.

Problèmes de connexité dans les semi-algébriques. Schwartz and Sha-rir [178] ont montré l’intérêt que peut avoir la résolution des problèmesde connexité dans le cadre de la planification de mouvement. Considé-rons un corps partiellement rigide se mouvant dans un espace contenantdes obstacles. La question posée est de décider si le corps peut passerd’une configuration à une autre sans rencontrer les obstacles. Dans l’espacedes configurations du problème, cela revient à décider si deux points sontdans la même composante connexe d’un certain ensemble semi-algébriquedécrivant les contraintes. Un exemple célèbre est celui du « déménageurde piano » [178]. Toujours dans [178], un algorithme pour résoudre lesproblèmes de connexité est décrit. Il repose sur la décomposition algé-brique cylindrique et sa complexité est à ce titre au moins doublementexponentielle en le nombre de variables. C’est problématique car même sion souhaite planifier des mouvements dans R3, l’espace des configurationspeut être de dimension bien plus grande puisque chaque degré de libertéproduit une dimension supplémentaire.

Canny [42] a introduit la notion de carte routière. L’idée est de ramenerles problèmes de connexité en dimension quelconque à des problèmes deconnexité en dimension 1 ; et pour des courbes semi-algébriques, il existe

Page 16: Le fichier pdf du livre (EJCIM 2015)

6 Chapitre 1. Algorithmes efficaces en géométrie algébrique réelle

des algorithmes efficaces pour résoudre ces problèmes. Étant donné unensemble fini de points P ⊂ S , une carte routière de (S ,P) est une courbesemi-algébrique contenant P et d’intersection non vide et connexe avecchacune des composantes connexes de S . Canny décrit un algorithme pro-babiliste de complexité ((p + s)D)O(n2) reposant sur la méthode des pointscritiques, où p et s sont le nombre d’égalités et d’inégalités, respectivement,definissant S .

Plusieurs amélioriations ont été apportées à la méthode de Canny [15,et sa bibliographie]. Cette série culmine avec l’algorithme déterministe decomplexité (p+ s)dDO(n2) donné dans [14], où d est la dimension de V ∩Rn.Cependant, comme pour les algorithmes évoqués au paragraphe précé-dent, et pour des raisons similaires, le comportement en pratique de cesalgorithmes ne reflète pas le gain de complexité.

Pour ce problème, on peut alors chercher à obtenir des algorithmesayant des performances pratiques satisfaisantes, c’est-à-dire pouvant ré-soudre des problèmes hors de portée de la décomposition algébrique cylin-drique ; et d’autre part on peut se demander s’il existe des algorithmes avecune meilleure complexité théorique, par exemple avec un facteur DO(nα),avec α < 2, plutôt que DO(n2).

Élimination des quantificateurs. Considérons la formule quantifiée

Φ(Y) : ∃(X1, . . . , Xn) ∈ Rn f1 = · · · = fp = 0, g1 > 0, . . . , gs > 0

où les fi et les gi sont des polynômes de Q[X1, . . . , Xn, Y1, . . . , Yr]. Les Yisont les variables libres (ou les paramètres), tandis que les Xi sont les variablesquantifiées. Tarski [193] a montré qu’il était possible de décider l’existenced’un point dans S = y ∈ Rr | Φ(y) est vrai et de donner des formulesdéfinissant S. On peut aussi considérer des formules avec plus d’un blocde variables.

La complexité de l’algorithme de Tarski n’est pas une fonction récur-sive élémentaire, elle croît plus vite que toute tour d’exponentielles. Unevariante de l’algorithme de décomposition algébrique cylindrique [53] per-met de résoudre les problèmes d’élimination des quantificateurs, toujoursavec une complexité doublement exponentielle en le nombre de variables.Un énorme travail a été fourni dans cette direction.

Grigoriev [107] a donné un algorithme pour décider la véracité d’uneformule quantifiée qui prend en compte la structure par bloc des quanti-ficateurs. Dans l’exemple ci-dessus, il n’y a qu’un quantificateur, et uneconséquence de ces travaux est un algorithme simplement exponentiel enle nombre total de variables.

Page 17: Le fichier pdf du livre (EJCIM 2015)

1.1. Introduction 7

On peut évidemment considérer des problèmes d’élimination desquantificateurs plus généraux que la formule ci-dessus en faisant intervenirplusieurs quantificateurs. Dans ce cas, la complexité de l’algorithme estdoublement exponentielle en le nombre de blocs de variables. Cela s’étendà l’élimination des quantificateurs en général [15, et sa bibliographie]. En-core une fois, ces algorithmes utilisent des déformations infinitésimaleset des manipulations algébriques (comme les sommes de carrés) dont lesimplémentations ne sont pas efficaces. Et on peut se demander s’il estpossible de concevoir des algorithmes qui reflètent en pratique le gain decomplexité.

Contenu du cours

Cet état de l’art montre que dans l’ensemble il y a un écart à comblerentre les algorithmes utilisés en pratique et les algorithmes reposant sur laméthode des points critiques avec une bonne complexité théorique. Ces dixdernières années, un travail considérable a été fait pour concevoir des algo-rithmes dont la complexité coïncide avec la meilleure complexité connue etqui sont susceptibles d’implémentations efficaces reflétant la complexité(ou, pour le moins, qui se comparent favorablement à l’algorithme de dé-composition algébrique cyclindrique dont la complexité est doublementexponentielle en le nombre de variables).

Ces algorithmes reposent encore sur la méthode des points critiques.Les approches présentées ici exploitent des propriétés topologiques et géo-métriques du lieu des points critiques des projections sur des sous-espacesaffines génériques pour accélérer la résolution des problèmes mentionnésci-dessus.

Comme les algorithmes sont randomisés, les analyses de complexitésont faites dans le cadre de l’algorithme de résolution géométrique (commedans [12]) ce qui assure que dans le cas générique on obtienne des com-plexités qui soient dans la meilleure classe connue dans [15]. Cela permetaussi d’expliciter les constantes dans les exposants. En pratique, nos implé-mentations reposent sur des algorithmes déterministes et utilisent les basesde Gröbner pour résoudre les systèmes de dimension nulle, ce qui reste laméthode la plus efficace aujourd’hui.

Remerciements. Ce cours présente principalement des versions simpli-fiées d’articles écrits à plusieurs mains. Je remercie en particulier BerndBank, Jean-Charles Faugère, Marc Giusti, Joos Heintz, Hoon Hong, EricSchost et Pierre-Jean Spaenlehauer, Lihong Zhi parmi bien d’autres.

Page 18: Le fichier pdf du livre (EJCIM 2015)

8 Chapitre 1. Algorithmes efficaces en géométrie algébrique réelle

1.2 Objets de base : algorithmes et bornes

Comme mentionné ci-dessus, les algorithmes présentés dans ce coursreposent sur des procédures pour isoler les solutions réelles de systèmespolynomiaux admettant un nombre fini de solutions complexes.

Dans un premier temps, nous rappelons les définitions de base et lespropriétés élémentaires des ensembles des racines complexes de systèmespolynomiaux à coefficients complexes. Ces ensembles sont appelés en-sembles algébriques ou variétés algébriques, et le domaine des mathématiquesqui s’y intéresse est la géométrie algébrique. La géométrie algébrique réelle s’inté-resse quant à elle aux ensembles des solutions réelles de systèmes d’égalitéset d’inégalités polynomiales à coefficients réels. Ces ensembles sont appelésensembles semi-algébriques. Les ensembles algébriques réels et les ensemblessemi-algébriques jouissent de propriétés intéressantes. Par exemple, ils nesont formés que d’un nombre fini de composantes connexes, ou encore, lesensembles semi-algébriques sont stables par projection. Voir [32] pour lesfondements de la géométrie algébrique réelle.

Dans un deuxième temps, nous rappelons la définition des points etdes valeurs critiques de la restriction à une variété algébrique complexed’une fonction polynomiale. Ces définitions s’étendent facilement au casréel. Nous rappelons aussi des résultats classiques de transversalité ; ilsont utilisés à plusieurs reprises pour montrer la correction d’algorithmestraitant des ensembles algébriques réels. Ensuite, nous introduisons lesvaleurs critiques généralisées, c’est une notion plus récente.

Enfin, nous passons rapidement en revue les méthodes de calcul for-mel permettant de réécrire un système d’équations ayant un nombre finide solutions complexes de manière à pouvoir en obtenir les racines réelles.Quand le système en question définit une courbe, ces méthodes serontutilisées pour le réécrire sous une forme triangulaire. L’accent est mis surles spécifications des algorithmes et sur leur complexité.

Le lecteur intéressé par les bases présentées dans cette section pourrasuivre les nombreuses références indiquées.

1.2.1 Définitions

Ensembles algébriques et topologie de Zariski. Soit K un corps conte-nant Q. Un sous-ensemble V de Cn est un ensemble K-algébrique, ou une K-variété algébrique s’il existe f1, . . . , fp ∈ K[X1, . . . , Xn] tels que V soit l’en-semble des solutions dans Cn du système f1 = · · · = fn = 0. Dans ce cours,nous considèrerons principalement des Q-varités algébriques, qui serontsimplement nommées variétés algébriques.

Page 19: Le fichier pdf du livre (EJCIM 2015)

1.2. Objets de base : algorithmes et bornes 9

La topologie de Zariski sur Cd est la topologie dont les fermés sontles variétés algébriques. Ainsi, les ouverts pour cette topologie sont lescomplémentaires des ensembles de points de Cn définis par l’annulationd’un ensemble fini de points dans K[X1, . . . , Xn].

Pour tout ensemble U ⊂ Cn, l’adhérence de Zariski de U, notée UZ

est le plus petit fermé de Zariski contenant U. Un ouvert de Zariski est lecomplémentaire d’un fermé de Zariski. Un ensemble constructible est uneintersection finie d’ouverts et de fermés de Zariski.

Une propriété, dépendant de paramètres, est générique si dans l’espacedes paramètres il existe un ouvert de Zariski non vide tel que la propriétésoit vraie quand les paramètres prennent les valeurs de cet ouvert. En par-ticulier, nous dirons qu’une propriété est vraie en coordonnées génériquess’il existe un ouvert non vide O de Mn(C) tel que pour tout A ∈ O, lapropriété soit vraie après application du changement de variable x→ Ax.

Une variété algébrique V est réductible si elle peut s’écrire commel’union de deux variétés algébriques non vides et distinctes ; sinon, elle estirréductible. Toute variété V est une union finie de variétés irréductibles : ilexiste des variétés irréductibles V1, . . . , Vs toutes distinctes telles que V =V1 ∪ · · · ∪Vs. La décomposition de V en une telle union est unique à l’ordreprès. Les Vi sont les composantes irréductibles de V.

La dimension d’une variété V est le plus grand entier d telle qu’il existeune permutation σ de 1, . . . , n telle que l’image de V par la projectionsur xσ(d+1) = · · · = xσ(n) = 0 soit d’intérieur non vide (pour la topologieclassique ou celle de Zariski, c’est équivalent). On écrit alors dim V = d.Par convention, l’ensemble vide est de dimension −1. Les variétés dedimension zéro sont des ensemble finis non vides. Une variété est équidi-mensionnelle de dimension d si toutes ses composantes irréductibles sont dedimension d. Enfin, la dimension d’un ensemble constructible est définiecomme la dimension de son adhérence de Zariski.

Idéaux et variétés. Par définition, un ensemble algébrique est donné parun système polynomial f1 = · · · = fp = 0, avec fi ∈ Q[X1, . . . , Xn]. L’idéalengendré dans cet anneau par les fi, noté 〈 f1, . . . , fp〉, est l’ensemble despolynômes de la forme q1 f1 + · · · + qp fp, avec les qi dans Q[X1, . . . , Xn].Pour tout f ∈ 〈 f1, . . . , fp〉 et tout x ∈ V, f (x) = 0.

L’ensemble des polynômes qui s’annulent sur V est aussi un idéal,noté I(V), qui contient 〈 f1, . . . , fp〉. Cependant, il se peut que ces deuxidéaux ne soient pas égaux. Par exemple, si V est défini par X2

1 = 0,l’idéal I(V) est 〈X1〉, ce qui contient strictement 〈X2

1〉.

Page 20: Le fichier pdf du livre (EJCIM 2015)

10 Chapitre 1. Algorithmes efficaces en géométrie algébrique réelle

Ceci amène la définition suivante. Étant donné un idéal I ⊂Q[X1, . . . , Xn] on peut montrer facilement que l’ensemble

f ∈ Q[X1, . . . , Xn]∣∣∣ ∃k ∈N, f k ∈ I

est un idéal contenant I. C’est le radical de I. Un idéal est radical s’il est égalà son radical. Pour toute variété V, l’idéal I(V) est radical.

Étant donné un idéal I, l’ensemble des x ∈ Cn tels que f (x) = 0pour tout f ∈ I est une variété algébrique, appelée variété associée à I etnotée V(I).

Enfin, la saturation d’un idéal I par un idéal J, notée I : J∞ est l’idéal

I : J∞ =

f ∈ Q[X1, . . . , Xn]∣∣∣ ∃k ∈N, gJk ⊂ I

.

La variété V(I : J∞) est l’adhérence de Zariski de l’ensemble V(I) \V(J).

Points réguliers, points singuliers. Soit V ⊂ Cn une variété algébrique.L’espace tangent (de Zariski) de V en un point x ∈ V est l’espace vectoriel,noté TxX défini par

TxX =

v ∈ Cn

∣∣∣∣ ∀ f ∈ I(V),∂ f

∂X1(x)v1 + · · ·+

∂ f∂Xn

(x)vn = 0

.

Soit F = ( f1, . . . , fp) ⊂ Q[X1, . . . , Xn] un ensemble de générateurs de I(V),c’est-à-dire que I(V) = 〈 f1, . . . , fp〉. L’espace tangent TxX est le noyau àdroite de la matrice jacobienne de F, définie par

Jac(F) =

∂ f1∂X1

· · · · · · ∂ f1∂Xn

......

......

∂ fp∂X1

· · · · · · ∂ fp∂Xn

,

évaluée en x.Supposons que V soit équidimensionnelle. Un point x ∈ V est dit

régulier si dim(TxV) = dim V. De manière équivalente, un point x estrégulier si et seulement si le rang de la matrice Jac(F) évaluée en x égale n−dim V. C’est le critère jacobien.

Un point x ∈ V est dit singulier s’il n’est pas régulier. L’ensembledes points singuliers est lui-même une variété algébrique : c’est le lieud’annulation des polynômes de F et des mineurs de taille n− dim(V) + 1de Jac(F). L’ensemble des points réguliers de V et celui des points singuliersde V sont notés reg(V) et sing(V) respectivement.

Une variété lisse est une variété équidimensionnelle V ⊂ Cn sans pointsingulier.

Page 21: Le fichier pdf du livre (EJCIM 2015)

1.2. Objets de base : algorithmes et bornes 11

Applications propres, applications dominantes. Soit ϕ : V → W uneapplication entre espaces topologiques. L’application ϕ est propre en unpoint w ∈ W s’il existe un voisinage fermé B de w tel que ϕ−1(B) soitcompact. Nous considèrerons des applications entre ensembles algébriques,réels ou complexes, et la topologie sera celle induite la topologie usuellede Rn ou Cn.

On prouve facilement que l’image par une application propre d’unensemble fermé est fermée.

Une application de variétés complexes irréductibles ϕ : V →W est do-minante si son image est dense dans W, pour la topologie usuelle. Ainsi, l’ap-plication ϕ est dominante si et seulement si la dimension de l’image ϕ(V),en tant qu’ensemble constructible, est égale à celle de W. Dans le cas où Vest réductible, on définit que ϕ est dominante si sa restriction à chacunedes composantes irréductibles l’est.

Soit V ⊂ Cn une variété algébrique de dimension d et soit π la pro-jection π : (x1, . . . , xn) ∈ V → (x1, . . . , xd) ∈ Cd sur les d premièrescoordonnées. Supposons que π soit une application dominante, ce quiimplique en particulier que chacune des composantes irréductibles de Vest de dimension d. Le théorème de la dimension des fibres [181, chap. 1.6]implique que les fibres de π sont génériquement finies, c’est-à-dire quepour α ∈ Cd, l’ensemble π−1(α) est fini, sauf peut-être quand α annule uncertain polynôme non nul. En effet, ce théorème affirme que pour α ∈ π(V)générique

dim V = dim(π(V)) + dim(π−1(α)).

Génériquement, π−1(α) est donc une variété de dimension 0, et donc un en-semble fini. Sous ces hypothèses, l’ensemble des points de Cd au-dessus des-quels π n’est pas propre est une hypersurface [125]. Dans [125, lemme 3.10],Jelonek donne une caractérisation de cette hypersurface. Un algorithmereposant sur ce résultat est donné dans [173]. Il accepte en entrée un sys-tème polynomial F et des variables (X1, . . . , Xd), et calcule un polynômede Q[X1, . . . , Xd] dont le lieu d’annulation est le lieu des points au-dessusdesquels π n’est pas propre. Ainsi, toute condition reposant sur la propretéd’une projection donnée peut être testée algorithmiquement.

1.2.2 Points et valeurs critiques

Points critiques, variétés polaires et valeurs critiques. Soient V une va-riété équidimensionnelle de Cn et ϕ

ϕ : x ∈ Cn → (ϕ1(x), . . . , ϕk(x)) ∈ Ck, avec ϕi ∈ Q[X1, . . . , Xn],

Page 22: Le fichier pdf du livre (EJCIM 2015)

12 Chapitre 1. Algorithmes efficaces en géométrie algébrique réelle

une application polynomiale. Les notions qui suivent ne sont valables quedans le cas où V est équidimensionnelle.

Un point critique de la restriction ϕ|V de ϕ à V est un point x dereg(V) tel que la différentielle de ϕ|V en x n’est pas surjective, autre-ment dit, tel que dx ϕ(TxV) 6= Ck. L’ensemble de ces points critiques estnoté crit(ϕ, reg(V)).

Une valeur critique de ϕV est un point de l’image de crit(ϕ, reg(V))par ϕ. Une valeur régulière de l’application ϕ est un point y ∈ Ck qui n’estpas une valeur critique, ni dans ϕ(sing V).

La variété polaire associée à ϕV est l’adhérence de Zariskide crit(ϕ, reg(V)), notée W(ϕ, V). L’ensemble crit(ϕ, reg(V)) ∪ sing(V),noté crit(ϕ, V) sera parfois utile.

Caractérisation algebrique des points critiques et des variétés polaires.Dans la suite, on note Jaci( f1, . . . , fp) la matrice jacobienne partielle

Jaci( f1, . . . , fp) =

∂ f1∂Xi

· · · · · · ∂ f1∂Xn

......

......

∂ fp∂Xi

· · · · · · ∂ fp∂Xn

,

et on note jaci( f1, . . . , fp) l’ensemble des mineurs maximaux de cette ma-trice. Quand i = 1, l’indice est omis.

Étudions d’abord le cas où l’idéal 〈 f1, . . . , fp〉 est radical et définit unevariété équidimensionnelle de codimension p. L’ensemble crit(ϕ, V) estalors défini par les polynômes

f1, . . . , fp, jac( f1, . . . , fp, ϕ1, . . . , ϕk). (1.2)

Ce système peut être surdéterminé, et il l’est certainement quand p > 2et k = 1. Il est clair que si V est lisse, alors (1.2) défini aussi crit(ϕ, reg(V)).Si I est l’idéal engendré par (1.2), alors l’idéal I : 〈jac( f1, . . . , fp)〉∞ défi-nitW(ϕ, V).

Pour illustrer, considérons la variété V définie par

X21 + X2

2 + (X3 − 1)2 − 1 = 0,

et les projections πi : (x1, x2, x3)→ (x1, . . . , xi), pour i = 1 et i = 2. La traceréelle de V est une sphère, voir la figure 1.1. La variété polaire crit(π2, V)associée à π2 est définie par les équations

X21 + X2

2 + (X3 − 1)2 − 1 = 0, X3 − 1 = 0.

Page 23: Le fichier pdf du livre (EJCIM 2015)

1.2. Objets de base : algorithmes et bornes 13

x1

x2

x3

FIGURE 1.1 – Points critiques des projections de la sphère

Sa trace réelle est la courbe rouge sur la figure 1.1, c’est un grand cerclesur la sphère. La variété polaire crit(π1, V) associée à π1 est définie par leséquations

X21 + X2

2 + (X3 − 1)2 − 1 = 0, X3 − 1 = 0, X2 = 0,

ce qui se simplifie en

X21 − 1 = 0, X3 − 1 = 0, X2 = 0.

Les points solutions sont (−1, 0, 1) et (1, 0, 1). Remarquons que crit(π1, V)est ainsi inclus dans crit(π2, V).

Quand la dimension de V( f1, . . . , fp), notée d, est strictement supé-rieure à n− p, la variété crit(ϕ, V) est définie par les polynômes

jac( fi1 , . . . , fin−d , ϕ1, . . . , ϕk), i1, . . . , in−d ⊂ 1, . . . , p.

Supposons que k = 1 et notons L = (L1, . . . , Lp) des nouvelles va-riables, les multiplicateurs de Lagrange. Considérons le système de Lagrange

f1 = · · · = fp = 0, Jac( f1, . . . , fp) · L = Jac(ϕ1).

On noteL ⊂ Cn×Cp l’ensemble de ses solutions et πX la projection (x, `) ∈Cn ×Cp → x ∈ Cn. Si sing(V) = ∅ et si 〈 f1, . . . , fp〉 est radical (mais pas

Page 24: Le fichier pdf du livre (EJCIM 2015)

14 Chapitre 1. Algorithmes efficaces en géométrie algébrique réelle

nécessairement équidimensionnel), alors crit(ϕ, V) est l’image de L par πX.Notons que ce système a une structure bi-homogène : les multiplicateursde Lagrange apparaissent avec un degré 1.

Cette caractérisation algébrique permet de calculer des paramétrisa-tions rationnelles des ensembles de points critiques et des variétés polairesquand ceux-ci sont finis.

Supposons maintenant que V est une variété équidimensionnelle lissede Cn. Soit ϕ : V → Cm une application polynomiale. La caractérisa-tion des points critiques et des points singuliers, ainsi que le critère ja-cobien permettent de montrer que si y ∈ Cm est une valeur régulièrede ϕ, alors ϕ−1(y) ∩V est une variété équidimensionnelle lisse de dimen-sion dim V − k.

1.2.3 Énoncés de transversalité, propriétés des points et valeurscritiques

Ce paragraphe s’intéresse à la dimension des ensembles de points etde valeurs critiques. C’est important car les algorithmes que nous décrivonsensuite reposent sur la réduction de la dimension du problème considérépar un calcul de points critiques.

Transversalité. Les énoncés de transversalité sont fondamentaux car ilsfournissent des informations sur la dimension des points valeurs critiquesd’une application polynomiale. Le premier résultat est le théorème deSard [32, chap. 9].

Théorème 1.2.1 (Théorème de Sard). Si V ⊂ Cn est une variété équidimen-sionnelle et ϕ : V → Cm une application polynomiale, alors ϕ(crit(ϕ, V)) est unensemble constructible contenu dans une hypersurface de Cm.

Puis vient le théorème de transversalité de Thom faible, spécialisé aucas de la transversalité à un point, ce qui s’exprime en termes de valeurssingulières et régulières.

Théorème 1.2.2 (Théorème de transversalité de Thom faible). Soient n,m et d des entiers naturels. Soient W une variété de Cn et Φ une applicationpolynomiale W ×Cd → Cm. Si y ∈ Cm est une valeur régulière de Φ, alors ilexiste un ouvert de Zariski non vide U ⊂ Cd tel que pour tout θ ∈ U le point yest une valeur régulière de l’application x ∈W → Φ(x, θ) ∈ Cd.

Page 25: Le fichier pdf du livre (EJCIM 2015)

1.2. Objets de base : algorithmes et bornes 15

Propriété des points et valeurs critiques La dimension de l’ensembledes valeurs critiques d’une application polynomiale est controlée par lethéorème de Sard. Le théorème de fibration de Ehresmann (voir [40, p. 84]and [58] pour une version semi-algébrique) décrit la topologie des fibres desapplications propres. Son énoncé utilise la notion de fibration localementtriviale.

Soient V ⊂ Cn une variété équidimensionnelle, ϕ : V ∩Rn → Rk

une application polynomiale et U un ouvert de Rk. L’application ϕ est unefibration localement triviale au-dessus de U si pour tout y ∈ U il existe unouvert U′ ⊂ U contenant y et un difféomorphisme θ tel que le diagrammesuivant commute :

ϕ−1(U′) ϕ−1(y)×U′

U′.ϕ

θ

(x,y)→y

Ainsi ϕ−1(U′) est parfaitement décrit par ϕ−1(y)×V et si U est connexe,alors toutes les fibres de ϕ au-dessus de U sont difféomorphes entre elles.

Théorème 1.2.3 (Théorème de fibration d’Ehresmann). Soient V ⊂ Cn unevariété équidimensionnelle, ϕ : V ∩ Rn → Rk une application polynomialeet U ⊂ Rk un ouvert connexe tels que :

— ϕ est propre ;— U ne contient aucune valeur critique de ϕ.

Alors ϕ est une fibration localement triviale au-dessus de U.

La plupart des algorithmes décrits dans la suite reposent sur cesrésultats et quelques autres propriétés valables en coordonnées géné-riques [13, 174, et leur bibliographie].

Pour f ∈ Q[X1, . . . , Xn] et A ∈ GLn(C), on note f (AX) ou f A lepolynôme obtenu en appliquant le changement de variables A à f . Si Vest la variété associée à des polynômes F ⊂ Q[X1, . . . , Xn], on note VA lavariété V(FA). Pour 1 6 i 6 n, on note πi la projection

πi : (x1, . . . , xn) ∈ Cn → (x1, . . . , xi) ∈ Ci.

Théorème 1.2.4. Soit V ⊂ Cn une variété équidimensionnelle telleque # sing(V) < ∞. Il existe un ouvert de Zariski de GLn(C) tel que pourtout A ∈ GLn(Q) ∩O :

1. Pour tout 1 6 i 6 dim V, crit(πi, VA) est vide ou équidimensionnel dedimension i− 1.

Page 26: Le fichier pdf du livre (EJCIM 2015)

16 Chapitre 1. Algorithmes efficaces en géométrie algébrique réelle

2. Pour tout x ∈ Ci−1, la dimension de crit(πi, VA) ∩ π−1i−1(x) est au

plus 0.

3. Pour tout 1 6 i 6 dim(V)+12 , sing(crit(πi, VA)) est inclus

dans sing(VA).

4. Pour tout 2 6 i 6 dim(V), la restriction de πi−1 à crit(πi, VA) estpropre.

5. Si codim(V) = 1, alors pour tout 2 6 i 6 dim(V), la dimension decrit(π1, crit(πi, VA)) est au plus 0.

1.2.4 Valeurs critiques généralisées

Pour des applications propres sur des variétés lisses, le théorèmede fibration d’Ehresmann donne une propriété topologique importantedes fibres : l’application considérée induit une fibration localement tri-viale au-dessus de l’ouvert des valeurs régulières. Nous verrons que cerésultat fondamental est important pour concevoir des algorithmes pourrésoudre des inégalités polynomiales ou des problèmes d’optimisationglobale (voir 1.5.1).

Néanmoins, il n’est pas toujours possible de se ramener au cas d’uneapplication propre. Sans cette hypothèse, le théorème d’Ehresmann n’estplus valable et il faut prendre en compte des phénomènes asymptotiques.

Par exemple, prenons le polynôme f = X21 +(X1X2− 1)2. Comme f (x)

est strictement positif pour tout x ∈ R2 et comme f(

`1+`2 , `

)tend vers 0

quand ` → ∞, 0 est l’infimum global de la fonction x ∈ R2 7→ f (x). Celaimplique que la fonction n’induit de fibration triviale sur aucun voisinagede 0, alors même que 0 n’est pas une valeur critique (car il n’y a pas desolution à l’équation ∂ f

∂X1= ∂ f

∂X2en laquelle f vaut 0).

Définition 1.2.5. [130] Soit f ∈ Q[X1, . . . , Xn]. Un nombre c ∈ C (resp. c ∈ R)est une valeur critique asymptotique de l’application x ∈ Cn → f (x) (resp. x ∈Rn → f (x)) s’il existe une suite de points (x`)`∈N ⊂ Cn (resp. (x`)`∈N ⊂ Rn)telle que :

1. f (x`) −→`→∞

c ;

2. ‖x`‖ −→`→∞

∞ ;

3.(

Xi∂ f

∂Xj

)(x`) −→

`→∞0 pour tout (i, j) ∈ 1, . . . , n2.

L’ensemble des valeurs critiques généralisées de f est l’union des ensembles desvaleurs critiques et des valeurs critiques asymptotiques.

Page 27: Le fichier pdf du livre (EJCIM 2015)

1.2. Objets de base : algorithmes et bornes 17

FIGURE 1.2 – Exemple avec f = X1(X1X2 − 1). Les courbes f−1(e) ∩ R2

pour e < 0 sont représentées en rouge, pour e > 0 en bleu et pour e = 0en noir. La courbe verte représente le lieu des points critiques de l’applica-tion (x1, x2)→ x1 − x2 quand e varie.

Dans la suite, on note f un polynôme de Q[X1, . . . , Xn] et D son degrétotal.

Théorème 1.2.6. [130] Soit K( f ) l’ensemble des valeurs critiques généralisées del’application x ∈ Cn → f (x). C’est un ensemble algébrique fini de cardinalité auplus Dn − 1.

De plus, l’application x ∈ Cn → f (x) (resp. x ∈ Rn → f (x)) induit unefibration localement triviale au-dessus de C \ K( f ) (resp. R \ K( f )).

Pour illuster ce résultat, considérons le polynôme f = X1(X1X2 − 1),voir la figure 1.2. La variété f−1(0) ∩R2 a trois composantes connexes,alors que f−1(e) ∩R2 en a deux si e 6= 0. Donc pour tout intervale ]a, b[contenant 0, l’application x ∈ R2 → f (x) n’est pas une fibration localeau-dessus de ]a, b[. On vérifie facilement que 0 n’est pas une valeur cri-tique de l’application. Cependant, la restriction d’une projection générique,(x1, x2) → x1 − x2 par exemple, à f−1(e), pour e 6= 0, a deux points cri-tiques. Quand e→ 0, ces points critiques divergent.

Le même comportement apparaît avec le polynôme f = X21 + (X1X2−

1)2, voir la figure 1.3. Pour e ∈ R, l’ensemble des solutions du système

f − e =∂ f

∂X1+

∂ f∂X2

= 0

Page 28: Le fichier pdf du livre (EJCIM 2015)

18 Chapitre 1. Algorithmes efficaces en géométrie algébrique réelle

FIGURE 1.3 – Exemple f = X21 + (X1X2 − 1)2. Le plan vert est le plan e = 0. La

courbe rouge est le lieu des points critiques de la projection (x1, x2) → x1 − x2,à e fixé.

est crit(π, V( f − e)), où π est la projection (x1, x2) → x1 − x2. Quand evarie, ces points critiques peuvent diverger.

On observe que 0 est le point où la restriction de la projec-tion (x1, x2, e) → e à la variété définie par f − E = ∂ f

∂X1+ ∂ f

∂X2, où E

est une nouvelle variable, n’est pas propre.Ce phénomène est étudié et généralisé dans [170] pour concevoir un al-

gorithme qui étant donné f ∈ Q[X1, . . . , Xn] calcule un polynôme h ∈ Q[E]dont les racines sont des valeurs critiques asymptotiques de l’applica-tion x ∈ Cn → f (x).

Théorème 1.2.7. [170] Pour A ∈ GLn(Q), notons CA l’adhérence de Zariski del’ensemble des solutions du système

f A − E =∂ f A

∂X2= · · · = ∂ f A

∂Xn= 0,

∂ f A

∂X16= 0.

Soit ϕ la projection (x1, . . . , xn, e)→ e. Pour A générique (c’est-à-dire pour A ∈GLn(Q)∩O pour un certain ouvert de ZariskiO de Mn(C)), les valeurs critiques

Page 29: Le fichier pdf du livre (EJCIM 2015)

1.2. Objets de base : algorithmes et bornes 19

asymptotiques de x ∈ Cn → f (x) sont contenues dans le lieu des points de C

au-dessus desquels la restriction de ϕ à CA n’est pas propre.

Soit ϕi la projection (x1, . . . , xn, e)→ (x1, . . . , xi, e). La preuve du théo-rème ci-dessus repose la propreté de la restriction de ϕi à crit(ϕi+1, V( f A −E)), pour une matrice A ∈ GLn(Q) générique, voir le théorème 1.2.4. Ilest ensuite facile de concevoir un algorithme calculant l’ensemble des va-leurs critiques généralisées de l’applications x ∈ Cn → f (x). Dans [126], lanotion de valeur critique généralisée est étendue aux applications polyno-miales ϕ : V → Ck quand V est lisse et équidimensionnelle.

1.2.5 Résolution des systèmes polynomiaux : le cas de la dimen-sion nulle

La plupart des algorithmes décrits dans la suite reposent sur la résolu-tion de systèmes polynomiaux de dimension nulle. Comme l’objectif estd’obtenir les solutions réelles, il est utile de donner la résolution sous laforme d’une paramétrisation rationnelle des solutions complexes. Ainsi,un ensemble fini de points est représenté avec des polynômes univariés àcoefficients rationnels [15, chap. 12, p. ex.].

Concrètement, soient f1, . . . , fp ∈ Q[X1, . . . , Xn] des polynômes et Dile degré de fi. Rappelons que le système f1 = · · · = fp = 0 est de dimensionnulle s’il n’a qu’un nombre fini de solutions dans Cn. Supposons que c’est lecas et notons Z l’ensemble fini V( f1, . . . , fp). Il existe une forme linéaire τ =τ1X1 + · · · + τnXn et des polynômes Q = (q, q0, . . . , qn) dans Q[T] telsque Z est défini par

q(τ) = 0, Xi = qi(τ)/q0(τ) pour 1 6 i 6 n.

On peut toujours choisir deg q = #Z et deg qi < deg q. Dans ce cas, Q est ap-pelé paramétrisation zéro-dimensionnelle. Elle peut être obtenue par différentsmoyens (bases de Gröbner, chaines régulières, résolution géométrique), cha-cun ayant des avantages et des inconvénients. Ce texte traitera seulementdes bases de Gröbner et des algorithmes de résolution géométrique.

Bases de Gröbner et algèbre linéaire. La manière classique d’obtenirces paramétrisations passe par les bases de Gröbner [41, 83, 84]. En ef-fet, l’anneau quotient Q[X1, . . . , Xn]/〈 f1, . . . , fp〉 est un espace vectorielde dimension finie. La possibilité de pouvoir calculer, grâce aux bases deGröbner, des formes normales modulo 〈 f1, . . . , fp〉 permet de ramener lecalcul d’une paramétrisation rationnelle la résolution d’équations linéairesdans cet espace vectoriel.

Page 30: Le fichier pdf du livre (EJCIM 2015)

20 Chapitre 1. Algorithmes efficaces en géométrie algébrique réelle

Le calcul d’une base de Gröbner se ramène au calcul de la forme éche-lonnée de matrices de Macaulay en différents degrés [132, 83, 84, p. ex.].Les colonnes des matrices de Macaulay correspondent à des monômesd’un certain degré et chaque ligne est formée des coefficients d’un poly-nôme générateur multiplié par un monôme adéquat. Les monômes sontordonnés suivant une convention précise [59]. Cet ordre monomial estimportant, plusieurs ordres monomiaux existent. Certains permettent d’éli-miner des variables, c’est-à-dire de calculer une base de Gröbner d’un idéaldu type 〈 f1, . . . , fp〉 ∩Q[X1, . . . , Xi], appelé idéal d’élimination.

La taille de la plus grande matrice de Macaulay utilisée dépend duplus grand degré qui doit être pris en compte. Ce degré est appelé degré derégularité de l’idéal considéré et est noté Dreg.

La complexité du calcul d’une base de Gröbner pour des polynômesgénériques est O

((n+Dreg

n )ω)

. Et comme expliqué ci-dessus, le reste du cal-cul d’une paramétrisation rationnelle est obtenu avec de l’algèbre linéairedans Q[X1, . . . , Xn]/〈 f1, . . . , fp〉. La dimension de cet espace vectoriel est,par définition, le degré de l’idéal 〈 f1, . . . , fp〉. C’est aussi le nombre desolutions complexes du système, comptées avec multiplicité.

Dans la suite, nous exploiterons aussi les bases de Gröbner pour descalculs de nature géométrique, comme le calcul de l’adhérence de Zariskide la projection d’une variété (ce qui revient à calculer une base d’unidéal d’élimination), ou encore de l’adhérence de Zariski de la différenceensembliste de deux variétés (ce qui revient à calculer une base d’un idéalsaturé par un autre).

Actuellement, le programme FGb, écrit par J.-C. Faugère pour le calculdes bases de Gröbner permet de résoudre des systèmes avec plusieursmilliers de solutions.

Résolution géométrique. L’algorithme de résolution géométrique [101,133, et leurs bibliographies] est un algorithme probabiliste et incrémentalcapable de tirer parti d’une eventuelle procédure d’évaluation rapide despolynômes donnés en entrée. Ainsi, les polynômes ne sont pas donnés sousla forme d’une combinaison linéaire de monômes mais d’un programmed’évaluation (straight line program) pour les polynômes ( f1, . . . , fp) donnésen entrée. L’algorithme calcule une paramétrisation rationnelle des zérosd’un système de dimension nulle en intersectant chaque V( f1, . . . , fi) avecun sous-espace affine générique de dimension n− i.

Décrivons brièvement l’algorithme quand les polynômes en en-trée forment une intersection complète réduite (c’est-à-dire tous lesidéaux 〈 f1, . . . , fi〉 sont radicaux et équidimensionnels de codimen-

Page 31: Le fichier pdf du livre (EJCIM 2015)

1.2. Objets de base : algorithmes et bornes 21

sion i). Notons Vi la variété V( f1, . . . , fi). L’algorithme choisit n hyper-plans H1, . . . , Hn génériques. À l’étape i, on dispose d’une paramétrisationrationnelle de Vi ∩ H1 ∩ · · · ∩ Hn−i. La matrice jacobienne de ( f1, . . . , fi)est evaluée en ces points et une méthode de Newton symbolique (ouremontée de Hensel) est utilisée pour calculer une paramétrisation dela courbe Vi ∩ H1 ∩ · · · ∩ Hn−i−1. On calcule ensuite l’intersection decette courbe avec V( fi+1) pour obtenir une paramétrisation rationnellede Vi+1 ∩ H1 ∩ · · · ∩ Hn−i−1. Et on itère.

Soient L la longueur du programme d’évaluation pour ( f1, . . . , fp)et D le degré maximum des polynômes de départ. Dans le cas général,l’algorithme termine en

O(p log(D)n4(nL + n4)M(Dn+1)3)

opérations artihmétiques [133]. Dans le cas où le système de départ définitune intersection complète réduite, la complexité est

O(p(nL + n4)M(Dδ)2),

où δ est le nombre maximum de points dans les intersections Vi ∩ H1 ∩· · · ∩ Hn−i. Cet algorithme peut aussi prendre en compte les inéquationspolynomiales.

1.2.6 Bornes sur le degré et calcul des points critiques

Borne de Bézout. Soit V ⊂ Cn une variété de dimension d. Son degré,noté deg V, est le cardinal de l’intersection de V avec d hyperplans géné-riques. Soit W une autre variété. L’inégalité de Bézout affirme que

deg(V ∩W) 6 deg V · deg W.

Quand V est définie par p équations polynomiales de degré au plus D,alors on obtient que deg V 6 Dp.

Heintz a démontré la variante suivante. Le degré fort d’une variété V,noté Sdeg V, est la somme des degrés de ses composantes irréductibles.Si V = V1 ∩V2 ∩ · · · ∩Vr, on a alors

Sdeg(V) 6 Sdeg(V1)maxi

(Sdeg(Vi))r−1 .

D’autres bornes de ce type existent selon la structure du système considéré.Concentrons-nous maintenant sur les bornes pertinentes pour les pointscritiques.

Page 32: Le fichier pdf du livre (EJCIM 2015)

22 Chapitre 1. Algorithmes efficaces en géométrie algébrique réelle

Bornes sur le degré des points critiques. Soient f1, . . . , fp des polynômesde Q[X1, . . . , Xn], Di = deg fi et D = maxi(deg fi). On note

Dr(n1, . . . , nk) = ∑i1+···+ik=r

ni11 · · · n

ikk .

Théorème 1.2.8. Si les polynômes f1, . . . , fp sont génériques, alors le degréde l’ensemble des points critiques de la projection (x1, . . . , xn) → x1 res-treinte à la variété algébrique définie par f1 = · · · = fp = 0 est bornépar D1 · · ·DpDn−p(D1 − 1, . . . , Dp − 1).

La borne ci-dessus est optimale : si les polynômes sont aléatoires, alorselle est atteinte. En particulier, quand D = 2, la borne est polynomiale en net simplement exponentielle en p.

Complexité du calcul des points critiques. Le lecteur pourra s’exercer endémontrant des bornes de complexité pour le calcul d’une représentationrationnelle des points critiques en utilisant leur caractérisation algébriqueet la complexité de la résolution géométrique.

Obtenir des bornes de complexité pour le calcul des points critiquesavec des bases de Gröbner est plus délicat. L’énoncé suivant est démontrédans [124].

Théorème 1.2.9. Soit f1, . . . , fp ∈ Q[X1, . . . , Xn] de degré D exactement. Lavariété crit(π1, V) est définie par les polynômes

f1, . . . , fp, jac2( f1, . . . , fp).

Notons I l’idéal engendré. Si les fi sont génériques, alors— le degré de régularité Dreg est 6 D(p− 1) + (D− 2)n + 2 ;— si D = 2, alors le calcul d’une base de Gröbner de I peut se faire

en O(n2pω) opérations dans Q ;— si D > 2 et si p est fixé, alors le calcul d’une base de Gröbner de I peut se

faire en O(n−12 ((D− 1)e)nω) opérations arithmétiques.

1.3 Calcul d’au moins un point par composanteconnexe

Cette partie décrit des algorithmes pour calculer au moins un point parcomposante connexe d’un ensemble algébrique réel donné. L’accent est missur les situations faciles, où l’ensemble considéré satisfait des hypothèses

Page 33: Le fichier pdf du livre (EJCIM 2015)

1.3. Calcul d’au moins un point par composante connexe 23

supplémentaires, comme la lissité. La plupart des algorithmes présentéssont inspirés de [172].

Le cas des ensembles semi-algébriques est traité par une procédurecombinatoire qui permet de ramener le problème à plusieurs problèmes decalculs de points dans les composantes connexes des ensembles algébriques.Nous commencerons par décrire cette procédure en s’inspirant de [15,chap. 13].

Ensuite nous traiterons des ensembles algébriques réels dans le cas oùils sont la trace réelle d’une intersection complète réduite. Ce paragrapheexpliquera comment l’utilisation des points critiques permet d’obtenir desalgorithmes efficaces pour le problème du calcul d’au moins un point parcomposante connexe.

Enfin, nous montrerons comment traiter les cas singuliers, d’aborddans le cas d’une seule équation, puis en donnant un aperçu des méthodespour le cas général.

En pratique, les algorithmes présentés ici peuvent résoudre en pratiquedes problèmes à 10 variables.

1.3.1 Réduction au cas algébrique

Soit S ⊂ Rn un ensemble semi-algébrique défini par des équations

f1 = · · · = fp = 0, g1 > 0, . . . , gk > 0,

où les fi et les gi sont des polynômes de Q[X1, . . . , Xn].

Théorème 1.3.1. Soit C une composante connexe de S . Il existe un en-semble i1, . . . , i` et une composante connexe C′ de l’ensemble défini par

f1 = · · · = fp = gi1 = · · · = gi` = 0

telle que C′ ⊂ C.

Démonstration. Soit i1, . . . , i` un sous-ensemble maximal, pour l’inclu-sion, de 1, . . . , k tel que les gi1 , . . . , gi` ont une racine commune dans C,notée x. Comme x ∈ C ⊂ S , et par maximalité de l’ensemble d’indices, ilsuit que gj(x) > 0 si j 6∈ i1, . . . , i`.

Soit C′ la composante connexe contenant x de l’ensemble algébriquedéfini par f1 = · · · = fp = gi1 = · · · = gi` = 0. Montrons que C′ ⊂ C.Comme C′ est connexe, il suffit de montrer que C′ est inclus dans S , c’est-à-dire que gj(x) > 0 pour tout x′ ∈ C′ et tout j 6∈ i1, . . . , i`.

Supposons qu’il existe x′ ∈ C′ et j 6∈ i1, . . . , i` tels que gj(x′) < 0.Comme C′ est un connexe semi-algébrique, il est aussi connexe par arc,

Page 34: Le fichier pdf du livre (EJCIM 2015)

24 Chapitre 1. Algorithmes efficaces en géométrie algébrique réelle

donc il existe un chemin continu γ : [0, 1]→ C′ tel que γ(0) = x et γ(1) =x′. Par le théorème des valeurs intermédiaires, il existe un t ∈ [0, 1] telque gj(γ(t)) = 0. Soit t0 le plus petit élément de [0, 1] tel qu’il existeun s tel que gs(γ(t0)) 6 0. Par construction, γ(t) ∈ S pour tout t ∈[0, t0]. Par connexité de C, γ(t0) ∈ C, ce qui contredit la maximalité del’ensemble 1, . . . , k : on peut lui adjoindre s.

Ainsi, pour calculer un point dans chaque composante connexe de S ,il suffit de calculuer au moins un point par composante connexe pour lesensembles algébriques définis par les systèmes

f1 = · · · = fp = gi1 = · · · = gi` = 0

pour 1 6 ` 6 k et i1, . . . , i` ⊂ 1, . . . , k.Le cas des semi-algébriques définis avec des inégalités strictes est un

peu plus difficile. Supposons que S ⊂ Rn est défini par

f1 = · · · = fp, g1 > 0, . . . , gk > 0,

où les fi et les gi sont des polynômes de Q[X1, . . . , Xn]. Pour e > 0, onnote Se l’ensemble semi-algébrique défini par

f1 = · · · = fp, g1 > e, . . . , gk > e.

Clairement, Se ⊂ S .Il existe un réel e > 0 tel que toute composante connexe C de S

est d’intersection non-vide avec Se. Donc pour un tel e, la donnée d’unpoint par composante connexe de Se permet d’obtenir au moins un pointpar composante connexe de S . La preuve est laissée en exercice. On peuttrouver un tel e de différentes manières ; nous n’en parlerons pas dansce cours. Ce qu’il faut retenir est que le calcul d’au moins un point parcomposante connexe des semi-algébriques se ramène au calcul d’au moinsun point par composante connexe des ensembles algébriques.

1.3.2 Le cas équidimensionnel lisse

Soient f1, . . . , fp des polynômes de Q[X1, . . . , Xn]. Supposons quel’idéal qu’ils engendrent soit radical et que V( f1, . . . , fp), noté V, soit unevariété équidimensionnelle lisse de dimension d. Notons qu’on ne sup-pose pas V ∩Rn compact, crit(π1, V) n’intersecte donc pas nécessairementtoutes les composantes connexes de V ∩Rn.

Page 35: Le fichier pdf du livre (EJCIM 2015)

1.3. Calcul d’au moins un point par composante connexe 25

Idée géométrique. Soit C une composante connexe de V ∩ Rn et sup-posons que πi(C) est fermé (pour la topologie classique) pour tout 1 6i 6 d. On peut montrer que dans ce cas, la frontière de πi(C) est conte-nue dans πi(crit(πi, C)). Ainsi, si la frontière de πi(C) n’est pas vide,alors crit(πi, C), qui n’est autre que C ∩ crit(πi, V), n’est pas vide nonplus. Si πi(C) = Ri, alors la frontière de πi est vide.

Soit i0 le plus grand entier tel que πi0(C) = Ri0 ; on pose i0 = 0si πi(C) 6= R. Pour tout y ∈ Ri0 , l’intersection π−1

i0(y) ∩ C n’est pas vide et

son image par πi0+1 est fermée. On en déduit que π−1i0

(y) ∩ crit(πi0+1, C)n’est pas vide.

Ainsi, si πi(C) est fermé pour tout 1 6 i 6 d et pour toute compo-sante connexe C de V ∩Rn, on peut calculer un point par composanteconnexe de V ∩Rn en considérant π−1

i−1(0) ∩ crit(πi, V) et crit(π1, V). Sices ensembles algébriques sont de dimension nulle, on peut isoler leurspoints.

La figure 1.4 illustre la procédure. La courbe bleue est l’hyperboledéfinie par X1X2 − 1 = 0. En utilisant la caractérisation algébrique despoints critiques donnée dans la partie précédente, on voit facilement que larestriction de π1 à l’hyperbole n’a pas de point critique. Notons que l’imagede chacune des composantes connexes de la courbe par π1 est une demi-droite ouverte. Si on utilise la projection (x1, x2)→ x1 + x2, alors l’imagede chacune des composantes connexes est la droite réelle toute entière ; onpeut donc calculer un point par composante en calculant la fibre au-dessusd’un point quelconque. Si on utilise la projection (x1, x2)→ x1 − x2, alorsla projection a deux points critiques, un sur chacune des composantes.

Emploi de la propreté de certaines projections. Comme on vient de levoir, il est important que pour toute composante connexe C de V ∩Rn etpour tout 1 6 i 6 d, la frontière de πi(C) soit contenue dans πi(crit(πi, C)).C’est le cas pour tout 2 6 i 6 d si la restriction de πi−1 à crit(πi, V) estpropre [172, prop. 4].

Cette condition n’est pas toujours satisfaite, mais elle l’est toujours encoordonnées génériques, par le théorème 1.2.4 (voir aussi [172, théorème 1]).Pour toute matrice A, notons P(A) la propriété « pour tout 1 6 i 6 d + 1,la restriction de πi−1 à crit(πi, VA) est propre ».

Théorème 1.3.2. [172] Soit A ∈ GLn(C) telle que P(A) est vraie. Pour 1 6i 6 d + 1, les ensembles algébriques crit(πi, VA) ∩ π−1

i−1(0) sont vides ou dedimension nulle. Leur union coupe chaque composante connexe de VA ∩Rn.

Ainsi, l’algorithme consiste à trouver une matrice A vérifiant P(A)

Page 36: Le fichier pdf du livre (EJCIM 2015)

26 Chapitre 1. Algorithmes efficaces en géométrie algébrique réelle

x

y

(a) Avec la projection (x1 , x2)→ x1 + x2

x

y

(b) Avec la projection (x1, x2)→ x1 − x2

FIGURE 1.4 – Calcul d’au moins un point par composante connexe par différentesprojections

puis à calculer les solutions des systèmes polynomiaux définissantles crit(πi, VA) ∩ π−1

i−1(0).

Bornes sur le degré. Notons Di = deg fi et D = max16i6p Di. Soit ϕi laprojection (x1, . . . , xn)→ xi. On vérifie que

crit(πi, VA) ∩ π−1i−1(0) = crit(ϕi, VA ∩ π−1

i−1(0)).

Cette égalité permet de donner des bornes sur le degré des sections de va-riétés polaires qui apparaissent dans le théorème 1.3.2. Supposons d’abordque d = n− p. Dans ce cas, le théorème 1.2.8 s’applique et on obtient que

deg(

crit(πi, VA) ∩ π−1i−1(0)

)6 D1 · · ·DpDn−i−p−1(D1 − 1, . . . , Dp − 1).

Notons Di cette borne. On vérifie que

Di 6 D1 · · ·Dp(D− 1)n−i−p(

n− i− 1p− 1

).

Dans le cas de systèmes quadratiques où p est fixé et n varie, on endéduit que la sortie de l’algorithme est de taille polynomiale en le nombrede variables. Ceci montre que par rapport à la taille de la sortie, l’algorithmese comporte bien puisque sa complexité coïncide avec les meilleures bornesconnues dans ce cas [106].

Page 37: Le fichier pdf du livre (EJCIM 2015)

1.3. Calcul d’au moins un point par composante connexe 27

Si d < n − p, on peut utiliser une variante des bornes de Bézout,appelées bornes de Bézout bi-homogènes [175], et on obtient la borne

deg(crit(ϕi, VA ∩ πi−1(0))

)6 D1 · · ·Dp(D− 1)n−p

(n− 1p− 1

).

Notons D′i cette borne. Le coût total de l’algorithme est le coût de la résolu-tion de d + 1 systèmes de dimension nulle de degré D′1, . . . , D′d+1 respec-tivement (ou D1, . . . , Dd+1 dans le cas générique). Si la résolution a unecomplexité polynomiale en le degré, alors le coût total est

DO(1)1 + · · ·+ DO(1)

n−p+1.

En appliquant le théorème 1.2.8 au calcul des points critiques de la fonctionx → ‖x‖2, on obtient un seul système de degré au plus D1 + · · ·+ Dn−p+1,

ce qui donne une complexité(D1 + · · ·+ Dn−p+1

)O(1). Ainsi, les propriétésde propreté des projections permettent de diviser les calculs dans les caslisses et équidimensionnels.

Analyse de complexité. La complexité de l’algorithme décrit ci-dessuspeut-être analysée à l’aide des bornes de complexité données par la résolu-tion géométrique des systèmes de dimension nulle.

L’algorithme de résolution géométrique est incrémental. Dansl’ordre, on prendra en compte les polynômes f A

1 , . . . , f Ap puis les po-

lynômes de jac( f1, . . . , fp) nécessaires pour définir crit(πd, VA), puis ceuxpour crit(πd−1, VA) et ainsi de suite jusqu’à crit(π1, VA). Soit G la suiteordonnée de polynômes ainsi obtenue et soit S1 = ( p

n−d)(n

n−d) le nombrede mineurs nécessaires. Notons δ le plus grand des degrés des idéauxengendrés par les k permiers termes de G, pour un certain k. Si les fi sontde degré au plus D, alors δ 6 n(n− d)nDn [133, p. 4] (la borne sur le degrédu lieu des points critiques ne s’applique pas car on prend en compte lespolynômes un par un). Le résultat de complexité est le suivant.

Théorème 1.3.3. [172, Theorem 3] Soit f1, . . . , fp des polynômes deQ[X1, . . . , Xn] de degré au plus D donnés par un programme d’évaluation(straight line program) de taille L. Supposons que l’idéal 〈 f1, . . . , fp〉 soitradical, équidimensionnel et que la variété V = V( f1, . . . , fp) ⊂ Cn soit lisse dedimension d. Il existe un algorithme probabiliste calculant un ensemble fini Zde Cn, sous la forme de paramétrisations zéro-dimensionnelles dont on considèrela réunion des images, tel que Z ∩ Rn intersecte chaque composante connexede V ∩Rn. En cas de succès, il effectue

O((p + S1) log(D)n5(S1L(n− d)4 + n3(n− d)4)M (D(n− d)δ)3

)

Page 38: Le fichier pdf du livre (EJCIM 2015)

28 Chapitre 1. Algorithmes efficaces en géométrie algébrique réelle

opérations arithmétiques dans Q.

L’aspect probabiliste vient du changement de variables aléatoire ap-pliqué au système pour le mettre en position générique, et aussi des algo-rithmes de [133]. D’après le théorème 1.2.4, la probabilité de succès dépenddu choix de points dans certains ouverts de Zariski.

1.3.3 Méthodes de déformation et variétés singulières

Étudions maintenant les algorithmes pour calculer au moins un pointpar composante connexe d’une hypersurface singulière. Les méthodes dedéformation sont utilisées pour traiter les cas singuliers en bonne com-plexité théorique. L’idée est simple. Étant donné un cas singulier, on peutle régulariser en introduisant un paramètre formel infinitésimal qui rendl’ensemble considéré lisse ; on calcule ensuite un point par composanteconnexe de cet ensemble lisse et ont fait tendre le paramètre vers 0 pourobtenir finalement un point par composante connexe de l’ensemble dedépart.

Avant d’aller plus loin, nous présentons la notion d’infinitésimal.

Préliminaires sur les infinitésimaux. Un infinitésimal ε est un élémenttranscendant sur R tel que 0 < ε < x pour tout x ∈ R. Soient K uncorps contenant Q et ε un infinitésimal. Notons K〈ε〉 le corps des sériesde Puiseux en ε. On dit qu’un élément z = ∑i>i0 aiε

i/q de K〈ε〉 est borné(sur K) si i0 > 0. On dit qu’un n-uplet (z1, . . . , zn) d’éléments de K〈ε〉 estborné (sur K) si chacun des zi l’est. Pour tout élément borné z = ∑i>i0 aiε

i/q

de K〈ε〉, on note limε z le coefficient constant a0. Pour un n-uplet borné z =(z1, . . . , zn) de K〈ε〉n, on note limε z le n-uplet (limε z1, . . . , limε zn). Pourun sous-ensemble A ⊂ K〈ε〉, on note

limε

A =

limε

z∣∣∣ z ∈ A et z borné

.

Étant donné un ensemble A ∈ Kn défini par une formule Φ sans quan-tificateur, on note ext(A, K〈ε〉) l’ensemble des solutions de Φ dans K〈ε〉.Voir [15, chap 2.6] pour des définitions plus précises de ces notions.

L’idée de la procédure de déformation peut maintenant être expliquéeplus clairement. Soient f un polynôme de Q[X1, . . . , Xn] de degré D et V ⊂Cn la variété V( f ). On note Vε l’ensemble algébrique de C〈ε〉 défini parl’équation f = ε.

Lemme 1.3.4. L’ensemble algébrique Vε est lisse.

Page 39: Le fichier pdf du livre (EJCIM 2015)

1.3. Calcul d’au moins un point par composante connexe 29

Démonstration. Considérons l’application x ∈ Cn → f (x). Par le théorèmede Sard, l’ensemble des valeurs critiques est un ensemble Q-algébrique fini.Comme ε est transcendant, ce n’est pas une valeur critique. En particulier,le gradient de f ne s’annule pas sur f−1(ε). La conclusion suit.

Idée géométrique et aperçu de l’algorithme. De manière analogue à lasection 1.3.2, on pourrait vouloir réduire le calcul d’au moins un point parcomposante connexe de V ∩Rn au calcul de limites de certaines sectionsde variétés polaires crit(πi, Vε). Comme dans la section 1.3.2, c’est possiblesous des hypothèses de propreté valables en coordonnées génériques [169].

On pourrait, pour mener à bien la méthode, considérer l’infinitésimal εcomme un paramètre formel et procéder aux calculs sur le corps Q(ε) puisprendre la limite ε→ 0. Cependant, le calcul est considérablement alourdicar l’arithmétique dans le corps Q(ε) devient bien plus coûteuse que celledans Q.

C’est pourquoi on évite les calculs dans Q(ε) pour calcu-ler limε crit(p1, VA

ε ), pour A ∈ GLn(Q). Soit L une nouvelle indéterminéeet considérons le système

∂ f A

∂X2= · · · = ∂ f A

∂Xn= 0, L

∂ f A

∂X1= 1.

Notons L(π1, VA) ⊂ Cn+1 l’ensemble solution de ce système, πX la pro-jection Cn+1 → Cn sur l’espace des X et C(π1, VA) l’adhérence de Za-riski de πX(L(π1, VA)). On vérifie facilement que limε crit(π1, VA

ε ) est in-clus dans C(π1, VA) ∩ V : d’une part, la restriction de πX à L(π1, VA)

n’est pas propre au dessus des points de limε crit(π1, VAε ) tels que ∂ f A

∂X1=

0 ; d’autre part, les points de limε crit(π1, VAε ) tels que ∂ f A

∂X16= 0 sont

dans πX(L(π1, VA)).Le degré de C(π1, VA) ∩ V est borné par D(D − 1)n−1 et on peut

obtenir une représentation algébrique de cette variété avec des bases deGröbner (et un ordre monomial par bloc) ou bien des résolutions géo-métriques [101, 176]. Passons maintenant à la description algébrique dessections des variétés polaires considérées.

Pour A ∈ GLn(Q) et 0 6 i 6 n− 2, notons IAi ∈ Q[X, L] l’idéal

IAi = 〈X1, . . . , Xi, L

∂ f A

∂Xi+1− 1,

∂ f A

∂Xi+2, . . . ,

∂ f A

∂Xn〉

et JAi l’idéal IA

i ∩Q[X1, . . . , Xn]. On note aussi JAn−1 = 〈X1, . . . , Xn−1, f A〉.

Page 40: Le fichier pdf du livre (EJCIM 2015)

30 Chapitre 1. Algorithmes efficaces en géométrie algébrique réelle

Théorème 1.3.5. [169] Il existe un ouvert de Zariski O ∈ Mn(C) non vide telque pour tout A ∈ GLn(Q) ∩O, on ait :

— pour 0 6 i 6 n− 2, IAi est de dimension au plus 1 ;

— pour 0 6 i 6 n− 1, JAi est de dimension au plus 0 ;

— pour 0 6 i 6 n− 1, la variété V(JAi ) contient crit(πi, VA

ε ) ∩ π−1i−1(0) ;

— l’union des variétés V(JA0 ), . . . , V(JA

n−1) coupe chaque composanteconnexe de V ∩Rn.

Comme dans la section 1.3.2, l’ouvertO correspond à une condition depropreté (qui peut être vérifiée algorithmiquement). Ce résultat permet dedonner un algorithme pour le calcul d’au moins un point par composanteconnexe reposant sur le calcul de paramétrisations rationnelles des JA

i , soitpar des bases de Gröbner, soit par des résolutions géométriques.

Bornes sur le degré. Le degré de JA0 est toujours moindre que la borne

de Bézout D(D− 1)n−1 dès que dim(sing VA) > 0. C’est ce que nous mon-trons ici. Soit d la somme des degrés des composantes équidimensionnellesde sing(VA) de dimension au moins 1. Notons C l’adhérence de Zariski del’ensemble des solutions du système

∂ f A

∂X2= · · · = ∂ f A

∂Xn= 0,

∂ f A

∂X16= 0.

C’est une courbe de degré fort au plus (D − 1)n−1 − d. Ainsi, le degréde C ∩VA est borné par D

((D− 1)n−1 − d

), ce qui est toujours plus petit

que D(D− 1)n−1 si d > 0. Cet argument et une analyse soigneuse du degrédes objets intervenant dans le théorème 1.3.5 montre le résultat suivant.

Théorème 1.3.6. [169] Soit H1, . . . , Hn−2 des hyperplans génériques de Qn. Lenombre des composantes connexes de V ∩Rn est majoré par

D(1 + (D− 1) + · · ·+ (D− 1)n−1 − (d0 + · · ·+ dn−2))

où di est la somme des degré des composantes équidimensionnelles de dimensionau moins 1 du lieu singulier de V ∩ (∩i

j=1Hi).

Analyse de complexité. Grâce à l’algorithme de résolution géométriqueet aux résultats de [176] sur le calcul d’une paramétrisation rationnelle desvariétés V(IA

i ) et V(JAi ), on obtient le résultat suivant.

Théorème 1.3.7. [169] Soit f un polynôme de Q[X1, . . . , Xn] de degré D, donnépar un programme d’évaluation (straight line program) de taille L. Il existe un

Page 41: Le fichier pdf du livre (EJCIM 2015)

1.4. Connexité dans les ensembles algébriques réels 31

algorithme probabiliste qui calcule au moins un point par composante connexede V( f ) ∩Rn en

O(n3(L + n2)M(Dδ)3)

opérations arithmétiques dans Q, où δ est majoré par D(D− 1)n−1 est le degrémaximal des variétés intermédiaires apparaissant dans la procédure incrémentale.

Généralisation. Les méthodes expliquées ci-dessus pour les hypersur-faces se généralisent à des variétés quelconques. Soit V ⊂ Cn une variétédéfinie par des équations f1 = · · · = fp = 0, où les fi sont des polynômesde Q[X1, . . . , Xn].

Soient a1, . . . , ap des réels strictement positifs et Sε ⊂ R〈ε〉n l’ensembledes solutions du système

−a1ε 6 f1 6 a1ε, . . . ,−apε 6 fp 6 apε.

Il est clair que ext(V ∩ Rn, R〈ε〉) ⊂ Sε et que V ∩ Rn = limε Sε. Plusprécisément, pour toute composante connexe C de V ∩Rn, il existe descomposantes connexes C1, . . . , Cr de Sε telles que C = limε(C1 ∪ · · · ∪ Cr).

Ainsi, il suffit de calculer au moins un point par composante connexede Sε et de prendre la limite ε → 0 pour obtenir au moins un point parcomposante connexe de V ∩Rn ; et pour ce faire, on utilise la réduction aucas algébrique expliquée en section 1.3.1.

Avec le théorème de Sard, utilisé comme dans la preuve dulemme 1.3.4, on montre que si les ai sont génériques dans Qp, alorsla variété définie par

fi1 − ai1 ε = · · · = fi` − ai`ε = 0

est lisse (et l’idéal engendré par ces équations est radical et équidimension-nel). Le calcul de points critiques sur ces variétés peut aussi être fait enévitant de manipuler ε comme un paramètre formel.

1.4 Connexité dans les ensembles algébriques réels

Les algorithmes pour calculer au moins un point par composanteconnexe des ensembles algébriques (ou semi-algébriques) peuvent calcu-ler un grand nombre de points (∼ 105 par exemple), bien supérieur aunombre des composantes connexes. Il est alors utile de réduire le nombrede points en n’en sélectionnant qu’un par composante. Une manière defaire passe par la résolution de problèmes de connexité : étant donné un

Page 42: Le fichier pdf du livre (EJCIM 2015)

32 Chapitre 1. Algorithmes efficaces en géométrie algébrique réelle

ensemble de points, les grouper selon les composantes connexes auxquellesils appartiennent.

Cette partie traite du calcul de carte routières qui permettent de ré-soudre les problèmes de connexité. Plus particulièrement, on étudie lecas d’un ensemble compact de la forme V ∩Rn où V ⊂ Cn est une va-riété lisse. Autrement dit, on se donne des polynômes F = ( f1, . . . , fp)dans R[X1, . . . , Xn], avec p < n, et on pose les hypothèses suivantes, no-tées (A) :

— l’idéal 〈 f1, . . . , fp〉 est radical ;— V = V( f1, . . . , fp) est équidimensionnelle de dimension n− p ;— sing(V) est fini ;— V ∩Rn est borné.La section 1.4.1 donne la définition originale de la notion de carte rou-

tière et explique quelques ajustements apportés par [174]. La section 1.4.2décrit une variante, d’après [153], de l’algorithme de Canny en com-plexité (nD)O(n(n−p)). Cette variante permet d’atteindre des performancespratiques qui traduisent le gain de complexité obtenu par Canny. Son prin-cipe est d’éviter les calculs dans des extensions algébriques apparaissantdans l’algorithme original de Canny, en les remplaçant par des calculsoù certaines variables sont spécialisées en des nombres rationnels (et lenombre de ces spécialisations est bien maîtrisé).

La section 1.4.3 présente un résultat récent qui donne plus de sou-plesse pour concevoir des algorithmes pour les cartes routières. Ce résul-tat apparaît dans [174], où il a été utilisé pour obtenir un algorithme encomplexité (nD)O(n1,5) ; c’est aussi un élément clé vers des algorithmes encomplexité (nD)O(n log2(n−p)) [175, et sa bibliographie].

La stratégie est similaire pour les deux familles d’algorithmes. Oncommence par calculer un lieu critique (p. ex. une variété polaire) quicoupera chaque composante connexe de V ∩Rn. Cependant ces intersec-tions ne sont pas nécessairement connexes, ce qui pourra être corrigé encoupant V ∩Rn par des espaces linéaires de dimension convenable.

1.4.1 Préliminaires

Les cartes routières ont été définies par Canny comme suit. C’estaussi la définition retenue dans [15]. Soit S ⊂ Rn un ensemble semi-algébrique. Une carte routière pour S , au sens de Canny, est un ensemblesemi-algébriqueR de dimension au plus 1 tel que :

(CR1) R est inclus dans S ;(CR2) l’intersection de chaque composante connexe de S avecR est

non vide et connexe ;

Page 43: Le fichier pdf du livre (EJCIM 2015)

1.4. Connexité dans les ensembles algébriques réels 33

(CR3) pour tout x ∈ R, chaque composante connexe de S ∩(x ×Rn−1) intersecteR.

Nous modifions cette définition, en particulier nous supprimons (CR3)pour les raisons suivantes. Premièrement, le point (CR3) n’est pas inva-riant par changement de coordonnées : il est possible que R soit unecarte routière pour S sans que RA soit une carte routière de SA pourun A ∈ GLn(Q). De plus, l’intérêt de (CR3) est de pouvoir relier deuxpoints en ajoutant de nouvelles composantes à R ; mais nous n’utilisonspas la procédure donnée dans [15] qui utilise ce point.

Rappelons que les algorithmes ci-dessous ne traitent pas des semi-algébriques en général, mais seulement des traces réelles de variétés V ⊂Cn. La définition suivante, comme la précédente, permet de compter lescomposantes connexes de V ∩Rn et de construire un chemin entre deuxpoints d’une même composante. La notion se généralise naturellement àdes objets de dimension supérieure, que notre algorithme calcule aussi.

Une variétéR ⊂ Cn est une carte routière de V si :(CR′1) R est inclus dans V ;(CR′2) l’intersection de chaque composante connexe de V ∩ Rn

avecR∩Rn est non vide et connexe.La carte routière est de dimension i si de plus :

(CR′3) la variétéR est vide ou équidimensionnelle de dimension i.Enfin, il sera utile de disposer d’un ensemble fini P de points de contrôle,par exemple les points dont on veut décider si on peut les relier dans V ∩Rn.Ainsi,R est une carte routière de (V,P) si on a de plus :

(CR′4) P ∩V ∩Rn est inclus dansR.

Représentations rationnelles. Notre algorithme calcule une paramétri-sation rationnelle d’une courbe algébrique. Si Z ⊂ Ce est une courbealgébrique définie sur Q, une paramétrisation rationnelle de dimension 1de Z est la donnée de polynômes Q = (q, q0, . . . , qe) de Q[U, T] et de deuxformes linéaires τ = τ1X1 + · · ·+ τeXe et η = η1X1 + · · ·+ ηeXe à coeffi-cients dans Q, tels que q est unitaire, sans facteur carré et premier avec q0,et tels que Z est l’adhérence de Zariski de l’ensemble des solutions dusystème

q(η, τ) = 0, Xi =qi(η, τ)

q0(η, τ)(1 ≤ i ≤ e), q0(η, τ) 6= 0.

On note Z(Q) la courbe associée aux polynômes Q. Le degré de Z(Q) estnoté δQ. On peut choisir les éléments de Q de degré δ

O(1)Q [176], ce qu’on

Page 44: Le fichier pdf du livre (EJCIM 2015)

34 Chapitre 1. Algorithmes efficaces en géométrie algébrique réelle

fera systématiquement. On peut aussi choisir q de degré au plus δQ parrapport à U et à T.

En dimension 0, un ensemble fini Z ∈ Ce peut être donné par unereprésentation rationnelle Q. On note δQ le cardinal de Z, qui est aussi unmajorant du degré des polynômes de Q. On note encore Z = Z(Q).

En dimension 0 ou 1, on notera Q(X1, . . . , Xe) pour préciser les va-riables utilisées dans la représentation. Par convention, la représentationde l’ensemble vide est Q = (−1).

Comment utiliser une carte routière. Expliquons brièvement commentutiliser la représentation rationnelle de dimension 1 d’une carte routièrepour résoudre des problèmes de connexité. Soit P un ensemble de pointsde contrôle. La paramétrisation Q d’une carte routière pour (V,P) décritseulement un ouvert dense d’une carte routière contenant P . On peutrécupérer les points manquants grâce à des développements en séries dePuiseux aux points où q et q0 s’annulent. Comme les polynômes de Qsont de degré δ

O(1)q , cette opération peut être faite en complexité δ

O(1)Q . On

obtient ainsi une paramétrisation Q′ de dimension 0 des points manquants.Une fois obtenues les représentations Q et Q′, on peut calculer une

décomposition algébrique cylindrique des ensembles définis par Q et Q′.Vu la forme particulière des ensembles, cela peut être effectué en com-plexité δ

O(1)Q . Le calcul des relations d’adjacence entre les cellules de la

décomposition cylindrique est fait en complexité δO(1)Q , encore une fois avec

des développements en séries de Puiseux [178].

1.4.2 Amélioration pratique de l’algorithme de Canny

Considérons un système F = ( f1, . . . , fp) de polynômes dansR[X1, . . . , Xn], vérifiant les hypothèses (A) ainsi qu’un ensemble fini depoints P ⊂ V(F) (cet ensemble nous est donné par une paramétrisationrationnelle). On suppose de plus que sing(V) est vide. Rappelons quesous ces hypothèses, d = n − p est la dimension de V(F) et que pour1 6 i 6 dim(V), crit(πi, V) est défini par les polynômes de F et de jaci+1(F),voir la section 1.2.2.

Notons W2 = crit(π2, V). On appelle conditions (B2) les conditionssuivantes :

— V ∩ π−1d (x) est fini pour tout x ∈ Cd ;

— ou bien W2 est vide, ou bien il est équidimensionnel de dimension 1et W2 ∩ π−1

1 (x) pour tout x ∈ Cd ;— crit(π1, W2) sont finis ;

Page 45: Le fichier pdf du livre (EJCIM 2015)

1.4. Connexité dans les ensembles algébriques réels 35

(a) Algorithme original (b) Algorithme modifié

FIGURE 1.5 – Cartes routières données par l’algorithme de Canny et une variante

— jac(F, jaci+1(F)) est de rang n− i + 1 en tout point de W2 \ sing(V).Par le théorème 1.2.4, les conditions (B2) sont vérifiées en coordonnées gé-nériques. Enfin, on pose C = P ∪ crit(π1, W2), c’est un ensemble fini sousles hypothèses (A) et (B2), Q = π1(C) et VQ = V ∩ π−1

1 (Q). L’algorithmede Canny repose sur le résultat suivant :

Théorème 1.4.1. Sous les hypothèses (A) et (B2), on a :

1. VQ ∪W2 est une carte routière de (V,P) ;

2. VQ est soit vide soit équidimensionnel de dimension (d− 1) ;

3. VQ ∩W2 = W2 ∩ π−11 (Q) est fini ;

4. pour tout x ∈ C, ou bien le système ( f1, . . . , fp, X1 − x) vérifie lesconditions (A), ou bien il est de dimension au plus 0.

Notons que Q est un ensemble fini de C, représenté par un polynômeunivarié Q ∈ Q[X1]. L’algorithme de Canny [42] et ses améliorations [15, etsa bibliographie] utilisent ce théorème de manière récursive et travaillentmodulo Q. Ainsi, le degré de Q joue un rôle important dans les perfor-mances pratiques de l’algorithme.

Seules les racines réelles de Q sont pertinentes. Ainsi, une idée na-turelle, illustrée par la figure 1.5, consiste à isoler les racines réelles ρ1 <· · · < ρ` de Q, à choisir des rationels ri entre elles

ρ1 < r1 < ρ2 < r2 < · · · < ρ`−1 < ρ`,

puis à procéder par récurrence, non pas en coupant par les hyperplans X1 =ρi (figure 1.5a), mais par les hyperplans X1 = ri (figure 1.5b), pour 1 6 i < `.

Page 46: Le fichier pdf du livre (EJCIM 2015)

36 Chapitre 1. Algorithmes efficaces en géométrie algébrique réelle

On note Sep(Q) un tel ensemble de rationnels r1, . . . , r`−1 séparant leséléments réels de Q. Cette idée fonctionne grâce à la variante suivante durésultat de Canny.

Théorème 1.4.2. [153] Sous les hypothèses (A) et (B2), on a :

1. W2 is soit vide soit de dimension 1 ;

2. VSep(Q) ∪W2 est une carte routière de (V,P) ;

3. VSep(Q) est soit vide soit équidimensionnel de dimension (d− 1) ;

4. VSep(Q) ∩W2 = W2 ∩ π−11 (Sep(Q)) est fini ;

5. pour tout r ∈ Sep(Q), le système ( f1, . . . , fp, X1 − r) vérifie les condi-tions (A) et le lieu singulier de V( f1, . . . , fp, X1 − r) est vide.

La démonstration procède comme suit. Soient x ∈ π1(crit(π1, W2))et a > 0 un réel tel que l’intervale ]x− a, x + a[ ne contienne pas d’autreélément de π1(crit(π1, W2)). Il y a une bijection entre les composantesconnexes de V ∩ Rn ∩ π−1

1 (x) et celles de V ∩ Rn ∩ π−11 (]x − a, x + a[).

Ainsi les propriétés de connexité obtenues grâce à la fibre au-dessus de xpeuvent tout aussi bien être obtenues grâce aux fibres au-dessus de x− aet x + a.

Enfin, le principe de l’algorithme est de calculer W2 et Sep(Q) puisd’appliquer récursivement le théorème 1.4.2 à VSep(Q). Pour ce faire, ilfaut s’assurer que VSep(Q) vérifie les conditions (A) et (B2). Pour les pre-mières, c’est le dernier point du théorème. Pour les secondes, il suffit dese placer en coordonnées génériques. Si les coordonnées du système F dedépart sont suffisamment génériques, alors la généricité des coordonnées estautomatique à chaque étape de l’algorithme.

Aperçu de l’algorithme, performances pratiques et complexité. L’en-trée de l’algorithme est un système F ⊂ Q[X1, . . . , Xn] satisfaisant auxconditions (A). La première étape est d’effectuer un changement de coor-données aléatoire pour assurer les propriétés de généricité.

Ensuite, on calcule une paramétrisation de dimension 1 de W2 =crit(π2, V) et un polynôme Q ∈ Q[X1] tel que

V(Q) = π1(crit(π1, V) ∪ crit(π1, W2)).

Puis on calcule Sep(V(Q) ∩R) = r1, . . . , r`−1 et pour chaque 1 6 i <`, on calcule par récurrence une carte routière de F|X1=ri

sous la formed’une paramétrisation R′i(X2, . . . , Xn) de dimension 1 à laquelle on ajoutel’équation X1 = ri. Il suffit ensuite de calculer une paramétrisation de

Page 47: Le fichier pdf du livre (EJCIM 2015)

1.4. Connexité dans les ensembles algébriques réels 37

dimension 1 de Z(R1) ∪ Z(R′1) ∪ · · · ∪ Z(R′`−1), qui est une carte routièrede V(F).

Le nombre ` ci-dessus est O ((nD)n), c’est le degré du polynôme Q.Le nombre d’appels récursifs dépend du nombre de racines réelles dupolynôme Q. À chaque appel récursif, la dimension décroît de 1, ainsi laprofondeur de la récursion est égale à dim V(F).

En utilisant les résultats de complexité de [101] (voir la section 1.2.5),on obtient la borne de complexité suivante.

Théorème 1.4.3. [153] Soit F = ( f1, . . . , fp) ⊂ Q[X1, . . . , Xn] un systèmevérifiant les conditions (A). Supposons de plus que sing(V(F)) = ∅. On peutcalculer une carte routière de dimension 1 de V(F) de degré O((nD)n(n−p))en O(nn+9(nD)nM((nD)n(n−p))3) opérations arithmétiques dans Q, par unalgorithme probabiliste.

L’algorithme ci-dessus a été mis en œuvre. Notre implémentation pré-liminaire utilise FGb pour le calcul des bases de Gröbner et RS pour l’iso-lation des racines réelles des systèmes de dimension 0. Elle peut prendreen charge un grand nombre de variables. Le temps de calcul dépend prin-cipalement de la pronfondeur des appels récursifs et du nombre ` desracines réelles des polynômes Q qui apparaissent. Au cours de l’algorithmeon a toujours toujours ` = O ((nD)n) mais en pratique cette borne estpessimiste et ` est souvent bien plus petit. Le degré de la carte routièrecalculée est O(Ln−p(nD)n), où L est la plus grande des valeurs que prend `.Notre implémentation permet de traiter des systèmes qui restent hors deportée des meilleures implémentations de la décomposition algébriquecylindrique. Il semblerait que les performances de ces dernières dépendentaussi fortement de L.

1.4.3 Pas de bébé – pas de géant pour les hypersurfaces lissesbornées

Pour calculer une carte routière d’un ensemble algébrique de dimen-sion d, tous les algorithmes reposant sur l’approche de Canny commencentpar le calcul d’une courbe critique puis corrigent les propriétés de connexitépar le calcul de cartes routières de sections de dimension d− 1 de V. Laprofondeur des appels récursifs est donc d et cela mène aux résultats décritsprécédemment.

Pour améliorer la complexité, une idée simple consiste à calculerdes lieux critiques de dimension i, pour un i > 1, et à corriger les pro-priétés de connexité par des calculs récursifs sur des sous-variétés de di-mension d − i. Un choix convenable de i peut permettre de réduire la

Page 48: Le fichier pdf du livre (EJCIM 2015)

38 Chapitre 1. Algorithmes efficaces en géométrie algébrique réelle

FIGURE 1.6 – Exemple d’un calcul de carte routière par une stratégie diviser-pour-régner

profondeur de la récurrence et diminuer ainsi la complexité. Pour l’illus-trer, considérons une hypersurface lisse V ⊂ C4 donnée par un certainpolynôme f ∈ Q[X1, . . . , X4] et telle que V ∩ R4 est bornée. Dans la fi-gure 1.6, on représente π3(V) : c’est l’adhérence de la boule rouge privéede la boule verte. L’union des deux sphères délimitantes est l’image par π3de W3 = crit(π3, V).

La ligne verte est l’axe des X1. Soit

Q = π2(crit(π1, V) ∪ crit(π1, W3)) ∩R4.

On observe que W3 ∪ R2 est connexe (malheureusement l’illustrationne peut que montrer que la projection de cet ensemble est connexe),où R2 = V ∩ π−1

2 (Q), en bleu sur la figure. L’ensemble R2 est déjà dedimension 1 tandis que W3 est de dimension 2. On peut donc calculer unecarte routièreR1 de dimension 1 de W3 avec un appel récursif.

Il faut encore ajouter des jointures, en orange sur la figure, pour s’as-surer que R1 ∪ R2 soit une carte routière de V. En fin de compte, grâceà l’utilisation de variétés polaires et de cartes routières en dimensions su-périeures la profondeur de la récurrence est seulement 1, contre 2 pourl’algorithme de Canny sur cet exemple.

Développons cette idée. Considérons un système F = ( f1, . . . , fp)de polynômes dans R[X1, . . . , Xn], vérifiant les hypothèses (A). Rappe-lons que sous ces hypothèses, d = n − p est la dimension de V(F) et

Page 49: Le fichier pdf du livre (EJCIM 2015)

1.4. Connexité dans les ensembles algébriques réels 39

que Wi = crit(πi, V) est défini par les polynômes de F et de jaci+1(F), voirla section 1.2.2. On suppose que d > 2 que 1 < i 6 d.

On appelle (Bi) les conditions suivantes :— V ∩ π−1

d (x) est fini pour tout x ∈ Cd ;— Wi est soit vide soit équidimensionnel de dimension i− 1 et Wi ∩

π−1i−1(x) est fini pour tout x ∈ Cd.

— crit(π1, Wi) sont finis ;— jac(F, jaci+1(F)) est de rang n− i + 1 en tout point de Wi \ sing(V).

Le théorème 1.2.4 assure que ces conditions sont vérifiées en coordonnéesgénériques pour certaines valeurs de p et i, pas toutes.

Soit P un ensemble fini de points de V. On définit enfin C =crit(π1, Wi) ∪ P , c’est un ensemble fini sous les conditions (A) et (Bi),Q = πi−1(C) et VQ = V ∩ π−1

i−1(Q).Théorème 1.4.4. [174] Sous les conditions (A) et (Bi) on a :

1. VQ ∪Wi est une carte routière de (V,P) ;

2. VQ est soit vide soit équidimensionnel de dimension d− i + 1 ;

3. VQ ∩Wi = Wi ∩ π−1i−1(Q) est fini ;

4. pour tout x ∈ Ci−1, le système ( f1, . . . , fp, X1 − x1, . . . , Xi−1 − xi−1)vérifie les conditions (A).

Avec i = 2, on retrouve précisément le théorème 1.4.1. La possibi-lité de choisir i sera utilisée pour réduire la profondeur des appels récur-sifs. Comme au paragraphe précédent, le principe général de l’algorithmedans [174] est de calculer les ensembles Wi et VQ, de mettre à jour lespoints de contrôle en calculant P ′ = P ∪ (VQ ∩Wi), puis de calculer parrécurrence des cartes routièresR1 etR2 pour (VQ,P ′) et (Wi,P ′) respec-tivement. Le résultat suivant assure que R1 ∪ R2 est une carte routièrede (V,P).Proposition 1.4.5. [174] Soient R1 et R2 des ensembles algébriques telsque R1 ∪ R2 est une carte routière de (V,P) et tels que R1 ∩ R2 soit fini.SoientR′1 etR′2 des cartes routières de dimension 1 de (R1, (R1 ∩R2) ∪ P) et(R2, (R1 ∩R2) ∪ P) respectivement. Alors R′1 ∪R′2 est une carte routière dedimension 1 de (V,P).

Aperçu de l’algorithme. L’algorithme principal décrit dans [174, §5.5]prend en entrée un polynôme f ∈ Q[X1, . . . , Xn], une paramétrisa-tion B(X1, . . . , Xe) de dimension 0 définissant un ensemble fini B ⊂ Ce

et une autre P(X1, . . . , Xn) définissant un ensemble fini P ⊂ Cn de pointsde contrôle. Le couple ( f ,B) définit la variété VB = V( f ) ∩ π−1

e (B) de

Page 50: Le fichier pdf du livre (EJCIM 2015)

40 Chapitre 1. Algorithmes efficaces en géométrie algébrique réelle

dimension d = n− e− 1 ; on suppose que les conditions (A) sont vérifiées.L’algorithme calcule une carte routière pour (VB ,P). Ce paragraphe décritles grandes étapes.

Soit i = b√

dc. Par le théorème 1.2.4, on peut supposer que VB vérifieles conditions (Bi), quitte à effectuer un changement de variable géné-rique conservant X1, . . . , Xe. On peut ainsi appliquer le théorème 1.4.4.Comme πe(VB) est de dimension 0, on peut l’appliquer à chacune desfibres de πe, ce qui revient à remplacer dans l’énoncé du théorème πi,πi−1 et π1 par πe,i, πe,i−1 et πe,e+1 respectivement, où πi,j est la projec-tion (x1, . . . , xn)→ (xi+1, . . . , xj).

D’après le théorème 1.4.4, on est amené à considérer une variété po-laire Wi,B dans VB , un nouvel ensemble finiQ ⊂ Ce+i−1 qui permet de défi-nir VQ et un nouvel ensemble de points de contrôles P ′ = P ∪ (VQ ∩Wi,B)pour pouvoir appliquer la proposition 1.4.5. Le degré de tout ces objetsaugmente d’un facteur (δB + δP)(nD)O(n) [174].

Comme dim(Wi,Q) est à peu près√

d, une variante de l’algorithme deCanny [174, §5.4] renvoie une carte routièreR1 de (Wi,Q,P ′) de degré auplus (δB + δP)(nD)O(n

√d) et en complexité (δB + δP)

O(1)(nD)O(n√

d) (non-déterministe). Par ailleurs, un appel récursif à l’algorithme qu’on décrit,sur les entrées f , Q et P ′ calcule une carte routière R2 de (VQ,P ′) dedegré (δB + δP)(nD)O(n

√d) et en complexité (δB + δP)

O(1)(nD)O(n√

d) (non-déterministe). Par définition de P ′ et la proposition 1.4.5,R1 ∪R2 est unecarte routière de (VB ,P). Il est clair que la profondeur des appels récursifsn’excède par

√n, ce qui démontre le résultat suivant :

Théorème 1.4.6. [174] Soit f un polynôme de Q[X1, . . . , Xn] sans facteurcarré tel que V( f ) n’a au plus qu’un nombre fini de points singuliers et telque V( f )∩Rn est borné. Soit P ⊂ Cn un ensemble fini. On peut calculer avec unalgorithme probabiliste une carte routière de dimension 1 de (V( f ),P) de degréau plus #P(nD)O(n1.5) en complexité (#P)O(1)(nD)O(n1.5).

1.5 Vers l’élimination des quantificateurs

Les algorithmes de calcul d’un point par composante connexe dé-crits dans la partie 1.3 reposent sur des calculs de points critiques. D’unecertaine manière, cela revient à résoudre des problèmes d’optimisationpour trouver des points dans des ensembles semi-algébriques. Ainsi, il estnaturel de chercher à appliquer les outils développés à la résolution deproblèmes d’optimisation globale. En calcul formel, les problèmes d’opti-misation polynomiale sont traités par l’élimination des quantificateurs [15,

Page 51: Le fichier pdf du livre (EJCIM 2015)

1.5. Vers l’élimination des quantificateurs 41

§14.4]. La principale difficulté est la possibilité que l’infimum global nesoit pas atteint. Dans ce contexte, j’ai cherché à concevoir des algorithmespour l’élimination des quantificateurs qui prennent en compte certainespropriétés structurelles apparaissant dans ces problèmes.

La section 1.5.1 traite de l’optimisation polynomiale [171] en utilisantla notion de valeur critique généralisée, voir §1.2.4. Les propriétés topo-logiques de ces valeurs (voir le théorème 1.2.6) permettent d’obtenir unalgorithme de résolution des problèmes d’optimisation globale.

La section 1.5.2 décrit un algorithme réalisant l’élimination des quan-tificateurs sous des hypothèses de propreté et de régularité, qui couvrenttoutefois d’assez nombreuses applications. Il permet de résoudre certainsproblèmes qui restent hors de portée des meilleures implémentations de ladécomposition algébrique cylindrique. C’est un résumé de [115].

1.5.1 Optimisation polynomiale

Soit f ∈ Q[X1, . . . , Xn]. On cherche à calculer infx∈Rn f (x). On utilisepour cela la méthode des points critiques et l’élimination des quantifica-teurs [15, chap. 14]. On peut ainsi décider si f admet ou non un infimumglobal fini et, le cas échéant, calculer cet infinum, sous la forme d’un po-lynôme Q ∈ Q[T] et d’un intervalle réel ]a, b[ isolant une racine de Q telsque l’infimum soit cette racine isolée. Une telle description de l’infimumpermet d’obtenir des approximations à précision arbitraire efficacement.

Il se peut qu’un polynôme multivarié n’atteigne pas son infimumglobal, et c’est la difficulté essentielle. C’est par exemple le cas du poly-nôme x2

1 + (x1x2 − 1)2 dont l’infimum est 0 mais qui est strictement positifsur R2, voir §1.2.4. On peut toutefois relier l’infimum global avec la notionde valeur critique généralisée (voir la définition 1.2.5).

Théorème 1.5.1. [171] Soient f ∈ Q[X1, . . . , Xn] et (e1, . . . , e`) la suite, parordre croissant, des valeurs critiques généralisées de l’application x ∈ Rn 7→ f (x).Soit (r0, . . . , r`) une suite de rationnels telle que ri−1 < ei < ri pour tout 1 6i 6 `.

L’infimum de f sur Rn est fini si et seulement s’il existe 0 6 i < j 6 ` telsque f−1(ri) soit vide et que f−1(rj) ne le soit pas. Dans ce cas, infx∈Rn f (x) = ek,où 1 6 k 6 ` est le plus petit entier tel que f−1(rk) n’est pas vide.

C’est une conséquence du théorème 1.2.6 décrivant une propriété to-pologique des valeurs critiques généralisées. Supposons que l’infimumde f est fini et notons le f ?. Par définition, il existe un ε > 0 tel que f−1(e)est vide pour tout e ∈] f ? − ε, f ?[ et non vide pour e ∈] f ?, f ? + ε[. Ainsi,

Page 52: Le fichier pdf du livre (EJCIM 2015)

42 Chapitre 1. Algorithmes efficaces en géométrie algébrique réelle

l’application f n’induit une fibration localement triviale au-dessus d’au-cun voisinage de f ?. Par le théorème 1.2.6 l’infimum f ? est une valeurcritique généralisée de f . De plus, notons que chacun des f−1(ri) est unehypersurface lisse, comme les ri ne sont pas des valeurs critiques.

Comme on dispose déjà d’algorithmes pour calculer les valeurs cri-tiques généralisées — voir le §1.2.4 — et pour décider de l’existence d’unpoint dans un ensemble algébrique lisse — voir le §1.3.2 — on obtientimmédiatement un algorithme pour résoudre les problèmes d’optimisationglobale. En utilisant les résultats des sections 1.2.4 and 1.2.5 on obtient lerésultat de complexité suivant :

Théorème 1.5.2. [171] Soit f ∈ Q[X1, . . . , Xn] de degré D donné par un pro-gramme d’évaluation (straight line program) de taille L. Il existe un algorithmenon déterministe qui décide si infx∈Rn f (x) est fini et qui, le cas échéant, calculecet infimum sous la forme d’un polynôme Q ∈ Q[T] et d’un intervale ]a, b[ isolantune unique racine de Q, le tout en complexité

O(Dnn3(L + n2)M(D2(D− 1)(n−1))2).

1.5.2 Élimination faible des quantificateurs réels

Notons X les variables X1, . . . , Xn et Y les variables Y1, . . . , Yr. Soit projla projection (x, y) ∈ Cn+r 7→ y ∈ Cr. On considère des polynômes F =( f1, . . . , fp) et g1, . . . , gs dans Q[X, Y], le semi-algébrique S ⊂ Rn+r définipar le système f1 = · · · = fp, g1 > 0, . . . , gs > 0, et la formule existen-tielle Ψ(Y) :

∃X ∈ Rn f1(X, Y) = · · · = fp(X, Y) = 0, g1(X, Y) > 0, . . . , gs(X, Y) > 0.

Le problème classique de l’élimination des quantificateurs consiste àcalculer une formule sans quantificateur équivalente à Ψ(Y), c’est-à-diredont l’ensemble des solutions est proj(S). Dans [115], nous avons considéréune variante affaiblie de ce problème. Les conditions sur le système dedépart sont renforcées. On suppose que :

— l’idéal 〈 f1, . . . , fp〉 est radical et que la variété associéeV( f1, . . . , fp) ⊂ Cn+r est équidimensionnelle, la codimensionest notée c, et lisse ;

— la restriction de proj à V( f1, . . . , fp) ∩Rn+r est propre.Toutefois, on ne va pas jusqu’à supposer que les intersections V(F) ∩V(gi)sont transverses et lisses.

De plus, les propriétés de l’objet calculé sont amoindries : on cal-cule une formule sans quantificateur Φ(Y), définissant un ensemble semi-

Page 53: Le fichier pdf du livre (EJCIM 2015)

1.5. Vers l’élimination des quantificateurs 43

algébrique T , qui est presque équivalente à Ψ(Y), au sens où T ⊂ proj(S)et proj(S) \ T est de mesure nulle.

Ce problème affaibli reste tout de même pertinent pour de nombreusesapplications, en particulier l’analyse de la stabilité de schémas numériques.On peut concevoir des algorithmes qui tirent parti de ces nouvelles spécifi-cations et qui permettent de résoudre des problèmes qui restent hors deportée des implémentations de la décomposition algébrique cylindrique.

Étapes de l’algorithme. L’algorithme décrit dans [115] pour calculer l’éli-mination faible des quantificateurs réels repose sur la méthodes des pointscritiques. L’idée principale est de calculer un polynôme B ∈ Q[Y] tel quel’hypersurface réelle B = 0 contienne la frontière de proj(S), tout en évi-tant un opérateur de projection récursif comme celui de la décompositionalgébrique cylindrique. C’est l’étape de projection.

On peut ensuite calculer une décomposition de Rr \ V(B) en cel-lules C1, . . . , CN et calculer pour chaque Ci un point yi ∈ Ci. C’est l’étape dedécomposition. Elle peut être effectuée avec la décomposition algébrique cy-lindrique [53] ou avec un calcul de carte routière à paramètre [15, chap. 16](c’est d’ailleurs une motivation supplémentaire pour développer les algo-rithmes de calcul de cartes routières).

Une cellule Ci est incluse dans proj(S) si et seulement si S ∩proj−1(yi)n’est pas vide, ce qu’on sait décider algorithmiquement. La sortie de l’algo-rithme est donc l’union des cellules Ci incluses dans proj(S). C’est l’étapede relèvement. Elle peut être effectuée par la décomposition algébrique cylin-drique ou par des algorithmes plus spécialisés reposant sur la méthode despoints critiques présentée précedemment. La propreté de proj|S impliqueque les S ∩ proj−1(yi) sont bornés et des algorithmes existent pour cettesituation.

Notre contribution concerne principalement l’étape de projection.

Étape de projection. Soient a = (a1, . . . , as) ∈ Qs, I = i1, . . . , i` unsous-ensemble de 1, . . . , s et ε un infinitésimal. On note Va

I,ε ⊂ C〈ε〉n+r lavariété algébrique définie par

f1 = · · · = fp = gi1 − ai1 ε = · · · = gi` − ai`ε = 0.

Théorème 1.5.3. [115, lemme 9] Soit y un point de la frontière de proj(S).Il existe un I ⊂ 1, . . . , s tel que #I 6 n − c + 1 et tel que y appartientà proj(limε crit(proj, Va

I,ε)).De plus, si a est générique, alors pour tout sous-ensemble I = i1, . . . , i`

de 1, . . . , s, l’idéal 〈F, gi1 − ai1 ε, . . . , gi` − ai`ε〉 de Q〈ε〉[X, Y] est radical et la

Page 54: Le fichier pdf du livre (EJCIM 2015)

44 Chapitre 1. Algorithmes efficaces en géométrie algébrique réelle

variété associée VaI,ε est équidimensionnelle de codimension min(c + `, n + r) et

lisse.

Étant donnée une famille de polynômes définissant limε→0 crit(proj, VaI,ε),

on peut calculer une famille de polynômes définissant l’adhérence de Za-riski de proj(limε→0 crit(proj, Va

I,ε)) à l’aide de bases de Gröbner suivant unordre monomial d’élimination — voir le §1.2.5. Donc il ne reste plus qu’à cal-culer limε→0 crit(proj, Va

I,ε). Le résultat suivant généralise le théorème 1.3.5et permet de mener les calculs sur Q plutôt que sur Q〈ε〉.

Soit I = i1, . . . , i` un sous-ensemble de 1, . . . , s. Soit PI la suitede polynômes (F, gi1 , . . . , gi`). On note JacX(PI) (resp. JacX,Y(PI)) la matricejacobienne de PI par rapport aux variables X (resp. X, Y). Soit ∆I (resp. ∆?

I )l’ensemble des mineurs de taille c + ` où l’on a choisit c lignes parmiles p premières de la matrice JacX(PI) (resp. JacX,Y(PI)). Les p premièreslignes correspondent aux polynômes de F. Enfin, soit Ja

i l’idéal 〈F, gi2 ai1 −gi1 ai2 , . . . , gi`ai1 − gi1 ai` , ∆I〉

Théorème 1.5.4. [115, lemmes 10 et 11] Si a est générique alors la variété définiepar Ja

I : 〈∆?I 〉∞ + 〈gi1〉 est l’adhérence de Zariski de limε→0 crit(proj, Va

I,ε). Deplus, son image par proj est de codimension strictement plus grande que 1.

Ces deux théorèmes permettent de définir un opérateur de projectionde la façon suivante. On commence par choisir a et I de cardinal au plus n−c + 1. On calcule ensuite les polynômes de ∆I et de ∆?

I , puis on calcule unélément non nul BI de l’idéal (Ja

I : 〈∆?I 〉∞) ∩ Q[Y], ce qui existe si a est

assez générique [115]. Algorithmiquement, cela peut être fait avec desbases de Gröbner [105, p. ex.]. Les théorèmes 1.5.3 et 1.5.4 assurent alorsque le produit de tous les BI , pour les différents choix de I, définit unehypersurface qui contient la frontière de proj(S).

Exemple. Pour illustrer, prenons f = X21 +X2

2 − 1 et g = X21Y− (X2− 1)2,

en les variables X1, X2 et Y. On a donc (n, r, p, `, c) = (2, 1, 1, 1, 1). Surla figure 1.7, le cylindre rouge est la variété V( f ) et la surface bleue (leparapluie de Whitney) est la variété V(g).

On prend a = 1, qui est assez générique. Il faut considérer le produitdes polynômes B∅ et B1. Pour le premier, ∆∅ et ∆?

∅ sont égaux, donc ona B∅ = 1.

Pour le second, avec I = 1 on a ∆?I = −4 X1 (X2 − 1 + X2Y)

et ∆?I =

−4 X1 (X2 − 1 + X2Y) , 2X1

3, 2 X2X12. On calcule donc que

〈F ∪ ∆I〉 : 〈∆?I 〉∞ = 〈X1

2 + X22 − 1, X2 − 1 + X2Y〉.

Page 55: Le fichier pdf du livre (EJCIM 2015)

1.5. Vers l’élimination des quantificateurs 45

FIGURE 1.7 – Exemple d’élimination faible des quantificateurs

La courbe définie par cet idéal est en vert sur l’image. C’est l’adhérencede Zariski de crit(πY, V( f , g − e)) pour un e ∈ Q générique. Enfin, oncalcule que 〈S ∪ g〉 ∩ Q[Y] est l’idéal 〈Y2〉 et on a donc BI = Y2. Lafontière de proj(S) dans R est donc 0. Il reste à décider lesquels desintervales ]−∞, 0[ et ]0, ∞[ sont inclus dans proj(S).

Bornes sur le degré. Soit B ∈ Q[Y] le polynôme calculé par la méthodeci-dessus. Si une borne sur le degré de B ne suffit pas à borner la complexitéde l’algorithme, c’est tout de même une donnée importante. Soit DF lemaximum des degrés des fi, DG le maximum des degrés des gi et D lemaximum de DF et DG.

Théorème 1.5.5. L’hypersurface définie par B est de degré au plus

DpF Dr

min(s,n−c+1)

∑`=0

DlG ((c + `)D)n−c−l .

Si p = c, alors le degré est au plus

DpF

min(s,n−p+1)

∑`=0

DlG ((p + `)D)n−p−l .

Page 56: Le fichier pdf du livre (EJCIM 2015)

46 Chapitre 1. Algorithmes efficaces en géométrie algébrique réelle

Ces bornes sont simplement exponentielles en le nombre de variables.Elles sont obtenues par application des bornes de Bézout classiques et ellesne semblent pas optimales. On pourrait essayer d’utiliser le théorème 1.2.8pour les améliorer, ce qui permettrait de remplacer (p + `)n−p+` par unfacteur combinatoire dominé par 2n.

Avantages et inconvénient de la méthode. L’expérience montre que l’al-gorithme décrit permet de résoudre des problèmes compliqués (jusqu’à 6variables, dont 4 quantifiées) qui sont hors de portée des meilleures im-plémentations de la décomposition algébrique cylindrique. Dans tous lesexemples que nous avons étudiés, le nombre de variables libres est plutôtfaible comparé au nombre de variables quantifiées. On ne pourra pas allerplus loin que 4 variables libres avec notre implémentation car elle utilise ladécomposition algébrique cylindrique dans l’espace des variables libres. Onpeut espérer améliorer ce point en utilisant des cartes routières à paramètrespour décrire les composantes connexes d’un ensemble semi-algébrique [15,chap. 16].

Page 57: Le fichier pdf du livre (EJCIM 2015)

Chapitre 2

Algorithmes modérémentexponentiels pour problèmesNP-difficiles

Christophe LentéMathieu Liedloff

Vincent T’kindtIoan Todinca

L’objectif de l’algorithmique exacte pour les problèmes NP-difficiles estde concevoir de algorithmes pour résoudre ces problèmes, avec la meilleurecomplexité possible. La complexité des algorithmes est évaluée au pire cas,ce qui fait que les algorithmes obtenus seront, le plus souvent, exponentiels(et au mieux sous-exponentiels). Nous verrons que ce domaine de recherchea connu un important essor depuis les années 2000, avec des résultatsmarquants et l’apparition de nouvelles techniques de conception et d’ana-lyse d’algorithmes. Il est également lié à des questions fondamentales decomplexité et apporte des outils originaux pour des travaux combinatoires.

Ce chapitre présente quelques techniques représentatives de l’algorith-mique exacte notamment les algorithmes de branchement et la méthoded’analyse Mesurer pour conquérir, la méthode Trier & Chercher et laProgrammation dynamique. Le lecteur curieux trouvera un plus ampleéventail de techniques, ainsi que des pistes de lecture à la fin du chapitre.

Page 58: Le fichier pdf du livre (EJCIM 2015)

48 Chapitre 2. Algorithmes modérément exponentiels

2.1 Introduction

De nombreux problèmes algorithmiques, des plus fondamentaux auxplus appliqués, sont connus pour être NP-difficiles. C’est pourquoi unegrande proportion des travaux de recherche en algorithmique tente d’ap-porter des réponses à ces questions. Les approches sont nombreuses, sur-tout pour les problèmes d’optimisation : les heuristiques (qui produisentefficacement des solutions admissibles, sans garantie de qualité au pirecas mais souvent satisfaisantes en pratique), les algorithmes d’approximation(qui produisent, en temps polynomial, une solution garantie comme étantproche de l’optimum), les algorithmes paramétrés (dont la complexité sépareune partie polynomiale par rapport à la taille de l’entrée et une partieexponentielle par rapport à un paramètre supposé petit), etc.

Nous nous concentrons ici sur une approche très naturelle, les algo-rithmes exacts, dont l’objectif est simplement de résoudre le problème poséavec la meilleure complexité possible par rapport à la taille de l’entrée.Comme les problèmes abordés sont NP-difficiles, les algorithmes proposéssont le plus souvent de complexité exponentielle ; on parle d’algorithmesexacts (modérément) exponentiels. Lors de la conception de tels algorithmes,la bonne question est : combien peut-on gagner en complexité par rapportà la recherche exhaustive, qui consisterait à explorer tout l’espace des so-lutions ? Mais citons plutôt l’interrogation, beaucoup plus profonde, deKurt Gödel, dans une lettre à John von Neumann datant de 1956 : « It wouldbe interesting to know [...] how strongly in general the number of steps in finitecombinatorial problems can be reduced with respect to simple exhaustive search. »(cf. le blog 1 de R. J. Lipton). En ce sens, l’algorithmique exacte est au cœurde la complexité. Nous sommes loin d’avoir aujourd’hui une réponse claireà la question de Gödel, même si certains travaux récents apportent desréponses partielles [202] 2.

L’intérêt pour les algorithmes exacts exponentiels n’est pas nouveau.On trouve de magnifiques exemples d’algorithmes de ce type dans lesannées ’60 et ’70, par exemple [60, 61] pour SAT, [113] pour le VOYAGEUR

DE COMMERCE et [191] pour MAX-ENSEMBLE STABLE. Le domaine a connudes progrès spectaculaires depuis les années 2000, avec surtout (puisquenous nous intéressons à l’informatique mathématique) des techniques nou-velles pour l’analyse et la conception d’algorithmes. Ainsi, l’approcheMesurer pour Conquérir, qui sera présentée dans la section 2.2, améliore

1. http://rjlipton.wordpress.com/the-gdel-letter/2. Williams [202] montre qu’une amélioration significative (super-polynomiale) pour

le problème CIRCUIT SAT impliquerait une séparation entre certaines classes de complexité,par exemple NEXP 6⊆ P/poly et LOGSPACE 6= NP.

Page 59: Le fichier pdf du livre (EJCIM 2015)

2.1. Introduction 49

l’analyse des algorithmes de branchement par des mesures non standard.Bien que destinée à l’algorithmique, elle a des conséquences combinatoiressurprenantes : pour le dénombrement de certains objets, les meilleuresbornes supérieures connues sont obtenues par la conception d’un algo-rithme énumérant lesdits objets et par l’analyse de la complexité de cetalgorithme à l’aide de la méthode Mesurer pour Conquérir. Une autretechnique originale est l’utilisation du principe d’inclusion-exclusion etde la convolution pour des problèmes de partitionnement, qui permet derésoudre COLORATION en temps O∗(2n), où n est le nombre de sommetsdu graphe en entrée 3 [29].

Un dernier argument en faveur de l’algorithmique exponentielle estqu’elle apporte une réponse qui peut s’avérer efficace pour des instances detaille modérée. Un algorithme de complexité O∗(1.01n) est certes exponen-tiel, mais peut être utilisé raisonnablement pour n = 1000, et un algorithmede complexitéO∗(1.2n) fonctionne raisonnablement si n = 100, à conditionque les polynômes cachés par la notation O∗ soient petits, cf. figure 2.1.

Durée 1 sec 1 min 1 heure 1 jour 1 mois 1 an

Nb d’opérations 230 236 242 247 252 255

t(n) taille n maximum

n2 32 768 253 820 1 966 080 9 631 786 52 755 462 182 750 282

n5 64 145 329 622 1 227 2 017

n10 8 12 18 25 35 45

1.01n 2 090 2 501 2 913 3 232 3 574 3 824

1.1n 218 261 304 337 373 399

1.2n 114 137 159 176 195 209

1.4n 62 74 86 96 106 113

2n 30 36 42 46 51 55

3n 19 23 26 29 32 35

n! 12 13 15 16 17 18

nn 9 11 12 13 14 14

Ces données suggèrent plusieurs remarques :

1. Un algorithme polynomial ne signifie pas toujours utilisable en pratique :par exemple si son temps d’exécution est n10.

2. Une machine 100 fois plus rapide est capable d’exécuter environ 237 opé-rations à la seconde (soit environ 1011) – ce qui correspond à la quantitéréalisable en 100 secondes. Si le temps d’exécution est exponentiel, on nepeut donc pas compter sur l’augmentation de la puissance des machinespour résoudre des entrées sensiblement plus grandes.

3. Un algorithme en 1.4n est capable de traiter une entrée deux fois plus grandequ’un algorithme en 2n dans un même temps d’exécution. On a donc intérêtà concevoir des algorithmes qui s’exécutent en O(cn) avec la constante c laplus petite possible.

taille de

l'entrée

temps

d'exécution

f(n)=2n

g(n)=1.41n

x 2x0

FIG. 1 – Réduire la base de l’exponentielle permet de traiter des entrées plusgrandes dans la même unité de temps. La figure compare la croissance des fonc-tions f(n) = 2n et g(n) = 1.41n (où

!2 " 1.41 . . .).

2

FIGURE 2.1 – Dans une même unité de temps, on traite deux fois plus de donnéesavec un algorithme en O(2n/2) qu’avec un algorithme en O(2n) (2n/2 ≈ 1.41n).

Ce chapitre n’a pas l’ambition d’une présentation exhaustive du do-maine. Nous avons choisi d’illustrer trois techniques représentatives pourl’algorithmique exponentielle, qui ont également été au cœur de nos re-cherches : les algorithmes de branchement et la méthode Mesurer pourConquérir (section 2.2), la méthode Trier & chercher (section 2.3) et la Pro-grammation dynamique (section 2.4). D’autres pistes sont discutées dansla conclusion de ce chapitre.

Enfin, le lecteur intéressé par l’algorithmique exacte trouvera son

3. Nous utiliserons tout le long de ce chapitre la notationO∗, qui supprime les facteurspolynomiaux — puisqu’ils sont négligeables comparés aux facteurs exponentiels. Unefonction est O∗(2n) s’il existe un polynôme poly tel que la fonction soit O(poly(n) · 2n).

Page 60: Le fichier pdf du livre (EJCIM 2015)

50 Chapitre 2. Algorithmes modérément exponentiels

bonheur dans l’article (fondateur) de Woeginger [205], le livre de référencedu domaine par Fomin et Kratsch [89], ou l’article récent de Fomin etKaski [88].

2.2 Algorithmes de branchement

Les algorithmes de branchement sont l’un des outils fondamentauxpour la résolution de problèmes en temps exponentiels. Le branchement estcertainement la technique la plus ancienne, la plus puissante, mais égale-ment la plus naturelle à utiliser. Les premiers algorithmes de branchementdatent des années 1960 avec les travaux de Davis et Putnam [61] et deDavis, Logemann et Loveland [60], pour la résolution du problème SAT.

SATEntrée : une formule logique propositionnelle F en forme normale

conjonctive.

Question : décider si la formule F est satisfiable.

L’emploi de cette technique aboutit souvent à des algorithmes dontle temps d’exécution est, certes exponentiel, mais significativement plusrapide que la simple énumération naïve de l’espace des solutions. Typi-quement, les algorithmes de branchement ne nécessitent qu’un espacepolynomial, ce qui les rend utilisables en pratique.

Ces algorithmes sont utiles à la résolution de problèmes de décision,d’optimisation, de dénombrement et d’énumération. Évidement, le cadrele plus général est l’énumération de l’ensemble des solutions, puisque cetteénumération résout le dénombrement de ces solutions, mais également leproblème d’optimisation ou de décision correspondant.

Pour quelques exemples d’algorithmes exponentiels, considérons lanotion d’ensemble stable d’un graphe. Étant donné un graphe G = (V, E),un sous-ensemble de sommets S ⊆ V est stable s’il n’existe aucune arêteentre deux sommets de S : ∀u, v ∈ S, u, v /∈ E. Un exemple est donné àla figure 2.2.

FIGURE 2.2 – Un graphe où les sommets colorés en noir forment un ensemblestable de taille maximum.

Page 61: Le fichier pdf du livre (EJCIM 2015)

2.2. Algorithmes de branchement 51

Regardons les trois problèmes suivants :

MAX-ENSEMBLE STABLE

Entrée : un graphe G = (V, E).Question : déterminer un stable de taille maximum de G.

ENUM-ENSEMBLE STABLE

Entrée : un graphe G = (V, E).Question : énumérer les stables maximaux par l’inclusion de G.

#-ENSEMBLE STABLE

Entrée : un graphe G = (V, E).Question : dénombrer les stables maximaux par l’inclusion G.

Il a été montré que le problème MAX-ENSEMBLE STABLE est NP-complet 4, W[1]-complet [67] et, si P 6= NP, non approchable avec un facteurconstant [19]. Par ailleurs, il n’admet pas d’algorithme sous-exponentielsous l’hypothèse du temps exponentiel [122] (cette hypothèse est discutée dansla Conclusion du chapitre). Le problème #-ENSEMBLE STABLE est quantà lui #P-complet [159]. On sait le résoudre par un algorithme de bran-chement en temps O(1.3642n) [95]. Concernant l’énumération des stablesmaximaux, un résultat de Moon et Moser [154] montre que leur nombreest au plus 3n/3 ; combiné avec un algorithme à délai polynomial 5 (commecelui de [127]), il est ainsi possible de résoudre ENUM-ENSEMBLE STABLE

en temps O∗(3n/3).Plusieurs algorithmes exponentiels ont été développés pour MAX-

ENSEMBLE STABLE. C’est un problème emblématique de l’algorithmiquemodérément exponentielle et pour lequel de nombreux algorithmes debranchement ont été développés. Parfois ces algorithmes combinent lebranchement avec une technique de mémorisation (que nous présenteronsà la section 2.2.2) pour diminuer le temps d’exécution, au prix d’un espaceexponentiel. Le premier algorithme est dû à Tarjan et Trojanowski [192]et s’exécute en temps O(1.26n) (et espace polynomial) ; les meilleurs algo-rithmes connus à ce jour (qui utilisent également un espace polynomial)sont celui de Bourgeois, Escoffier, Paschos et van Rooij [36] qui s’exécuteen temps O(1.2114n), ainsi que plus récemment celui de Xiao et Nagamo-chi [207] qui s’exécute en temps O(1.2002n) (la borne de O(1.1996n) estmême annoncée dans [208]).

4. La plupart de problèmes considérés ici sont des problèmes d’optimisation. Nousdirons qu’un problème d’optimisation est NP-complet (ou NP-difficile) si le problème dedécision associé l’est.

5. C’est un algorithme qui demande un temps au plus polynomial entre chaqueensemble stable maximal énuméré.

Page 62: Le fichier pdf du livre (EJCIM 2015)

52 Chapitre 2. Algorithmes modérément exponentiels

2.2.1 Algorithmes d’énumération pour les stables maximaux

L’algorithme

Commençons par donner une caractérisation des algorithmes de bran-chement ainsi que des notions sur l’étude de leur complexité en temps qui,nous le verrons, n’est pas toujours triviale. Typiquement, un algorithme debranchement est un algorithme récursif composé de règles :

— d’arrêt, pour stopper la récursion ;— de réduction, pour simplifier ou réduire la taille de l’instance ;— de branchement, pour résoudre le problème en résolvant récursive-

ment des instances plus petites.Considérons un exemple d’algorithme de branchement pour ENUM-ENSEMBLE STABLE (voir l’algorithme 1). Soit G = (V, E) un graphe etsoit S ⊆ V un ensemble stable de G. Commençons par introduire quelquesnotations. Étant donné un sommet v ∈ V, on note NG(v) l’ensemble des voi-sins de v dans G et NG[v] = v ∪ NG(v). Pour un sous-ensemble X ⊆ V,on note NG(X) =

⋃v∈X NG(v) et NG[X] = X ∪ NG(X). Nous oublierons

d’indiquer G en indice dans ces notations lorsqu’il n’y aura pas d’ambi-guïté sur le graphe désigné. Revenons maintenant à l’algorithme. Notons Gune copie de G. À chaque appel récursif à EnumEnsStables, le graphe G estmodifié (essentiellement, nous lui supprimons des sommets et des arêtes),par contre nous ne modifions pas la copie G. Ainsi, à chaque instant, legraphe G est un sous-graphe de G. Un appel à EnumEnsStables(G, ∅) (oùinitialement G = G) provoque l’énumération de tous les ensembles stablesmaximaux du graphe G.

Algorithme 1 : EnumEnsStables(G, S)Entrée : un graphe G et un ensemble stable S de G, où G ne contient aucun sommet de

N[S].Sortie : l’union de S avec les ensembles stables maximaux de G.

si G est vide alorsretourner « S est un ensemble stable maximal de G »

choisir un sommet v de degré minimum dans Gpour tous les sommets w de NG[v] faire

EnumEnsStables(G− NG[w], S ∪ w)

Remarque 2.2.1. L’algorithme EnumEnsStables peut énumérer plusieurs foisun même ensemble stable maximal. Pour s’en prémunir, on pourrait légèrement mo-difier notre algorithme et considérer l’algorithme EnumEnsStablesSansDoublon

Page 63: Le fichier pdf du livre (EJCIM 2015)

2.2. Algorithmes de branchement 53

présenté ci-après (voir l’algorithme 2). Néanmoins, pour ne pas compliquer inuti-lement notre première analyse de complexité, nous allons nous restreindre dansla suite à l’étude de l’algorithme EnumEnsStables. On peut montrer que la com-plexité de EnumEnsStablesSansDoublon au pire des cas serait similaire à celle deEnumEnsStables.

Algorithme 2 : EnumEnsStablesSansDoublon(G, S)Entrée : un graphe G et un ensemble stable S de G, où G ne contient aucun sommet de

N[S].Sortie : l’union de S avec les ensembles stables maximaux de G.

si G est vide et S est un stable maximal de G alorsretourner « S est un ensemble stable maximal de G »

choisir un sommet v de degré minimum dans Gsoit w0, w1, . . . , wd(v) les sommets de NG[v]pour i de 0 à d(v) faire

EnumEnsStablesSansDoublon(G− (N[wi] ∪ w0, w1, . . . wi),S ∪ wi)

Son temps d’exécution

L’analyse du temps d’exécution d’un tel algorithme récursif se fait àtravers l’étude de récurrences. On peut établir une récurrence qui dénombreles sous-problèmes qui sont récursivement résolus. Comme l’algorithmeest exponentiel, il résout typiquement de l’ordre de O(αn) sous-problèmespour une certaine constante α à déterminer. En observant que chaque exé-cution de EnumEnsStables demande un temps polynomial, si l’on exclut lesappels récursifs, on en déduit que le temps d’exécution de EnumEnsStables

est O(poly(n) · αn) = O∗(αn).

Regardons l’algorithme EnumEnsStables. Notons T(n) le temps d’exé-cution de l’algorithme sur un graphe à n sommets. L’algorithme choisitun sommet v et provoque un appel récursif sur G − N[w], pour chaquew ∈ N[v]. Notons d(u) le degré d’un sommet u. La récurrence peut s’écrire :

T(n) = 1 + ∑w∈NG [v]

T(n− (d(w) + 1)).

Comme v est un sommet de degré minimum, d(w) ≥ d(v) pour tout w ;donc :

T(n) ≤ 1 + ∑w∈NG [v]

T(n− (d(v) + 1)) = 1 + (d(v) + 1) · T(n− (d(v) + 1)).

Page 64: Le fichier pdf du livre (EJCIM 2015)

54 Chapitre 2. Algorithmes modérément exponentiels

Notons x = d(v) + 1. On obtient

T(n) ≤ 1 + x · T(n− x) = 1 + x + x2 + · · ·+ xn/x ≤ nx· xn/x = O∗(xn/x).

Observons que dénombrer les feuilles de l’arbre de recherche, cor-respondant à l’exécution de cet algorithme, aurait aboutit à la récurrenceT(n) ≤ x · T(n− x) dont la solution est également O∗(xn/x). Comme lemontre la figure 2.3, la fonction xn/x est maximum pour l’entier x = 3. Onobtient alors T(n) = O∗(3n/3).

0

0.5

1

1.5

2

0 2 4 6 8 10 12 14 16

x1/x

x

λ

FIGURE 2.3 – La fonction x1/x qui est maximum pour λ ≈ 2.71.

Borne inférieure

On peut montrer que le temps d’exécution de EnumEnsStables estasymptotiquement optimal, puisqu’il existe des graphes qui possèdent 3n/3

ensembles stables maximaux (voir la figure 2.4). Comme nous le verrons àla section 2.2.2, on ne sait pas toujours établir une borne inférieure égale àla borne supérieure. Il est même assez fréquent que les bornes supérieuressur le temps d’exécution soient sur-estimées.

FIGURE 2.4 – Une collection de triangles.

Page 65: Le fichier pdf du livre (EJCIM 2015)

2.2. Algorithmes de branchement 55

Conséquence combinatoire

Les algorithmes d’énumération sont des outils intéressants pour prou-ver des bornes combinatoires, puisqu’une borne supérieure sur leur tempsd’exécution donne une borne combinatoire sur le nombre d’objets énu-mérés. L’algorithme EnumEnsStables et son analyse impliquent que toutgraphe contient O∗(3n/3) ensembles stables maximaux.

2.2.2 À la recherche du plus grand stable

L’algorithme

Intéressons-nous à présent au problème MAX-ENSEMBLE STABLE. Re-gardons l’algorithme StableMax pour le résoudre (voir l’algorithme 3). SoitG = (V, E) un graphe et soit S ⊆ V un ensemble stable de G. Notons Gune copie de G. À chaque appel récursif à StableMax, le graphe G passéen paramètre est un sous-graphe de G. Un appel à StableMax(G, ∅) (oùinitialement G = G) retourne un ensemble stable de taille maximum dugraphe G.

Algorithme 3 : StableMax(G, S)Entrée : un graphe G et un ensemble stable S de G, où G ne contient aucun sommet de

NG[S].Sortie : un ensemble stable S′ de taille maximum de G tel que S ⊆ S′.

si G est vide alorsretourner S

si G contient un sommet v t.q. d(v) ≤ 1 alorsretourner StableMax(G− N[v], S ∪ v)

choisir un sommet v de degré maximumsi d(v) = 2 alors

/* Observez que dans ce cas le graphe G est une collection

disjointe de cycles et de chemins, pour laquelle un stable

maximum peut être construit en temps polynomial */

retourner en temps polynomial le plus grand stable de G

sinonretournermax

(StableMax(G− N[v], S ∪ v); StableMax(G− v, S)

)La preuve de correction de cet algorithme n’est pas bien difficile. Si

un sommet est de degré 0 ou 1, il est toujours correct de l’ajouter au stable

Page 66: Le fichier pdf du livre (EJCIM 2015)

56 Chapitre 2. Algorithmes modérément exponentiels

S (en effet, si un sommet v est de degré 1, dans tout ensemble stable Scontenant l’unique voisin w de v, on peut remplacer w par v, en obtenantainsi un nouvel ensemble stable de même taille que S). Si le graphe est dedegré maximum 2, alors le graphe est une collection disjointe de cycles etde chemins, pour laquelle il est facile de calculer un stable maximum entemps polynomial. L’unique règle de branchement est triviale : si v est unsommet du graphe, alors soit il appartient au stable maximum (auquel cason supprime N[v] du graphe), soit v n’y appartient pas (on supprime v dugraphe).

Son temps d’exécution

Notons par T(n) le temps d’exécution de cet algorithme sur un graphecontenant n sommets. On obtient la récurrence suivante, où d(v) ≥ 3 :

T(n) ≤ T(n− (1 + d(v))) + T(n− 1).

Cette récurrence compte le nombre de feuilles dans l’arbre de re-cherche (ce qui est grossièrement équivalent à s’intéresser au nombre totalde noeuds dans l’arbre, et donc de sous problèmes récursivement réso-lus). Pour une récurrence de la forme T(n) ≤ T(n− t1) + T(n− t2) + · · ·+T(n− tr), on dit que (t1, t2, . . . , tr) est le vecteur de branchement de cette récur-rence. Pour la récurrence T(n) ≤ T(n− (1+ d(v))) + T(n− 1), son vecteurde branchement est donc par définition (1 + d(v), 1). Comme l’indique lethéorème suivant, la solution d’une récurrence peut être obtenue par larecherche des racines du polynôme xn − xn−t1 − xn−t2 − · · · − xn−tr = 0,appelé polynôme caractéristique associé à la récurrence T(n).

Théorème 2.2.2 ([89]). Soit b une règle de branchement dont le vecteur debranchement est (t1, t2, . . . , tr). Alors le temps d’exécution de l’algorithme debranchement n’utilisant que la règle b estO∗(αn), où α est l’unique racine positivede xn − xn−t1 − xn−t2 − · · · − xn−tr = 0.

Ainsi, nous devons résoudre la récurrence T(n) ≤ T(n− (1+ d(v))) +T(n− 1) pour toute les valeurs possibles de d(v), où d(v) ≥ 3. On obtientalors les polynômes xn − xn−(1+d(v)) − xn−1 = 0, pour chaque valeur ded(v), dont il faut déterminer la racine positive. En fait, la plus granderacine est obtenue pour le polynôme correspondant à la récurrence T(n) ≤T(n − 4) + T(n − 1), c’est-à-dire lorsque d(v) = 3. La recherche de laracine positive (comprise pour ce polynôme entre 1 et 2) peut s’effectuer,par exemple, avec le logiciel Sage (http://www.sagemath.org/) et nouspermet d’établir un temps d’exécution de O(1.3803n) pour l’algorithmeStableMax. Voici la commande utilisée dans Sage :

Page 67: Le fichier pdf du livre (EJCIM 2015)

2.2. Algorithmes de branchement 57

sage: find_root(x^(-4)+x^(-1)==1, 1,2)

1.3802775690976141

Mesurer pour Conquérir

On pourrait se demander s’il existe des graphes pour lesquels l’al-gorithme StableMax demanderait effectivement un temps de O(1.3803n).Malgré la simplicité de cet algorithme, on peut montrer que notre analysen’est pas optimale.

v2v1

FIGURE 2.5 – Un morceau de graphe où l’on aurait commencé à brancher sur lessommets v1 et v2 pour les ajouter au stable.

On peut observer sur la figure 2.5 que le branchement sur des sommetsv de degré au moins 3 laisse apparaître (suite à la suppression de v ou deN[v]) de nombreux sommets de degré inférieur. Pour ces sommets dedegré 0, 1 ou 2, il n’y a pas de branchement, mais application de règlesde réduction. D’une certaine façon, la suppression de sommets (commepar exemple v1 et v2 sur la figure 2.5) est favorable au temps d’exécution,mais la diminution du degré des autres sommets non supprimés l’estégalement. En effet, il ne sera plus nécessaire d’appliquer une règle debranchement sur ces sommets de degré strictement inférieur à 3 ; à unmoment de l’exécution de l’algorithme, ces sommets seront soit facilementtraités par une règle de réduction, soit supprimés par l’ajout à l’ensemblestable de l’un de leurs voisins. Ainsi, plutôt que de ne considérer dansla récurrence que le nombre de sommets présents dans le graphe, unemesure plus fine, prenant en compte le degré des sommets, aboutirait à uneborne plus serrée. Nous regardons cette approche dans la suite et refaisonsl’analyse de la complexité de l’algorithme.

Soit N2 (respectivement, N3) le nombre de sommets de degré 2 dans G(respectivement, de degré 3) et soit N≥4 le nombre de sommets de degréau moins 4 dans G. Soient w2, w3 et w≥4 des réels de l’intervalle [0, 1]. Soit

Page 68: Le fichier pdf du livre (EJCIM 2015)

58 Chapitre 2. Algorithmes modérément exponentiels

µ(G) la mesure définie par :

µ(G) = w2N2 + w3N3 + w≥4N≥4.

Refaisons l’analyse en notant T(µ) le temps d’exécution de l’algo sur ungraphe de mesure µ(G).

Soit v le sommet choisi par l’algorithme. Notons respectivement d2, d3,d4, d≥5 le nombre de ses voisins de degré 2, 3, 4 et ≥ 5,

— si d(v) = 3 :

T(µ) ≤ T(µ− w3 − d2w2 − d3w3

)+

T(µ− w3 − d2w2 − d3(w3 − w2)

)— si d(v) = 4 :

T(µ) ≤ T(µ− w≥4 − d2w2 − d3w3 − d4w≥4

)+

T(µ− w≥4 − d2w2 − d3(w3 − w2)− d4(w≥4 − w3)

)— si d(v) ≥ 5 :

T(µ) ≤ T(µ− w≥4 − d2w2 − d3w3 − (d4 + d≥5)w≥4

)+

T(µ− w≥4 − d2w2 − d3(w3 − w2)− d4(w≥4 − w3)

)Il reste à calculer ces récurrences pour toutes les valeurs possibles

0 ≤ d2, d3, d4, d≥5 ≤ 5, puis à déterminer les valeurs des wi ∈ [0, 1]qui minimisent la plus grande solution. On observe que le choix des wiimplique µ(G) ≤ n.

Théorème 2.2.3. L’algorithme StableMax calcule un ensemble stable maximumen temps O(1.2905n), en prenant w2 = 0.5967, w3 = 0.9287 et w≥4 = 1 dans lamesure µ.

Sans changer une ligne de l’algorithme, nous obtenons O(1.2905n)comme borne de complexité, contre O(1.3803n) pour l’analyse (plus clas-sique) précédente. Pour établir cette nouvelle borne supérieure, nous avonsutilisé une mesure non standard. Ce type d’approche a été introduit par Fo-min, Grandoni et Kratsch [87], sous le nom Mesurer pour Conquérir. L’emploide mesures « non standard » est une contribution importante à (l’amélio-ration de) l’analyse au pire des cas des algorithmes de branchement. Cesmesures ne changent en rien le comportement de l’algorithme ; c’est simple-ment un raffinement de l’étude de sa complexité au pire des cas. Évidement,une autre mesure pourrait donner une meilleure borne supérieure. Il estdonc naturel de se demander si O(1.2905n) est très éloignée de la meilleureborne supérieure que l’on puisse espérer obtenir.

Page 69: Le fichier pdf du livre (EJCIM 2015)

2.2. Algorithmes de branchement 59

Borne inférieure

Pour répondre à la question précédente, une borne inférieure sur letemps d’exécution de StableMax donnerait une estimation de la précisionde notre mesure et de l’analyse de la borne supérieure (voir la figure 2.6).

borne supérieure

0

borne inférieure

tempsd'exécution

taille del'entrée

FIGURE 2.6 – Borne supérieure versus borne inférieure.

En étudiant le comportement de l’algorithme StableMax sur le graphede la figure 2.7, on peut établir que son temps d’exécution est au moinsΩ(1.2599n).

x

y

z

x

y

z

IN OUT

IN OUT

IN OUT

FIGURE 2.7 – Une collection de K6 et un morceau de l’arbre de recherche corres-pondant à l’exécution de StableMax sur ce graphe.

Ce graphe, difficile pour l’algorithme, est constitué d’une collectiondisjointe de n

6 graphes complets à 6 sommets (un tel graphe est appelé K6).Regardons l’un de ces K6 et notons x, y, z trois de ses sommets. L’algorithmeva choisir de brancher sur un sommet de plus grand degré. Sans perte degénéralité, supposons qu’il s’agisse de x. Lorsque x est ajouté à l’ensemblestable S, l’intégralité du K6 est supprimé. Lorsque x n’est pas ajouté à S etque ce sommet est supprimé du graphe, il ne reste que 5 sommets du K6. Àun moment de l’exécution, l’algorithme choisit (sans perte de généralité) de

Page 70: Le fichier pdf du livre (EJCIM 2015)

60 Chapitre 2. Algorithmes modérément exponentiels

brancher sur le sommet y. Là encore, soit N[y] est supprimé (et il ne resteaucun sommet du K6), soit y est supprimé du graphe (et il ne reste que 4sommets du K6). Dans ce dernier cas, il y aura un moment de l’exécution del’algorithme où, sans perte de généralité, l’algorithme choisit de branchersur le sommet z. Ce sommet z est soit ajouté à S (et tous les sommetsrestants du K6 sont supprimés), soit z est supprimé du graphe (et il ne restedu K6 qu’un cycle de trois sommets). Comme tous les sommets de ce cycleont un degré égal à 2, l’algorithme détermine, en temps polynomial à la finde son exécution, un stable maximum. Si on regarde l’arbre correspondantaux appels récursifs, chaque K6 engendre donc 4 branches de cet arbre. Ily a n

6 graphes K6, donc l’arbre contient au total au moins 4n/6 feuilles. Onobtient ainsi le théorème suivant :

Théorème 2.2.4. L’algorithme StableMax résout le problème MAX-ENSEMBLE

STABLE en temps Ω(4n/6) = Ω(1.2599n).

Au prix de l’espace

Si l’on s’autorise un espace exponentiel, il est possible de réduiredavantage le temps d’exécution de certains algorithmes de branchement.Reprenons dans un premier temps l’analyse de StableMax avec la mesurestandard qui avait donné O(1.3803n) comme temps d’exécution.

Notons par Th(n) le nombre de sous-problèmes correspondant à desgraphes à h sommets, qui sont récursivement résolus lorsque l’algorithmeest appliqué à un graphe à n sommets (n ≥ h). Puisque T(n) = O(1.3803n),on peut établir que Th(n) = O(1.3803n−h). Dans le même temps, il y a auplus (n

h) sous-graphes induits à h sommets. Donc

Th(n) ≤ O((

min(1.3803n−h,

(nh

))).

On a égalité entre ces deux termes pour h ≈ 0.08652 · n, ce qui donneTh(n) ≤ O(1.3424n).

On peut à présent définir l’algorithme StableMaxExpSpace. À chaquefois qu’il y a un appel récursif sur un graphe G′, cet algorithme vérifie si lesous-problème a déjà été résolu. Si ce n’est pas le cas, il le résout commele ferait StableMax pour trouver un ensemble stable maximum SG′ ; puis ilstocke dans une base de données le couple (G′, SG′). Si le sous-problème adéjà été résolu, l’algorithme StableMaxExpSpace recherche simplement G′

dans la base de données pour retrouver son stable maximum SG′ . Commeun graphe G a au plus 2n sous-graphes induits, la recherche dans la base

Page 71: Le fichier pdf du livre (EJCIM 2015)

2.2. Algorithmes de branchement 61

de données peut être implémentée en O(log(2n)) = O(n). Cette techniques’appelle la mémorisation.

Théorème 2.2.5. L’algorithme StableMaxExpSpace calcule un ensemble stablemaximum en temps O(1.3424n), au coût d’un espace exponentiel.

Il est possible de combiner la mémorisation et Mesurer pour Conquérir.Reprenons la mesure du théorème 2.2.3 :

µ(G) = w2N2 + w3N3 + w≥4N≥4 = 0.5967N2 + 0.9287N3 + N≥4 ≤ n.

On peut encore une fois noter que Th(n) = O(1.2905µ(G)−h). Seulement, ondoit maintenant déterminer le nombre de sommets n′ d’un graphe G′, ayantcomme mesure µ(G′), correspondant à un sous-problème potentiellementstocké dans la base de données.

Les sous-problèmes considérés ne contiennent pas de sommets dedegré 0 ou 1 (qui sont immédiatement ajoutés à la solution), nous obtenonsque chaque sommet a pour poids au moins w2 = 0.5967. Par conséquent,n′ ≤ h/0.5967. Notons h′ cette quantité h/0.5967. Donc

Th(n) ≤ O(

min(1.2905n−h, ∑

i≤h′

(ni

))).

Après quelques calculs (voir par exemple le chapitre 10 de [89]), onobtient le théorème suivant :

Théorème 2.2.6. L’algorithme StableMaxExpSpace, analysé avec la mesure µcalcule un ensemble stable maximum en temps O(1.2775n) et en espace exponen-tiel.

2.2.3 Dénombrer plus vite qu’énumérer

Le problème #-ENSEMBLE STABLE demande de dénombrer les en-sembles stables maximaux d’un graphe. Dès lors, on peut se demanders’il est possible de compter les stables, sans avoir besoin de les énumé-rer. Dans [95] nous donnons un algorithme de branchement qui résout#-ENSEMBLE STABLE. Cet algorithme est composé de deux règles d’arrêt,de sept règles de réduction et d’une règle de branchement, qui choisit lessommets sur lesquels brancher de façon judicieuse. L’étude d’une borneinférieure montre que le temps d’exécution de notre algorithme est aumoins O(1.3247n). Pour la borne supérieure, nous effectuons une analysede type Mesurer pour Conquérir. L’étude de sous-cas et de 27 récurrencesétablit le théorème suivant.

Théorème 2.2.7 ([95]). Le problème #-ENSEMBLE STABLE peut être résolu entemps O(1.3642n) et espace polynomial.

Page 72: Le fichier pdf du livre (EJCIM 2015)

62 Chapitre 2. Algorithmes modérément exponentiels

2.3 La méthode Trier & Chercher

2.3.1 Introduction à la méthode

Une approche pour mettre au point des algorithmes exponentielsconsiste à augmenter de façon « exponentielle » le volume des donnéesmanipulées pour pouvoir réduire le temps de calcul au pire cas. Les mé-thodes procédant ainsi sont appelées Split and List dans [89].Parmi les méthodes de cette catégorie, la méthode Trier & Chercher fut pro-posée initialement par Horowitz et Sahni [117] (voir également l’article deSchroeppel et Shamir [177]) pour résoudre le problème SAC-À-DOS avecune complexité, temporelle et spaciale, en O∗(

√2

n), où n est le nombre

d’objets de l’instance. Le problème SAC-À-DOS peut être énoncé de la façonsuivante :

SAC-À-DOS

Entrée : un ensemble O = o1, . . . , on de n objets (chacun défini parune valeur v(oi) et un poids w(oi), 1 ≤ i ≤ n), la capacité entièreW du sac-à-dos.

Question : trouver un sous-ensemble O′ ⊆ O tel que ∑o∈O′ w(o) ≤Wet ∑o∈O′ v(o) soit maximum.

L’idée de base de la méthode Trier & Chercher appliquée à ce problèmeconsiste à créer une partition (I1, I2) de l’instance I étudiée. Par énuméra-tion de toutes les solutions partielles constructibles avec les objets dans I1et dans I2, séparément, il devient possible de calculer une solution optimalepour l’instance de départ I.Supposons une instance I donnée. La méthode Trier & Chercher va partition-ner l’ensemble des objets O en deux sous-ensembles O1 = o1, . . . , odn/2eet O2 = odn/2e+1, . . . , on. Une première table T1 est construite à partirde O1 en énumérant tous les sous-ensembles possibles O′j ⊆ O1 : unecolonne j de T1 correspond à un sous-ensemble O′j et lui sont associées lesvaleurs w(O′j) = ∑i∈O′j

w(oi) et v(O′j) = ∑i∈O′jv(oi). Une seconde table T2

est construite de la même façon avec les sous-ensembles O′′k de O2.Ces deux tables ont O(2 n

2 ) colonnes. Avant de commencer la recherchede la solution optimale, une étape de tri est réalisée sur la table T2 : lescolonnes k de T2 sont triées par valeur croissante de w(O′′k ). Pour chaquecolonne en position k à l’issue de ce tri, nous stockons l’indice `k ≤ k de lacolonne qui a une valeur v(O′′`k

) maximum i.e. `k = argmaxu≤k(v(O′′u)). Ceprétraitement, qui peut être réalisé au moyen d’une procédure classiquede tri, peut s’effectuer en temps O∗(2

n2 log(2

n2 )) = O∗(

√2

n). Suite à ce tri,

Page 73: Le fichier pdf du livre (EJCIM 2015)

2.3. La méthode Trier & Chercher 63

vient une étape de recherche : pour chaque colonne j de la table T1, nouscherchons la colonne k de la table T2 telle que w(O′j) + w(O′′k ) ≤ W etv(O′j) + v(O′′k ) soit maximum. Pour une colonne j donnée, la recherche dela colonne k telle que k = argmaxu∈T2(w(O′j) + w(O′′u) ≤W), peut se faireau moyen d’une dichotomie sur la table T2. Ainsi, v(O′j) + v(O′′`k

) est lavaleur maximum de la fonction objectif quand les objets de O′j sont misdans le sac-à-dos et que ceux de O1 rO′j ne le sont pas.En itérant cette recherche pour tous les sous-ensembles O′j de T1 il estpossible de trouver la solution optimale du problème. L’étape complète derecherche est de complexité temporelle O∗(2

n2 log(2

n2 )) = O∗(

√2

n). Ainsi,

cet algorithme Trier & Chercher requiert O∗(√

2n) en temps et en espace.

Appliquons cette méthode sur l’exemple numérique suivant avec n = 6,O = a, b, c, d, e, f et W = 9.

O a b c d e fv 3 4 2 5 1 3w 4 2 1 3 2 5

O1 = a, b, c O2 = d, e, f

T1 ∅ a b c a, b a, c b, c a, b, cv 0 3 4 2 7 5 6 9w 0 4 2 1 6 5 3 7

T2 ∅ e d f d, e e, f d, f d, e, f v 0 1 5 3 6 4 8 9w 0 2 3 5 5 7 8 10`k 1 2 3 3 5 5 7 8

La table ci-dessous présente le résultat de l’étape de recherche : pour chaque colonne j de T1nous indiquons la colonne k de T2 telle que k = argmaxu∈T2 (w(O′j) + w(O′u) ≤W).

j ∅ a b c a, b a, c b, c a, b, ck d, f d, e e, f d, f d d d, e e

w(O′j) + w(O′k) 8 9 9 9 9 8 8 9v(O′j) + v(O′`k

) 8 9 10 10 12 10 12 10

Par conséquent, la solution optimale est de valeur 12 et peut être obtenue en mettant dansle sac-à-dos les objets a, b, d ou b, c, d, e.

La méthode Trier & Chercher est trés puissante pour mettre au pointdes algorithmes exponentiels et elle peut être appliquée à de nombreuxproblèmes d’optimisation NP-difficiles. De façon informelle, et pour quela méthode Trier & Chercher puisse être plus efficacement appliquée, cesproblèmes doivent posséder deux propriétés : (1) deux solutions partiellesdoivent pouvoir être combinées en temps polynomial pour construire unesolution de l’instance de départ, (2) il faut pouvoir définir une procédure

Page 74: Le fichier pdf du livre (EJCIM 2015)

64 Chapitre 2. Algorithmes modérément exponentiels

de tri qui permette de réaliser l’étape de recherche dans un temps qui ne soitpas plus grand que celui requis pour construire les tables.

Nous allons maintenant rentrer plus en détails dans le formalisme decette méthode.

2.3.2 Un algorithme pour les problèmes à une seule contrainte

La méthode Trier & Chercher, telle qu’introduite par Horowitz etSahni [117], s’applique à une classe de problèmes que l’on peut quali-fier de problèmes à une seule contrainte (PSC). Ces problèmes sont définis dela façon suivante.Soient A = (~a1, ~a2, . . .~anA) une table de nA vecteurs de dimension dA,B = ((b1, b′1), (b2, b′2) . . . (bnB , b′nB

)) une table de nB couples, f et g′ deuxfonctions de RdA+1 dans R croissantes par rapport à leur dernière variable.Le problème PSC, de minimisation, est défini comme suit :

Minimiser f (~aj, bk)s.c.

g′(~aj, b′k) ≥ 0~aj ∈ A, (bk, b′k) ∈ B.

Evidemment, il est possible d’en écrire une version où l’on cherche à maxi-miser la fonction objectif.

Nous allons maintenant nous intéresser à la méthode Trier & Chercherpour ce problème. Supposons les éléments de B classés par ordre croissantdes valeurs b′k et notons m la valeur minimale de la fonction f et mj lavaleur minimale de f pour un vecteur~aj (1 ≤ j ≤ nA) donné. Remarquezque m est la valeur de la solution optimale du PSC. Nous avons

m = min1≤j≤nA

mj,

mj = min1≤k≤nB

f (~aj, bk) | g′(~aj, b′k) ≥ 0.

En définissant G−1j = k ∈ J1, nBK | g′(~aj, b′k) ≥ 0, mj peut être reformulé

comme

mj = mink∈G−1

j

f (~aj, bk)

Puisque la fonction g′ est croissante par rapport à sa dernière variable,nous pouvons en déduire que G−1

j est soit vide, soit égal à un intervalle de

valeurs entières Jk j, nBK, avec k j à déterminer. Notez que G−1j est vide si et

Page 75: Le fichier pdf du livre (EJCIM 2015)

2.3. La méthode Trier & Chercher 65

seulement si g′(~aj, b′nB) < 0.

Dans le cas où G−1j n’est pas vide, l’indice k j est égal à mink | g′(~aj, b′k) ≥ 0

et peut être déterminé par une recherche dichotomique dans la table B (celaest possible car B est triée par ordre croissant des valeurs b′k). Par ailleurs,puisque f est également croissante par rapport à sa dernière variable, nouspouvons établir que

mj = f(~aj, minb` | ` ∈ G−1

j )

Enfin, nous notons bmink = min

k≤`≤nBb` (1 ≤ k ≤ nB) et nous avons

mj = f (~aj, bmink j

)

Les valeurs de bmink peuvent être calculées indépendamment de j par

un parcours de la table B de l’indice nB vers l’indice 1. Toutes ces consi-dérations générales permettent de justifier pourquoi la méthode Trier &Chercher de l’algorithme 4 résout optimalement les PSC.

Algorithme 4 : TrierChercher-PSC

1 m←− ∞, (j∗, k∗)←− (0, 0)2 Trier et indexer la table B par ordre croissant des valeurs b′k : la

k-ème colonne correspond au couple (bk, b′k) avec la k-ème pluspetite valeur b′k

3 À chaque colonne k de B, ajouter une troisième valeur définie parbmin

k = bk si k = nB, et bmink = min(bmin

k+1, bk) sinon4 pour tous les j ∈ J1, nAK tel que g′(~aj, b′nB

) ≥ 0 faire5 Calculer k j = mink ∈ J1, nBK | g′(~aj, b′k) ≥ 06 mlocal ←− f (~aj, bmin

k j)

7 si mlocal < m alors m←− mlocal et (j∗, k∗)←− (j, k j)

8 retourner m et (j∗, k∗)

En ce qui concerne la complexité au pire cas nécessaire pour résoudreun PSC, notons que l’étape 2 de Trier & Chercher requiert O(nB log2(nB))opérations, l’étape 3 en requiert O(nB) et la boucle O(nA log2(nB)). Ainsila complexité totale au pire cas est en O(nB log2(nB) + nA log2(nB)), àcondition que le temps de calcul requis pour calculer les valeurs de fet g′ soit négligeable par rapport au reste de l’algorithme. Par ailleurs,nous avons supposé que les tables A et B étaient données : néanmoins,elles nécessitent un temps de création en O(nA + nB) et elles occupent

Page 76: Le fichier pdf du livre (EJCIM 2015)

66 Chapitre 2. Algorithmes modérément exponentiels

un espace mémoire en O(nA + nB) également. Cela n’augmente pas lacomplexité au pire cas de Trier & Chercher. Si les deux tables contiennent2

n2 éléments, comme pour le problème SAC-À-DOS, alors nous obtenons

une complexité au pire cas en temps de O∗(2n2 ). Notez que la complexité

spatiale au pire cas est en O(nA + nB) qui est exponentielle dès lors que lenombre d’éléments nA et nB le sont.

Pour terminer la présentation de la méthode Trier & Chercher, ilconvient de noter que tous les résultats présentés ici peuvent être trés faci-lement adaptés au cas de figure où les fonctions f et g sont décroissantespar rapport à leur dernière variables et pour un problème de maximisation.

2.3.3 Un algorithme pour les problèmes à plusieurs contraintes

La méthode de Horowitz et Sahni peut être étendue (les détails sontdisponibles dans l’article [136]) à des problèmes à plusieurs contraintes(PPC) pouvant être définis de la façon suivante.Soient A = (~a1, ~a2, . . .~anA) une table de nA vecteurs de dimension dA, B =

(~b1, ~b2, . . .~bnB) une table de nB vecteurs~bk = (b0k , b1

k , . . . , bdBk ) de dimension

dB + 1, f et g` (1 ≤ ` ≤ dB) dB + 1 fonctions de RdA+1 dans R supposéescroissantes par rapport à leur dernière variable :

Minimiser f (~aj, b0k)

s.c.g`(~aj, b`k) ≥ 0, (1 ≤ ` ≤ dB)

~aj ∈ A,~bk ∈ B.

Le point clef de la méthode Trier & Chercher pour PPC consiste àtrouver des valeurs minimales à l’intérieur de rectangles de dimension d,ou hyperrectangles, au lieu d’intervalles comme dans le cas du PSC. Celapeut être réalisé efficacement à l’aide de structures de données spécifiquesappelées arbres d’intervalles et qui permettent de répondre à des requêtesd’intervalles rectangulaires. Une présentation claire et complète de cesstructures de données est proposée dans [62].

Soit P un ensemble de n points xj ∈ Rd et soitQ une requête d’intervallerectangulaire définie par [y1; y′1]× [y2; y′2]× ...× [yd; y′d]. Ainsi, calculer Qsur l’ensemble P implique de récupérer tous les points xj de P qui ap-partiennent à l’hyperrectangle défini par Q. D’après [62], les structuresd’arbres d’intervalles peuvent être définies comme suit :

Page 77: Le fichier pdf du livre (EJCIM 2015)

2.3. La méthode Trier & Chercher 67

Définition 1. Soit P un ensemble de n points de dimension d, i.e. P = xj =

(xj1; xj

2; . . . ; xjd), j = 1, 2, . . . , n. L’arbre d’intervalles T d(P) est construit récur-

sivement 6 : c’est un arbre binaire équilibré dont les clés, stockées aux feuilles del’arbre T d(P), sont les premières coordonnées des points xj.

Pour chaque nœud v ∈ T d(P), on définit l’ensemble P(v) des points stockésaux feuilles du sous-arbre enraciné en v.

Si d > 1, alors à chaque nœud interne v ∈ T d(P), on associe un arbred’intervalles T d−1(P′(v)) où P′(v) s’obtient des points de P(v), restreints à leursd− 1 dernières coordonnées.

Notez qu’à chaque nœud feuille d’un arbre T d(P) il est nécessaired’associer un point x de P pour permettre, par la suite, de renvoyer la listedes points satisfaisant à la requête Q. Tout ceci est illustré dans la figure2.8, dans le cas d’un arbre d’intervalles de dimension 3.

Ensemble P :

x1 = [1; 18; 140]

x2 = [2; 17; 141]

x3 = [3; 16; 142]

x4 = [4; 15; 143]

x5 = [5; 14; 144]

x6 = [6; 13; 145]

x7 = [7; 12; 146]

x8 = [8; 11; 147]

4

2

1 3

1 2 3 4

6

5 7

5 6 7 8

x1 x2 x3 x4 x5 x6 x7 x8

T 3(P )

Ensemble P (v):

x5 → [14; 144]

x6 → [13; 145]

x7 → [12; 146]

x8 → [11; 147]

v

11 13

1112 13

14

x8 x7 x6 x5

w

12

T 2(P (v))

Ensemble P (w):

x5 → 144

x6 → 145144

144 145

x5 x6

T 1(P (w))

FIGURE 2.8 – Un exemple d’arbre d’intervalles pour un ensemble P de points.

Globalement, calculer une requête d’intervalle rectangulaire Q surun ensemble P, est réalisé en identifiant d’abord dans T d(P) les nœudsdont les feuilles de leur sous-arborescence sont à l’intérieur de l’intervallepour la première coordonnée, i.e. les nœuds v dont les feuilles sont tellesque xj

1 ∈ [y1; y′1]. Ensuite, pour chacun de ces nœuds v il faut chercherles nœuds w ∈ T d−1(P2(v)) dont les feuilles de la sous-arborescence sonttelles que xj

2 ∈ [y2; y′2]. Ce processus est itéré jusqu’à ce que les arbresd’intervalles T 1 aient été explorés : tous les nœuds feuilles xj de cesderniers arbres constituent la réponse à la requête Q. Une illustration de

6. Cette structure s’appelle range tree en anglais.

Page 78: Le fichier pdf du livre (EJCIM 2015)

68 Chapitre 2. Algorithmes modérément exponentiels

ce processus est présentée dans la figure 2.9 sur les arbres d’intervalles dela figure 2.8. Dans cet exemple, nous cherchons tout d’abord dans T 3(P)les nœuds dont les feuilles appartiennent à l’intervalle [5; 8], c’est-à-direle nœud v. Ensuite, dans T 2(P2(v)) nous cherchons les nœuds dont lesfeuilles appartiennent à l’intervalle [12; 20] : ici nous avons le nœud feuilleassocié à x7 et le nœud w. Pour ce nœud feuille, nous pouvons vérifier quesa troisième coordonnée appartient bien à l’intervalle [140; 146] : le pointx7 est donc retourné. Pour le nœud w, nous cherchons dans T 1(P3(w)) lesnœuds feuilles qui satisfont à la contrainte d’intervalle [140; 146] pour latroisième coordonnée, i.e. les nœuds correspondant à x5 et x6.

Ensemble P :

x1 = [1; 18; 140]

x2 = [2; 17; 141]

x3 = [3; 16; 142]

x4 = [4; 15; 143]

x5 = [5; 14; 144]

x6 = [6; 13; 145]

x7 = [7; 12; 146]

x8 = [8; 11; 147]

4

2

1 3

1 2 3 4

6

5 7

5 6 7 8

x1 x2 x3 x4 x5 x6 x7 x8

T 3(P )

v

11 13

1112 13

14

x8 x7 x6 x5

w

12

T 2(P (v))

144

144 145

x5 x6

T 1(P (w))

Requete Q : [5; 8]× [12; 20]× [140; 146]

⇒ Solutions x5, x6 et x7

FIGURE 2.9 – Calcul d’une requête sur des arbres d’intervalles.

Pour une présentation détaillée des algorithmes nécessaires deconstruction et de recherche liés aux arbres d’intervalles, nous renvoyonsle lecteur au livre de de Berg et al. [62]. Pour l’analyse du temps de calcul,nous utilisons la propriété suivante.

Propriété 1. Soit P un ensemble de n points dans un espace de dimension d ≥ 2.Un arbre d’intervalles construit à partir de P utilise un espace en O(n logd−1

2 (n))et peut être construit en temps O(n logd−1

2 (n)). Il est possible de calculer lespoints de P qui répondent à la requête d’intervalle rectangulaire en complexitétemporelle O(logd

2(n) + k), où k est le nombre de points retournés. Par ailleurs,dénombrer le nombre k de points satisfaisant à la requête Q peut être réalisé encomplexité temporelle O(logd

2(n)).

Revenons maintenant à la résolution du PPC pour lequel la méthodeTrier & Chercher utilise non plus des tables mais des arbres d’intervalles.

Page 79: Le fichier pdf du livre (EJCIM 2015)

2.3. La méthode Trier & Chercher 69

Étant donné un vecteur~aj, nous lui associons les valeurs suivantes, sousréserve d’existence :

β`j = minb`k | 1 ≤ k ≤ nB et g`(~aj, b`k) ≥ 0 (1 ≤ ` ≤ dB)

etβ j = min~bk∈Bb0

k | (b1k , . . . , bdB

k ) ≥ (β1j , . . . , βdB

j )Les fonctions g` étant croissantes par rapport à leur dernière variable, lesβ`

j peuvent être facilement calculés par dichotomie. Le calcul β j est moinsaisé, il vient de la réponse à une requête rectangulaire, mais si β j existe,alors f (~aj, β j) est la solution optimale au PPC pour le vecteur~aj donné.

Pour toute valeur β ∈ b0k | k ∈ J1, nBK, nous définissons maintenant

Bβ = ~bk ∈ B | b0k ≤ β et (b1

k , . . . , bdBk ) ≥ (β1

j , . . . , βdBj )

Nous pouvons vérifier que

Bβ 6= ∅⇔ β j ≤ β,

etβ j = minβ | Bβ 6= ∅.

L’existence de β j est donc liée aux requêtes rectangulaires associées auxensembles Bβ.

Nous construisons l’arbre d’intervalles T dB+1(B) à partir des vecteursde B et calculons les dB valeurs β`

j . Selon la Propriété 1, l’arbre d’intervalles

peut être construit en complexité temporelle O(nB logdB(nB)) et les valeursβ`

j peuvent être calculées par dichotomie en O(nB log2(nB)). Ainsi, ettoujours selon la Propriété 1, le fait qu’un ensemble Bβ soit vide peut êtretesté en O(logdB+1

2 (nB)) en comptant le nombre de points satisfaisant larequête Q(β) : [−∞; β]× [β1

j ;+∞]× ...× [βdBj ;+∞].

Puisque les Bβ forment une famille croissante pour l’inclusion, la recherched’une valeur β j peut être réalisée en triant initialement tous les b0

k et enréalisant une recherche dichotomique : pour chaque valeur β testée, il suffitde résoudre la requête Q(β). La valeur minimale β telle que Bβ 6= ∅ estalors β j. La recherche complète peut être réalisée en complexité temporelleO(logdB+2

2 (nB)) dans le pire cas.

La méthode Trier & Chercher pour PPC, qui généralise celle de Horo-witz et Sahni pour le PSC, est présentée dans l’algorithme 5.

Page 80: Le fichier pdf du livre (EJCIM 2015)

70 Chapitre 2. Algorithmes modérément exponentiels

Algorithme 5 : TrierChercher-PPC

1 Créer l’arbre d’intervalle T dB+1(B).2 pour tous les ` ∈ J1, dBK faire3 b`max ←− maxb`k | 1 ≤ k ≤ nB4 m←− ∞5 pour tous les j ∈ J1, nAK tel que ∀` ∈ J1, dBK, g`(~aj, b`max) ≥ 0 faire6 pour tous les ` ∈ J1, dBK faire7 β`

j ←− minb`k | 1 ≤ k ≤ nB et g`(~aj, b`k) ≥ 08 β j ←− minβ | Bβ 6= ∅9 mj ←− f (~aj, β j)

10 si mj < m alors m←− mj

11 retourner m

En terme de complexité temporelle au pire cas, l’étape 1 requiertun temps en O(nB logdB

2 (nB)) et les étapes 2-4 requièrent un tempsen O(nB log2(nB)). Les étapes 6-7 correspondent à des recherches di-chotomiques dans la liste des b`k : ainsi, elle requièrent un temps enO(dB log2(nB)). L’étape 8 nécessite une recherche dichotomique dansl’ensemble des b0

k et pour chaque valeur β de calculer la requête Q(β), cequi au final est réalisé en O(logdB+2

2 (nB)) dans le pire cas.Par conséquent, la complexité temporelle globale au pire cas est enO(nB logdB

2 (nB) + nA logdB+22 (nB)) tandis que l’espace mémoire requis est

en O(nB logdB−12 (nB)).

Pour terminer, il faut bien remarquer que tous les résultats présentésici peuvent être adaptés au cas où les fonctions f et g` sont décroissantes parrapport à leur dernière variable, et au cas d’un probème de maximisation.

2.3.4 Un exemple d’application de la méthode Trier & Chercherétendue

Nous nous intéressons à un problème d’ordonnancement particulierqui peut être défini de la façon suivante. Soient n tâches à ordonnancersur un ensemble de m machines parallèles identiques : pour être réalisée,une tâche doit donc être traitée par une et une seule machine, et toutesles machines sont identiques. On dit alors que la tâche est affectée à lamachine. Chaque tâche i est définie par son temps opératoire pi : elle devradonc rester sur une machine pendant pi unités de temps consécutives

Page 81: Le fichier pdf du livre (EJCIM 2015)

2.3. La méthode Trier & Chercher 71

avant d’être terminée.Une machine va donc traiter un sous-ensemble des tâches et on note Cjla date de fin de la dernière tâche traitée par la machine j. L’objectif duproblème est de calculer un ordonnancement des tâches sur les machinesde sorte à minimiser le makespan, défini par Cmax = max1≤j≤m(Cj). Ceproblème est NP-difficile.

Nous allons montrer comment construire un algorithme de type Trier& Chercher en reformulant ce problème comme un PPC. Mais avant cela, ilnous faut introduire quelques résultats préliminaires.

Résultats préliminaires

Un ordonnancement s peut être vu comme un ensemble de m sé-quences, une par machine. Une séquence donnée correspond à l’ensembledes tâches traitées consécutivement par la machine associée. Soit P`(s) lasomme des temps opératoires des tâches affectées à la machine ` dansl’ordonnancement s, ` ∈ J1, mK, et soit P(s) la somme des temps opé-ratoires de toutes les tâches ordonnancées dans s. Nous définissons parδ`(s) = Pm(s)− P`(s) la différence entre la charge de la dernière machine etde la machine `. Il existe bien évidemment des relations entre ces valeurs.

Propriété 2. Nous avons :• P(s) = ∑m

`=1 P`(s),• ∑m−1

`=1 δ`(s) = ∑m`=1 δ`(s) = mPm(s)− P(s).

En utilisant la symétrie des machines (elles sont toutes identiques)nous pouvons supposer, sans perte d’optimalité, que le makespan estdonné par l’ensemble des tâches affectées sur la machine m : si cela n’estpas le cas, alors il suffit de renuméroter les machines pour que cela le de-vienne. Soit Om l’ensemble des ordonnancements tels que la valeur dumakespan est donné par la machine m.Supposons maintenant qu’on connaît deux ordonnancements partiels dis-tincts s and σ. Il vient que le makespan de l’ordonnancement sσ, obtenu parconcaténation des deux ordonnancements partiels est simplement définipar Cmax(sσ) = max1≤`≤m (P`(s) + P`(σ)). On peut établir alors le résultatsuivant.

Propriété 3. Le makespan de l’ordonnancement sσ est donné par les travauxordonnancés sur la machine m, si et seulement si les conditions suivantes sontvérifiées

∀` ∈ J1, m− 1K, δ`(s) + δ`(σ) ≥ 0 .

Page 82: Le fichier pdf du livre (EJCIM 2015)

72 Chapitre 2. Algorithmes modérément exponentiels

Alors, il vient que Cmax(sσ) = Pm(s) + Pm(σ) qui peut être réécrit comme

Cmax(sσ) =1m

(P(s) + P(σ) +

m−1

∑`=1

(δ`(s) + δ`(σ))

). (2.1)

Nous pouvons alors maintenant formuler une propriété pour complé-ter optimalement un ordonnancement partiel, puis le PPC à résoudre pourrésoudre optimalement le problème d’ordonnancement.

Propriété 4. Étant donné un ordonnancement partiel quelconque, s, l’ordon-nancement sσ est optimal, parmi les ordonnancements commençant par s, dansl’ensemble Om si et seulement si σ est une solution optimale du problème suivant :

Minimiser ∑m−1`=1 δ`(σ)

s.c. ∀` ∈ J1, m− 1K, δ`(s) + δ`(σ) ≥ 0

Démonstration. Dans l’équation 2.1, qui donne le makespan, le terme P(s) +P(σ) est une constante égale à la somme P de tous les temps opératoirespuisque s et σ forment une partition de l’ensemble des tâches. Par ailleurs,les valeurs de δ`(s) (1 ≤ ` ≤ m− 1) sont fixées et connues étant donnéque l’ordonnancement partiel s l’est. Le seul terme variable à minimiser est∑m−1

`=1 δ`(σ). Les (m− 1) contraintes imposent que le makespan soit donnépar la machine m.

Cela mène directement à la propriété suivante qui caractérise le pro-blème à résoudre pour obtenir un ordonnancement optimal.

Propriété 5. Un ordonnancement sσ est optimal, si et seulement si le couple (s,σ)est une solution optimale du problème :

Minimiser ∑m−1`=1 δ`(s) + δ`(σ)

s.c. ∀` ∈ J1, m− 1K, δ`(s) + δ`(σ) ≥ 0

Il ne reste plus qu’à préciser les ensembles de variations des ordon-nancements partiels s et σ pour définir un PPC. Cela est fait dans la sectionsuivante, en même temps la mise en application de la méthode Trier &Chercher est décrite.

Mise en oeuvre de la méthode Trier & Chercher

Il nous faut ici introduire quelques notations intermédiaires supplé-mentaires. Tout ensemble I peut être partitionné en m sous-ensembles E`

Page 83: Le fichier pdf du livre (EJCIM 2015)

2.3. La méthode Trier & Chercher 73

(1 ≤ ` ≤ m) (les E` sont disjoints deux à deux leur union est égale à I).Nous notons E = (E1, E2, . . . , Em) une telle partition de I.

Par abus de langage, nous identifions une tâche avec son indice.Nous notons I1 = 1, . . . ,

⌊ n2

⌋ le sous-ensemble constitué des

⌊ n2

⌋pre-

mières tâches de l’ensemble J des tâches et I2 = ⌊ n

2

⌋+ 1, . . . , n le

sous-ensemble des⌈ n

2

⌉dernières tâches de J (notez que l’ordre des tâches

à l’intérieur de J n’influe pas sur la résolution).

À chaque m-partition E j1 = (Ej

1,1, Ej1,2, . . . , Ej

1,m) de I1 (1 ≤ j ≤ m|I1|)

nous associons un ordonnancement sj1 qui contient la séquence des tâches

de Ej1,1 sur la machine 1, la séquence des tâches de Ej

1,2 sur la machine

2 et plus généralement la séquence des tâches de Ej1,` sur la machine `

(1 ≤ ` ≤ m). De façon similaire, nous associons à chaque m-partitionE k

2 de I2 un ordonnancement sk2 (cf figure 2.10 pour une illustration

dans le cas m = 3). Enfin, à chaque couple (E j1, E k

2 ) nous associons

Fjk =1m

(P +

m−1

∑`=1

δ`(sj1) +

m−1

∑`=1

δ`(sk2)

), avec P = ∑n

i=1 pi la somme des

temps opératoires de toutes les tâches. On constate facilement que Fjk est lemakespan de l’ordonnancement concaténé sj

1sk2.

machine 1

machine 2

machine 3 P3(s1) P3(s2)

P2(s1) P2(s2)

P1(s1) P1(s2)

𝛿1(s1)

𝛿2(s1) Cmax

FIGURE 2.10 – Un exemple de décomposition dans le cas de 3 machines.

Nous pouvons maintenant établir le lien entre la résolution du pro-blème d’ordonnancement et la résolution de PPC.

Page 84: Le fichier pdf du livre (EJCIM 2015)

74 Chapitre 2. Algorithmes modérément exponentiels

Propriété 6. Nous avonsmins∈Om

Cmax(s) = minj,k

Fjk | ∀` ∈ J1, m− 1K, δ`(s

j1) + δ`(sk

2) ≥ 0

.

Ainsi, le problème d’ordonnancement peut être vu comme le PPCci-dessous et donc résolu par l’extension de la méthode Trier & Chercher.

~aj = (δ1(sj1), δ2(s

j1), . . . , δm−1(s

j1))

~bk = (∑m−1`=1 δ`(sk

2), δ1(sk2), δ2(sk

2), . . . , δm−1(sk2))

f (~aj, b0k) =

1m (P + ∑m−1

`=1 δ`(sj1) + ∑m−1

`=1 δ`(sk2))

g`(~aj, b`k) = δ`(sj1) + δ`(sk

2)

avec 1 ≤ j ≤ mb n2 c, 1 ≤ k ≤ md n

2 e et 1 ≤ ` ≤ m− 1.

Par ailleurs, on peut facilement vérifier que les fonctions f et g`(1 ≤ ` ≤ m− 1) sont des fonctions croissantes par rapport à leur dernièrevariable.

La complexité temporelle de la méthode Trier & Chercher est enO(nB logdB

2 (nB) + nA logdB+22 (nB)) avec, pour ce problème particulier, nB =

nA = mn2 et dB = (m − 1). Ainsi, nous obtenons un algorithme Trier &

Chercher pour le problème d’ordonnancement en temps O∗(mn2( n

2

)m+1).

Par ailleurs, la complexité spatiale est en O∗(mn2( n

2

)m−2). Dès lors que le

nombre de machines m ≥ 2 est fixé, les complexités spatiales et temporellesdeviennent en O∗(m

n2 ). Ainsi, par exemple, pour le problème d’ordon-

nancement à 3 machines nous obtenons un algorithme exponentiel enO(1.7321n).

2.4 Programmation dynamique

La programmation dynamique consiste à résoudre un problème enconsidérant une famille de sous-problèmes de plus en plus grands, quisont traités au fur et à mesure en combinant les solutions (déjà mémori-sées) pour les sous-problèmes plus petits. Bien qu’utilisée parfois pour laconception d’algorithmes polynomiaux, la programmation dynamique estparticulièrement adaptée lorsque l’on est prêt à accepter une complexitéimportante en mémoire et en temps. En témoigne l’algorithme bien connu

Page 85: Le fichier pdf du livre (EJCIM 2015)

2.4. Programmation dynamique 75

pour SAC-À-DOS, de complexité faiblement polynomiale en temps et enespace, présent dans bon nombre de livres d’introduction à l’algorithmique(citons ne serais-ce que Cormen et al. [57]) et dans de nombreux cours deniveau licence ! On ne s’étonnera pas de retrouver cette technique dansla conception d’algorithmes modérément exponentiels et dans d’autresdomaines où on tolère une explosion combinatoire « maîtrisée » de la com-plexité tels que l’algorithmique paramétrée.

Nous suivons la démarche qui consiste à partir d’un algorithme exact« naturel », d’y ajouter de la programmation dynamique afin d’en diminuerla complexité, et si possible une « sur-couche » de travail combinatoire pourplus d’améliorations.

2.4.1 L’approche Held-Karp : VOYAGEUR DE COMMERCE

L’algorithme de Held et Karp [113], datant des années 60, est l’undes premiers algorithmes non-triviaux modérément exponentiels. Nousverrons en fin de section que cette approche initialement conçue pourle problème du VOYAGEUR DE COMMERCE s’applique à de nombreuxproblèmes d’ordonnancement des sommets d’un graphe.

VOYAGEUR DE COMMERCE

Entrée : un graphe G = (V, E), avec une fonction de poids sur lesarêtes w : E→N.

Question : trouver un cycle passant au moins une fois par chaquesommet du graphe, de poids minimum.

Une première idée pour le VOYAGEUR DE COMMERCE serait de « de-viner » l’ordre (v1, . . . , vn) dans lequel le voyageur (le cycle) rencontre lessommets pour la première fois. Pour chaque ordre total O = (v1, . . . , vn)sur les sommets, le cycle correspondant le plus court serait de poids

w(O) =n−1

∑i=1

dist(vi, vi+1) + dist(vn, v1),

où dist(x, y) désigne le poids minimum d’un chemin de x à y dans le graphe.La quantité w(O) est clairement calculable en temps polynomial, donc enénumérant les n! (factorielle n) ordres totaux sur l’ensemble des sommetsV on obtient un algorithme exact pour le VOYAGEUR DE COMMERCE, decomplexité O∗(n!).

Held et Karp réduisent cette complexité à O∗(2n) avec l’observationsuivante. Soit W un ensemble de sommets contenant le sommet 1 et soit xun autre sommet de W. Notons OPT[W, x] le poids d’un plus court chemin

Page 86: Le fichier pdf du livre (EJCIM 2015)

76 Chapitre 2. Algorithmes modérément exponentiels

de 1 à x, passant au moins une fois par chaque sommet de W. Trivialement,pour tout x 6= 1 on a

OPT[1, x, x] = dist(1, x).

Pour toute paire (W, x), où W possède au moins trois sommets et x 6= 1 ona la récurrence

OPT[W, x] = miny∈W\1,x

OPT[W \ x, y] + dist(y, x). (2.2)

La relation ci-dessus exprime le fait que le plus court chemin de 1 àx passant par les sommets de W consiste en un chemin de 1 à y passantpar tous les sommets de W \ x, plus un plus court chemin de y à x, pourun sommet y bien choisi. On calculera toutes les quantités OPT[W, x], entraitant les ensembles W par taille croissante, soit un coût total O∗(2n). Lalongueur du cycle le plus court pour notre VOYAGEUR DE COMMERCE sera

minx∈V\1

OPT[V, x] + dist(x, 1).

L’algorithme peut être aisément adapté afin de retourner un cycle optimum,toujours en temps O∗(2n).

Théorème 2.4.1 ([113]). Il existe un algorithme de complexité O∗(2n) pour leproblème VOYAGEUR DE COMMERCE.

2.4.2 Un algorithme pour LARGEUR ARBORESCENTE

La largeur arborescente d’un graphe mesure intuitivement si ce graphea une structure « proche d’un arbre ». La définition est illustrée par lafigure 2.11 (gauche et milieu).

Définition 2.4.2 (Largeur arborescente). Étant donné un graphe non orientéG = (V, E), on appelle décomposition arborescente de G toute paire (X , T),où T = (I, F) est un arbre et X = Xi | i ∈ I est une famille de sous-ensemblesde V appelés sacs, satisfaisant :

1.⋃

i∈I Xi = V,2. pour chaque arête uv de G, il y a un sac Xi contenant ses deux extrémités,3. pour chaque sommet v ∈ V, l’ensemble i ∈ I | v ∈ Xi induit un

sous-arbre connexe de T.La largeur d’une décomposition aborescente (X , T) est la taille de son plus grandsac, moins un. La largeur arborescente de G, notée tw(G) (en anglais : tree-width), est la plus petite largeur parmi toutes les décompositions arborescentes dugraphe.

Page 87: Le fichier pdf du livre (EJCIM 2015)

2.4. Programmation dynamique 77

On prouve aisément qu’un graphe à n sommets est de largeur arbo-rescente au plus n− 1, et que les graphes de largeur arborescente 1 sontexactement les forêts.

a

b cd

e f g

h

bcdf

bef

ch

cfg

abc a

b cd

e f g

h

FIGURE 2.11 – Un graphe G, une décomposition arborescente de largeur 3 et latriangulation H associée.

Cela nous amène à définir le problème du calcul de la largeur arbores-cente d’un graphe.

LARGEUR ARBORESCENTE

Entrée : un graphe G = (V, E) et un nombre k.

Question : décider si tw(G) ≤ k.

Arnborg, Corneil et Proskurowski ont prouvé que ce problème estNP-difficile [3]. Dans le même article, ils proposent un algorithme exactde complexité O(nk), qui peut également être vu comme un algorithmede complexité O(2n) et que nous détaillerons ci-dessous. Signalons le re-marquable résultat de Bodlaender [33], qui propose un algorithme pour leproblème LARGEUR ARBORESCENTE de complexité n · 2O(k3).

Très informellement, l’algorithme d’Arnborg, Corneil et Proskurowskiprocède par programmation dynamique en « essayant » tous les sacs, d’oùsa complexité O∗(2n), ou O∗(nk) lorsque l’on se restreint à des sacs au plusk.

Plus formellement, soit S un ensemble de sommets de G et soit C unecomposante connexe de G− S 7. Chaque paire (S, C) de ce type sera appeléebloc. Observons qu’un graphe possède au plus n · 2n blocs, et que les blocspeuvent être énumérés en temps O∗(2n). La programmation dynamique sefera sur les blocs (S, C) traités par taille croissante de l’ensemble S ∪ C. Enparticulier les blocs doivent être mémorisés dans une structure de donnée

7. On note G− S le graphe obtenu à partir de G en supprimant tous les sommets deS. Une composante connexe est un ensemble de sommets induisant un graphe connexe,maximal pour cette propriété.

Page 88: Le fichier pdf du livre (EJCIM 2015)

78 Chapitre 2. Algorithmes modérément exponentiels

appropriée, qui permet de les indicer par S ∪ C et de les parcourir defaçon triée. On tâchera de calculer la plus petite largeur parmi toutes lesdécompositions arborescentes de G[S ∪ C] 8 dans lesquelles S est un sac.Notons twR(S, C) cette quantité, qui sera mémorisée pour chaque bloc.Observer que, si G est connexe, tw(G) = twR(∅, V).

Il reste à établir une formule de récurrence permettant de calculertwR(S, C) en fonction des quantités twR(S′, C′) pour des blocs plus petits.Pour nos besoins, on se restreindra toujours aux blocs (S, C) où N(C) = S 9.Arnborg, Corneil et Proskurowski établissent la relation suivante :

twR(S, C) = minS⊂Ω⊆S∪C

(max1≤i≤p

(|Ω| − 1, twR(Si, Ci))

)(2.3)

où le minimum est pris sur tous les ensembles de sommets Ω tels queS ⊂ Ω ⊆ S ∪ C, et le maximum est pris sur toutes les paires (Si, Ci), où Ciest une composante de G[C \Ω] et Si = N(Ci).

S

C

S

C

C1 C2

S1 S2

Ω

FIGURE 2.12 – Un bloc (S, C) et l’une de ses décompositions en blocs plus petits.

La situation est illustrée par la figure 2.12. À défaut de prouver la for-mule, essayons d’en donner une intuition. Pour obtenir une décompositionde G[S∪C] dont un sac soit égal à S, on « devine » un sac Ω plus grand, quidécoupera S ∪ C en plusieurs composantes connexes C1, . . . , Cp. À partirdes décompositions de G[Si ∪Ci], ayant chacune un sac Si, il suffit d’ajouterun sac Ω relié aux sacs Si, et un sac S relié à Ω. On peut vérifier d’après ladéfinition que cette construction est bien une décomposition arborescentede G[S ∪ C], dont un sac est précisément S.

Appliquée en l’état, l’équation 2.3 nécessiterait de considérer tous lesensembles de sommets Ω contenus dans S ∪ C et contenant strictementS, ce qui rajouterait un facteur exponentiel à notre algorithme. La clé de

8. On note G[S ∪ C] le sous-graphe de G induit par les sommets de S ∪ C.9. Rappelons que N(S) dénote le voisinage de l’ensemble S.

Page 89: Le fichier pdf du livre (EJCIM 2015)

2.4. Programmation dynamique 79

l’algorithme de [3] est l’observation que l’on peut se restreindre à desensembles de la forme Ω = S ∪ x, où x est un sommet de C. Grâce à cefait, le calcul de chaque quantité twR(S, C) se fait en temps polynomial,à partir des quantités twR(Si, Ci) précalculées. On en déduit le résultatsuivant :

Théorème 2.4.3. Il existe un algorithme de complexité O∗(2n) pour le problèmeLARGEUR ARBORESCENTE.

2.4.3 La combinatoire au secours de la programmation dyna-mique

L’algorithme de la sous-section ci-dessus considère chaque sous-ensemble de sommets S (ou Ω) et essaye d’en faire un sac, ce qui faitque l’on travaille avec 2n sacs. Afin d’obtenir une complexité de type O(cn)avec c < 2, les algorithmes actuels font un grand détour par des résultatsstructurels et combinatoires sur les graphes. Nous verrons que les sacsvéritablement utiles (permettant de construire toutes les décompositionsoptimales) ont des propriétés structurelles fortes, qui nous permettront delimiter leur nombre à 1.7549n.

Cette approche se base sur une définition alternative de la largeurarborescente. Étant donnée une décomposition arborescente d’un grapheG = (V, E), soit H = (V, F) le graphe obtenu en ajoutant une arête entrechaque paire de sommets contenus dans un même sac de la décomposition,comme dans la figure 2.11. D’après la définition 2.4.2, H contient G commesous-graphe 10. Il n’est pas difficile de montrer que H est triangulé, c’est-à-dire qu’il ne possède pas de cycle induit de longueur au moins 4. Observonsque chaque sac de la décomposition induira une clique dans le graphe H,c’est-à-dire un ensemble de sommets deux à deux adjacents.

Par un résultat classique de Gavril [96], chaque graphe triangulé Hpossède une décomposition arborescente dont les sacs sont exactementles cliques maximales de H. Ceci conduit à une définition alternative dela largeur arborescente. Étant donné un graphe quelconque G = (V, E),un graphe triangulé H = (V, F), avec le même ensemble de sommets etcontenant G comme sous-graphe, est appelé triangulation de G. Si, de plus,aucun sous-graphe strict de H n’est une triangulation de G, on dit queH est une triangulation minimale de G. Notons ω(H) la taille de la plusgrande clique du graphe H. On peut (re)définir la largeur arborescente deG comme

tw(G) = minω(H)− 1 | H est une triangulation minimale de G.10. Chaque arête de G est également une arête de H.

Page 90: Le fichier pdf du livre (EJCIM 2015)

80 Chapitre 2. Algorithmes modérément exponentiels

En clair, pour décider si G est de largeur arborescente au plus k, il faut luiajouter des arêtes afin de le trianguler (jusqu’à ce qu’il n’y ait plus de cyclesans corde), tout en assurant que la clique la plus grande de la triangulationn’excède pas k + 1 sommets. Il est clair que, dans ce processus, on peut serestreindre aux triangulations minimales.

Un ensemble de sommets S de G est appelé séparateur minimal s’il y adeux composantes connexes de C et D de G− S telles que N(C) = N(D) =S. Enfin, un ensemble de sommets Ω de G est une clique maximale potentiellede G s’il existe une triangulation minimale H de G telle que Ω soit uneclique maximale de H. Par les observations précédentes, les sacs d’unedécomposition arborescente correspondant à une triangulation minimalesont des cliques maximales potentielles.

À titre d’exemple, si G est un cycle, ses séparateurs minimaux sontexactement les paires de sommets non-consécutifs, et ses cliques maximalespotentielles sont exactement les ensembles de trois sommets. Aussi, dansl’exemple de la figure 2.11, chaque sac de la décomposition est une cliquemaximale potentielle du graphe G. Bouchitté et Todinca [35] donnent lacaractérisation suivante des cliques maximales potentielles. Observonsqu’elle permet de tester en temps polynomial si un ensemble de sommetsest une clique maximale potentielle.

Théorème 2.4.4 ([35]). Un ensemble de sommets Ω de G est une clique maximalepotentielle si et seulement si

1. pour chaque paire de sommets u, v ∈ Ω, u et v sont adjacents ou dans levoisinage d’une même composante connexe de G−Ω, et

2. aucune composante de G−Ω n’est adjacente à tous les sommets de Ω.

Les mêmes auteurs prouvent que, dans l’équation 2.3, on peut serestreindre aux ensembles S et Ω tels que S soit un séparateur minimal etΩ soit une clique maximale potentielle (par convenance, on considéreraque l’ensemble vide est aussi un séparateur minimal). Fomin et al. [90]observant que le nombre de triplets (S, Ω, C) comme ceux de l’équation 2.3(c-à-d tels que S ⊂ Ω ⊆ C) est au plus n|ΠG|, ce qui montre le résultatsuivant.

Théorème 2.4.5 ([90]). Le problème LARGEUR ARBORESCENTE peut être résoluen tempsO∗(|ΠG|), si l’ensemble ΠG des cliques maximales potentielles du grapheG est donné en entrée.

Il reste à donner des bornes supérieures sur le nombre |ΠG| de cliquesmaximales potentielles de G, ainsi qu’un algorithme efficace pour énu-mérer ces objets. Fomin et Villanger [94] proposent pour ce faire un outilcombinatoire donné ci-après, le très joli « théorème des pompiers ».

Page 91: Le fichier pdf du livre (EJCIM 2015)

2.4. Programmation dynamique 81

Théorème 2.4.6 ([94]). Soit G = (V, E) un graphe à n sommets, soit v unsommet de G et soient b, f deux entiers. Le nombre d’ensemble de sommets Bcontenant v tels que

— G[B] est connexe et— |B| = b + 1 et |NG(B)| = f

est au plus (b+ ff ).

Leur preuve fournit également un algorithme d’énumération de tousles ensembles B satisfaisant les conditions, en temps O∗

((b+ f

f ))

. Par un ré-sultat de [90] basé sur le théorème 2.4.4, chaque clique maximale potentielleΩ est de la forme N(Cv) ∪ v, où v est un sommet et Cv est un ensembleconnexe de taille au plus 2(n − |Ω|)/3. Combiné avec le théorème despompiers (théorème 2.4.6), en découle un algorithme d’énumération descliques maximales potentielles en temps O∗(1.7549n). Par une étude plusfine des cas, on peut borner le nombre de cliques maximales potentielles etles énumérer en temps O∗(1.7347n).

Théorème 2.4.7 ([93]). Il existe un algorithme de complexité O∗(1.7347n) pourle problème LARGEUR ARBORESCENTE.

2.4.4 Extensions

Cliques maximales potentielles. L’utilisation des cliques maximales po-tentielles a été étendue à une classe de problème beaucoup plus large,consistant à trouver, dans un graphe G en entrée, un plus grand sous-graphe induit de largeur arborescente au plus t et satisfaisant une propriétéP exprimable en logique monadique du second ordre. Ce problème gé-nérique peut être résolu en temps O∗(nt · |ΠG|), si les cliques maximalespotentielles sont données en entrée [92]. Le problème contient, comme casparticuliers, de nombreux problèmes classiques : MAX-ENSEMBLE STABLE

(où l’on cherche un plus grand sous-graphe induit de largeur arborescente0, voir aussi la section 2.2), FORÊT INDUITE MAXIMUM (où l’on cherche laplus grande forêt induite, donc le plus sous-graphe induit de largeur arbo-rescente 1, problème équivalent au COUPE-CYCLE MINIMUM), PLUS LONG

CHEMIN INDUIT (le sous-graphe induit est de largeur arborescente 1, et lapropriété d’être un chemin s’exprime facilement en logique monadique dusecond ordre), PLUS GRAND SOUS-GRAPHE PLANAIRE EXTÉRIEUR INDUIT,etc. [93, 92]. Ces problèmes peuvent être résolus en tempsO∗(1.7347n), sen-siblement mieux que la complexité O∗(2n) de la « force brute ». Signalonsque l’approche donne le meilleur algorithme actuel pour le COUPE-CYCLE

MINIMUM, avec une complexité inférieure à celle des algorithmes de bran-chement. Elle trouve aussi des applications en algorithmique polynomiale

Page 92: Le fichier pdf du livre (EJCIM 2015)

82 Chapitre 2. Algorithmes modérément exponentiels

(le nombre de cliques maximales potentielles est polynomial pour beau-coup de classes de graphes [35]) et à paramètre fixe (en bornant |ΠG| parrapport à des paramètres comme le transversal minimum [91]).

Enfin, notons que la borne actuelle de O∗(1.7347n) pour le nombrede cliques maximales potentielles semble très loin de l’optimum. Touteamélioration dans l’algorithme d’énumération de ces objets entraîneraitautomatiquement une amélioration des algorithmes exacts pour tous lesproblèmes sus-cités.

Approche de Held et Karp. Beaucoup de paramètres de graphes s’ex-priment de la façon suivante. Le graphe G = (V, E) est de paramètre auplus k s’il existe un ordre total (v1, . . . , vn) sur ses sommets tel que, pourtout i, 1 ≤ i ≤ n, l’ensemble Vi des i premiers sommets est de « mesure » auplus k. La « mesure » dépend du paramètre. Par exemple pour le paramètrelargeur linéaire (en anglais : pathwidth) la mesure est la taille du voisinage deVi, et pour le paramètre largeur de coupe (cutwidth) c’est le nombre d’arêtesentre Vi et son complément. Même la largeur arborescente peut être expri-mée de cette façon [34] ! L’approche de Held et Karp est extensible à tousces problèmes, permettant de calculer ces paramètres en temps O∗(2n), pardes récurrences similaires à la formule 2.2.

La question de l’existence d’un algorithme exact pour le VOYAGEUR

DE COMMERCE de complexité O(cn) avec c < 2 a été ouverte pendant denombreuses années. Le premier algorithme à descendre en dessous de 2n

est dû à Bjorklund [27] : c’est un algorithme probabiliste de type MonteCarlo, de complexité O(1.657n).

Mémoire. Dans tous les algorithmes de programmation dynamique évo-qués dans cette section, la complexité en espace est la même que la com-plexité en temps. Puisque la programmation dynamique est l’adaptationd’un algorithme récursif combiné avec de la mémorisation, nos algorithmespeuvent être remis dans leur forme récursive. Ils deviendront ainsi (beau-coup) plus coûteux en temps, mais avec une complexité polynomiale enespace. Nous renvoyons à l’ouvrage de Fomin et Kratsch [89] pour de plusamples discussions.

2.5 Conclusion

Nous avons présenté trois techniques pour la conception d’algorithmesmodérément exponentiels. Résumons brièvement les trois sections quenous leurs avons consacrées.

Page 93: Le fichier pdf du livre (EJCIM 2015)

2.5. Conclusion 83

La première technique présentée à la section 2.2 est le branchement,illustré par la résolution de problèmes d’énumération et de recherche destables dans un graphe. Ces algorithmes de branchement ne se limitentévidement pas à des problèmes de stables et peuvent naturellement êtreemployés à la résolution d’autres problèmes. Nous avons étudié la concep-tion de ces algorithmes, composés de règles d’arrêt, de réduction et debranchement. Nous nous sommes ensuite attardés à l’analyse, pas tou-jours évidente, du temps d’exécution de ceux-ci. Pour cela, nous avonsmis un éclairage particulier sur la technique Mesurer pour conquérir quiaboutit à des bornes plus serrées sur le temps d’exécution au pire descas. Cependant, les bornes obtenues ne sont généralement pas optimales.L’amélioration des techniques d’analyses des algorithmes de branchementconstitue aujourd’hui un défi.

La deuxième technique étudiée à la section 2.3 est Trier & Chercher.Cette approche donne le meilleur algorithme connu pour le problème clas-sique du SAC-À-DOS, avec un temps d’exécution en O∗(2n/2) [117, 177].Nous avons ensuite déployé cette technique pour résoudre un ensemble deproblèmes plus larges appelés PPC. On observe que des structures de don-nées sont ici essentielles pour établir un temps d’exécution sensiblementmeilleur que l’algorithme naïf ; nous avons par exemple employé des arbresd’intervalles pour structurer l’information. Une illustration de la résolutiondes PPC a été donnée pour la résolution d’un problème d’ordonnancementà plusieurs machines parallèles.

Comme troisième technique nous avons finalement présenté à la sec-tion 2.4 la programmation dynamique. C’est une technique bien connue etsouvent utilisée pour la conception d’algorithmes polynomiaux. Nousavons observé qu’elle est tout aussi utile pour l’obtention d’algorithmesmodérément exponentiels, au coût d’un espace mémoire important. Nousavons présenté l’algorithme (aujourd’hui classique) de HELD et KARP entempsO∗(2n) pour la résolution du VOYAGEUR DE COMMERCE [113]. Nousavons ensuite défini les décompositions arborescentes et présenté un algo-rithme de programmation dynamique, pour en calculer décomposition delargeur minimum en temps O∗(2n). L’introduction d’objets combinatoiresparticuliers appelés cliques maximales potentielles et l’étude de leur nombremaximum permet de diminuer cette complexité. En guise d’extension, nousmontrons un autre usage des cliques maximales potentielles pour résoudreune grande variété de problèmes.

À travers ces trois techniques, nous observons que la combinatoireapparaît naturellement dans l’analyse des temps d’exécution. De façonplus intéressante encore, on s’aperçoit que l’algorithmique modérément

Page 94: Le fichier pdf du livre (EJCIM 2015)

84 Chapitre 2. Algorithmes modérément exponentiels

exponentielle apporte aussi des réponses à des questions combinatoires.Typiquement les algorithmes d’énumération sont d’excellents outils pourétablir des bornes combinatoires sur les objets énumérés. Pour beaucoupd’objets combinatoires (cliques maximales potentielles, ensembles domi-nants minimaux...), nous ne connaissons pas aujourd’hui une borne serréesur le nombre maximum. La connaissance de telles bornes apporteraitnotoirement des analyses de temps d’exécution plus précises, pour cer-tains algorithmes dont nous disposons déjà. Paradoxalement, peut-êtreque c’est l’étude elle-même d’algorithmes d’énumération de ces objets quifournira ces bornes plus serrées. Indiscutablement, l’analyse des tempsd’exécution de ces algorithmes (typiquement de branchement) apporterontde nouvelles techniques d’analyse utiles à ce domaine de recherche.

Bien sûr, dans ce chapitre nous n’avons mis la lumière que sur unensemble restreint mais certes important de techniques. D’autres approchesfont le succès de l’algorithmique modérément exponentielle. L’ouvrage deFomin et Kratsch [89] est une excellente monographie sur le sujet et nous yréférons le lecteur intéressé. Nous mentionnons ici les techniques :

— diviser pour régner ;— inclusion-exclusion ;— subset convolution ;— brancher et recharger.

La technique diviser pour régner est elle aussi habituellement présen-tée dans les cursus universitaires de premier cycle en informatique. Cetteapproche est aussi utilisé pour développer des algorithmes modérémentexponentiels, en ayant l’avantage de n’utiliser qu’un espace polynomial.Le problème VOYAGEUR DE COMMERCE peut ainsi se résoudre en espacetemps O(4nnlog n) et espace polynomial [108]. Le problème de la colorationdemande de colorer les sommets d’un graphe avec le moins de couleurspossibles, de sorte que des sommets voisins aient des couleurs différentes.C’est la technique inclusion-exclusion qui produit le meilleur algorithmeconnu pour ce problème. Il s’agit de l’algorithme de Björklund, Husfeldtet Koivisto [29] qui s’exécute en temps O∗(2n). Plus généralement, la tech-nique sert à résoudre des problèmes de partition ou de recouvrement, et dedénombrer les solutions. Ce que l’on appelle fast subset convolution est lecalcul, en temps O∗(2n), du produit de convolution de deux fonctions [28].Les applications de cette opération sont assez nombreuses et ce calcul per-met de diminuer la complexité de certaines approches basées sur de laprogrammation dynamique. Le branchement est une technique redouta-blement efficace, mais les analyses des temps d’exécution des algorithmesbasés sur ce paradigme restent souvent sur-estimées. Nous avons présenté

Page 95: Le fichier pdf du livre (EJCIM 2015)

2.5. Conclusion 85

la technique mesurer pour conquérir qui améliore la précision de l’analyse.Une autre technique qui contribue à l’analyse des algorithmes de bran-chement est brancher et recharger. Le rechargement est inspiré des preuvesde déchargement que l’on trouve en théorie des graphes pour établir desbornes autour de la coloration. L’idée est de redistribuer des poids surun graphe. Dans [86], Fomin et al. introduisent cette technique pour desproblèmes généralisés de domination.

Les puissantes techniques développés ces dernières années donnentdes algorithmes sensiblement plus rapides que la simple énumérationnaïve. Ils démontrent aussi l’inventivité née de l’étude algorithmique deproblèmes difficiles à résoudre en temps polynomial, typiquement desproblèmes NP ou PSPACE-complets.

Pour conclure ce chapitre, soulignons qu’un champ de recherche seveut complet s’il permet aussi d’établir des résultats négatifs. Le domainedes algorithmes modérément exponentiels s’est enrichi d’outils pour mon-trer l’impossibilité, sous certaines hypothèses de complexité. Par exemple,il est possible de montrer que certains problèmes (comme celui de la re-cherche du plus grand stable) n’admettent pas d’algorithmes dont le tempsd’exécution serait en O(2o(n)), c’est-à-dire un temps sous-exponentiel, saufsi SNP ⊆ SUBEXP. Cette dernière relation est considérée comme impro-bable. L’hypothèse du temps exponentiel (en anglais, Exponential TimeHypothesis) est une conjecture qui dit que le problème 3-SAT ne peut pasêtre résolu en temps sous-exponentiel. Notons que dans [122], cette conjec-ture est donnée sous une forme un peu moins forte. Une autre hypothèse,encore plus forte, appelée Strong Exponential Time Hypothesis, va plus loin.Elle suppose que, pour tout δ < 1, il y un k tel que k-SAT ne puisse pasêtre résolu en temps O(2δn). Autrement dit, cette hypothèse implique queSAT ne peut pas être résolu en O(2δn) pour δ < 1. On notera que la StrongExponential Time Hypothesis implique la Exponential Time Hypothesis. Desrésultats de (non) existence d’algorithmes (sous)-exponentiels reposent surces conjectures.

Page 96: Le fichier pdf du livre (EJCIM 2015)
Page 97: Le fichier pdf du livre (EJCIM 2015)

Chapitre 3

Calcul de programmesparallèles avec Coq

Frédéric LoulergueWadoud Bousdira

Julien TessonLe système SYDPACC est un ensemble de bibliothèques pour l’assistant

de preuve Coq. Il permet d’écrire des programmes fonctionnels naïfs, c’est-à-dire de complexité élevée et que l’on considère comme des spécifications, et deles transformer en des versions plus efficaces. Ces fonctions efficaces peuventalors être automatiquement parallélisées avant d’être extraites de Coq sousforme de code OCaml avec appels à une bibliothèque de programmationparallèle fonctionnelle. Ce chapitre est une introduction à Coq et SYDPACC.

De nos jours les architectures parallèles sont partout : des ordiphonesaux super-calculateurs et fermes d’ordinateurs. Toutefois la plupart desprogrammeurs ne maîtrisent pas la programmation parallèle. Il y a doncun besoin de nouvelles abstractions de programmation pour rendre la pro-grammation parallèle plus aisée, ou au moins de bibliothèques implantéesen parallèle pour masquer les détails du parallélisme aux programmeurs.Le parallélisme étant présent dans tous les domaines d’applications, ilest également important de s’intéresser à la correction des programmesparallèles.

Les techniques de transformation de programmes permettent d’éla-borer des programmes efficaces de manière formelle. Un programme ef-ficace (c’est-à-dire de complexité faible) est dérivé pas à pas à traversune séquence de transformations qui en préserve la sémantique et consé-quemment la correction. Avec des structures de données appropriées, le

Page 98: Le fichier pdf du livre (EJCIM 2015)

88 Chapitre 3. Calcul de programmes parallèles avec Coq

calcul de programme peut être utilisé pour développer des programmesparallèles [52, 119, 155]. Une fois qu’une formulation correcte et efficacedu programme est obtenue par transformations, le programme est sou-vent implanté en utilisant un langage de programmation répandu, laplupart du temps impératif, et une bibliothèque de squelettes algorith-miques [129, 148, 18, 43, 135]. Les squelettes algorithmiques peuvent êtrevus comme des fonctions d’ordre supérieur implantées en parallèle. Cepen-dant, il n’y a pas de correspondance formelle entre le programme obtenupar transformation et le programme conçu avec les squelettes. De plus, latransformation elle-même est généralement écrite à la main et peut êtresource d’erreurs.

Le système SYDPACC [97, 194, 195, 142, 81] est un ensemble de bi-bliothèques pour l’assistant de preuve Coq [196] permettant d’écrire desprogrammes fonctionnels naïfs, et de les transformer en des versions plusefficaces qui peuvent être automatiquement parallélisées avant d’être ex-traites de Coq [139] produisant ainsi du code OCaml [138, 46, 157] enrichipar des appels à la bibliothèque de programmation parallèle fonctionnelleBulk Synchronous Parallel ML ou BSML [140]. Ce chapitre est une intro-duction à l’assistant de preuves Coq et au système SYDPACC pour ledéveloppement systématique de programmes parallèles corrects et vérifiés.

Nous commençons par un survol rapide de la théorie des listes et duformalisme de Bird et Meertens (section 3.1), avec les notations et stylesde preuves traditionnels. Cette première section se termine par la dériva-tion d’un programme efficace pour le problème du calcul du maximumdes sommes des préfixes d’une liste (MPS). Une introduction générale àl’assistant de preuve Coq est donné dans la section 3.2. Les sections 3.3et 3.4 présentent de façon concise les notions nécessaires à la program-mation fonctionnelle en Coq, la formalisation de propriétés et l’écriturede preuves. Les structures algébriques qui sont au cœur du formalismede Bird et Meertens, s’expriment et s’utilisent facilement en Coq par desclasses de types et leurs instances (section 3.5). Tout ceci permet alors derevenir à la théorie des listes, et de dériver dans l’assistant de preuve Coqun programme parallèle efficace pour le problème MPS (section 3.6).

3.1 Une introduction à la théorie des listes

Lorsque le prix Turing est remis à John Backus en 1977, celui-ci pro-pose un langage fonctionnel accompagné d’une algèbre de programmes [8] :« Associated with the functional style of programming is an algebra of programswhose variables range over programs and whose operations are combining forms.

Page 99: Le fichier pdf du livre (EJCIM 2015)

3.1. Une introduction à la théorie des listes 89

This algebra can be used to transform programs and to solve equations whose“unknowns” are programs in much the same way one transforms equations in highschool algebra. » Bird et Meertens ont mis en pratique cette approche dansle formalisme qui porte à présent leur nom Bird Meertens Formalism 1 (ouBMF) [24, 150]. Dans ce formalisme, les programmes sont initialement ex-primés de façon naïve dans un langage fonctionnel d’ordre supérieur. Cettedescription sert de spécification et l’implantation des fonctions utiliséesimporte peu. Ensuite à l’aide de règles algébriques, ces spécifications sonttransformées en un programme efficace.

Initialement restreint aux listes, le formalisme a ensuite été étenduaux arbres binaires [26] puis aux arbres d’arité non-bornée [151]. Plus tard,Malcolm [145] généralise ces algèbres à toute structure de données finie ens’appuyant sur les travaux de Hagino [110] sur les types de données catégo-riques. Cette généralisation, par une étude plus systématique des schémasde récursion utilisés en programmation fonctionnelle, a permis une géné-ralisation des règles d’optimisation. Le formalisme BMF a également étégénéralisé à la dérivation de programmes à partir de relations [25].

3.1.1 Listes, map, reduce, et parallélisme

Le formalisme de Bird et Meertens a été utilisé pour le calcul de pro-grammes parallèles peu de temps après son introduction. Le premier travailen ce sens est celui de Cole [51] qui se base sur les homomorphismes delistes. En effet le paradigme diviser-pour-règner est très important pourle parallélisme. Or les homomorphismes de listes (vues sous forme dejoin-lists) peuvent être transformés en algorithmes diviser-pour-régner etsont ainsi très intéressants pour un système formel de développement deprogrammes parallèles. Notre environnement SYDPACC utilise ce type defonctions comme fondement.

Dans la suite, lorsque nous n’utilisons pas de code Coq directement,nous utilisons une notation d’inspiration fonctionnelle que l’on retrouvedans des langages de programmation comme OCaml, Haskell, et parfoisnous adoptons une notation plus mathématique si cela améliore la lisibi-lité. L’application de fonction est dénotée par un espace et un argumentpeut être écrit sans parenthèses. Ainsi f a signifie f (a). Les fonctions sontcurrifiées, c’est-à-dire qu’une fonction prend un argument et retourne unefonction ou une valeur, et l’application de fonction est associative à gauche.On écrit ainsi f a b plutôt que ( f a) b, et cette notation est préférée à f (a, b).

1. Ce formalisme est parfois appelé Squiggol du fait des nombreux symboles utilisésdonnant parfois une impression de gribouillis (squiggle).

Page 100: Le fichier pdf du livre (EJCIM 2015)

90 Chapitre 3. Calcul de programmes parallèles avec Coq

Les opérateurs binaires infixes seront souvent dénotés par ⊕, ⊗, et va-riantes. L’application lie plus fortement que n’importe quel autre opérateur :f a⊕ b correspond donc à ( f a)⊕ b et non à f (a⊕ b).

Une join-list (ou plus simplement une liste) est une séquence finie devaleurs du même type (dénombrable). Elle peut être :

— la liste vide [],— un singleton [a] (pour un élément a),— la concaténation x ++ y de deux listes x et y.

La concaténation est associative. Nous écrivons [a0; . . . ; an] plutôt que[a0] ++ . . . ++ [an]. [·] dénote la fonction qui à un élément a associe laliste singleton [a]. idA dénote la fonction identité sur l’ensemble A qui peutêtre omis.

Pour définir une fonction sur les listes, il faut spécifier le résultat del’application sur chaque cas de construction d’une liste : liste vide, singletonet concaténation. Ceci correspond à l’habituelle définition par filtrage enprogrammation fonctionnelle. Par exemple, définissons deux combinateurstrès classiques sur les listes : map et reduce.

map f [ ] = [ ]map f [x] = [ f x]map f (xs ++ ys) = (map f xs) ++ (map f ys)

Pour la réduction, l’argument ⊕ est un opérateur associatif avec pourélément neutre i⊕ :

reduce (⊕) [ ] = i⊕reduce (⊕) [x] = [x]reduce (⊕) (xs ++ ys) = (reduce (⊕) xs)⊕ (reduce (⊕) ys)

Parmi les fonctions définies sur les listes, nous nous intéressons plusparticulièrement aux fonctions homomorphiques. Une fonction h est dite⊕-homomorphique si pour toutes listes x et y,

h (x ++ y) = (h x)⊕ (h y) (3.1)

pour une opération binaire ⊕.Sur l’image de h, l’élément i⊕ = h [] est un neutre pour l’opération

⊕. En effet, pour tout élément a ∈ image(h), il existe une liste x telle quea = h x et :

a = h x = h([] ++ x) = (h [])⊕ (h x) = i⊕ ⊕ aa = h x = h(x ++ []) = (h x)⊕ (h []) = a⊕ i⊕

De même on peut vérifier que ⊕ est associative sur l’image de h.Une définition d’homomorphisme de liste est :

Page 101: Le fichier pdf du livre (EJCIM 2015)

3.1. Une introduction à la théorie des listes 91

Définition 3.1.1 (Homomorphisme (de liste)). Une fonction h est un ho-momorphisme de liste (ou simplement un homomorphisme), si elle est définierécursivement par :

h [ ] = i⊕h [a] = f a

h (x ++ y) = (h x)⊕ (h y)

Comme h est déterminée de façon unique par f , i⊕ et ⊕, nous notons, comme celaest classique en BMF, h = L⊕, f M.

Cette définition peut être adaptée pour les fonctions non-définies pourla liste vide. La troisième équation implique que l’image de h, ⊕ et i⊕forment un monoïde.

On peut remarquer que map f = L++ , f M et reduce ⊕ = L⊕, idM.Pour le parallélisme, les homomorphismes sont importants car ils ont

une propriété intéressante connue sous le nom de premier théorème d’ho-momorphisme. Ce théorème énonce que n’importe quel homomorphismeh = L⊕, f M peut être écrit comme la composition de map et reduce :

h = (reduce ⊕) (map f )

En se basant sur cette propriété, les homomorphismes peuvent êtreparallélisés comme illustré à la figure 3.1 où les Pi sont les p processeurs dela machine parallèle. En supposant que la liste est répartie sur les proces-seurs, chaque processeur applique la fonction map sur le morceau de la listequ’il possède puis réduit la liste obtenue à l’aide de reduce. Pour calculerle résultat final, les réductions partielles doivent être échangées, de tellesorte qu’elles puissent être réduites ensemble pour obtenir le résultat final.Il y a plusieurs schémas de communication et de calcul qui peuvent êtreutilisés pour cette dernière étape, la plus simple étant de rassembler tousles résultats des réductions partielles sur un processeur qui se charge defaire la réduction finale.

3.1.2 Troisième théorème d’homomorphisme

Deux autres théorèmes d’homomorphisme sont classiques enBMF [98].

Définition 3.1.2 (Fonction ⊕-vers-la-gauche, fonction ⊕-vers-la-droite).Une fonction h est dite ⊕-vers-la-gauche pour un opérateur binaire ⊕, si pourtoute liste x et tout élément a,

h ([a] ++ x) = a⊕ h x.

Page 102: Le fichier pdf du livre (EJCIM 2015)

92 Chapitre 3. Calcul de programmes parallèles avec Coq

P0 . . . Pi . . . Pp−1

h(

[a0; . . . ; an0−1] ++ . . . ++ [ani−1 ; . . . ; ani−1] ++ . . . ++ [anp−2 ; . . . ; anp−1−1])

= map phase

reduce ⊕(

[ f a0; . . . ; f an0−1] ++ . . . ++ [ f ani−1 ; . . . ; f ani−1] ++ . . . ++ [ f anp−2 ; . . . ; f anp−1−1])

= reduce phase ⊕n0−1k=0 f ak ⊕ . . .

⊕ni−1k=ni−1

f ak ⊕ . . . ⊕ ⊕np−1−1k=np−2

f ak

=⊕np−1−1

k=0 f ak

FIGURE 3.1 – Homomorphisme h = L⊕, f M comme composition de map et reduce

Une fonction h est dite ⊕-vers-la-droite pour un opérateur binaire ⊕, si pourtoute liste x et tout élément a,

h (x ++ [a]) = (h x)⊕ a.

L’unique fonction h ⊕-vers-la-gauche (resp. ⊕-vers-la-droite), est tra-ditionnellement notée foldr ⊕ e (resp. foldl ⊕ e) où e = h [].

On a les propriétés suivantes sur foldr et foldl :

foldr ⊕ e (x ++ y) = foldr ⊕ (foldr ⊕ e y) x (3.2)

foldl ⊕ e (x ++ y) = foldl ⊕ (foldl ⊕ e x) y (3.3)

Théorème 3.1.3 (Deuxième théorème d’homomorphisme). Tout homomor-phisme h = L, f M est :

— ⊕-vers-la-gauche avec a⊕ r = ( f a) r, c’est-à-dire h = foldr ⊕ e,— ⊗-vers-la-droite avec r⊗ a = r ( f a), c’est-à-dire h = foldl ⊗ e,

où e = h [].

Le troisième théorème d’homomorphisme est le plus important.

Théorème 3.1.4 (Troisième théorème d’homomorphisme). Soient h une fonc-tion, ⊕ et ⊗ des opérateurs binaires. Si h est ⊕-vers-la-gauche et ⊗-vers-la-droite,alors h est un homomorphisme.

Informellement, puisque le premier théorème d’homomorphisme per-met d’exprimer un homomorphisme comme une composition de map etreduce, et que cette dernière peut être parallélisée, le troisième théorèmed’homomorphisme permet à partir de deux programmes séquentiels, l’unparcourant la liste de gauche à droite, l’autre de droite à gauche, d’obtenirun programme parallèle. Malheureusement, comme nous allons le voirdans la suite, ce théorème n’est pas constructif.

Pour prouver ce théorème, nous allons tout d’abord en prouver uneversion faible qui repose sur la notion d’inverse droit.

Page 103: Le fichier pdf du livre (EJCIM 2015)

3.1. Une introduction à la théorie des listes 93

Définition 3.1.5 (Inverse droit faible). Soit h une fonction sur les listes. h′ estun inverse droit faible de h si et seulement si pour toute liste x, h x = h(h′(h x)).

Lemme 3.1.6 (Propriété caractéristique). Pour une fonction h sur des listes eth′ un inverse droit faible de h, les deux propriétés suivantes sont équivalentes :

— h est ⊕-homomorphique, avec ⊕ défini par a⊕ b = h((h′ a) ++ (h′b)),— pour tous x1, y1, x2, y2, si h x1 = h x2 et h y1 = h y2 alors

h(x1 ++ y1) = h(x2 ++ y2).

Démonstration.— Supposons que h est⊕-homomorphique, c’est-à-dire que pour tous

x et y, h(x ++ y) = (h x)⊕ (h y).Soient x1, x2, y1 et y2 des listes telles que h x1 = h x2 et h y1 = h y2.On a alors :

h(x1 ++ y1) = (h x1)⊕ (h y1) = (h x2)⊕ (h y2) = h(x2 ++ y2)

— Supposons que pour tous x1, y1, x2 et y2, si h x1 = h x2 et h y1 = h y2alors h(x1 ++ y1) = h(x2 ++ y2). Soit l’opération ⊕ définie par :a⊕ b = h((h′ a) ++ (h′b)).Soient x′ = h′(h x) et y′ = h′(h y) par la propriété de h′, on ah x′ = h(h′(h x)) = h x (resp. h y′ = h y) et par propriété de h, ona h(x ++ y) = h(x′ ++ y). D’où

h(x ++ y) = h(h′(h x) ++ h′(h y)) = (h x)⊕ (h y)

Théorème 3.1.7 (Troisième théorème d’homomorphisme faible). Soient hune fonction, h’ un inverse droit faible de h, ⊕ et ⊗ des opérateurs binaires. Si hest ⊕-vers-la-gauche et ⊗-vers-la-droite, alors h est un homomorphisme L, f M oùf a = h [a] et a b = h((h′ a) ++ (h′ b)).

Démonstration. Montrons que h est -homomorphique. Par le lemme 3.1.6,il suffit de montrer que pour tous x1, y1, x2, y2, h x1 = h x2 et h y1 = h y2impliquent h(x1 ++ y1) = h(x2 ++ y2).

Soient x1, y1, x2, y2 tels que h x1 = h x2 et h y1 = h y2. On a :h(x1 ++ y1)

= foldr ⊕ i⊕ (x1 ++ y1) car h est ⊕-vers-la-gauche = foldr ⊕ (foldr ⊕ i⊕ y1) x1 par la propriété (3.2) = foldr ⊕ (foldr ⊕ i⊕ y2) x1 car h y1 = h y2 = foldr ⊕ i⊕ (x1 ++ y2) par la propriété (3.2)

Page 104: Le fichier pdf du livre (EJCIM 2015)

94 Chapitre 3. Calcul de programmes parallèles avec Coq

= h(x1 ++ y2) car h est ⊕-vers-la-gauche = foldl ⊗ i⊗ (x1 ++ y2) car h est ⊗-vers-la-droite = foldl ⊗ (foldl ⊗ i⊗ x1) y2 par la propriété (3.3) = foldl ⊗ (foldl ⊗ i⊗ x2) y2 car h x1 = h x2 = foldr ⊗ i⊗ (x2 ++ y2) par la propriété (3.3) = h(x2 ++ y2) car h est ⊗-vers-la-droite

h est donc bien l’homomorphisme de liste L, f M avec f a = h [a].

Pour prouver le troisième théorème d’homomorphisme, il suffit deprouver l’existence d’un inverse droite faible pour toute fonction h.

Lemme 3.1.8 (Existence d’un inverse droit faible). Pour tout fonction h calcu-lable et dont le domaine est dénombrable, il existe une fonction h′ telle que : pourtout x, h(h′(h x)) = h x.

Démonstration. h′ est potentiellement partielle. Pour calculer h′ a on énu-mère les éléments du domaine de h et on s’arrête dès qu’un x tel que h x = aest trouvé et on retourne x. Ce processus termine pour tous les éléments del’image de h, mais peut ne pas terminer sinon.

Avec le théorème 3.1.7 et le lemme 3.1.8, on a immédiatement le troi-sième théorème d’homomorphisme. Toutefois la fonction h’ ainsi définie,n’est pas efficace. De plus comme nous allons le voir dans la suite, h’ définieainsi ne peut être construite dans l’assistant de preuve Coq. Le troisièmethéorème d’homomorphisme n’est ainsi pas constructif.

3.1.3 Somme maximum des préfixes d’une liste

Pour terminer cette courte introduction au formalisme BMF, nousprésentons la dérivation d’un programme efficace pour le problème ducalcul du maximum des sommes des préfixes d’une liste. Un exempled’application de la fonction mps suit :

mps [1; 2;−1; 2;−1;−1; 3;−4] = 5

Le préfixe dont la somme est maximale est souligné.Une première version de la fonction mps est

mps = maximum (map sum) prefix.

La fonction maximum est l’homomorphisme L↑, idM, où a ↑ b = b si a < b eta ↑ b = a si b ≤ a. maximum n’est pas définie sur la liste vide. La fonctionsum est l’homomorphisme L+, idM. La fonction prefix génère la liste de tousles préfixes de son argument.

Page 105: Le fichier pdf du livre (EJCIM 2015)

3.1. Une introduction à la théorie des listes 95

Il est facile de vérifier que mps est ⊕-vers-la-gauche avec a⊕ b = 0 ↑(a + b), c’est-à-dire :

mps([a] ++ x) = 0 ↑ (a + mps x).

Mais il n’y a pas de ⊗ tel que mps soit ⊗-vers-la-droite, c’est-à-dire tel que

mps(x ++ [a]) = (mps x)⊗ a.

On peut apparier f4g de deux fonctions f et g défini par : pour toutx, ( f4g) x = ( f x, g x).

Considérons ms = mps4sum. La fonction ms est ⊕-vers-la-gaucheavec a⊕ (bm, bs) = (0 ↑ (a + bm), a + bs). De plus ms est ⊗-vers-la-droiteavec (am, as)⊗ b = (am ↑ (as + b), as + b).

On cherche maintenant un inverse droit faible de ms, c’est-à-dire unefonction ms′ telle que pour tout x :

ms(ms′(mps x, sum x)) = ms x.

La fonction ms′(m, s) = [m; s−m] est une solution : pour tout x,

ms(ms′(ms x)) = ms(ms′(mps x, sum x))= (mps4sum) [mps x; (sum x)− (mps x)]= (mps [mps x; (sum x)− (mps x)], sum x)= (mps x, sum x) car par construction sum x ≤ mps x

On peut alors appliquer le troisième théorème d’homomorphismefaible, et on obtient que ms est l’homomorphisme L, f M avec

f a = (mps [a], sum [a]) = (0 ↑ (a + mps []), a)= (0 ↑ a, a)

(am, as) (bm, bs) = ms(ms′ (am, as) ++ms′ (bm, bs))= ms [am; as − am; bm; bs − bm])= (mps [am; as − am; bm; bs − bm], as + bs)= (0 ↑ am ↑ (as + bm), as + bs)

Si on note fst la projection de la première composante d’un couple, parle premier théorème d’homomorphisme, on a :

mps = fst (map f ) (reduce )

qui peut être parallélisé comme indiqué figure 3.1.

Page 106: Le fichier pdf du livre (EJCIM 2015)

96 Chapitre 3. Calcul de programmes parallèles avec Coq

3.2 L’assistant de preuve Coq

Pour développer de façon systématique des programmes parallèlescorrects et vérifiés par ordinateur, il est nécessaire d’écrire des preuves. Unepreuve s’exprime par des propositions logiques complexes. Elle nécessiteune logique expressive dans laquelle vérifier la validité d’une propositionconstitue une tâche souvent délicate. Ces logiques sont généralement tropexpressives pour les prouveurs automatiques. Les assistants de preuve,appelés également prouveurs interactifs, proposent des langages pourécrire des preuves formelles : l’assistant de preuve requiert l’interventiond’un humain pour construire des preuves. Le logiciel ne vérifie pas lavalidité de la proposition logique elle-même mais la correction de la preuveconstruite par l’utilisateur.

Coq [196, 20, 50] est l’un des assistants de preuve les plus utilisés. Il sebase sur le calcul des constructions (co-)inductives, une extension du calculdes constructions [55]. C’est un outil qui permet notamment de vérifier despreuves, fondé sur la correspondance de Curry-Howard [118] qui relie des(arbres de typage de) termes d’un λ-calcul typé avec des arbres de preuvesde la déduction naturelle.

3.2.1 La correspondance de Curry-Howard

Coq se base sur la correspondance reliant les termes d’un λ-calcul typé(d’ordre supérieur) à des arbres de preuve d’un système logique dans ladéduction naturelle. Cette correspondance est plus connue sous le nomd’isomorphisme de Curry-Howard [118].

Chaque terme a un type et les types eux-mêmes sont des termes ducalcul. On peut prouver que pour toute formule intuitionniste, il existeune preuve de cette formule en déduction naturelle si et seulement si ilexiste un λ-terme qui a cette formule comme type. La relation entre unprogramme et son type est la même qu’entre une preuve et son énoncé etvérifier une preuve est similaire à l’action de typer.

La figure 3.2 présente le système d’inférence pour un calcul propo-sitionnel avec l’implication comme seul connecteur. Les propositions ato-miques et les formules sont notées en majuscules et Γ est un ensemblede propositions. Le jugement Γ ` F où F est une formule obtenue par lagrammaire F ::= A | F → F, indique la validité de la formule F sous leshypothèses Γ.

La figure 3.3 présente le système d’inférence pour le typage d’un λ-calcul. Dans Γ ` e : A, e est une annotation qui est le terme de preuve,et A peut être vu comme un type ou une proposition. Nous identifions

Page 107: Le fichier pdf du livre (EJCIM 2015)

3.2. L’assistant de preuve Coq 97

(v)A ∈ ΓΓ ` A

(3.4)

(i)Γ, A ` B

Γ ` A→ B(3.5)

(a)Γ ` A→ B Γ ` A

Γ ` B(3.6)

FIGURE 3.2 – Déduction naturelle

(Var)x : A ∈ ΓΓ ` x : A

(3.7)

(Abs)Γ, x : A ` e : B

Γ ` (λx : A.e) : A→ B(3.8)

(App)Γ ` e : A→ B Γ ` e′ : A

Γ ` (e e′) : B(3.9)

FIGURE 3.3 – λ-calcul simplement typé

les termes à un renommage près des variables liées. L’environnement detypage noté Γ, est un ensemble d’associations de types à des variables. End’autres termes, Γ ≡ x1 : t1, . . . , xn : tn. Le jugement Γ ` e : A affirmeque dans l’environnement de typage Γ, le terme e est de type A.

L’arbre de typage ne dépend que du λ-terme. La correspondance deCurry-Howard peut alors s’énoncer ainsi : pour toute formule logique, ilexiste une preuve de cette formule en déduction naturelle si et seulementsi il existe un λ-terme ayant cette formule comme type. À l’énoncé logique,correspond un type dans le λ-calcul, et à une preuve d’un énoncé corres-pond un programme (terme du λ-calcul).

Par exemple la figure 3.4 présente un exemple d’arbre de preuve endéduction naturelle. Si l’on considère l’énoncé prouvé comme un type,l’arbre de typage d’un terme ayant ce type est donné à la figure 3.5. Onpeut ainsi constater que λx:A.λy:B.λ f :A→C.λg:B→C.( f x) est une façond’encoder l’arbre de preuve de A→B→(A→C)→(B→C)→C. On parle determe de preuve.

Page 108: Le fichier pdf du livre (EJCIM 2015)

98 Chapitre 3. Calcul de programmes parallèles avec Coq

(i)(i)

(i)(i)

(a)(v)

B→ C ∈ ΓΓ ` B→ C

(v)B ∈ ΓΓ ` B

Γ ≡ A, B, A→ C, B→ C ` CA, B, A→ C ` (B→ C)→ C

A, B ` (A→ C)→ (B→ C)→ CA ` B→ (A→ C)→ (B→ C)→ C

` A→ B→ (A→ C)→ (B→ C)→ C

FIGURE 3.4 – Exemple de preuve en déduction naturelle

(L)(L)

(L)(L)

(A)

(V)f :A→ C ∈ ΓΓ ` f :A→ C

(V)x:A ∈ ΓΓ ` x:A

Γ ≡ x:A, y:B, f :A→ C, g:B→ C ` ( f x) : Cx:A, y:B, f :A→ C ` λg:B→C.( f x) : (B→ C)→ C

x:A, y:B ` λ f :A→C.λg:B→C.( f x) : (A→ c)→ (B→ C)→ Cx:A ` λy:B.λ f :A→C.λg:B→C.( f x) : B→(A→C)→(B→C)→C

` λx:A.λy:B.λ f :A→C.λg:B→C.( f x) : A→B→(A→C)→(B→C)→C

FIGURE 3.5 – Exemple de typage d’un λ-terme

Le calcul des constructions [55] est un λ-calcul typé avec un systèmede types très riche. En plus des fonctions usuelles et de leurs types, des pro-priétés logiques d’ordre supérieur peuvent être exprimées dans ce λ-calcul.Il a été enrichi au cours du temps pour permettre des définitions induc-tives [56] et co-inductives [100]. Le calcul Predicative Calculus of (co)InductiveConstructions qui est issu de ces recherches est à la base de l’assistant depreuve Coq.

Un ordinateur peut donc vérifier qu’une preuve est bien la preuved’une proposition et cette vérification est une action de typage. En revanchetrouver une preuve pour une logique expressive munie d’un système detype un peu riche est indécidable : l’intervention humaine est donc néces-saire. Les assistants de preuve apportent également une aide à l’écrituredes preuves. Coq aide à construire un terme de preuve, qui est un terme ducalcul des constructions inductives. Le langage de spécification dans lequelsont écrits les termes en Coq s’appelle Gallina, les commandes permettantde contrôler le comportement de l’assistant de preuve font partie du lan-gage Vernaculaire. Coq propose aussi un langage de tactiques, Ltac pourconstruire interactivement un terme de preuve. Par abus de langage nousparlerons souvent de Coq pour désigner l’un ou l’autre de ces langages ouencore le logiciel lui-même.

Bien qu’une preuve et un programme soient la même chose en Coq,

Page 109: Le fichier pdf du livre (EJCIM 2015)

3.2. L’assistant de preuve Coq 99

construire l’une ou écrire l’autre sont souvent deux activités bien diffé-rentes dans l’intention : lorsque nous voulons écrire une preuve, le calculeffectué par le terme produit importe peu, seul son type nous intéresse ; àl’inverse, l’écriture d’un programme est assez peu guidée par le type decelui-ci mais beaucoup plus par la valeur calculée. Coq tient compte decette différence d’intention en permettant une différenciation syntaxiqueet méthodologique entre la construction d’une preuve et l’écriture d’unprogramme. Cependant les termes obtenus sont identiques et il est tout àfait possible d’écrire un programme en utilisant la méthodologie destinée àconstruire des preuves et vice-versa. D’un point de vue algorithmique, lesfonctions en Coq effectuent un calcul par une suite de réductions de termes(une expression bien formée) dans une forme irréductible. Une propriétéfondamentale de Coq, dite normalisation forte est qu’un calcul doit toujoursterminer. Cette contrainte de totalité et de terminaison des fonctions estinhérente à la relation entre fonction et preuve. Puisqu’une fonction est unepreuve de son type, si on autorise la fonction à n’être définie que partielle-ment, cela reviendrait à accepter une preuve de théorème qui échoueraitdans certains cas. Ce n’est évidemment pas acceptable dans un assistant depreuve.

De façon basique, la terminaison que garantit Coq est purement struc-turelle. Du fait de cette contrainte de terminaison, il n’est pas Turing-complet, c’est un langage primitif récursif d’ordre supérieur. L’utilisationde fonctions d’ordre supérieur permet toutefois une grande expressivité, etla possibilité de définir des fonctions itérant sur des structures coinductivestelles que les flots permet même de définir des fonctions non terminantessous certaines contraintes que nous n’aborderons pas ici. De plus, il estpossible de définir des récursions non-structurelles utilisant une preuve dedécroissance des arguments suivant un ordre bien fondé.

Nous présentons ici les différentes approches proposées par Coq pourla construction de termes ainsi que certains mécanismes de base.

3.2.2 Interaction avec l’assistant de preuve Coq

Dans cette partie, nous montrons comment définir des propositions etcomment les prouver, à travers des exemples qui mettent en évidence lestactiques de base de Coq.

Les composantes essentielles de Coq sont un noyau de vérificationde types et de construction d’environnements bien typés, un langage dedéveloppement de théories mathématiques Gallina, et un ensemble detactiques pour aider à la construction interactive de preuves.

En Coq, une sorte est déclarée soit par Set soit par Prop. Intuitivement,

Page 110: Le fichier pdf du livre (EJCIM 2015)

100 Chapitre 3. Calcul de programmes parallèles avec Coq

Set contient les types de données, qui sont des objets calculatoires, pris encompte dans le processus d’extraction des programmes. Prop désigne lesénoncés logiques qui sont en revanche omis dans la phase d’extraction. Toutterme Coq a un type. Ainsi le type de Set est Type, et le type de Type estType. En réalité, en interne, Coq utilise une hiérarchie infinie de sortes Typeiet une valeur de type Typei ne peut utiliser pour être construite que desvaleurs de type Typej avec j < i. Jusqu’à récemment une valeur spécifiquede i était fixée au moment de la définition. Les versions récentes de Coqintroduisent la notion de polymorphisme d’univers [189].

Vérification et inférence de types en Coq

Pour cette partie, on démarre Coq en lançant la commande coqtop

dans un terminal. Toutes les commandes se terminent par un point. Notonsque Coq peut s’utiliser graphiquement en utilisant l’environnement dedéveloppement intégré qui se lance par la commande coqide. On peutaussi utiliser le mode Proof General développé à l’université d’Edimbourgpour l’éditeur de texte Emacs. Dans la suite de ce chapitre, Coq < est l’invitede la boucle interactive de Coq. Le préfixe Coq est parfois remplacé par lenom du terme en cours de définition.

Dans la syntaxe de Coq, l’identité polymorphe est notéefun (A:Set) (a:A)⇒a. On peut demander à Coq de vérifier que cet objet estbien formé par la commande Check :

Coq < Check (fun (A:Set) (a:A)⇒a).fun (A : Set) (a : A)⇒a

: ∀A : Set, A→A

Toutes les opérations de typage de Coq ont lieu dans un environnementglobal. L’environnement de Coq contient des définitions c’est-à-dire destriplets constitués d’un nom, d’un type et d’un terme. La façon la plussimple de créer une définition est la commande Definition. Le type peutêtre souvent omis, comme dans l’exemple suivant :

Coq < Definition Id (B:Set) (b:B) := b.Id is definedCoq < Check Id.Id

: ∀B : Set, B→B

La commande Print donne les trois éléments, le nom, le terme puis le type :

Coq < Print Id.Id = fun (B : Set) (b : B)⇒b

: ∀B : Set, B→B

Page 111: Le fichier pdf du livre (EJCIM 2015)

3.2. L’assistant de preuve Coq 101

Il est également possible d’ajouter des noms avec types mais sansdéfinition. Dans le cas d’un terme de type Prop, ceci revient à introduire unaxiome, puisque c’est une proposition sans terme de preuve associé, il fautdonc le faire avec précaution :

Coq < Hypothesis A : Prop.A is assumedCoq < Variable a : A.a is assumed

Les tactiques de base de Coq

Construire une preuve revient à exhiber un λ-terme du type attendu.L’utilisateur dispose d’un mode de preuve interactif dont les commandessont appelées tactiques de preuve. Pour énoncer une proposition à prouver,nous utilisons les mots-clés Theorem, Proposition, Corollary, Lemma ouFact selon l’importance de l’énoncé. Cependant, Coq les considère commedes synonymes.

Illustrons cet usage en cherchant à prouver la tautologie suivante :Coq < Variables A B C : Prop.A is assumedB is assumedC is assumedCoq < Lemma exemple1 : ((A→B)→C)→B→C.1 subgoal

============================((A→B)→C)→B→C

Le lemme devient le but courant sous la double barre. On peut commencerà construire la preuve :

exemple1 < Proof.1 subgoal

============================((A→B)→C)→B→C

La commande Proof est optionnelle. Elle marque le début de la preuve.exemple1 < intros H b.1 subgoal

H : (A→B)→Cb : B============================C

Page 112: Le fichier pdf du livre (EJCIM 2015)

102 Chapitre 3. Calcul de programmes parallèles avec Coq

Les hypothèses (A→B)→C et B, nommées respectivement H et b commedemandé, ont été placées dans le contexte local, au-dessus de la doublebarre. Du point de vue de la construction de la preuve, cette tactiquecorrespond à la λ-abstraction. On peut le voir en affichant la preuve partielleconstruite :

exemple1 < Show Proof.(fun (H : (A→B)→C) (b : B)⇒?3)

On continue la preuve : la tactique apply prend un terme dont le type estune implication qui se termine par le même terme que le but, ou qui est lebut lui même. L’application va créer autant de nouveaux buts qu’il y aurad’hypothèses nécessaires à l’établissement d’une preuve du but courantà partir du terme appliqué. Ici, pour déduire C, il n’y a besoin de validerqu’une hypothèse : A→B. Cette hypothèse est validée par l’existence duterme b de type B.

exemple1 < apply H.1 subgoal

H : (A→B)→Cb : B============================A→B

exemple1 < intro a.1 subgoal

H : (A→B)→Cb : Ba : A============================B

exemple1 < exact b.No more subgoals.

La commande Qed, après avoir vérifié que le terme construit a bien lemême type que l’énoncé, ajoute à l’environnement global le terme exemple1ainsi créé :

exemple1 < Qed.exemple1 is defined

La commande Print exemple1 affiche la définition de l’identificateurexemple1 dans l’environnement courant :

Page 113: Le fichier pdf du livre (EJCIM 2015)

3.2. L’assistant de preuve Coq 103

Coq < Print exemple1.exemple1 =fun (H : (A→B)→C) (b : B)⇒H (fun _ : A⇒b)

: ((A→B)→C)→B→C

Au-delà de cette simple combinaison de tactiques, le langage Ltacpropose également un filtrage par motif non-linéaire sur le but et les hy-pothèses et il permet de définir des procédures, nommées et paramétrées,dont le corps est une combinaison de tactiques. Cette procédure pourraensuite être utilisée comme toute autre tactique. Pour plus de détails, noussuggérons au lecteur le chapitre dédié au langage de tactiques dans lemanuel de référence de Coq.

Types dépendants en Coq

Imaginons qu’on dispose d’un langage de programmation dans lequelle type des tableaux indique leur taille, par exemple array int 4 pour untableau d’entiers de taille 4. Si l’on souhaite donner un type à une fonctionf qui à un entier n associe un tableau de taille n contenant les entiers de 1 àn, une première tentative serait int→array int n mais dans ce cas la variablen n’est pas liée. On a besoin que le type de retour dépende non pas dutype de l’argument mais de la valeur de l’argument. C’est la constructionde produit dépendant en Coq. Le type de la fonction f peut alors être noté∀(n:int), array int n.

Le produit dépendant en Coq est très général : un type peut dépendrede termes qu’ils soient des valeurs, des types ou des sortes. Ainsi plutôt quede supposer disposer de propositions A, B et C avant d’énoncer le lemmeexemple1 on peut écrire :

Lemma exemple2: ∀(A B C:Prop), ((A→B)→C)→B→C.Proof. auto. Qed.

La preuve de exemple2 est ainsi une fonction dont le type est un produitdépendant :

exemple2 =fun (A B C : Prop) (H : (A→B)→C) (H0 : B)⇒H (fun _ : A⇒H0)

: ∀A B C : Prop, ((A→B)→C)→B→C

3.2.3 Quelques applications de Coq

Coq fait partie d’une longue tradition de systèmes informatiquesd’aide à la démonstration de théorèmes. Citons par exemple les systèmesAutomath, Nqthm, Mizar, LCF, Nuprl, Isabelle, Lego, HOL, PVS et ACL2.

Page 114: Le fichier pdf du livre (EJCIM 2015)

104 Chapitre 3. Calcul de programmes parallèles avec Coq

Notons que Coq est un assistant de preuve contrôlé par une petite partie,le noyau du logiciel. Ce noyau est responsable de vérifier le type de chaqueterme avant son ajout à l’environnement. Même si, théorème d’incomplé-tude de Gödel oblige, le noyau n’est pas capable de se certifier lui-même,il vérifie le travail du reste de l’assistant de preuve. De plus la taille dece noyau étant relativement modeste, sa vérification par des humains estaccessible, ce qui justifie une très grande confiance dans l’utilisation deCoq.

Les domaines d’utilisation de Coq sont très variés : logique, automates,syntaxe et sémantique des langages de programmation, algorithmique, etc.On peut aussi considérer Coq comme un cadre logique permettant l’axio-matisation de logiques et le développement interactif de preuves dansces logiques. Citons par exemple l’implantation de systèmes de raisonne-ment dans des logiques modales, temporelles, logiques de ressources et lessystèmes de raisonnement sur les programmes impératifs.

Coq a été utilisé pour vérifier des preuves mathématiques souventardues et longues, notamment le théorème des quatre couleurs[102], et lethéorème de Feit et Thompson [103], résultat de la théorie des groupes enalgèbre.

Un des points les plus remarquables de Coq est la possibilité de synthé-tiser des programmes certifiés à partir de preuves, et de modules certifiés.L’une des applications les plus abouties qui utilise ainsi Coq est le pro-jet CompCert dirigé par Xavier Leroy. L’objectif de CompCert a consistéà concevoir un compilateur entièrement vérifié [137]. Ce projet s’est vurécompensé du prix Recherche 2011 en Sciences de l’information.

En 2013, Coq a aussi été récompensé, et ce à deux reprises. Il a rem-porté le prix du groupe SIGPLAN Programming Languages de l’ACM, pourson impact significatif dans le domaine de la recherche sur les langages deprogrammation, leur implantation et les outils associés. Dans cette mêmeannée, la société savante ACM a attribué à Coq le premier prix du logi-ciel, pour son rôle crucial de programmation et de certification dans lesdomaines académiques et industriels.

3.3 Programmation fonctionnelle en Coq

Pour écrire un programme en Coq, l’utilisateur dispose d’une syntaxe àla OCaml. Les types et les structures de données sont définis par inductionou par co-induction. Nous présentons tout d’abord un type simple, lesentiers naturels.

Page 115: Le fichier pdf du livre (EJCIM 2015)

3.3. Programmation fonctionnelle en Coq 105

3.3.1 Les entiers naturels en Coq

L’encodage unaire des nombres naturels de Peano est défini par induc-tion, un entier est soit zéro, soit le successeur d’un entier :

Coq < Inductive nat : Set :=Coq < | O : natCoq < | S : nat→nat.nat is definednat_rect is definednat_ind is definednat_rec is defined

Lorsque l’inductif est défini, un principe d’induction nat_rect est automati-quement défini pour le type nat. Son type est

∀P : nat→Type,P 0→(∀ n : nat, P n→P (S n))→∀n : nat, P n

La tactique induction se sert de ce terme ou d’une de ses restrictions à lasorte Prop (nat_ind) ou à la sorte Set (nat_rec). Nous reviendrons sur cettetactique à la section 3.4 qui traite plus en détail de l’activité de preuve.

Cette définition des entiers fait partie de la bibliothèque standard deCoq, on y trouve également des notations permettant à l’utilisateur d’écrireles nombres naturels comme des séquences de chiffres, et d’utiliser lesnotations usuelles pour les opérations arithmétiques. Informellement, leplus petit type ainsi défini est celui dont les habitants sont 0, (S 0), (S(S 0)),etc. On a donc bien une représentation de la notion mathématique d’entiernaturel.

Fonctions sur les entiers

Comme en Ocaml, les fonctions sur le type récursif nat sont définiesgrâce à deux mécanismes fondamentaux, le filtrage et la récursion. Prenonsla définition de l’addition, elle se définit comme suit :

Coq < Fixpoint plus n m =Coq < match n withCoq < | O⇒mCoq < | S p⇒S (plus p m)Coq < end.plus is recursively defined (decreasing on 1st argument)

La notation Fixpoint correspond à la définition d’une fonction récursive. Laterminaison de cette définition récursive est assurée par la décroissance

Page 116: Le fichier pdf du livre (EJCIM 2015)

106 Chapitre 3. Calcul de programmes parallèles avec Coq

du premier argument à l’appel récursif. En Coq, la récursion structurelleest le moyen de garantir la terminaison des programmes, Coq vérifie quechaque appel récursif de la fonction s’effectue sur un sous-terme strict del’argument. La vérification est uniquement syntaxique.

Toutes les fonctions définies en Coq doivent être totales, tous les motifspossibles doivent donc être traités.

3.3.2 Polymorphisme

Il est également possible de définir des structures de données poly-morphes comme les listes :

Inductive list (A:Type) : Type :=| nil: list A| cons: A→list A→list A.

Le type list est paramétré par le type A des éléments de la liste, tous lesconstructeurs ont pour premier paramètre un type A. Cette définition sti-pule deux manières de construire une liste : le constructeur nil, représentantla liste vide, et le constructeur cons, qui prend un argument de type A, uneliste de type list A et qui fournit une nouvelle liste augmentée de ce nouvelélément. Les constructeurs et les fonctions sont sous forme currifiée en Coq.

Il est possible de définir des notations usuelles pour les listes : [] pourdésigner la liste vide, :: en notation infixe pour le constructeur cons, et[ x ; .. ; y ] pour la construction de liste par énumération.

Pour obtenir un comportement similaire au polymorphisme implicitedes langages à la ML, il est possible de spécifier un paramètre comme étantimplicite :

Implicit Arguments nil [A].Implicit Arguments cons [A].

Il n’est maintenant plus nécessaire de fournir une valeur pour l’argumentA, lorsque nous utilisons les constructeurs. Le système d’inférence de typetentera de déduire sa valeur à partir du contexte d’utilisation du construc-teur. Il arrive cependant que le système ne puisse pas déduire cette valeur,et il faudra alors la fournir. Par exemple pour définir une liste d’entiersvide, le code Definition l := nil est refusé par Coq car il ne sait pas quellevaleur utiliser pour le paramètre A :

Error: Cannot infer the implicit parameter A of nil.

Il faut spécifier le type en utilisant le symbole @ qui rend explicite tous lesparamètres du constructeur (ou de la fonction) qu’il préfixe.

Definition l := (@nil nat).

Page 117: Le fichier pdf du livre (EJCIM 2015)

3.3. Programmation fonctionnelle en Coq 107

Il est possible de définir des fonctions d’ordre supérieur, prenant enparamètre d’autres fonctions. Par exemple la fonction map :

Fixpoint map (A B : Type) (f : A→B) (l:list A) :=match l with| nil⇒nil| a :: t⇒f a :: map f tend.

3.3.3 Exécution de programmes dans l’assistant de preuve

Plusieurs types de réduction peuvent être faits sur un terme Coq : ilest possible de réduire complètement un terme à l’aide de la tactique cbv,le terme est alors réduit suivant une stratégie d’appel par valeur, ou lazy, laréduction se fait alors par appel par nom. Ces tactiques doivent être suiviesdu type de réduction à effectuer : beta pour la β-réduction correspondant àla substitution de variable lors de l’application fonctionnelle, iota pour laι-réduction, correspondant à l’évaluation d’un filtrage par motif, delta pourla δ-réduction, correspondant au remplacement du nom d’une fonction parson corps, et enfin zeta pour la ζ-réduction, correspondant à l’expansiondes définitions locales (let x := . . . in . . . ) .

La tactique simpl applique un maximum de réduction sans toutefoiseffectuer trop de δ-réductions qui mèneraient à de gros termes illisibles.Elle est particulièrement adaptée à l’activité de preuve.

La tactique compute, équivalente à cbv beta delta iota zeta, permet deréduire un terme à sa forme normale. Toutes ces tactiques d’évaluation sontutilisables en dehors des preuves à l’aide de la commande Eval.

Par exemple, si nous souhaitons appliquer à tous les entiers contenusdans une liste une fonction qui ajoute 1 à son argument, nous procédonscomme suit :

Coq < Eval compute in (map (fun x⇒x+1) [ 0 ; 1 ; 2 ; 3 ; 4 ; 5 ; 6 ]).= [1; 2; 3; 4; 5; 6; 7]: list nat

Le terme résultat de ce calcul peut être enregistré comme tout terme :

Coq < Definition ma_fonction :=Coq < map (fun x⇒x+1) [ 0 ; 1 ; 2 ; 3 ; 4 ; 5 ; 6 ].ma_fonction is defined

Coq < Print ma_fonction.ma_fonction =map (fun x : nat⇒x + 1) [0; 1; 2; 3; 4; 5; 6]

: list nat

Page 118: Le fichier pdf du livre (EJCIM 2015)

108 Chapitre 3. Calcul de programmes parallèles avec Coq

Coq < Definition ma_liste := Eval compute in ma_fonction.ma_liste is defined

Coq < Print ma_liste.ma_liste = [1; 2; 3; 4; 5; 6; 7]

: list nat

Il est aussi possible de limiter la δ-réduction à certaines fonctions (icima_fonction puis ma_fonction et map) :

Coq < Eval cbv beta iota zeta delta [ma_fonction] in ma_fonction.= map (fun x : nat⇒x + 1) [0; 1; 2; 3; 4; 5; 6]: list nat

Coq < Eval cbv beta iota zeta delta [ma_fonction map] in ma_fonction.= [0 + 1; 1 + 1; 2 + 1; 3 + 1; 4 + 1; 5 + 1; 6 + 1]: list nat

ou encore d’interdire l’expansion de certaines fonctions (ici plus) :

Coq < Eval cbv beta iota zeta delta −[plus] in ma_fonction.= [0 + 1; 1 + 1; 2 + 1; 3 + 1; 4 + 1; 5 + 1; 6 + 1]: list nat

Bien sûr, si notre terme contient des axiomes, il ne pourra être com-plètement réduit puisque les axiomes sont des éléments avec un type maispas de corps.

Coq < Parameter fonction_axiome : nat→nat.fonction_axiome is assumed

Coq < Eval compute in (map fonction_axiome [ 0 ; 1 ; 2 ]).= [fonction_axiome 0; fonction_axiome 1; fonction_axiome 2 ]: list nat

3.3.4 Modules

Comme en Ocaml, il est possible d’encapsuler du code Coq dansdes modules nommés. Les modules sont éventuellement paramétrés pard’autres modules, on parle alors de foncteurs. Les foncteurs permettent derendre générique le contenu du module par rapport à un certain nombrede définitions (fonctions ou lemmes).

Prenons l’exemple du tri d’une liste. Toute fonction de tri repose surune fonction de comparaison. Si le tri est défini dans un foncteur, celui-cidevra prendre en paramètre un module regroupant le type des données

Page 119: Le fichier pdf du livre (EJCIM 2015)

3.3. Programmation fonctionnelle en Coq 109

utilisées dans la liste ainsi qu’une opération de comparaison. Les signaturesde ces fonctions sont regroupées dans le type de module suivant :

Module Type Order.Parameter A : Type.Parameter leb : A→A→bool.Notation " a ≤? b" := (leb a b)(at level 70).

End Order.

Il est ensuite possible de définir un foncteur attendant un paramètre dece type dans lequel les fonctions nécessaires pour définir le tri sont définiesindépendamment de l’implantation de la comparaison. Nous présentonsici un tri par insertion naïf :

Module Sorting (Import Or : Order).

Fixpoint insert x l :=match l with

| nil⇒x::nil| h::t⇒if x ≤? h then x::h::t else h::(insert x t)

end.

Fixpoint sort l :=match l with

[]⇒[]| a::t⇒insert a (sort t)

end.

End Sorting.

Le mot-clé Import est optionnel, il permet de rendre directement ac-cessible la fonction leb du module Or (d’après la signature de Order, il doitcontenir une telle fonction). Si le module n’était pas importé, la fonction neserait accessible que sous le nom Or.leb.

Pour pouvoir utiliser ce foncteur, il faut créer un module qui satisfaitla signature Order :

Require Import Arith.Module ConcreteOrder <: Order.

Definition A:=nat.Definition leb :=leb.Notation " a ≤? b" := (leb a b)(at level 70).

End ConcreteOrder.

L’utilisation de la notation <: Order nous assure que le moduleConcreteOrder satisfait bien la signature Order. Nous aurions pu utili-ser ConcreteOrder : Order à la place, cependant cette notation aurait rendu

Page 120: Le fichier pdf du livre (EJCIM 2015)

110 Chapitre 3. Calcul de programmes parallèles avec Coq

opaque les définitions du module, ce qui aurait empêché l’utilisation desfonctions pour le calcul effectif du tri.

Un module utilisable peut être maintenant obtenu en appliquant lefoncteur :

Module ConcreteSorting := Sorting ConcreteOrder.Eval compute in ConcreteSorting.sort [2;4;6;3;4;1].= [1; 2; 3; 4; 4; 6]

: list A

3.4 Vérification de programmes en Coq

3.4.1 Établir des propriétés

Après avoir défini une fonction en Gallina, nous pouvons utiliser larichesse du système de type pour établir des propriétés sur les structures dedonnées utilisées puis vérifier que le résultat de nos fonctions satisfait biences propriétés. Afin de préserver la consistance de la logique, il n’est paspossible de raisonner sur la structure des programmes, il ne sera donc paspossible, par exemple, de raisonner sur leur comportement ou directementsur leur complexité.

Il est possible d’exprimer, par exemple, le fait que zéro est neutre pourl’addition : Lemma neutral_O : ∀n:nat, n = plus n O. Ce lemme exprime unepropriété du résultat dans un cas d’application particulier, il sera prouvédans la sous-section suivante.

Des propriétés plus complexes peuvent être exprimées indépendam-ment des fonctions considérées. Dans la section précédente nous avonsdéfini une fonction de tri par insertion, la propriété qui caractérise uneliste triée s’énonce simplement, indépendamment de tout mode opératoire.Considérons trois formes de liste possibles : la liste vide, les listes singleton,et les listes contenant au moins deux éléments :

— la liste vide est une liste triée,— une liste ne contenant qu’un élément est une liste triée,— une liste contenant au moins deux éléments est triée si ses deux

premiers éléments sont dans l’ordre croissant et que la suite de laliste est triée.

Cette caractérisation inductive des listes triées est représentée par letype suivant :

Inductive Sorted : list A→Prop :=| Sorted_nil : Sorted []| Sorted_cons1 a : Sorted [a]

Page 121: Le fichier pdf du livre (EJCIM 2015)

3.4. Vérification de programmes en Coq 111

| Sorted_consn a b l :Sorted (b :: l)→a ≤b→Sorted (a :: b :: l).

Une fois cette propriété définie, on pourra établir que la fonction de triest correcte en prouvant le lemme suivant :

Lemma sort_ok : ∀l, Sorted (sort l).

3.4.2 Prouver des propriétés

Pour prouver le lemme affirmant la neutralité de zéro pour l’addition,il faudra raisonner par induction sur le paramètre n :

Coq < Lemma neutral_O : ∀n:nat, n = plus n O.1 subgoal

============================∀n : nat, n = plus n O

neutral_O < induction n.2 subgoals

============================O = plus O O

subgoal 2 is:S n = plus (S n) O

Le cas de base est trivial :

neutral_O < simpl.2 subgoals

============================O = O

subgoal 2 is:S n = plus (S n) O

neutral_O < reflexivity.

À cette étape, le cas de base est prouvé. Il reste le cas récurrent à prouver :

1 subgoal

n : natIHn : n = plus n O============================S n = plus (S n) O

Page 122: Le fichier pdf du livre (EJCIM 2015)

112 Chapitre 3. Calcul de programmes parallèles avec Coq

Pour le cas récurrent, on procède à une étape de réduction :

neutral_O < simpl.1 subgoal

n : natIHn : n = plus n O============================S n = S (plus n O)

À présent, on utilise l’hypothèse de récurrence pour remplacer dans le butcourant, plus n O par n. Pour cela, on utilise la tactique rewrite qui réécritdes sous-buts ou des hypothèses en utilisant des égalités en hypothèse :

neutral_O < rewrite <− IHn.1 subgoal

n : natIHn : n = plus n O============================S n = S n

neutral_O < reflexivity.No more subgoals.

Pour prouver la correction de la fonction de tri, nous allons étendreles modules et foncteurs utilisés à la section précédente avec le matérielnécessaire pour prouver le lemme de correction de la fonction de tri. Toutd’abord, le type de module représentant un ordre doit être complété commesuit :

Module Type OrderWithProp.

Include Order.

Parameter le : A→A→Prop.Notation " a ≤b" := (le a b)(at level 70).

Parameter lt : A→A→Prop.Notation " a < b" := (lt a b)(at level 70).

Axiom lt_le : ∀a b, lt a b→le a b.

Axiom leb_complete :∀m n : A, m ≤? n = true→m ≤n.

Axiom leb_complete_conv :∀m n : A, m ≤? n = false→n < m.

Page 123: Le fichier pdf du livre (EJCIM 2015)

3.4. Vérification de programmes en Coq 113

Hint Resolve lt_le leb_complete_conv leb_complete.End OrderWithProp.

La ligne Include Order inclut le contenu de la signature Order à notrenouveau type de module. Nous y ajoutons des prédicats d’ordre, et lesaxiomes permettant de lier ces prédicats à la fonction de décision leb.La commande Hint Resolve ajoute ces axiomes à la base de faits utiliséepar la tactique auto. Lors de la définition d’un module concret de typeOrderWithProp, les axiomes seront remplacés par des lemmes.

À partir de ce type de module, il va être possible d’étendre le foncteurcontenant le tri par insertion avec les propriétés assurant la correction dela fonction de tri. Le foncteur SortingWithProp utilise le nouveau type demodule ainsi que le contenu du foncteur Sorting. Il comprend également ladéfinition inductive de la propriété Sorted qui assure qu’une liste est triée.

Module SortingWithProp (Import Or : OrderWithProp).Include Sorting (Or).

Inductive Sorted : list A→Prop :=| Sorted_nil : Sorted []| Sorted_cons1 a : Sorted [a]| Sorted_consn a b l :

Sorted (b :: l)→a ≤b→Sorted (a :: b :: l).

Ce lemme peut être utilisé pour prouver dans un premier temps que lafonction insert, si elle est appliquée à une liste triée, produit une liste triée.

Lemma insert_ok : ∀a l, Sorted l→Sorted (insert a l).Proof. (∗ omis ∗) Qed.

Il est alors facile de de prouver, par induction, que la fonction sortproduit une liste triée :

Lemma sort_ok : ∀l, Sorted (sort l).Proof.

intros l.induction l.− apply Sorted_nil.− simpl.

apply (insert_ok _ _ IHl).Qed.

End SortingWithProp.

Page 124: Le fichier pdf du livre (EJCIM 2015)

114 Chapitre 3. Calcul de programmes parallèles avec Coq

3.4.3 Fonctions avec pré- et post-conditions

La fonction insert comme nous l’avons vu produit une liste triée si elleprend en paramètre une liste triée. Ces pré- et post-conditions peuvent, dufait de la richesse du système de type de Coq, être exprimées par des typesdépendants dans la signature de la fonction. Les listes triées peuvent êtredécrites par un type qui représente une structure contenant une liste detype list A ainsi qu’un terme de preuve assurant que la liste est triée :

Definition sorted_list :=l:list A | Sorting.Sorted l.

La signature de la fonction d’insertion devient alors :

Definition insert’ a (l : sorted_list) : sorted_list :=...

Cependant la fonction doit alors calculer, en même temps que la liste triée,le terme de preuve assurant qu’elle est effectivement triée.

Construire les deux termes en même temps est relativement complexepour la fonction d’insertion, il est plus simple de définir insert’ à partirde la fonction insert et d’utiliser la preuve que nous avons donnée. Nousutilisons le mot-clef Program qui nous permet de définir un programme demanière incomplète, en ne décrivant que la partie calculatoire. Le systèmetransforme le programme de manière à insérer des termes de preuve làoù ils manquent. Les preuves sont construites de manière interactive, et lafonction n’est effectivement définie (et validée par le système de type deCoq) qu’après la définition de la dernière obligation de preuve.

Program Definition insert’ a (l : sorted_list) : sorted_list := insert a l.Next Obligation.

apply insert_ok.destruct l; auto.

Qed.

3.5 Structures algébriques et classes de types

3.5.1 Classes de type

La surcharge d’opérateur, également appelée polymorphisme ad hocpeut être introduite dans les langages fonctionnels grâce aux classes de type.Celles-ci ont été récemment introduites dans Coq par Sozeau [188]. Uneclasse regroupe un ensemble de signatures d’opérations, éventuellementaccompagnées d’une définition, permettant ainsi de déclarer l’existence deces opérations. Elle est généralement paramétrée par un ou plusieurs types.

Page 125: Le fichier pdf du livre (EJCIM 2015)

3.5. Structures algébriques et classes de types 115

Une opération définie en Coq sous plusieurs appellations n’est pasdéfinie comme une opération polymorphe au sens du polymorphisme pa-ramétrique usuel. C’est le cas par exemple de l’addition, dont la définitiondans les entiers naturels diffère de celle dans Z etc.

Pour utiliser un même nom de fonction pour toutes les opérationsd’addition, nous définissons une classe de type nommée Addition, para-métrée par un type number pour lequel nous décrivons la signature del’addition :

Class Addition (number : Type) := add : number→number→number.

Nous pouvons définir une notation infixe pour la méthode add afin derendre son usage plus confortable.

Infix "+" := add

À ce stade, add n’est définie pour aucun type. Nous devons déclarer uneinstance de cette classe pour associer une définition à cette opération :

Instance Addition_Nat : Addition nat := add:=plus.Instance Addition_Z : Addition Z := add := Zplus.Instance Addition_Q : Addition Q := add := Qplus.

Chaque instance de notre classe Addition définit la méthode add commeétant l’opération plus, pour respectivement les ensembles nat, Z et Q. Nouspouvons ainsi utiliser la méthode add, notée + pour calculer indifféremmentsur chacun de ces trois ensembles.

Eval compute in (let x:= (1%nat) in x+x).= 2: nat

Eval compute in (let x:= (1%Z) in x+x).= 2%Z: Z

Eval compute in (let x:= (1%Q) in x+x).= 2 # 1: Q

En revanche sur les réels, l’application de add est erronée car aucune ins-tance n’a été déclarée pour ce type. L’utilisation d’une méthode de classedéclenche la recherche d’une instance au moment de l’inférence de type etcette recherche tient compte des contraintes imposées par le type des para-mètres pour trouver une instance compatible. L’instance trouvée servira àdéfinir le corps de la fonction à utiliser.

Les classes peuvent contenir des champs qui sont des propriétés surleurs paramètres ou d’autres champs. Les propriétés ainsi énoncées sontcommunes à toutes les instances de la classe. Par exemple, l’associativitéd’une opération binaire peut être exprimée ainsi :

Page 126: Le fichier pdf du livre (EJCIM 2015)

116 Chapitre 3. Calcul de programmes parallèles avec Coq

Class Associative (A:Type) (op : A→A→A) := associativity : ∀a b c, op a (op b c) = op (op a b) c

.

Cette classe définit un champ associativity dont le type exprime l’associati-vité de son paramètre, c’est-à-dire l’opérateur op. On peut ensuite redéfinirla classe Addition pour imposer que l’opérateur add soit associatif :

Class Addition (number : Type) := add : number→number→number;add_assoc :> Associative number add

.

La notation :> déclare le champ add_assoc comme une instance de la classeAssociative. On construit dans ce qui suit une instance de la classe Additionpour les naturels :

Instance plus_associative : Associative nat plus.Proof. (∗ omis ∗) Qed.

Instance addition_nat : Addition nat := add := plus.

Le champ add est défini directement, le champ add_assoc est défini automa-tique par recherche d’une instance de Associative. Il est à présent possibled’utiliser la la propriété associativity sur une combinaison d’additions surles naturels :

Goal ∀i j k m : nat, i+(j+(k+m)) = i+j+k+m.intros i j k l; repeat rewrite associativity;reflexivity.

Qed.

L’intérêt d’utiliser des classes de type s’illustre dans la réécriture de pro-gramme puisqu’il permet de regrouper des propriétés communes à destypes différents. L’activité de preuve en est également facilitée dans le cas oùune instance de classe est paramétrée par une autre instance. Lorsque l’al-gorithme de recherche d’instance tente d’utiliser cette instance, il complèteses paramètres et si ceux-ci sont typés par une classe de type, l’algorithmelance une recherche d’instance pour ces paramètres. Cette technique derecherche d’instance fonctionne comme la stratégie de recherche de Prolog,en profondeur et avec retour-arrière. Les classes peuvent être utilisées pourconstruire automatiquement un terme lors de l’inférence de type à partirdes instances d’une ou de plusieurs classes.

3.5.2 Monoïdes

En algorithmique constructive, les propriétés algébriques sont trèsimportantes. La structure algébrique la plus simple est celle du monoïde,

Page 127: Le fichier pdf du livre (EJCIM 2015)

3.5. Structures algébriques et classes de types 117

défini par un ensemble muni d’une loi de composition interne binaireassociative et possédant un élément neutre.

Pour définir la propriété de monoïde, on pourrait écrire en Coq uneconjonction de propriétés de base simplement structurées dans une struc-ture de données de type record :

Record monoid A:Type := mk_monoid m_op : A→A→A;m_unit : A;left_unit: ∀a:A, m_op m_unit a = a;right_unit: ∀a:A, m_op a m_unit = a;associative: ∀a b c : A,

m_op a (m_op b c) = m_op (m_op a b) c .

Chaque champ de cet enregistrement est une projection, qui prend en pre-mier argument des valeurs de type Type et en deuxième argument desvaleurs de type monoid. Chacune de ces fonctions sert à accéder au champcorrespondant de la valeur record. On définit également une fonctionmk_monoid à six arguments : A et cinq autres arguments chacun correspon-dant à un champ du record. Cette fonction est utilisée pour construire desvaleurs de type monoid. Si on écrit A:Type plutôt que (A : Type), alors cetargument devient implicite (Coq essaiera de l’inférer).

3.5.3 Utiliser des monoïdes avec classe

Il existe deux familles de squelettes parallèles pour la programmationparallèle, selon qu’ils exploitent le parallélisme des données ou de tâches.Les squelettes à parallélisme de données sont ceux qui nous intéressent. Unsquelette se rapproche d’un schéma de conception prédéfini dans le langageou dans la bibliothèque. De nombreuses implantations du concept desquelette ont été réalisés dans des langages de programmation fonctionnels,puisqu’on peut voir un lien naturel entre un squelette et une fonctiond’ordre supérieur.

Dans la théorie appliquée aux listes, la programmation parallèle sebase sur le principe de Bird-Merteens : une fonction sur une liste est unhomomorphisme dès lors qu’elle peut s’exprimer comme la compositiond’opérations de type map et reduce. Les seules fonctions autorisées sont leshomomorphismes. Sachant que map et reduce sur des structures linéairess’implantent efficacement et au même coût quel que soit le type sous-jacentd’architecture parallèle, on a là une méthode de programmation parallèleà la fois générique et portable, et même équationnelle (les programmespeuvent se raffiner, à l’aide d’équations définies dans la théorie).

Page 128: Le fichier pdf du livre (EJCIM 2015)

118 Chapitre 3. Calcul de programmes parallèles avec Coq

Dans la bibliothèque standard de Coq sur les listes, il n’y a pas d’opé-rateur de réduction. Par contre, deux fonctions sont prédéfinies List.fold_leftet List.fold_right, définies comme suit :

Fixpoint fold_left(A:Type)(f:A→B→A)(l:list B)(a:A):A:=match l with

| []⇒a| b::t⇒fold_left t (f a b)

end.

À l’aide de la définition de monoid, il est possible de définir une fonction deréduction, appelée reduce, comme un opérateur binaire :

Definition reduceA:Type(m:monoid):list A→A:=fun l⇒List.fold_left (m_op m) l (m_unit m).

Cependant dans le formalisme de Bird-Merteens, le premier argumentdonné est un opérateur binaire associatif et non un monoïde. L’associa-tivité de l’opérateur ainsi que l’élément neutre peuvent être inférés parl’utilisateur à partir du contexte.

En Coq, le formalisme de Bird-Merteens peut être défini en utilisantdes arguments implicites et le concept de classes de type. Informellement,les classes de type sont des enregistrements pour lesquelles les valeurs,appelées instances, et les moyens de définir les instances sont rangés dansdes bases de données. Lorsqu’une valeur dont le type est une classe detype est implicite, et que Coq devrait l’inférer, le moteur d’inférence de Coqexplore la base de données pour chercher une instance de cette classe detype, ou une façon de construire une instance de cette classe de type.

Une classe de type pour un monoïde peut être définie par :

Class LMonoidA:Type(op:A→A→A)(unit:A) := left_unit: ∀a:A, op unit a = a;right_unit: ∀a:A, op a unit = a;associative: ∀a b c : A,

op a (op b c) = op (op a b) c.

Déclarer (et prouver) que (N,+, 0) est un monoïde s’écrit comme ci-dessous où Plus.x sont des lemmes dans la bibliothèque standard de Coqqui établissent les propriétés de l’addition sur les naturels :

Instance plus_0 : LMonoid plus 0 :=Build_LMonoid plus 0

Plus.plus_0_l Plus.plus_0_r Plus.plus_assoc.

Page 129: Le fichier pdf du livre (EJCIM 2015)

3.6. Programmation parallèle en Coq 119

3.5.4 Réduction

À présent, nous pouvons définir reduce par :

Definition reduce‘(op:A→A→A)‘m: LMonoid A op e :=fun l⇒List.fold_left op l e.

Le symbole ‘ devant le premier argument de reduce, indique que les va-riables libres dans le contexte courant de l’expression A→A→A, doivent êtregénéralisées. Dans ce cas, cela revient à placer un argument supplémen-taire en tête, et implicite A:Type. Notons que le second argument est notécomme étant implicite, c’est-à-dire que Coq essaiera de l’inférer. Comme mest une instance d’une classe de type, le moteur d’inférence de Coq utilise larésolution d’instance pour l’inférer. Pour cela, il infère la première instancede monoid dans la base de données qui possède plus comme opérateur. Parconséquent, le code suivant :

Coq < Eval compute in reduce plus [1;2;3].= 6: nat

déclenche la résolution d’instance pour LMonoid avec l’opération plus, l’ins-tance plus_0 sera retournée puis l’expression évaluée utilisant 0 commeélément neutre fournira la valeur 6.

Notons que la classe LMonoid permet simplement d’avoir un neutre eimplicite, mais que la définition de reduce n’utilise pas les arguments depreuve concernant l’associativité et la neutralité de e. Néanmoins l’asso-ciativité est une condition nécessaire pour pouvoir paralléliser facilementreduce. Notre cadre visant au développement de programmes parallèles,il est important que la conception des applications par le biais des fonc-tions séquentielles, intègre au plus tôt les conditions permettant in fineleur parallélisation. De plus ces arguments dans Prop sont éliminés lors del’extraction et n’introduise donc aucune inefficacité.

3.6 Programmation parallèle en Coq

Les sections précédentes ont présenté l’ensemble des notions de Coqnécessaires à la formalisation mécanisée de la théorie des listes décrite à lasection 3.1. Nous commençons par discuter la formalisation de la notiond’homomorphisme de listes et des définitions associées, puis traitons lesthéorèmes d’homomorphismes. Nous revenons ensuite au problème de lasomme maximale des préfixes d’une liste pour lequel nous dérivons uneversion efficace dans Coq. Enfin nous expliquons comment cette version

Page 130: Le fichier pdf du livre (EJCIM 2015)

120 Chapitre 3. Calcul de programmes parallèles avec Coq

efficace peut-être parallélisée automatiquement dans l’environnement SYD-PACC.

3.6.1 Homomorphismes de listes

Dans la première section nous avons vu que la propriété centralepour les homomorphismes est le fait pour une fonction h: list A→B d’être⊕-homomorphique où ⊕ est une opération binaire et A et B sont deuxensembles. Nous modélisons cette propriété sous la forme d’une classe :

Class Homomorphic ‘(h:list A→B) ‘(op:B→B→B) := homomorphic : ∀x y, h (x++y) = op (h x) (h y)

.

On peut alors montrer que ⊕ est nécessairement une opération asso-ciative, et que si h est définie pour la liste vide, elle forme un monoïde surl’image de h. Une variante de la définition 3.1.1, est de dire que h est unhomomorphisme si pour un monoïde (B,⊕, i⊕), on a les trois équationsde la définition 3.1.1. Cette définition capture moins de fonctions puisquel’on impose que l’opération binaire soit associative et ait un neutre sur toutB, pas seulement sur l’image de h. Nous formalisons cette variante de ladéfinition 3.1.1, sous forme d’une classe :

Class Homomorphism_f ‘(h : list A→B) ‘(f: A→B) := homomorphism_f : ∀(a:A), h [a] = f a .

Class Homomorphism ‘(h:list A→B) ‘(op: B→B→B) ‘(f:A→B)‘LMonoid B op e ‘Homomorphic A B h op‘Homomorphism_f A B h f :=

homomorphism_nil : h [] = e .

Les deux dernières équations de la définition 3.1.1, sont toutes les deuxmodélisées par des classes et sont en argument de la classe Homomorphism.Ceci permet de créer des instances de ces classes et de bénéficier de la réso-lution d’instance lors de la création d’instances de la classe Homomorphism.

Nous pouvons prouver que si une fonction h:list A→B est ⊕-homomorphique alors (img h,⊕,h[]), où img h dénote l’image de h, estun monoïde et donc que h restreinte à son image est un homomorphismeau sens de la classe Homomorphism.

Pour ce faire, il faut tout d’abord définir img :

Definition img ‘(h:list A→B) := b:B | ∃l, h l = b .

Pour un prédicat P:A→Prop, l’expression a:A | P a , que nous avons ren-contrée précédemment, est une notation du type sig P défini par :

Page 131: Le fichier pdf du livre (EJCIM 2015)

3.6. Programmation parallèle en Coq 121

Inductive sig (A : Type) (P : A→Prop) : Type :=exist : ∀x : A, P x→sig P.

On parle de paire dépendante puisque les deux arguments du constructeurexist sont une valeur x de type A et une preuve de (type) P x. Le type dela seconde composante de la paire dépend de la valeur de la premièrecomposante. Ainsi une valeur de type img h est une paire constituée d’unevaleur b de type B, et d’ une preuve qu’il existe une liste l telle que h l = b.

Lorsqu’il faut manipuler des fonctions qui retournent des valeurs d’untel type, et qu’on s’intéresse à l’égalité des résultats, ceci veut dire qu’ondoit avoir l’égalité pour les deux composantes de la paire, en particulierégalité des termes de preuve. Dans le cas de img h ce n’est toutefois pasvrai en général puisque si h n’est pas injective, on peut avoir deux témoinsdifférents pour la preuve de l’existentielle.

Les fonctions génériques qui manipulent img h ont donc été soigneuse-ment conçues pour que la partie preuve des paires dépendantes soient bienégales dans les cas qui nous intéressent. Nous détaillons peu ces aspectsici et renvoyons au code qui accompagne ce chapitre. Nous définissonstout d’abord une fonction to_img qui permet de voir une valeur h l commeétant de type img h. Pour bien contrôler le terme de preuve de la secondecomposante du résultat, nous écrivons la preuve directement sous formed’un terme :

Definition to_img ‘(h:list A→B)(xs:list A) : img h :=let P := fun b⇒∃ xs, h xs=b inlet prf := ex_intro (fun xs0⇒h xs0=h xs) xs eq_refl inexist P (h xs) prf.

Cette fonction et des propriétés associées sont alors utilisées pourdéfinir des fonctions de restriction à l’image de h :

Definition restrict_h ‘(h:list A→B) : list A→ img h :=fun x⇒to_img h x.

Program Definition restrict ‘(op:B→B→B) ‘Homomorphic A B h op :img h→img h→img h := op.

Next Obligation. (∗ omis ∗) Defined.

On peut alors construire des instances pour in fine prouver que si unefonction h est ⊕-homomorphique, alors la restriction de h à l’image de hest bien un homomorphisme, en particulier que (img h, ⊕, h[]) est bien unmonoïde. Les scripts de preuve omis sont très courts (quelques lignes) :

Program Instance restrict_h_hom ‘Homomorphic A B h op :@Homomorphic A (img h) (restrict_h h) (restrict op).

Next Obligation. (∗ omis ∗) Qed.

Page 132: Le fichier pdf du livre (EJCIM 2015)

122 Chapitre 3. Calcul de programmes parallèles avec Coq

Program Instance restrict_h_hom_f‘Homomorphic A B h op :Homomorphism_f (restrict_h h) (fun a⇒ (restrict_h h) [a]).

Program Instance hom_restrict_assoc ‘Homomorphic A B h op :Associative (restrict op).

Next Obligation. (∗ omis ∗) Qed.

Program Instance hom_restrict_neutral ‘Homomorphic A B h op :Neutral (restrict op) (to_img h []).

Next Obligation. (∗ omis ∗) Qed.Next Obligation. (∗ omis ∗) Qed.

Program Instance hom_homomorphism ‘Homomorphic A B h op :Homomorphism (B:=img h) (restrict_h h) (restrict op)

(fun a⇒ (restrict_h h) [a]).

3.6.2 Théorèmes sur les homomorphismes

En utilisant cette définition d’homomorphisme et les définitions demap et reduce, on peut alors énoncer le premier théorème d’homomor-phismes :

Theorem first_homomorphism_theorem:∀‘Homomorphism A B h op f e,∀l, h l = ((reduce op) (map f)) l.

Proof. (∗ omis ∗) Qed.

La preuve se fait facilement par induction sur la liste l. Cet énoncé toutefoisne construit pas une version équivalente à h. Il est ainsi préférable dedécomposer en :

Definition first_hom_thm_fun ‘(Homomorphism A B h op f e) :=(reduce op) (List.map f).

Lemma first_hom_thm_fun_prop:∀‘hom:Homomorphism A B h op f e,∀l, h l = first_hom_thm_fun hom l.

Proof. (∗ omis ∗) Qed.

Le deuxième théorème d’homomorphisme nécessite que soient forma-lisées les notions de ⊕-vers-la-gauche et ⊗-vers-la-droite. Nous le faisonsavec deux nouvelles classes et les fonctions fold usuelles :

Class Rightwards ‘(h:list A→B)‘(op:B→A→B)‘(e:B) := rightwards: ∀l, h l = List.fold_left op l e .

Page 133: Le fichier pdf du livre (EJCIM 2015)

3.6. Programmation parallèle en Coq 123

Class Leftwards (h:list A→B)‘(op:A→B→B)‘(e:B) := leftwards: ∀l, h l = List.fold_right op e l .

Le théorème peut alors être décomposé en deux définitions d’instances,l’une pour la classe Leftwards et l’autre pour la classe Rightwards :

Instance second_homomorphism_theorem_leftwards‘Homomorphism A B h op f e :

Leftwards h (fun a b⇒op(f a) b) (h []).Proof. (∗ omis ∗) Qed.

Instance second_homomorphism_theorem_rightwards‘Homomorphism A B h op f e :

Rightwards h (fun a b⇒op a (f b)) (h []).Proof. (∗ omis ∗) Qed.

Là encore les preuves se font par induction sur la liste argument, et enutilisant diverses propriétés des fonctions fold.

Coq ne permettant de définir que des fonctions qui terminent, il n’estpas possible de prouver le lemme 3.1.8. Notons que ce n’est pas vraimentun problème en pratique car même si une telle fonction pouvait être définieelle serait le plus souvent extrêmement inefficace. Dans ce contexte, il estdonc préférable d’avoir le troisième théorème faible plutôt que le troisièmethéorème d’homomorphismes.

En définissant la classe RightInverse par :

Class Right_inverse ‘(h:list A→B)(h’:B→list A) := right_inverse: ∀l, h l = h(h’(h l))

.

on peut alors énoncer le troisième théorème d’homomorphisme faible :

Instance third_homomorphism_theorem_right_inverse‘h:list A→B‘inv:Right_inverse A B h h’‘Hl:Leftwards A B h opl e ‘Hr:Rightwards A B h opr e :

Homomorphic h (fun l r⇒h( (h’ l)++(h’ r))).Proof. (∗ omis ∗) Qed.

Sa preuve en Coq est très similaire à celle présentée dans la section 3.1. Laconclusion de ce théorème est que la fonction h est homomorphique. On adirectement la version h est un homomorphisme par :

Program Instance third_homomorphism_theorem_right_inverse’‘(h:list A→B)‘inv:Right_inverse A B h h’‘Hl:Leftwards A B h opl e ‘Hr:Rightwards A B h opr e:

Homomorphism (B:=img h) (restrict_h h) (restrict(fun l r⇒h(h’ l++h’ r)))(fun a⇒(restrict_h h)[a]).

Page 134: Le fichier pdf du livre (EJCIM 2015)

124 Chapitre 3. Calcul de programmes parallèles avec Coq

3.6.3 La somme maximum des préfixes

Reprenons maintenant l’exemple du problème du calcul du maximumdes préfixes d’une liste. Dans la première section, un exemple d’applicationde la fonction mps avait été donné sur une liste d’entiers relatifs. Toute-fois dans un développement Coq, avec pour objectif in fine de pouvoirextraire une fonction OCaml, nous préférons considérer un type de don-nées beaucoup plus général. Nous ne le détaillons pas ici, et renvoyons aucode qui accompagne ce chapitre. L’idée générale est de se baser sur lestypes de modules de la formalisation de l’arithmétique disponible dansles bibliothèques standard de Coq, en y ajoutant quelques déclarationsd’instances puisque nous nous basons sur les classes. Ce type de module(nommé Number dans le code), contient un type t sur lequel sont définiesdes opérations d’addition (notée add), de soustraction, l’opposé, un ordretotal, et les propriétés usuelles de ces opérations (en particulier t, add et 0forment un monoïde). Une fonction max est définie en utilisant la décidabi-lité de la relation d’ordre, et a la propriété d’être distributive par rapport àl’addition.

Pour écrire la version naïve de mps, il faut une fonction qui génèretous les préfixes d’une liste :

Fixpoint prefix ‘(xs:list A) :=match xs with

| []⇒[[]]| x::xs⇒[]::(map (cons x) (prefix xs))

end.

et une fonction qui somme tous les éléments d’une liste :

Definition sum : list t→t := reduce add

Enfin il faut définir la fonction maximum qui calcule le maximum des élé-ments d’une liste non vide. De ce fait, nous ne pouvons la définir comme lafonction sum puisque reduce s’attend implicitement à ce qu’une instance de laclasse LMonoid existe comprenant son premier argument comme opérationbinaire. Or le neutre de ce monoïde devrait être le résultat de l’applicationde maximum à la liste vide, qui n’est pas définie.

Il est donc nécessaire d’implanter une seconde version de reduce :

Module NE. (∗ Reduce defined on non−empty lists ∗)

Program Definition reduce ‘(op:A→A→A)‘HA:Associative A op(l:list A)HNE:NonEmpty l : A :=

match l with| []⇒_| x::xs⇒fold_left op xs x

Page 135: Le fichier pdf du livre (EJCIM 2015)

3.6. Programmation parallèle en Coq 125

end.Next Obligation.

intros A op equ HA l HNE Hel. apply False_rect.symmetry in Hl. contradict Hl. apply HNE.

Qed.

End NE.

Comme la définition précédente de reduce, le second argument est impliciteet il est une instance d’une classe modélisant une propriété algébrique, icil’associativité. Une propriété, également implicite et modélisée par uneclasse, accompagne l’argument liste. Cette classe NonEmpty est définie par :

Class NonEmpty A:Type (l:list A) := non_emptiness : l<> [] .

La valeur retournée lors du cas du filtrage [] est définie en mode preuve.Après l’introduction, le but à prouver est A. La proposition False en Coqest le type inductif sans constructeur, et l’un des principes d’inductionl’accompagnant est False_rect: ∀(A:Type), False→A. À partir du faux, onpeut donc créer une valeur de n’importe quel type. Reste à prouver Falsece qui est facile ici puisque le fait que la liste ait été filtrée par [] contreditl’hypothèse HNE de non vacuité de cette liste.

Nous pouvons maintenant définir maximum par :

Definition maximum : ∀(l:list t), NonEmpty l→t :=NE.reduce max.

Reste à composer maximum, sum et prefix. Nous ne pouvons le faireavec l’opérateur usuel de composition . En effet, dans ce cas l’argumentde non vacuité de maximum ne serait pas pris en charge. Nous définissonsdeux nouvelles compositions prenant en charge la non-vacuité et qui cor-respondent aux deux grands cas de figure de fonctions générant des listesnon-vides.

Une fonction peut toujours générer des listes non-vides, quelque soitson entrée, et dans ce cas on peut la composer avec une liste définie unique-ment sur les listes non-vides. La composition est alors une fonction totale,sans précondition :

Program Definition comp’’‘(f:∀ l:list B, NonEmpty l→C)‘(g:A→list B)HNE:∀ a, NonEmpty(g a) : A→C :=

fun a⇒f (g a) (HNE a).Infix "’’" := comp’’ (at level 30).

C’est le cas de la fonction prefix, et on peut prouver facilement l’instance :

Instance prefix_non_empty ‘(xs:list A) : NonEmpty (prefix xs).

Page 136: Le fichier pdf du livre (EJCIM 2015)

126 Chapitre 3. Calcul de programmes parallèles avec Coq

Une fonction peut également générer des listes non-vides lorsqu’onl’applique à des listes non-vides. Dans ce cas, on peut la composer avecune fonction uniquement définie sur les listes non-vides, la compositionn’étant définie que sur les listes non-vides :

Program Definition comp’‘(f:∀ l:list B, NonEmpty l→C)‘(g:list A→list B)HNE:∀ a, NonEmpty a→NonEmpty(g a) :

∀l:list A, NonEmpty l→C :=fun a H⇒f (g a) (HNE a H).

Infix "’" := comp’ (at level 30).

C’est le cas de la fonction map, et on peut prouver facilement l’instance :

Instance map_non_emptyA B:Type(f:A→B)(xs:list A)HNE:NonEmpty xs :NonEmpty (map f xs).

La définition naïve de mps est alors :

Definition mps_spec : list t→t := maximum ’ (map sum) ’’ prefix.

La fonction ms_spec est obtenue en appariant mps et sum :

Definition tupling ‘(f:A→B)‘(g:A→C) := fun x⇒(f x, g x).Definition ms_spec := tupling mps_spec sum.

On définit les deux opérations opl et opr suivantes :

Definition opl (a:t) (b:t∗t) : t∗t :=( max 0 (a+fst b), a+(snd b) ).

Definition opr (a:t∗t) (b:t) : t∗t :=( max (fst a) ((snd a)+b), (snd a)+b).

où t∗t est le type des paires comprenant deux valeurs de type t, et fst et sndrenvoient respectivement la premier et la seconde composante d’une paire.On montre alors que ms_spec est opl-vers-la-gauche et opr-vers-la-droite :

Instance ms_lefttwards : Leftwards ms_spec opl (0,0).Proof. (∗ omis ∗) Qed.Instance ms_rightwards : Rightwards ms_spec opr (0,0).Proof. (∗ omis ∗) Qed.

Enfin, on montre que ms’ défini comme suit est un inverse droit dems_spec :

Definition ms’ (p:t∗t) := let (m,s) := p in [ m; s + −m].

Program Instance ms_right_inverse : Right_inverse ms_spec ms’.Next Obligation. (∗ omis ∗) Qed.

Page 137: Le fichier pdf du livre (EJCIM 2015)

3.6. Programmation parallèle en Coq 127

Le troisième théorème d’homomorphisme, peut alors être appliqué :

Instance ms_homomorphic :Homomorphic ms_spec (fun l r⇒ms_spec(ms’ l ++ ms’ r)) :=third_homomorphism_theorem_right_inverse.

Toutefois cette version n’est pas complètement satisfaisante. En ef-fet page 95, lorsque nous avons défini ms en tant qu’homomorphismeL, f M nous avons simplifié et f . Afin de permettre ceci en Coq, nousavons défini des instances particulières de Homomorphic (et aussi deHomomorphism_f), où proj1_sig et proj2_sig sont les deux projections pourles paires dépendantes :

Program Definition restrict’ ‘Homomorphic A B h op‘(Eq: ∀a b : img h, op’ a b = proj1_sig (restrict op a b) ) :

img h→img h→img h := op’.Next Obligation. (∗ omis ∗) Defined.

Program Instance homomorphic__eq ‘Homomorphic A B h op‘(Eq_op: ∀a b, op’ a b = proj1_sig(restrict op a b)) :

Homomorphic (B:=img h) (restrict_h h) (restrict’ Eq_op).Next Obligation. (∗ omis ∗) Qed.

Ceci permet de remplacer l’opérateur binaire obtenu par le troisièmethéorème d’homomorphisme, par une version plus efficace. Pour nousguider dans la construction de cette version plus efficace, nous la construi-sons en mode preuve, et énonçons pour cela un lemme qui postule sonexistence :

Definition opt_op_spec : odot : img ms_spec→img ms_spec→t∗t |∀a b, odot a b =

proj1_sig(restrict(fun a b⇒ms_spec(ms’ a++ms’ b)) a b) .Proof. (∗ omis ∗) Qed.

On fait de même pour f :

Definition opt_f_spec : f : t→t ∗ t |∀a, f a = proj1_sig(restrict_h ms_spec [a]) .

Proof. (∗ omis ∗) Defined.

et on obtient alors une version optimisée de l’homomorphisme par :

Definition odot := restrict’ (proj2_sig opt_op_spec).Definition f := restrict_f’ (proj2_sig opt_f_spec).

Program Instance optimised_ms :Homomorphism (restrict_h ms_spec) odot f.

Page 138: Le fichier pdf du livre (EJCIM 2015)

128 Chapitre 3. Calcul de programmes parallèles avec Coq

L’homomorphisme Lodot, f M correspond à celui qui a été défini page 95.Par le premier théorème d’homomorphisme, on peut alors obtenir

ms_spec sous forme d’une composition efficace de map et reduce. Pourparalléliser cette composition, nous utilisons une axiomatisation de labibliothèque de programmation parallèle Bulk Synchronous Parallel ML(BSML). La sémantique purement fonctionnelle des primitives de BSMLqui manipulent une structure de données parallèle, est donnée par le typede module PRIMITIVES. À partir de ces primitives, un certain nombre demodules sont définis, et nous renvoyons au code pour plus de détails.Nous parallélisons automatiquement l’homomorphisme dérivé dans lasection précédente, puis appliquons des projections pour obtenir la versionparallèle de mps_spec :

Module MPS_Parallel(Bsml : PRIMITIVES).

(∗ Modules omis ∗)

Definition par_ms := Eval simpl inParallel.left_parallel (f:=first_hom_thm_fun optimised_ms).

Definition par_mps :=fst (@proj1_sig (N.t ∗ N.t) _ ) par_ms.

End MPS_Parallel.

L’impression du terme par_ms donne :

par_ms =fun plst : Bsml.par (list t)⇒Map_reduce.mapReducePar f odot plst

: Bsml.par (list t)→img ms_spec

Cette fonction ne prend plus en entrée des listes, mais des valeurs detype Bsml.par(list t), c’est-à-dire des vecteurs parallèles de listes. Les vecteursparallèles Bsml.par sont des types de données polymorphes fournis par (laformalisation en Coq de) la bibliothèque BSML. On peut voir une valeurde type Bsml.par(list t) comme une liste répartie, et la représenter comme àla figure 3.1.

3.6.4 Programmation parallèle explicite en Coq

Bulk Synchronous Parallel ML ou BSML est un langage de program-mation parallèle purement fonctionnel [141]. L’implantation actuelle estune bibliothèque pour OCaml et appelant n’importe quelle implantationdu standard de fait MPI pour C [184]. Ceci permet de compiler et exécuterdes programmes BSML sur de très nombreuses architectures parallèles

Page 139: Le fichier pdf du livre (EJCIM 2015)

3.6. Programmation parallèle en Coq 129

différentes, et sa sémantique purement fonctionnelle en fait une cible dechoix pour l’extraction de Coq.

Primitives BSML

En BSML, l’architecture sous-jacente est vue comme un ordinateurparallèle quasi-synchrone (Bulk Synchronous Parallel ou BSP) [199]. C’estune architecture abstraite dans la mesure où, éventuellement complétéepar des éléments logiciels, n’importe quelle machine parallèle généralistepeut être vue comme un ordinateur BSP. Une telle machine est à mémoirerépartie. Elle est composée d’un ensemble de p couples processeur-mémoireinterconnectés par un réseau permettant des communication point-à-pointet d’une unité de synchronisation globale de tous les processeurs. Unprogramme BSP est une séquence de super-étapes, chacune comprenanttrois phases. Dans la phase de calcul local, chaque processeur travailleuniquement sur les données qui résident dans sa mémoire et émet desrequêtes de transfert de données vers ou depuis d’autres processeurs. Dansla phase de communication, le réseau échange les données requises. Enfinla phase de synchronisation globale assure que la super-étape suivantecommence uniquement lorsque les échanges de données sont terminés.

La sémantique de BSML est modélisée sous forme d’un plongementsuperficiel, c’est-à-dire que les fonctions de BSML sont manipulées commedes fonctions Coq usuelles, mais de façon axiomatique : leurs définitions nesont pas fournies. Leurs signatures et leurs spécifications sont données dansun type de module appelé PRIMITIVES qui commence par une descriptionpartielle de l’architecture BSP :

Section Processors.Parameter bsp_p : nat. (∗ le nombre p de processeurs ∗)Axiom bsp_pLtZero: 0 < bsp_p. (∗ il y a au moins un processeur ∗)Definition processor : Type := pid: nat | pid < bsp_p .

End Processors.

BSML est basé sur une structure de donnée répartie nommée vecteurparallèle. En OCaml c’est un type de données abstrait α par. En Coq nousavons :

Parameter par: Type→Type.

Nous notons informellement 〈 v0 , . . . , vp−1 〉 une valeur de ce type. Il y aune valeur par processeur de la machine BSP et l’emboîtement n’est pasautorisé, c’est-à-dire que les valeurs contenues dans un vecteur parallèle nepeuvent pas contenir des valeurs de type par. BSML offre une vue globaledes programmes parallèles. Ils ressemblent à des programmes séquentiels

Page 140: Le fichier pdf du livre (EJCIM 2015)

130 Chapitre 3. Calcul de programmes parallèles avec Coq

mais manipulent des vecteurs parallèles. L’implantation en OCaml et MPIquant à elle est une composition parallèle de programmes séquentielscommunicants.

Il y a quatre primitives pour manipuler des vecteurs parallèles :

Parameter mkpar : (processor→A)→par AParameter apply : par(A→B)→ par A→parParameter proj : par A→processor→AParameter put : par(processor→A)→par(processor→A)

Leur sémantique informelle peut être donnée par :

mkpar f = 〈 f 0 , . . . , f (p− 1) 〉apply 〈 f0 , . . . , fp−1 〉 〈 v0 , . . . , vp−1 〉 = 〈 f0 v0 , . . . , fp−1 vp−1 〉proj 〈 v0 , . . . , vp−1 〉 = λi.viput 〈 f0 , . . . , fp−1 〉 = 〈 λj. f j 0 , . . . , λj. f j (p− 1) 〉

mkpar est utilisée pour créer un vecteur parallèle dont les valeurssont données par une fonction f. Cette fonction doit être une fonction« séquentielle » c’est-à-dire qu’elle ne doit pas faire appel à des primitivesBSML. proj est l’inverse de mkpar.

apply dénote l’application point-à-point d’un vecteur parallèle de fonc-tions à un vecteur parallèle de valeurs. Enfin put est un moyen d’échangerdes données entre processeurs et permet d’exprimer n’importe quel motifde communication BSP.

put prend en argument un vecteur parallèle de fonctions. Chacune deces fonctions encode les message à envoyer aux autres processeurs. Ainsi(fi j) est le message à envoyer par le processeur i au processeur j. Dans laversion OCaml de BSML, le premier constructeur constant de chaque typesomme est considéré comme étant le message vide, et n’entraîne aucunecommunication. put renvoie un vecteur parallèle de fonctions. Chacune deces fonctions encode les messages reçus des autres processeurs. Ainsi si onappelle gi la fonction de ce vecteur au processeur i, alors (gi j) est le messagereçu par i en provenance du processeur j. Notons qu’il n’y a aucun moyendans BSML pour accéder directement à la valeur d’un vecteur parallèledétenue par un processeur distant : il est nécessaire d’utiliser explicitementles fonctions de communication proj et put.

put et proj nécessitent chacune une super-étape complète pour leurexécution. mkpar et apply ne nécessitent qu’une partie de la phase de calcullocal d’une super-étape.

Afin de formaliser en Coq la sémantique informellement donnée plushaut, il est nécessaire dans les spécifications de pouvoir manipuler la valeurd’un vecteur parallèle à un processeur donné. Cette fonction d’observation

Page 141: Le fichier pdf du livre (EJCIM 2015)

3.6. Programmation parallèle en Coq 131

ne doit être utilisée que dans les parties logiques des développements Coqpuisque les primitives BSML n’autorisent pas l’accès direct aux valeurslocales des vecteurs parallèles :

Parameter get:∀ A: Type, par A→processor→A.Axiom par_eq:∀ ‘(v w:par A),(∀(i:processor),get v i=get w i)→v=w.

Il est alors très aisé de formaliser la sémantique des primitives BSML.Par exemple pour mkpar et put nous avons :

Parameter mkpar : ∀‘(f:processor→A), res : par A | ∀i : processor, get res i = f i .

Parameter put: ∀‘(vf:par(processor→A)), res : par(processor→A) | ∀i j: processor, get res i j = get vf j i .

Notons que dans ce style de formalisation nous avons à la fois unesignature comme dans un langage fonctionnel comme OCaml et une spéci-fication logique. En utilisant la fonctionalité Program de Coq, il est possiblepar la suite d’utiliser les primitives de BSML ainsi axiomatisées comme sielles avaient les signatures moins riches données plus haut.

Squelettes algorithmiques vérifiés

Si nous voyons un vecteur parallèle de listes par(list A) comme uneliste répartie, alors des implantations parallèles de map et reduce, schéma-tisées figure 3.1, peuvent être écrites en BSML de la façon suivante, oùprocessors:list processor est la liste de tous les processeurs :

Module MapReduce (Import Bsml : PRIMITIVES).

Program Definition parfun ‘(f:A→B)(v:par A) : par B :=apply (mkpar(fun _⇒f)) v.

Program Definition par_map ‘(f:A→B)‘(v:par(list A)) : par(list B) :=parfun (List.map f) v.

Program Definition par_reduce‘(op:A→A→A)‘m:LMonoid A op e(v:par(list A)) : A :=

reduce op (List.map (proj (parfun (reduce op) v)) processors).

End MapReduce.

Page 142: Le fichier pdf du livre (EJCIM 2015)

132 Chapitre 3. Calcul de programmes parallèles avec Coq

En utilisant les spécifications des primitives BSML, on peut alorsmontrer que par_map et par_reduce sont des parallélisations correctes demap et reduce dans le sens informel suivant :

list A

par(list A)

list B

par(list B)par_map f

map f

join join

list A

par(list A)

A

par_reduce op

reduce op

join

où join transforme une liste répartie en une liste séquentielle :

Definition join ‘(v:par(list A)) : list A := List.flat_map (get v) processors.

3.6.5 Parallélisation automatique

La fonction par_ms obtenue à la fin de la section 3.6.3 fait appel à lala fonction mapReducePar. Cette dernière est simplement une compositionde par_map et par_reduce et est implantée avec les primitives de program-mation parallèle de BSML. mapReducePar correspond au patron de calculschématisé à la figure 3.1.

La fonction par_ms est une parallélisation automatique de la fonctionms qui est obtenue grâce au mécanisme de résolution d’instances de classesde types en Coq. La définition de la fonction left_parallel est :

Definition left_parallel ‘(f:A→B) ‘corr: TypeCorr A Ap‘lp:LeftFunCorr A Ap B f f_p : Ap→B :=

f_p.

TypeCorr A Ap est le type d’une instance qui modélise le fait que le typede données « parallèle » Ap est une parallélisation d’un type de données« séquentiel » A. La condition pour que cela soit le cas est qu’il existe unefonction fonction join: Ap→A surjective.

LeftFunCorr f f_p est l’instance d’une classe qui modélise la notion pré-sentée informellement plus haut qu’une certaine fonction f_p est une pa-rallélisation gauche correcte de f. Ici « gauche » indique qu’on a un typeparallèle en argument mais que le type de retour est séquentiel.

Nos deux notions de parallélisation correcte ont été choisies pourêtre compositionnelles. Ainsi on a une instance qui indique que si deuxfonctions sont parallélisables, alors leur composition est obtenue par com-position des parallélisations. Des instances formalisent ces propriétés.

Ainsi dans notre exemple, puisque ms est une composition de map etreduce, une instance de LeftFunCorr est cherchée par composition d’une

Page 143: Le fichier pdf du livre (EJCIM 2015)

3.7. Conclusion 133

instance de FunCorr – qui modélise la notion de parallélisation cor-recte pour des fonctions comme map – et de LeftFunCorr. Les instancesFunCorr map par_map et LeftFunCorr reduce par_reduce sont alors respective-ment trouvées. Enfin un mécanisme que nous ne détaillons pas ici, encoreune fois basé sur les classes de types, optimise la composition de par_mapet par_reduce en appel à mapReducePar.

À l’extraction le module MPS_Parallel est transformé en un foncteurOCaml prenant un argument une implantation des primitives BSML, c’est-à-dire un module respectant le type PRIMITIVES. Il existe plusieurs implan-tations des primitives BSML : une implantation séquentielle, une implanta-tion séquentielle vérifiée avec Coq, et une implantation parallèle au dessusde bibliothèques MPI (de programmation parallèle de plus bas niveau pourC, C++ et Fortran). En instanciant le foncteur obtenu par cette dernièreimplantation de BSML, on obtient une version parallèle de l’application.

3.7 Conclusion

L’assistant de preuve Coq est bien adapté à la mécanisation de laconception de programmes dans la tradition du formalisme de Bird etMeertens. De plus les classes de types, la bibliothèque de programmationparallèle purement fonctionnelle BSML, et l’extraction de Coq permettentde disposer de fonctionnalités de parallélisation automatique.

Ce chapitre présente le développement de programme basé sur deshomomorphismes, mais il existe également des travaux basés sur d’autresclasses de fonctions.

Le paradigme GTA permet d’obtenir de façon automatique des pro-grammes parallèles efficaces à partir de programmes fonctionnels naïfsécrits sous forme de compositions d’un générateur, d’un testeur et d’unagrégrateur. Les optimisations que nous fournissons reposent sur des pro-priétés des homomorphismes de semi-anneaux. Ainsi à partir d’une implan-tation de complexité exponentielle d’une fonction résolvant le problèmedu sac-à-dos, nous dérivons automatiquement une fonction parallèle decomplexité O(nW) où W est la capacité du sac-à-dos [81].

Les homomorphismes quasi-synchrones [97] sont particulièrementadaptés à la conception d’algorithmes quasi-synchrones (ou BSP [199]) etcapturent une classe plus grande de fonctions que les homomorphismes.Nous avons en particulier dérivé une fonction pour le calcul des plusproches voisins inférieurs [142] dont une version C++ a des performanceséquivalentes à un algorithme de référence mais non vérifié.

Page 144: Le fichier pdf du livre (EJCIM 2015)
Page 145: Le fichier pdf du livre (EJCIM 2015)

Chapitre 4

Construire et calculer dans unmonde 2D

Florent BeckerJérôme Durand-Lose

Ce chapitre présente ce qu’il est possible d’accomplir dans un espaceeuclidien en considérant justement cet espace (comme entrée, support, mé-moire. . .). Accomplir à la fois comme calculs (au sens discret, mais aussicontinu) et comme construction d’objet.

Trois modèles de calcul basés sur des primitives géométriques —l’utilisation de la règle et du compas, l’émergence de polyèdres ou l’utilisationde dérivées constantes — sont présentés.

Les machines à signaux sont ensuite définies : des segments de droitesont prolongés et, dès qu’ils se rencontrent, ils sont remplacés. Ces machinessont capables de calculer au sens classique. De part la nature continuede l’espace-temps, hyper-calcul comme calcul analogique sont égalementpossibles. De plus, en contrôlant la génération de fractales, le calcul fractalpermet de résoudre SAT quantifié en « temps et espace constant ».

Finalement, les assemblages autonomes d’éléments discrets dans le planforment un modèle d’une grande richesse. Celui-ci relie des objets théoriqueset combinatoires que sont les pavages avec des réalisations possibles dans unmodèle bio-informatique (calcul à ADN). Le calcul obtenu est asynchrone,et la synchronisation se fait par la géométrie. Temps et espace sont deuxdimensions fortement intriquées.

Mots-clés Automates de Mondrian, Bio-informatique, Asynchronisme,Auto-assemblage, Calcul analogique, Calcul au sens de Turing, Calcul

Page 146: Le fichier pdf du livre (EJCIM 2015)

136 Chapitre 4. Construire et calculer dans un monde 2D

fractal, Fractales, Hyper-calcul, Machines à signaux, Pavages, Piecewiseconstant derivative, Règle et compas, Tuiles de Wang.

Pré-requis— Calculabilité : Machines de Turing, indécidabilité de la Halte,— Complexité : classes P et NP et— Géométrie euclidienne de collège.

NB. Les automates cellulaires ayant fait l’objet d’un cours dans l’école del’année précédente à Caen [163], ils ne sont pas abordés bien qu’ils aienttoute leur place ici.

4.1 Introduction

Ce chapitre est consacré à ce qu’il est possible de faire comme calcul etcomme construction dans un espace euclidien. L’espace n’est pas l’endroitoù se situeraient des fils et des portes logiques d’un calcul séquentiel,parallèle ou distribué, mais un substrat où se passent les choses. Le cadren’est pas celui de la programmation ou des machines et automates, maisd’un espace euclidien où sont localisées des informations que font évoluerune dynamique.

Plusieurs types de choses peuvent se produire : construction à la règleet au compas, émergence d’une structure en fonction de règles locales,trajectoire d’un point en fonction du lieu ou de plusieurs points qui inter-agissent, morceaux d’ADN qui s’assemblent. . . À chaque fois, le lieu, ladistance, la transmission d’information, la place présente, les rencontres. . .sont autant d’éléments pour lesquels space matters.

L’espace est euclidien : d’une part il est continu et d’autre part, lagéométrie prévalente est celle des droites, des points et des cercles. Lavision géométrique est prépondérante comme le montre l’iconographie dece chapitre.

Ce cadre euclidien vient avec des limites : pas d’équation aux dérivéespartielles qui ne soit triviale, pas de géométrie algébrique. . . l’évolution estsimple en dehors de changement instantanés. Il s’agit donc de systèmeshybrides : ils ont des aspects continus (liés à l’espace et au temps) et discrets(changement de phase, transition, collision, appareillement. . .).

Le cadre continu ouvre la voie aux effets Zénon 1 : une infinité detransitions discrètes en un temps fini. Plusieurs modèles sont ainsi capables

1. en référence au paradoxe de la flèche et de la cible qui doit encore et toujoursparcourir la moitié de la distance restant à parcourir.

Page 147: Le fichier pdf du livre (EJCIM 2015)

4.1. Introduction 137

d’hyper-calcul, c’est-à-dire de résoudre le problème de la Halte (et desproblèmes encore « moins » calculables).

Ce cadre est aussi idéal : lignes sans épaisseur, position exacte. . . Lesmodèles sont théoriques et physiquement peu acceptables : densité d’infor-mation non bornée, hypothèse d’un espace euclidien à toute échelle. . .

Seul le dernier modèle considéré dans ce chapitre, l’auto-assemblagede tuiles est un modèle sujet à expérimentations. Il est issu d’une remar-quable convergence entre un modèle théorique classique, les pavagesde Wang, et des résultats expérimentaux sur l’assemblage de polymèresd’ADN. Il répond ainsi à la fois à une préoccupation théorique évoquéedans ce cours : quelles formes peut-on obtenir par un assemblage localet irréversible ? et à sa mise en pratique comme solution pour créer desnano-artefacts à coût raisonnable.

Le cours s’articule en trois grandes parties. Dans chaque partie, lesrésultats principaux ainsi que des références et des exercices sont présentés.Il n’est pas possible de rentrer dans les détails techniques ou les résultatscomplexes, mais les références idoines sont indiquées pour approfondir lessujets abordés.

La première partie présente trois modèles de calculs ancrés dans unmonde euclidien où les primitives font sens. Le premier, les GeometricComputation Machines de Huckenbeck [120, 121], utilise un automate pourmanipuler la règle et le compas et construire des points, des droites et descercles. Le second, les Automates de Mondrian de Jacopini et Sontacchi [123],impose des contraintes locales (au sens des ouverts de Rn) correspondant àune uniformité et une causalité dans l’espace-temps ; il en émerge des poly-èdres réguliers reflétant une dynamique à une autre échelle. Le troisième,le Piecewise Constant Derivative de Asarin et Maler [5, 6], découpe l’espaceen régions polyédrales où la vitesse est constante ; en partant d’un point, latrajectoire peut être très complexe changeant de région un nombre infinide fois en un temps fini.

La seconde partie se concentre sur un seul modèle : les machines àsignaux de Durand-Lose [72]. Après une définition du modèle, une simula-tion de machines de Turing (et donc de capacité à calculer) est présentée.Tirant partie de la continuité de l’espace-temps, il est possible d’enchaî-ner dynamiquement des changements d’échelle et d’accélérer le calcul etd’implanter une forme du modèle du trou noir. La construction de frac-tales permet une répartition du calcul « abyssale », le calcul fractal permetde résoudre QSAT (SAT quantifié) en temps constant. Cette partie se ter-mine par la mise en évidence de la capacité à faire des calculs analogiques,c’est-à-dire sur l’ensemble des réels.

Page 148: Le fichier pdf du livre (EJCIM 2015)

138 Chapitre 4. Construire et calculer dans un monde 2D

La troisième partie développe le modèle d’auto-assemblage introduitnotamment par Adleman [1]. Après une définition du modèle au traversde ses liens avec les pavages de Wang, il est montré comment y faire descalculs au sens Turing puis comment y assembler des formes efficacement.Cette notion d’efficacité est présentée à la lumière d’intuitions sur uneimplantation physique de l’auto-assemblage, ce qui ancre ce modèle dansune interprétation moins idéale de la physique.

4.2 Divers modèles en géométrie euclidienne

Cette partie présente trois modèles de calcul géométriques. Le premierutilise la règle et le compas. Le second se base sur des contraintes locales.Le troisième s’intéresse aux trajectoires ayant des dérivées constantes surdes régions polyédrales.

4.2.1 Avec la règle et le compas

Cette section reprend les travaux sur les Geometric Computation Ma-chines de U. Huckenbeck [120, 121] qui définissent une machinerie dont lesprimitives sont les opérations géométriques usuelles que l’on peut effectueravec une règle et un compas. Le propos n’est pas de faire de l’algorith-mique géométrique (discrète, symbolique ou algébrique), mais d’utiliserces primitives dans un espace Euclidien de dimension deux.

La machine est un automate équipé de registres. Ceux-ci sont de troistypes : points, lignes et cercles. Les états de l’automate servent à représenterà la fois la ligne du programme exécuté et l’état du calcul (c’est-à-direNon-terminé, Fini et Erreur, les deux derniers étant finaux).

Les opérations disponibles sont les suivantes :— copier une valeur (point, ligne ou cercle) en sortie,— mettre dans un registre l’intersection de deux droites,— mettre dans un registre l’une des intersections d’une droite et d’un

cercle (optionnel : différente du point indiqué),— mettre dans un registre l’une des intersections de deux cercles

(optionnel : différente du point indiqué),— mettre dans un registre la droite passant par deux points,— mettre dans un registre le cercle centré sur un point dont le rayon

est la distance entre deux points,— copier un registre dans un autre et— Fini.Les intersections n’existent pas forcément et ne sont pas forcément

uniques. L’exécution n’est donc pas déterministe. Si une instruction n’est

Page 149: Le fichier pdf du livre (EJCIM 2015)

4.2. Divers modèles en géométrie euclidienne 139

pas possible, alors la branche (de l’arbre de toutes les exécutions possibles)se clôt par Erreur.

S’il n’y a aucune feuille Erreur et que toutes les branches se terminent(par Fini) avec exactement la même sortie, alors le calcul aboutit et la sortieest la sortie commune (donnée par n’importe quelle branche). Par exemple,le programme de la Fig. 4.1 calcule le milieu d’un segment (les extrémitéssont notées A et B). Attention, il y a deux exécutions possibles (où sont p1et p2 ?), mais leurs sorties sont identiques.

1: c1←Cercle ( centre A, rayon d(A,B) )2: c2←Cercle ( centre B, rayon d(A,B) )3: p1← Intersection ( c1, c2 )4: p2← Intersection ( c1, c2 ) différente p15: l1←Droite ( p1, p2 )6: l2←Droite ( A, B )7: p3← Intersection ( l1, l2 )8: Écrire p39: Fini

(a) Programme

A Bp3

c1

c2

l1

l2

(b) Construction géométrique

FIGURE 4.1 – Calcul du milieu du segment AB.

Les instructions de saut sont de la forme « Si pk ∈E aller à i: sinon à j: »où pk est un registre contenant un point et E est un ensemble prédéterminéservant d’oracle.

Un cas simple est celui où l’ensemble E est le singleton origine et où lespoints (0, 0), (1, 0) et (0, 1) sont donnés comme constantes. Les fonctions(calculables en temps constant) d’un n-uplet de points vers des points sontalors exactement celles où les coordonnées des points en sortie s’exprimentà partir de celles en entrée avec des fonctions, par morceau, rationnelles àcoefficients entiers.

Ce cadre algébrique se comprend par la possibilité d’implanter lesprimitives suivantes : d’une part (x, y) → (x, 0), (x, y) → (y, 0) et(x, 0) (y, 0) → (x, y) et d’autre part, sur l’axe des x, les additions, mul-tiplications et divisions.

Cela correspond aux constructions classiques des nombres calculablesà la règle et au compas [44]. Mais les coordonnées constructibles y sontégalement closes par racine carrée. Ici, la condition « quelque soit la branched’exécution, elle se termine normalement et avec la même sortie » rendin-fine impossible l’apparition du radical [121].

Page 150: Le fichier pdf du livre (EJCIM 2015)

140 Chapitre 4. Construire et calculer dans un monde 2D

4.2.2 Automates de Mondrian

Les travaux de Jacopini et Sontacchi [123] partent de la modélisationde l’espace-temps physique réel. Des hypothèses sont faites dont découlentdes contraintes locales qui font émerger des structures polyédrales.

Dans un espace euclidien de dimension quelconque, à chaque point estassocié un état, une couleur. L’hypothèse faite est que couleur et voisinagesont liés : si deux points ont la même couleur, alors il existe un rayonsuffisamment petit où les voisinages sont identiques. Cela est représentésur la Fig. 4.2.

(a) Espace coloré (b) Contraintes locales

FIGURE 4.2 – Espace de Mondrian.

Par conséquence, s’il existe une petite boule de couleur uniformealors tous les points de cette couleur n’ont que cette couleur à proximité.Topologiquement, les points de cette couleur forment un ouvert.

De même, s’il y a une courbe d’une couleur (d’épaisseur nulle) alorsla courbe doit être un segment de droite (si les voisinages sont identiques,alors les dérivées également). Tous les points de cette couleur sont sur dessegments parallèles. Ce sont toujours les mêmes couleurs d’un coté et del’autre du segment. Les extrémités des segments sont d’autres couleurs(mais pas forcément toujours les mêmes).

Chaque couleur correspond à des régions polyédrales de mêmesdimensions et parallèles. Elles seront ouvertes dans ces directions. Lescouleurs limitrophes dans les directions orthogonales seront toujours lesmêmes.

Il y a un nombre fini de couleurs. Il suffit donc d’avoir un voisinagepour chaque couleur pour définir toutes les contraintes sur l’espace coloré,à savoir, pour chaque couleur, les directions des sous-espaces linéaires etles voisinages imposés.

L’étape suivante consiste à ajouter une dimension pour le temps et unerègle de causalité. Celle-ci est définie par une vitesse de la lumière, c, et la

Page 151: Le fichier pdf du livre (EJCIM 2015)

4.2. Divers modèles en géométrie euclidienne 141

condition que la couleur d’un point est totalement déterminée par ce qui setrouve à n’importe quelle date antérieure dans le cône passé (limité par lavitesse de la lumière). Un cône correspondant à un point est représenté surla Fig. 4.3a, avec en bas le passé, et en haut le futur. La Figure 4.3b montredeux portions d’espace (à des temps différents) où l’on trouve la mêmecoloration. Les deux cônes basés sur ces portions et limités par la vitesse dela lumière sont donc identiques.

t−∆

t

t+∆

x

y

time

∆c

∆c

(a) Cônes passé et futur

x

y

time

t−∆

t

t′−∆

t′

(b) Causalité

FIGURE 4.3 – Cônes et causalité.

Pour que le système soit réversible, la même contrainte est imposéemais en renversant le temps. Cela correspond à renverser les cônes (c’est-à-dire pointant vers le passé et non le futur) sur la Fig. 4.3b.

Les contraintes temporelles s’expriment aussi à l’échelle des polyèdres.Il est possible de raisonner en terme d’intersections et de collisions (ce quiest développé dans la partie sur les machines à signaux). À ce niveau, unemachine de Turing se simule sans difficultés avec des positions rationnelles.

4.2.3 Dérivée constante par région

Dans ce modèle, Piecewise Constant Derivative, introduit par Asarin etMaler [5], l’espace est partitionné en un nombre fini de régions polyèdrales.Sur chaque région, une vitesse constante est définie. Sur la Fig. 4.4, lespartitions sont en traits épais et les vitesses sont représentées par desflèches.

Partant d’un point, une trajectoire respecte la vitesse. Si un bord estatteint, la trajectoire se prolonge sur la région adjacente en suivant la nou-velle vitesse. Sur la Fig. 4.4, deux trajectoires sont indiquées. Elles partentde la gauche. La trajectoire représentée en tirets change deux fois de région

Page 152: Le fichier pdf du livre (EJCIM 2015)

142 Chapitre 4. Construire et calculer dans un monde 2D

et part ensuite à l’infini. Celle en pointillés s’enroule à l’infini autour d’unpoint d’intersection à trois régions.

FIGURE 4.4 – Trajectoires sur un Piecewise Constant Derivative.

Cette seconde trajectoire est singulière : elle change infiniment souventde région mais pourtant atteint sa limite en un temps fini (c’est une sommegéométrique) et s’y arrête. Il y a deux échelles de temps qui cohabitent : letemps continu fini où la trajectoire atteint sa limite et le temps discret infinides changements de région. C’est un effet Zénon.

Les positions dans l’espace et le temps sont continues. Un nombre réelpeut contenir beaucoup d’information (par exemple l’arrêt de toutes lesmachines de Turing pour le nombre Oméga de Chaitin [63]). Un nombrerationnel permet déjà de coder une information discrète. Tout ce qui suitest restreint à des positions rationnelles pour les points de départ et lessommets des polyèdres.

Ce système calcule en considérant qu’il y a une zone de départ (l’en-droit exact est la valeur de l’entrée) et que l’arrêt correspond à entrer dansune certaine zone. Le problème d’accessibilité est de décider si l’on atteintou non une zone à partir d’un point (si le calcul s’arrête).

Il est possible de coder une configuration d’une machine de Turingdans la trajectoire et de faire en sorte que chaque changement de régioncorresponde à une mise à jour de cette valeur. Avec un espace à troisdimensions, il est ainsi possible de calculer.

Ajouter des dimensions à l’espace permet d’ajouter des niveaux d’ef-fet Zénon. Avec d dimensions, le niveau d−2 de la hiérarchie arithmé-tique (c’est-à-dire Σd−2) 2 est décidable [5, 6]. Cela va même plus loin : leproblème de l’accessibilité est complet sur des niveaux de la hiérarchiehyper-arithmétique 3 [37, 39, 38].

2. Σ0 est décidable, Σ1 est le niveau du problème de la Halte.3. Extension de la hiérarchie arithmétique aux indices ordinaux (par-delà les entiers).

Page 153: Le fichier pdf du livre (EJCIM 2015)

4.3. Machines à signaux 143

4.3 Machines à signaux

Cette partie est consacrée à un seul modèle développé depuis une dé-cennie : les machines à signaux [70]. Ce modèle trouve son origine dans uneréflexion sur les automates cellulaires (non présentés, voir les actes de l’EJC2014 à Caen [163]). En effet, une des notions-clés pour la compréhensioncomme pour la synthèse d’automates cellulaires est le signal : pour véhicu-ler de l’information, déclencher, synchroniser. . . Souvent la dynamique sedécompose en rencontres de signaux engendrant de nouveaux signaux.

Dans le contexte des automates cellulaires, il s’agit de signaux discretss’étalant souvent sur plusieurs cellules. Afin de présenter clairement leschoses, une fois définis, ces signaux sont souvent représentés par des seg-ments de droites euclidiennes afin de présenter clairement leur dynamiquede collision sans alourdir le propos avec la discrétisation. L’idée est de s’af-franchir de la discrétisation et de regarder ces signaux comme des segmentsde droites idéaux [74]. La discrétisation n’est plus un « détail technique » :elle ne fait plus partie du modèle.

Les signaux sont des points (sans dimension) localisés dans un es-pace euclidien de dimension 1. Ils gardent les caractéristiques propres auxautomates cellulaires :

Synchronie ils avancent tous en permanence, à la même cadence, etUniformité ils ont toujours la même dynamique ; en particulier, un

même motif (signal discret) se déplace toujours de la même façondans un automate cellulaire, la vitesse d’un signal est une constantequi dépend uniquement de sa nature. De même l’interaction entresignaux ne dépend que de leur nature.

Les signaux sont animés d’un mouvement rectiligne uniforme et en-gendrent des segments de droite dans l’espace-temps. La nature d’unsignal est appelé méta-signal.

Après une définition des machines à signaux, il est rapidement montréleur capacité à calculer au sens de Turing. La continuité de l’espace-tempsainsi que la malléabilité des calculs sont mis en évidence afin d’implanterle modèle du trou noir et d’hyper-calculer. La possibilité de construirepartiellement des fractales est utilisée afin d’obtenir un parallélisme sanslimite (et faire du calcul fractal). Enfin, les capacités du modèle à faire ducalcul analogique (sur des réels) sont considérées.

4.3.1 Définitions

Dans cette sous-section, définitions informelle et mathématique sontassociées. La définition informelle suffit à la compréhension de la section.

Page 154: Le fichier pdf du livre (EJCIM 2015)

144 Chapitre 4. Construire et calculer dans un monde 2D

Définition 4.3.1 (Machine à signaux). Une Machine à signaux se définit parun triplet (M, S, R) où

— M est un ensemble fini de méta-signaux,— S est une fonction associant à chaque méta-signal sa vitesse et— R est un ensemble de règles de collision. Une règle de collision associe à

un ensemble d’au moins deux méta-signaux de vitesses distinctes (entrée)un ensemble de méta-signaux de vitesses distinctes (sortie).

De plus R doit être déterministe : un ensemble de méta-signaux apparaît en entréed’au plus une règle de collision.

À un instant donné, il y a un nombre fini de signaux ou de collisions.Ils sont positionnés dans l’espace. Comme chaque signal est complètementdéfini par le méta-signal associé et une collision par la règle, une configura-tion est entièrement définie en associant à chaque point de la droite réelleun méta-signal, une règle ou rien.

Définition 4.3.2 (Configuration). Une configuration d’une machine à signaux(M, S, R) est entièrement définie par une fonction de l’espace dans les méta-signaux et les règles de collisions auxquels est ajoutée une valeur vide (de méta-signaux et de collision) et telle que le nombre de positions non vides soit fini.

Soit V l’ensemble M ∪ R ∪ où 6∈ M ∪ R. Une configuration, c, estune fonction de R dans V telle que |c−1(M ∪ R)| < ∞.

Dans la suite, localisation désigne un repérage dans l’espace-temps,position la localisation spatiale et la date la localisation temporelle. Leslocalisations seront notées (x, t), espace puis temps.

La dynamique d’une machine à signaux se définit de proche en proche :tant que les signaux ne se rencontrent pas, ils se déplacent de manière recti-ligne uniforme. Par contre, dès que deux signaux (ou plus) se rencontrent,ils sont immédiatement remplacés.

Le temps est continu, mais il y a une échelle de temps discrète : celledes collisions. La dynamique se définit donc à partir de cette échelle enconsidérant les temps avec collision(s) et les temps intermédiaires (simplespropagations).

Définition 4.3.3 (Dynamique et diagramme espace-temps). Soit c une confi-guration, soit t la borne supérieure des dates sans rencontre de signaux (ou la datede la prochaine collision).

t = supd

∀x1, x2 ∈ R, ∀µ1, µ2 ∈ M, ∀d′, x1 6= x2,( µ1 n c(x1) ∧ µ2 n c(x2) ∧ 0 < d′ < d )

⇒ x1 + S(µ1)d 6= x2 + S(µ2)d

où n signifie « est égal (au méta-signal) ou appartient à la sortie (de la collision) ».

Page 155: Le fichier pdf du livre (EJCIM 2015)

4.3. Machines à signaux 145

Les configurations entre 0 et t ne contiennent pas de collisions et sont définiespar la simple propagation des signaux.

∀d, 0 < d < t, cd(x) =

µ si µ n c(x− S(µ)d) sinon

où, par définition de t, µ est unique s’il existe.

Si t n’est pas ∞, la configuration à t est définie de manière similaire enajoutant un cas : s’il y a plusieurs signaux qui arrivent en x alors c’est la règle decollision correspondante.

Les configurations se calculent ainsi de collision en collision. Un diagrammeespace-temps rassemble toutes les configurations entre deux dates.

Cette définition met bien en avant l’aspect hybride : étapes continuesséparées par des événements discrets.

Exemple 4.3.1. La Figure 4.5 montre sur la gauche la définition de 4 méta-signaux et de 2 règles de collisions. Sur la droite, elle montre le diagrammeespace-temps engendré à partir d’une configuration où se trouvent (degauche à droite) des signaux (de méta-signaux) µ4, µ1, µ2 et µ4.

Nom Vitesseµ1 1µ2 −1/2µ3 3µ4 0

(a) Méta-signaux

µ1, µ2 → µ2, µ1, µ3 µ3, µ4 → µ2 µ4, µ2 → µ2, µ4

(b) Règles de collision

EspaceR

Tem

ps

R+

µ1

µ1

µ1

µ2

µ2

µ2

µ2

µ2

µ3

µ3

µ4

µ4

µ4

(c) Diagramme espace-temps

FIGURE 4.5 – Exemple de machine à signaux et de diagramme espace-temps.

Les règles de collision se lisent sur le dessin. Une règle est dite blanchesi les méta-signaux sortant sont les mêmes qu’en entrée (comme celle de µ4, µ2 sur l’exemple). Par la suite, elles ne sont plus indiquées.

Pour trouver la localisation d’une collision de deux signaux, il suffitde résoudre un système linéaire de deux équations (une par signal) à deuxinconnues (position et date). La localisation d’une collision de signaux dontles positions et les vitesses sont des nombres rationnels est donc forcément à

Page 156: Le fichier pdf du livre (EJCIM 2015)

146 Chapitre 4. Construire et calculer dans un monde 2D

coordonnées rationnelles. Plus généralement, avec des vitesses rationnelleset partant des positions rationnelles, toutes les collisions sont à coordonnéesrationnelles.

Définition 4.3.4 (Machine à signaux rationnelle). Il s’agit d’une machineà signaux dont les vitesses sont rationnelles et pour lesquelles les positions dessignaux dans une configuration initiale sont obligatoirement rationnelles. Dans lediagramme espace-temps, toutes les collisions ont des localisations rationnelles etles signaux sont à des positions rationnelles à chaque date de collision 4.

Ceci a une importance particulière pour la simulation de machines àsignaux rationnelles : elles peuvent être simulées exactement sur ordinateurpuisque les nombres rationnels y sont représentables exactement et lesopérations y sont faites avec exactitude. Une telle simulation a été implantéeen Java 5 et utilisée pour engendrer toutes les figures.

Sauf mention contraire, les constructions et résultats de cette sectionsont valides sur les machines rationnelles comme sur les machines quel-conques.

Exemple 4.3.2 (Calcul du milieu). Il est possible de « calculer » le milieu(exactement), c’est-à-dire de positionner un signal à mi-distance entre deuxsignaux. Cela est illustré par la Fig. 4.6 où un signal U est positionné exacte-ment au milieu des deux signaux M. Cet ajout est déclenché par l’arrivéed’un signal Aj par la gauche. Quand il rencontre le M de gauche, il se trans-forme en A et

−→R . Le dernier est trois fois plus rapide que l’autre et rebondit

sur le M de droite ; il devient alors←−R , toujours trois fois plus rapide. Il

rencontre A exactement à mi-parcours entre les deux M.Ceci se démontre par le calcul des positions des collisions (à chaque

fois un système de deux équations à deux inconnues). La plupart descalculs pour vérifier la correction des diagrammes espace-temps (et donc desdynamiques) est de ce niveau.

Si l’on reprend les règles de la Fig. 4.6, le calcul du milieu ne faitintervenir que les trois premières. La quatrième permet le calcul du milieuentre le M de gauche et le U juste après. Cela est déclenché par le second Ajsur la gauche.

Enfin il est également possible d’enlever le U juste après le M de gauche.Pour cela, un ordre Enl est envoyé, il est transformé en E en passant le Mde gauche. Le signal E fait disparaître le premier signal U qu’il rencontre.Ceci correspond aux deux dernières règles.

4. Toutefois, les positions intermédiaires ne sont pas forcément rationnelles.5. L’auteur n’est pas assez content de son code pour le mettre sur internet mais il le

fournit sur demande.

Page 157: Le fichier pdf du livre (EJCIM 2015)

4.3. Machines à signaux 147

Name SpeedAj, Enl 1/3A, E 1U, M 0−→R 3←−R −3

(a) Méta-signaux

Aj, M → M, A,−→R

−→R , M → ←−R , M A,←−R → U

−→R , U → ←−R , U Enl, M → M, E E, U →

(b) Règles de collision

Espace R

Tem

ps

R+

Enl

M

M

M

M

M

M

Aj

AAj

A

E

−→R

←−R

−→R

←−R

U

UU

(c) Diagramme espace-temps

FIGURE 4.6 – Calculer le milieu.

Exercice 4.3.3. Comment modifier la configuration initiale pour enleverl’autre signal U ? Quelle règle ajouter pour qu’un signal Enl ne continuepas à droite quand il n’y a aucun U ?

Le calcul du milieu est une primitive très importante. Par exemple,son utilisation répétée permet d’enregistrer n’importe quel nombre (entier)en unaire dans un espace borné (les U de la Fig. 4.6c).

Il y a là une limite du réalisme du modèle : le stockage non borné d’infor-mation dans un espace borné. Les positions et les vitesses des signaux sontexactes, il n’y a pas de principe d’incertitude d’Heisenberg. Comme expli-qué plus bas, le modèle transcende également la thèse de Church-Turing.

4.3.2 Calculer au sens de Turing

Les machines à signaux sont capables de calculer (au sens de Church-Turing) comme le démontre la simulation générique d’une machine deTuring. Une machine de Turing se compose d’un automate fini, d’un rubannon borné composé de cases et d’une tête de lecture/écriture qui permet àl’automate d’agir sur le ruban et de s’y déplacer. Le ruban est toujours fini,mais il est agrandi dès que nécessaire.

La simulation est directe comme le montre la Fig. 4.7 (le temps vatoujours vers le haut). L’évolution de la machine de Turing représentéesur la Fig. 4.7a se retrouve Fig. 4.7b. Les signaux verticaux, c’est-à-dire de

Page 158: Le fichier pdf du livre (EJCIM 2015)

148 Chapitre 4. Construire et calculer dans un monde 2D

vitesse nulle, correspondent aux cases du ruban. Les signaux formant unzig-zag indiquent la position de la tête et enregistrent l’état de l’automate.La seule partie technique est l’élargissement du ruban.

^

q f

b b a b #

^

q f

b b a b #

^

q f

b b a b #

^

q f

b b a b #

^

q2

b b a # #

^

q1

b b # # #

^

q1

b a # # #

^

q1

a a # # #

^

qi

a b # # #

^

qi

a b # # #

^

qi

a b # # #

(a) Exécution d’une machine de Turing

^

^

^

a

a

b

b

b

a

b

b

#

a

a

b

−→qi

−→qi

−→qi

←−q1

−→q1

−→q1

−→q2←−#

−→#

←−q f

←−#

−→#

←−q f

←−#

−→# −→

#

#←−q f

←−q f

←−q f

(b) Simulation par une machine à signaux

FIGURE 4.7 – Simulation d’une machine de Turing par une machine à signaux.

Le nombre de collisions est linéaire en le nombre de déplacementsde la tête sur le ruban. Cette notion de complexité est développée à lasection 4.3.4.

Exercice 4.3.4. À chaque fois que la tête va plus à droite, une nouvellecellule est ajoutée au ruban en assurant toujours la même distance entreles cellules. Les signaux correspondant à la tête sont de vitesses 1 et −1.

Sachant que−→# est de vitesse 1 et que les vitesses des autres signaux sont

de même valeur absolue, que valent les vitesses de←−# et −→# ? Reconnaîtreune construction à rebrousse-temps pour vérifier le résultat.

Comment changer les vitesses de manière à ce que la distance soit àchaque fois la moitié de la distance précédente ? Le ruban n’occupe alors

Page 159: Le fichier pdf du livre (EJCIM 2015)

4.3. Machines à signaux 149

qu’une partie bornée de l’espace. Quelle est cette borne si, dès le départ, ily a ce ratio entre les distances ?

Cette construction est faite sur les machines rationnelles, simulableexactement sur ordinateur. En laissant de coté la définition d’une entrée, dela fin et du résultat d’un calcul pour une machine à signaux, les machines àsignaux rationnelles ont le même pouvoir de calcul que les machines de Turing. Lasection suivante sort de ce cadre en considérant les accumulations puis, lasection 4.3.5 s’affranchira de la rationalité pour aborder le calcul analogique.

La simulation des machines de Turing entraîne l’indécidabilité desproblèmes suivants 6 :

— décider si le nombre de collisions sera fini,— décider si un méta-signal apparaîtra ou non,— décider si un signal participera ou non à une collision,— décider si la configuration va s’étendre sur un coté. . .Le diagramme espace-temps fournit la trace de la machine de Turing.

L’intérêt des machines à signaux est aussi de fournir une trace graphiquecompréhensible, par exemple pour un automate à deux compteurs (avec uncodage unaire). Cela peut même être fait avec un nombre borné de signauxen utilisant la position pour coder [72].

En ayant plusieurs méta-signaux stockables comme U, il est possiblede coder une suite de caractères dans une structure de type pile et le mot àdroite (et la mot à gauche) de la tête de lecture d’une machine de Turing.De plus en codant l’état de la pile par une position, il est possible de garderconstant le nombre de signaux et de n’utiliser que des règles de collisionsqu’entre deux signaux et engendre exactement deux signaux (conservation).Il est possible d’aller encore plus loin en imposant que les règles soientinjectives : la collision est entièrement déterminée par les signaux sortant(réversibilité). Les machines de Turing réversibles — universelles au sensdu calcul [17, 134, 156] — sont simulables ainsi [79].

Les machines à signaux simulent également les Cyclic Tag System intro-duits par Cook [54]. Ceux-ci ont relancé la course aux machines universellesde petites tailles, par exemple sur les machines de Turing [206]. La plus pe-tite machine à signaux Turing-universelle connue a été réalisée en simulantles CTS et comporte 13 méta-signaux et 21 règles de collision [76].

6. Tant que les machines sont rationnelles, les problèmes et les instances sont expri-mables dans le cadre classique.

Page 160: Le fichier pdf du livre (EJCIM 2015)

150 Chapitre 4. Construire et calculer dans un monde 2D

4.3.3 Malléabilité de l’espace-temps et trous noir

Il n’y a pas d’échelle ni d’origine dans les définitions ou les figures.Le contexte est celui du continu : un changement d’échelle ou une transla-tion produit la même chose, toutes proportions gardées. En particulier, ladivision de toutes les distances par deux divise toutes les durées par deux.

Il est possible de changer d’échelle de manière dynamique : le systèmeest arrêté puis contracté et enfin redémarré comme représenté sur la Fig. 4.8.À gauche se trouve la structure avec les noms des méta-signaux ; au centreles pointillés et lignes représentent le diagramme espace-temps actif, gelé etdévié puis actif de nouveau. À droite, se trouve un exemple : un diagrammetémoin (Fig. 4.8c) et avec une contraction (Fig. 4.8d).

déb

−→rap

←−rap

−→rap

lent

bord

bord

bord

(a) Structure (b) Modification (c) Témoin (d) Contracté

FIGURE 4.8 – Étape de contraction.

Pour arrêter, un signal, −→rap, traverse la configuration et remplacechaque signal qu’il rencontre par un signal de vitesse nulle mémorisantle méta-signal associé. Le système est donc gelé suivant une oblique del’espace-temps (la trace de −→rap) sous forme de signaux parallèles. Commeils sont parallèles, il n’y a pas de collisions et les distances (relatives) entreles signaux sont préservées. Le dégel se fait en utilisant un signal (−→rap ici)de même vitesse que le gelant.

Le changement d’échelle se fait en changeant la direction des signaux(parallèles). Le théorème de Thalès montre que les proportions sont conser-vées. Le signal dégelant est deux fois plus court ; toutes les distances ontété divisées par deux.

Sur du continu, il n’y a pas de limite au changement d’échelle. Pourque le processus se répète de lui-même, il suffit de renvoyer un signal surla gauche qui redémarre le processus (red sur la Fig. 4.9a).

À chaque réveil, le calcul originel enchâssé avance de la même duréerelative : à chaque fois, la durée est divisée par deux mais l’échelle l’est

Page 161: Le fichier pdf du livre (EJCIM 2015)

4.3. Machines à signaux 151

bord

bordred

(a) Structure (b) Modification (c) Exemple

FIGURE 4.9 – Contraction itérée.

également, tout est deux fois plus rapide. Donc dans cet espace-temps fini,tout le diagramme espace-temps originel est enchâssé.

Avec la simulation d’une machine de Turing (en espace borné, voirexercice 4.3.4) dans l’enchâssement, si le calcul de la machine s’arrête, alorsc’est en temps fini. Avec quelques modifications, il est possible, en casd’arrêt de faire sortir un signal sur le coté de la contraction itérée.

En dehors de la structure, un calcul peut recevoir ce signal témoin del’arrêt de la machine. S’il le reçoit, cela est forcément à une date bornée.Cette date limite peut être indiquée par une collision avec un signal de find’attente convenablement situé. Donc s’il n’y a pas d’arrêt, la fin d’attenteest reçue. Mais s’il y a arrêt, le témoin est reçu avant. À l’extérieur, l’arrêtest décidé. Le modèle est capable d’hyper-calcul en utilisant un effet Zénon.Les premières constructions de ce type datent des premiers travaux dans ledomaine [71, 72].

Le principe général implanté ici est d’avoir deux échelles de tempsdifférentes : une infiniment accélérée qui fait le calcul dont l’arrêt est àdécider et une autre qui attend un témoin de cet arrêt. Le second possèdeen plus un moyen de borner le temps de réponse. Ceci correspond au modèledu trou noir (voir les travaux de Hogarth [114] et de Németi et ses collègues[2, 82]). L’accumulation en haut de la Fig. 4.9c sert de trou noir.

Il est également possible de déformer un diagramme espace-temps enlui faisant subir des déviations plus complexes (par exemple : augmentationdes vitesses par une valeur unique). Il est toujours possible de passer d’unedéformation à une autre de manière dynamique tout en préservant le calcul :les collisions avec leurs liens de causalité se retrouvent. Il est ainsi possible

Page 162: Le fichier pdf du livre (EJCIM 2015)

152 Chapitre 4. Construire et calculer dans un monde 2D

de rétrécir un calcul sans pour autant le geler [79] (tout en restant réversibleet conservatif).

4.3.4 Construction et utilisation de fractales

Beaucoup de fractales se construisent naturellement avec des machinesà signaux. Par exemple, quatre méta-signaux suffisent pour construirel’accumulation en haut de la Fig. 4.10a. Le diagramme espace-temps resteindéfini à cette singularité.

Construire le milieu du milieu du milieu. . . permet de construire unefractale comme celle de la Fig. 4.10b. En découpant en trois et en ne re-commençant que sur les premiers et derniers morceaux il apparaît uneconstruction classique de l’ensemble diadique de Cantor (Fig. 4.10c). Enfaisant varier les vitesses, il est possible d’engendrer des ensembles detoute dimension fractale entre 0 et 1 [180, Chap. 5].

Zigdroi

gau

Zag

Zig

droi

gau

(a) Accumulation simple (b) Découpage (c) Cantor

FIGURE 4.10 – Fractales.

La structure d’enchâssement de la Fig. 4.9b est une structure fractale,elle se répète avec l’échelle un demi en faisant à chaque fois une étape ducalcul. Elle travaille en profondeur pour accélérer une séquence de calculs.La Figure 4.10b découpe l’espace à chaque fois en deux. Elle sert de basepour une exécution en largeur afin de mettre en place des calculs parallèles.Il est possible de mener des études de cas, par exemple sur une variablebooléenne : à vrai d’un coté, à faux de l’autre.

S’il reste encore des variables, les sous-cas se traitent par d’autresdécoupages. Il est possible de sous-découper jusqu’à ne plus avoir devariables booléennes non affectées. Tous les cas sont alors traités.

Si les variables apparaissent dans une formule booléenne dont oncherche à savoir si elle satisfiable par une affectation des variables, alorson a un schéma pour résoudre le problème SAT : la satisfaction de for-

Page 163: Le fichier pdf du livre (EJCIM 2015)

4.3. Machines à signaux 153

mules booléennes (avec des ¬, des ∨ et des ∧) en x1, x2, . . . , xn (variablesbooléennes).

Ce schéma peut être raffiné pour tester si cette satisfaction est indé-pendante de la valeurs de certaines variables. C’est alors QSAT qui estrésolu. QSAT s’intéresse à la valeur des formules booléennes quantifiées,c’est-à-dire les formules SAT précédées de Q1x1 Q2x2 . . . Qnxn où les Qiappartiennent à ∀, ∃. QSAT est un problème PSPACE-complet [182, Sec.8.3], c’est-à-dire complet pour la réduction polynomiale des problèmesdécidables en espace polynomial (déterministe ou non par le théorème deSavitch).

Si une formule booléenne contient dix variables booléennes, dix ni-veaux de profondeur suffisent à savoir si elle est satisfiable. Le reste dela construction de la fractale ne sert donc à rien. De plus, le diagrammeespace-temps n’étant plus défini quand la fractale est construite, il fautempêcher l’achèvement de la construction.

Exercice 4.3.5. Proposer deux façons de limiter une fractale. La premièrese base sur une série de méta-signaux qui servent de compteur unaire(machine ad hoc). La seconde est basée sur la propagation d’un ordre disantde produire un niveau de plus. Pour avoir dix niveaux, il faudra donnerdix fois l’ordre (machine générique utilisable pour toute profondeur).

Une formule de QSAT, par exemple ∃x1∀x2∀x3 x1 ∧ (¬x2 ∨ x3), estcodée par un faisceau de signaux codant chacun de ses éléments. Le calculest organisé suivant un arbre binaire complet de profondeur 3 (visible sur laFig. 4.11). À chaque embranchement, une variable booléenne est instanciée,à vrai à droite et à faux à gauche (Fig. 4.12a).

Arrivé aux feuilles de l’arbre, il n’y a plus de variables, la formuleest alors évaluée (Fig. 4.12b). Les résultats remontent alors l’arbre (quise referme) et à chaque nœud il est fait la conjonction (resp. disjonction)s’il s’agissait d’une variable universelle (resp. existentielle) (Fig. 4.13). Lesconstructions présentent beaucoup d’aspects techniques et sont présentéesen détail dans [68, 180, Chap. 7].

Une machine spécifique est engendrée pour chaque formule. En com-pliquant le codage, il est possible de n’utiliser qu’une seule machine pourtoutes les formules. La formule est alors complètement codée dans la confi-guration initiale [69, 180, Chap. 8].

Il est aussi possible de poser d’autres questions sur la formule nonquantifiée : combien de valuations la satisfont (#SAT qui est #P-complet),quelle est la plus « petite » solution. . . Il « suffit » de changer la façon dontsont agrégés les résultats : au lieu d’une réponse booléenne, il peut s’agird’un entier, d’une valuation. . .

Page 164: Le fichier pdf du livre (EJCIM 2015)

154 Chapitre 4. Construire et calculer dans un monde 2D

FIGURE 4.11 – Résolution de QSAT par calcul fractal complet.

Si l’on a besoin de cent niveaux de plus, il suffit d’étendre la construc-tion de la fractale ; cela ne prend pas plus de place ni de temps. Il existe unemachine à signaux capable de décider n’importe quelle instance de QSATen temps et espace constants.

Le modèle du trou noir permet de décider le problème de la Halte entemps et espace constant ; en comparaison, QSAT est trivial. Cela est dû à lacontinuité du temps et à la possibilité d’accélérer sans limite. Mais avec larésolution de QSAT, il n’y a jamais d’accumulation ; la clé est la continuitéde l’espace et la possibilité de toujours couper en deux.

Cette technique de démarrage contrôlé de la construction d’une frac-tale, de la répartition du calcul dessus et de l’agrégation des résultatss’appelle le calcul fractal.

Complexités. Le temps et l’espace sont des mesures continues de com-plexité. Or, l’évolution est formée de collisions, d’événements discrets. Desmesures de complexité discrètes se construisent en considérant les dia-

Page 165: Le fichier pdf du livre (EJCIM 2015)

4.3. Machines à signaux 155

−→m0←−a

−→xll1

−→xlrc2

−→¬lr

−→∨l

−→xr3

−→∧−−→store

−−−−→collect

←−a

−→a

←−m1

−→m1

←−fll

−→tll

←−xlrc2

−→xlrc2

←−¬lr

−→¬lr

←−∨l

−→∨l

←−xr3

−→xr3

←−∧−→∧

←−−store −−→

store

←−−−−collect

−−−−→collectx1

(a) Instanciation de x1

−→m3

←−a

−→tll

br−→tlrc

←−Tll

−→¬lr

←−Tll−→tlrc

br−→∨l

←−Tll−→¬lr←−Tlrc

−→flr

br

−→t()l

←−Flr

−→tlbr

−→tr

←−Tl

−→∧

←−Tl −→tr

br

−→id←−Tr

−→tbr

−−→store

←−T

−→T∅

br−−−−→collect

T

←−−−−success

(b) Évaluation de la formule

FIGURE 4.12 – Résolution de QSAT par calcul fractal, détails.

−→a ←−a

w←−a

−→aL∃

←−a −→aw

−→a ←−a −→a ←−aw

←−a−→a

R∀

←−a −→aL∃

←−a−→a

L∀

←−a −→aw

−→a ←−a −→a ←−a −→a ←−a −→a ←−a

−→Fail

R∀

←−Fail

−→Fail

L∀

←−Fail −−−−→success

R∀

←−−−−success−→Fail

L∀

←−−−−success

−→Fail

R∀

←−Fail −−−−→success

L∀

←−Fail

−→Fail

L∃

←−Fail

w

←−Fail

w

FIGURE 4.13 – Agrégation du résultat.

grammes espace-temps comme des graphes dirigés sans cycles. Un liende causalité directe existe entre deux signaux si le premier se termine dansune collision où naît le second. La complexité en temps est la taille de la pluslongue suite de signaux tels que chacun ait un lien de causalité directe avecle suivant. Un lien de causalité est la fermeture transitive du lien de causalité

Page 166: Le fichier pdf du livre (EJCIM 2015)

156 Chapitre 4. Construire et calculer dans un monde 2D

directe. La complexité en espace est le plus grand nombre de signaux sansliens de causalité.

Avec ces définitions, la complexité est quadratique en temps (cubiquepour le cas générique) mais exponentielle en espace.

Pour aller plus loin. La Figure 4.10a montre qu’il est possible de faire unefractale avec quatre vitesses. Avec deux vitesses ou moins, le nombre de col-lisions est bornée. Avec trois vitesses, la situation est duale : c’est impossibleavec une machine rationnelle, les signaux sont prisonniers d’un maillagesans accumulations. Par contre cela devient possible s’il y a une vitesse ouune postions irrationnelle. Cette dichotomie se comprend en mettant enlumière un calcul de pgcd, celui-ci convergeant sur les rationnels [16].

Qu’en est-il de la capacité à calculer ? Dans le cas rationnel, le maillagemontre que la mémoire est forcément bornée. Par contre, dans le cas irra-tionnel, c’est possible : une étape de la construction de la fractale est faitechaque fois qu’il faut allonger le ruban [80].

4.3.5 Calcul analogique

Il s’agit de calculer avec des nombres réels. Les seules valeurs réellesdisponibles sont les distances entre les signaux (si l’on dispose d’une unité)ou les positions des signaux (si l’on dispose d’une origine) ou les rapportsentre les longueurs (l’orientation amenant le signe).

Avec deux signaux dont la distance est considérée comme l’unité, ilsuffit d’avoir un couple de signaux différents — base et val — ou un troi-sième seul — zéro — pour représenter n’importe quel nombre réel (dansun ordre pour positif, dans l’autre pour négatif et le troisième pour zéro).Diviser par deux revient à trouver le milieu. De la sorte, n’importe quelledivision par une constante peut être réalisée. Il faut juste faire attention à lagestion du zéro et du signe.

Si l’on a deux nombres, il est possible d’ajouter le second au premiercomme sur la Fig. 4.14. Le parallélogramme prouve l’égalité des distances.

Ajouter une valeur négative se gère de façon similaire. Le signe d’unevaleur est déduit de l’ordre des signaux base et val. De même, ajouter àune valeur à gauche et non à droite se fait de manière symétrique.

Si l’on veut ajouter à une valeur qui se trouve un peu plus loin, il suffitde compter les décalages avec une série de signaux que l’on envoie enbas du parallélogramme (par exemple bask . . . bas1, bas0) comme sur laFig. 4.14 pour sauter le premier val.

Partant d’une suite de valeurs (comme une suite de cellules pour leruban), il est possible de multiplier par des constantes et d’ajouter la valeur

Page 167: Le fichier pdf du livre (EJCIM 2015)

4.3. Machines à signaux 157

base

base

base

base

val

val

val

val

haut

coté

coté

bas1bas0

ajout

fin

15 −8

7

FIGURE 4.14 – Ajout du réel 15 au réel −8.

d’une cellule à un autre. Les opérations se font à distance bornée, dans unefenêtre sur le ruban.

À force d’augmenter, des valeurs pourraient se chevaucher : l’échellede toutes les valeurs ainsi que la paire servant de valeur unitaire est alorschangée (tout en gardant l’espacement d’un base au suivant). Cela est testéet réalisé dynamiquement.

Le déclenchement de différentes opérations peut être géré par unautomate fini (ou un programme séquentiel). L’état de l’automate est retenuen l’ajoutant en indice aux signaux réalisant ces opérations (le nombre deméta-signaux reste fini). De même, il est possible de toujours revenir aumême endroit pour démarrer l’opération suivante. Il est aussi possible dedécaler la position de référence (en élargissant la configuration au besoincomme pour la simulation des machines de Turing).

Tester le signe d’une valeur est simple, cela permet de faire un testpour faire un branchement. Pour achever la construction, il faut un état defin et la possibilité de mettre des valeurs qui vont servir de constantes.

En résumé, en partant d’un tableau de nombre réels (potentiellementinfini de chaque coté), il est possible de réaliser l’affectation d’une case enfonction d’une combinaison linéaire des cases autour, de brancher selonle signe et de se déplacer dans le tableau. Cela correspond au modèle deBlum, Shub et Smale (BSS [30, 31]) privé de la multiplication interne. Ils’agit de la version linéaire : lin-BSS [39, 149] avec un nombre non borné deregistres.

Les machines à signaux sont donc capables de simuler lin-BSS. Laréciproque est vraie. Une configuration d’une machine à signaux est repré-sentée par une suite de blocs représentant le méta-signal, la distance ausignal suivant et différents registres annexes. L’automate lin-BSS parcourttoute la configuration et calcule de proche en proche le temps pour que

Page 168: Le fichier pdf du livre (EJCIM 2015)

158 Chapitre 4. Construire et calculer dans un monde 2D

deux signaux voisins se rencontrent. Les vitesses des méta-signaux étantdes constantes du programme, il s’agit d’opérations linéaires.

Une fois toute la configuration parcourue, le temps avant la prochainecollision est connu : il s’agit du plus petit temps calculé. La configuration estparcourue de nouveau et les distances sont mises à jour. Quand la distanceest nulle, il y a collision de deux ou plus signaux. Ils sont remplacés suivantles règles de collision (écrites en dur dans le programme). Si le nombre designaux change, ils sont alors tous décalés de manière à faire de la place ouà faire disparaître le trou.

L’automate BSS est comme celui d’une machine de Turing : il opère surune fenêtre (et non une case) et peut faire bouger cette fenêtre (comme unetête). Décaler les blocs se fait donc comme décaler les cases d’une machinede Turing.

Pour aller plus loin. Ceci ne correspond qu’au fonctionnement normald’une machine à signaux. Prendre en compte les accumulations, parexemple en marquant leur lieu avec un signal donné, permet d’aller beau-coup plus loin.

Par exemple, il est possible d’extraire d’une distance une suite infiniede 0 et de 1 qui représente son écriture binaire. Ce flux infini peut alorsêtre utilisé pour faire une multiplication : à chaque étape, diviser par deuxet ajouter ou non. La multiplication (interne) devient possible et tout lemodèle BSS classique est simulé [73].

L’accumulation peut également être vue comme un processus d’ap-proximation convergent. C’est le paradigme des machines de Turing detype 2 : elles prennent en entrée un mot infini représentant des approxi-mations convergentes d’un réel et écrivent en sortie un autre tel mot (avecl’impossibilité de revenir sur le moindre caractère écrit) [201]. Il est effecti-vement possible de calculer sur des réels en ce sens [75, 77].

Un autre résultat surprenant concerne les accumulations isolées desmachines rationnelles. Avec une construction à deux échelles, il a été prouvéque les dates des telles accumulations étaient exactement les réels computa-bly enumerable (c.e.), c’est-à-dire ceux dont une machine de Turing fournitune suite d’approximations convergentes (mais sans hypothèse sur la qua-lité de l’approximation). Les positions sont exactement les différences detels réels (d.-c.e.) [78].

Page 169: Le fichier pdf du livre (EJCIM 2015)

4.4. Auto-assemblage 159

4.4 Auto-assemblage

Introduction

Le modèle d’auto-assemblage a été introduit par Adelman 7, Seemanet autres dans [1], puis il a été étudié de façon plus formelle, notammentpar Erik Winfree [203]. Au départ, le modèle a été conçu comme une repré-sentation formelle pour une proposition de modèle de calcul à base d’ADN.L’idée de ce modèle est d’utiliser les forces attractives sélectives entre brinsd’ADN pour construire des motifs intéressants à une échelle nanoscopique.Le modèle physique qui a été développé à cette occasion se trouve êtretrès proche d’un système connu d’informatique théorique : les pavages deWang [200].

À partir de ce rapprochement, une théorie riche a été construite autourde la question théorique suivante : comment faire croître intelligemmentun motif fini par des interactions locales et définitives. Cette section s’ouvrepar une présentation du modèle, suivie des principaux résultats générauxsur les formes qu’il est possible d’assembler, notamment en lien avec lecalcul « classique » ; elle se clot, à partir d’une vision physique du modèle,sur la notion d’efficacité propre à l’auto-assemblage.

Des ressources sont disponibles en ligne (et en anglais) sur http://

self-assembly.net/. On y trouve un wiki, ainsi que le simulateur ISU - TAS :http://self-assembly.net/wiki/index.php?title=ISU_TAS

4.4.1 Présentation du modèle

Le contenu de cette section se situe dans la grille carrée Z2. Il estpossible de définir des systèmes d’auto-assemblage sur d’autres grilles,mais nous ne nous intéresserons pas à ce cas dans la suite.

Une arête (orientée) de Z2 est un couple de positions adjacentes deZ2. La direction de l’arête (v1, v2) est le vecteur v2 − v1. Par convention, onnote n le vecteur (0, 1), e = (1, 0), s = −n et w = −e, ce qui nous donne lesdirections habituelles de la boussole. On note dir(e) la direction de l’arêtee.

Définition 4.4.1 (Jeu de tuiles de Wang). Un jeu de tuiles de Wang est définipar la donnée de :

— un ensemble C de couleurs,— un sous-ensemble de C4, les méta-tuiles.

7. le A de RSA

Page 170: Le fichier pdf du livre (EJCIM 2015)

160 Chapitre 4. Construire et calculer dans un monde 2D

L’ensemble C de couleurs est en général implicite, on identifie doncsouvent un jeu de tuiles avec un ensemble de quadruplets quand il n’y a pasd’ambiguïté sur l’ensemble C. On interprète chaque méta-tuile (n, e, s, w)comme un modèle de carré unité dont les côtés portent les couleurs indi-quées, en partant du haut et dans le sens horaire. Étant donné une méta-tuile t, on pose t = (n(t), e(t), s(t), w(t)) : les fonctions n, e, s, w permettentde récupérer la couleur de chaque côté d’une méta-tuile. La notation d(t),avec d une variable représentant une direction permet de désigner la cou-leur sur la face d d’une tuile.

Définition 4.4.2 (Tuile de Wang). Étant donné un jeu de tuiles de Wang W,une tuile t@(x, y) est donnée par :

— une méta-tuile t ∈W et— une position (x, y) ∈ Z2.

Une tuile est donc une instance d’une méta-tuile, quelque-part sur leplan Z2. Si on se donne un ensemble de tuiles dont les positions sont deuxà deux distinctes, on obtient un motif 8 défini sur une partie du plan. Cemotif est correct si, à chaque fois que deux tuiles sont adjacentes, leur côtécommun porte la même couleur. Formellement, les définitions suivantescapturent ces notions.

Définition 4.4.3 (Motif). Étant donné un jeu de tuiles de Wang W, un ensemblede tuiles M est un motif si ∀t1@(x1, y1), t2@(x2, y2) ∈ M, (x1, y1) 6= (x2, y2).On dit que M couvre (x, y)|t@(x, y) ∈ M

Le domaine dom(M) d’un motif M est l’ensemble des positions de sestuiles. On peut aussi voir M comme une fonction de dom(M) dans W.

Définition 4.4.4 (Motif correct). Étant donné un jeu de tuiles de Wang W, unmotif M est correct si :

∀t1@(x1, y1), t2@(x1 + 1, y1) ∈ M, e(t1) = w(t2)

∀t1@(x1, y1), t2@(x1, y1 + 1) ∈ M, n(t1) = s(t2).

Définition 4.4.5 (Pavage de Wang). Un pavage du plan par un jeu de tuilesde Wang W est un motif correct qui couvre tout le plan Z2.

Les pavages de Wang constituent un des modèles les plus simples depavages. En se plaçant sur la grille Z2, on élimine tous les problèmes liés àla forme des tuiles, et ne restent que les questions liées à la combinatoire deleurs couleurs. Malgré cette simplicité, Robinson [167] a montré commentutiliser ce modèle de pavages pour « cacher » du calcul.

8. On utilise souvent le terme patch en anglais.

Page 171: Le fichier pdf du livre (EJCIM 2015)

4.4. Auto-assemblage 161

a

a

b

b

c

a

b

a

a

a

c

d

a

c

a

b

c

c

c

c

b

b

b

b

b

b

b

b

b

b

b

b

b

b

b

b

b

b

b

b

b

b

b

b

b

b

b

b

b

b

b

b

b

b

b

b

a

a

b

b

c

a

b

a

c

a

b

a

a

c

a

b

a

c

a

b

c

c

c

c

c

c

c

c

c

c

c

c

c

c

c

c

c

c

c

c

FIGURE 4.15 – Un exemple de jeu de tuiles de Wang et un morceau d’un pavagepossible par ce jeu de tuiles.

Théorème 4.4.6 ([167], Indécidabilité du problème de pavages par tuilesde Wang). Le problème suivant est indécidable : étant donné un jeu de tuiles deWang, existe-t-il un pavage par ce jeu de tuiles ?

Autrement dit, il n’y a pas d’algorithme général qui, si on lui donnedes pièces de puzzle carrées 9, décide s’il est possible de recouvrir toutle plan ou si c’est impossible. Il n’existe encore moins d’algorithme quiindique comment recouvrir le plan avec un jeu de tuiles arbitraire pourlequel c’est possible.

Puisque ce problème est indécidable, on peut chercher, étant donnéun jeu de tuiles de Wang, à obtenir un algorithme qui nous indique com-ment recouvrir le plan —ou une partie donnée du plan— avec ses tuiles.Cette question est à la fois une question de mathématiques discrètes, etune question de physique théorique : comment des systèmes physiquesparviennent-ils à trouver des configurations respectant certaines règleslocales ? Dans cette perspective physique, les pavages de Wang sont uneforme de discrétisation aussi bien de l’espace que des données que traitentces règles locales.

Auto-assemblage comme algorithme de pavage local. Il paraît alors na-turel de chercher des algorithmes de pavages locaux, qui n’utilisent pasd’information à distance. Autrement dit, une règle qui, à partir d’un petitmorceau d’un pavage, indique comment l’étendre.

Définition 4.4.7 (Jeu de tuiles d’auto-assemblage). Un jeu de tuiles d’auto-assemblage S est composé de :

— un alphabet fini G

9. une infinité d’exemplaires d’un nombre fini de pièces différentes

Page 172: Le fichier pdf du livre (EJCIM 2015)

162 Chapitre 4. Construire et calculer dans un monde 2D

— une fonction de force, G →N

— un jeu de tuiles de Wang sur l’alphabet G.

Par la suite, les méta-tuiles de S sont celles du jeu de tuiles de Wangqui définit S .

À la différence d’un jeu de tuiles de Wang, dans un jeu de tuilesd’auto-assemblage, on n’interprète pas les couleurs comme des informa-tions combinatoires inertes, mais comme des colles, actives et capables decréer des liens.

Définition 4.4.8. Soient t1, t2 deux méta-tuiles, et d une direction. Le lien entret1 et t2 pour la direction d est :

— lien(t1, d, t2) = 0 si d(t1) 6= (−d)(t2)— lien(t1, d, t2) = f si d(t1) = d(t2) et force(d(t1)) = f .

Quand t2 est placée à côté de t1, les deux tuiles s’attirent si elles ont lamême couleur sur leur côté commun, avec une force définie par la fonctionforce de S . Si les couleurs diffèrent, la force d’attraction entre les deux tuilesest nulle.

Étant donné un motif M de domaine R ⊂ Z2 d’un jeu de tuiles deWang, on appelle coupe de M un ensemble C d’arêtes de la grille Z2 bordéesdes deux côtés par R, et qui séparent R en deux parties, R+ et R−. Pourchaque arête e ∈ C, on appelle e+ la position adjacente à e qui est dans R+,et e− celle qui est dans R−.

Si l’on tente de couper un motif M le long d’une telle coupe, la forceattractive entre les deux moitiés est la somme des liens le long de chaquearête de la coupe.

Définition 4.4.9. Soit S un jeu de tuiles d’auto-assemblage, et soit M un motif(au sens du jeu de tuile de Wang sous-jacent). Soit C une coupe de dom(M) ; lelien le long de C est défini par :

lien(C) = ∑e∈C

lien(M(e−), dir(e), M(e+))

Définition 4.4.10 (Stabilité). On dit qu’un motif M de S est stable à tempéra-ture τ si, pour toute coupe C de M, on a :

τ ≤ lien(C).

À la lumière de cette formule, la température τ s’interprète commeune agitation thermique qui a tendance à casser les motifs les plus fragilesen deux. Par exemple, si τ > 0, un motif qui n’est correct nulle part ne serapas stable : le lien sera nul pour chaque arête, et donc pour toute coupe. Untel motif aurait tendance à se désagréger.

Page 173: Le fichier pdf du livre (EJCIM 2015)

4.4. Auto-assemblage 163

AA

b

b

Ac

A

b

Ac

A

b

cA

b

AcA

b

A

cc

c

ccc

c

c

cc

c

ccc

c

cb

b

b

b

bb

b

b

bb

b

b

bb

b

bb

b

b

bbb

b

bbb

b

b

A

FIGURE 4.16 – Un exemple de lien le long d’une coupe d’un motif ; les collesreprésentées par une minuscule ont une force 1, et les majucscules une force 2 ; lelien le long de la coupe représentée est de 8

Exercice 4.4.1. À quelles températures les motifs de la Fig. 4.17 sont-ilsstables ?

Exercice 4.4.2. Donner un exemple de jeu de tuile d’auto-assemblage ayantun motif qui est stable à température 2 mais qui n’est pas correct au sensdes jeux de tuiles de Wang.

Nous avons défini à quelle condition les motifs pouvaient être stableset ne pas se désagréger, mais comment croissent-ils ? Un motif croît parajouts successifs de tuiles. Cela revient à considérer une soupe dans laquelleil y a beaucoup de tuiles, celles-ci s’agrègeant lentement en motifs. Chacunde ses motifs tend donc à rencontrer de nombreuses tuiles le long de safrontière, mais les motifs sont trop rares pour se rencontrer entre eux.

On obtient ainsi la définition suivante, qui permet de donner unedynamique à température τ à S .

Définition 4.4.11. S a une transition entre deux motifs M et M′ à températureτ si :

— M et M′ sont stables à température τ,— dom(M′) = dom(M) ∪ (x, y), (x, y) /∈ dom(M) et M et M′

coïncident sur dom(M).

En d’autres termes, une transition à partir d’un motif M consiste àajouter une nouvelle tuile à M à une position où la somme des liens entrecette nouvelle tuile et M sera supérieure à τ. La figure 4.18 donne desexemples de transitions possibles à température 2 à partir d’un motif (en

Page 174: Le fichier pdf du livre (EJCIM 2015)

164 Chapitre 4. Construire et calculer dans un monde 2D

a

bc

d

a

bc

ba

bc

ba

b

c

b

aa

c

d

ab

c

a

a

b

aa

a

aa

d

Ea

c

dE

b

c

a

a

b

EE

a

EE

d

aa

c

da

b

c

a

a

b

aE

a

Ea

d

FIGURE 4.17 – Des exemples de motifs auto-assemblés ; les colles de force 2 sontreprésentés par des majuscules, les colles de force 1 par des minuscules. À quelletempérature chaque motif est-il stable ?

E d

c

A

E

A

d

c

d

b

c

A

E

c

d

A

E

c

d

A

E

c

d

A

E

c

d

A

E

c

d

FIGURE 4.18 – Un exemple de motif avec des transitions possibles à température2.

Page 175: Le fichier pdf du livre (EJCIM 2015)

4.4. Auto-assemblage 165

AA

Ab

A

bA A

bA

bA

bbb

b

FIGURE 4.19 – Un système d’auto-assemblage pour les rectangles à température 2.

blanc). Ces transitions correspondant aux ajouts d’une tuile (en gris) àdiverses positions.

Il est important de noter qu’une transition peut produire un motif quin’est pas correct du point de vue du jeu de tuiles de Wang sous-jacent à Ssi la force des liens « corrects » pour la tuile qu’on ajoute compense le liende valeur 0 le long de l’arête qui rend le motif incorrect.

Spécifier une « entrée » pour un jeu de tuiles d’auto-assemblageconsiste à donner une température τ et un motif de départ, la graine. Ladonnée d’un jeu de tuiles, d’une température et d’une graine est appelée unsystème d’auto-assemblage. Une production d’un système d’auto-assemblageest un motif que l’on peut atteindre par une suite de transitions à tempéra-ture τ à partir de la graine. Une production finale est une production à partirde laquelle plus aucune transition n’est possible.

Un système d’auto-assemblage produit l’ensemble de ses productionsfinales. Par extension, il produit aussi l’ensemble de formes suivant :

dom(p)|p production finale de S.Le contexte indique si l’on considère des ensembles de formes ou de motifs.

On note S l’ensemble des productions finales de S –et parfois, parabus, l’ensemble de leurs formes.

4.4.2 Assemblage de formes simples

Le système d’auto-assemblage de la Fig. 4.19 produit l’ensemble desrectangles de toutes dimensions supérieures à 2× 2 ; la colle sans nom estde force 0, et la source est le motif réduit à la tuile en bas à gauche. Demême, le système de la Fig. 4.21 produit l’ensemble des carrés de toutestailles supérieures à 2.

Dans ces deux exemples, dont la progression est indiquée respective-ment sur les figures 4.20 et 4.22 on voit que le contrôle de l’assemblage se

Page 176: Le fichier pdf du livre (EJCIM 2015)

166 Chapitre 4. Construire et calculer dans un monde 2D

AA

Ab

A

Ab

A

bA

bA A

bbb

bAA

Ab

A

Ab

A

bA A

AA

Ab

AAA

AA

Ab

A

Ab

A

bA

bA A

bA

bbb

b

bbb

b

bbb

b

bbb

b

bbb

b

bbb

b

AA

Ab

A

Ab

A

bA

bA A

bA

bbb

b

bbb

b

bbb

b

AA

Ab

A

Ab

A

bA

bA A

bA

bbb

b

bbb

b

AA

Ab

A

Ab

A

bA

bA A

bbb

b

bbb

b

FIGURE 4.20 – Une progression possible de l’assemblage d’un rectangle.

bA

bb

bbb

b

AAb

b

bA

cc

ccc

c

FIGURE 4.21 – Un système d’auto-assemblage pour les carrés à température 2.

AAb

b

AAb

b

bA

cc

AAb

b

bA

bb

bA

cc

AAb

b

AAb

bb

Abb

bA

cc

AAb

b

AAb

bb

Abb

bA

cc

bA

cc

ccc

c

AAb

b

AAb

b

AAb

b

bA

bb

bA

bb

bA

cc

bA

cc

ccc

c

AAb

b

AAb

b

AAb

b

bbb

b

bA

bb

bA

bb

bA

bb

bbb

b

bA

cc

bA

cc

bA

cc

ccc

c

ccc

c

AAb

b

AAb

b

AAb

b

bbb

b

bA

bb

bA

bb

bA

bb

bbb

bb

bbb

bbb

b

bA

cc

bA

cc

bA

cc

ccc

c

ccc

c

ccc

c

FIGURE 4.22 – Progression de l’assemblage d’un carré.

Page 177: Le fichier pdf du livre (EJCIM 2015)

4.4. Auto-assemblage 167

0

0

0c0c

1

1

0c0c

1

0

1c1c

0

1'

1c0c

1'

>0c

1

0

0

>>

1

1

>>0d

1d

>

1d

1c

0d

0g

0d

0c1g

1

0c

1g

done

1c0g

1g

1c

0g

S

0

SS

0

SS

1d

S

FIGURE 4.23 – Un compteur à température 2 ; la couleur de chaque tuile indiquele bit qu’elle représente.

fait par le fait que la température est 2 et que la plupart des colles sont deforce 1 : la première tuile dans une rangée ou dans une colonne donnée estnécessairement ajoutée avec une colle de force 2. C’est ce qui fait que, dansle cas des rectangles, ce sont les côtés bas et gauche qui avancent en premier,et dans le cas des carrés, la diagonale. On remplit ensuite le rectangle qui lesenglobe avec deux colles de force 1 pour chaque ajout de tuile. Cette façonde procéder, avec des attachements coopératifs, est centrale à température 2,et elle permet d’implémenter toutes sortes de comportements complexes.

Ainsi, dans [185], Winfree et al. donnent une méthode pour assem-bler un carré ou un rectangle de dimension donnée n. Contrairement auxexemples précédents, il s’agit d’un système déterministe, c’est à dire ayantune unique production finale. Pour cela, ils utilisent un compteur, détailléci-dessous.

Le système de la Fig. 4.23 assemble une unique production, qui estun rectangle n× 2n, dont la rangée i encode l’entier i en binaire. Les colles.g et .d marquent les bords du compteur. Les colles sont de force 1, saufcelles qui sont marquées par une double barre. La source est une barre delongueur n, telle que représentée en bas de la figure. Sur la Fig. 4.24, onvoit à la fin la nature asynchrone du calcul : les bits de poids faible peuventprendre de l’avance sur les bits de poids fort.

Chaque rangée initie la construction de la rangée suivante à partir deson bit 0 le plus à droite (de poids le plus faible). À partir de cette position,la rangée se construit vers la droite en passant tous les bits à 0, et vers lagauche, en passant tous les bits à 1 jusqu’à trouver un 0. La position du

Page 178: Le fichier pdf du livre (EJCIM 2015)

168 Chapitre 4. Construire et calculer dans un monde 2D

0g

S

0

SS

0

SS

1d

S

0g

S

0

SS

0

SS

1d

S

1d

1c

0d

0g

S

0

SS

0

SS

1d

S

1d

1c

0d

0

1'

1c0c0g

0d

0c

0

0

0c0c

0g

S

0

SS

0

SS

1d

S

1d

1c

0d

0

1'

1c0c0g

0d

0c

0

0

0c0c

1'

>0c

1

0d

1d

>0g

0d

0c

0

0

0c0c

0g

S

0

SS

0

SS

1d

S

1d

1c

0d

0

1'

1c0c0g

0d

0c

0

0

0c0c

1'

>0c

1

0d

1d

>0g

0d

0c

0

0

0c0c

1d

1c

0d

1

0

1c1c

0

1'

1c0c

0g

S

0

SS

0

SS

1d

S

1d

1c

0d

0

1'

1c0c0g

0d

0c

0

0

0c0c

1'

>0c

1

0d

1d

>0g

0d

0c

0

0

0c0c

1d

1c

0d

1

0

1c1c

0

1'

1c0c

1'

>0c

1

0

0

>>0d

1d

>

0g

S

0

SS

0

SS

1d

S

1d

1c

0d

0

1'

1c0c0g

0d

0c

0

0

0c0c

1'

>0c

1

0d

1d

>0g

0d

0c

0

0

0c0c

1d

1c

0d

1

0

1c1c

0

1'

1c0c

1'

>0c

1

0

0

>>0d

1d

>

1d

1c

0d

FIGURE 4.24 – Assemblage du compteur à température 2.

nouveau 0 se détermine également ainsi (alternativement tout à droite, ouvers la gauche). Quand une retenue arrive au-delà de la colonne n, c’estqu’on a atteint la ligne 2n−1, il est temps d’arrêter la construction : il n’y apas de colle de force 2 vers le haut sur la tuile correspondante.

Un tel compteur peut s’utiliser pour assembler un rectangle ou uncarré de dimensions données.

4.4.3 Calcul dans l’auto-assemblage

Il est possible de généraliser la construction du compteur pour simulerune machine de Turing arbitraire. On obtient le résultat suivant [185] :

Théorème 4.4.12. Le problème de décider si un système d’auto-assemblage S aune production finale (de taille finie) est indécidable.

Démonstration. Pour montrer ce théorème, nous allons simuler dans unsystème d’auto-assemblage le fonctionnement d’une machine de Turingavec une entrée vide. Soit M = (Q, q0, q f , δ) une machine de Turing surl’alphabet Σ = 0, 1 ; le ruban est bi-infini et initialement rempli de sym-boles 0. Soit S le jeu de tuile auto-assemblant de la Fig. 4.25. Les tuilesgrises correspondent aux transitions de la machine. Les symboles q, q′, r, sreprésentent des états, x et y des symboles. La tuile L est présente pourchaque transition où la tête se déplace à gauche, C pour celles où la têtereste sur place, et R si la tête va à droite. La source est formée des troistuiles en bas de la figure ; qi est l’état initial.

Pour chaque transition de la machine de Turing définie par « dansl’état q, sur l’entrée i, écrire o, passer à l’état q′ et déplacer la tête de lecture

Page 179: Le fichier pdf du livre (EJCIM 2015)

4.4. Auto-assemblage 169

0

0

<<

1

1

<<

q,x

><

q',y

0

0

>>

1

1

>>

q,x

><q'

y

q,x

q'><

y

0

<r<

r,0

0

>r>

r,0

1

<s<

s,1

1

>s>

s,1

g

g

<

g

q,0

<q<g

g

<gd

>d

d

d

>

d

q,0

>dq>

qf

fin

L C R

»«

qi,0g

«

d

»

FIGURE 4.25 – Le jeu de tuile pour simuler une machine de Turing.

g

g

<

d

»»«

qi,0g

«

qi,0

><q

1

g

q,1

<q<gg

<g

q,1

r><

0

1

>r>

r,1

q,x

q'><

y

0

0

<<

d

d

>

FIGURE 4.26 – Un exemple de calcul par le jeu de tuiles simulant une machine deTuring.

dans la direction d », on introduit les tuiles correspondantes. On obtientalors comme production un diagramme espace-temps de la machine deTuring, le temps allant vers le haut.

La simulation est représentée sur la Fig. 4.26. Elle continue tant quel’état final q f n’apparaît pas. Ainsi, le seul moyen d’obtenir une productionfinale est si la machine passe par l’état q f . Ici encore, le calcul est asyn-chrone : la tête (en gris) doit attendre que le symbole «fin de ruban» (d) luiparvienne avant de poursuivre le calcul.

Il est également possible d’utiliser une machine de Turing pour dirigerle processus d’auto-assemblage. Comme on l’a vu ci-dessus, la simulation

Page 180: Le fichier pdf du livre (EJCIM 2015)

170 Chapitre 4. Construire et calculer dans un monde 2D

de la machine de Turing consiste à assembler un diagramme espace-tempsde son calcul, c’est-à-dire un motif où chaque ligne représente une étapedu calcul de la machine. A priori, si l’on assembler une forme arbitraire, onn’a pas la place pour mettre ce calcul dans la forme —il faut un «rectangleplein» dans lequel dessiner. Pour créer cette place, il faut assembler non pasune forme, mais un de ses homothétiques. Ainsi, dans chacun des carréscorrespondant à une tuile de la forme originelle, il y a la place de simulerla machine de Turing idoine.

On peut ainsi transférer vers l’auto-assemblage deux mesures de com-plexité classique, la complexité en temps et la complexité de Kolmogorov.Intuitivement, la complexité en temps correspond à un facteur d’homothé-tie.

La complexité de Kolmogorov capture la difficulté à décrire un objet (iciune forme du plan). K(x) est la taille (en nombre d’états) de la plus petitemachine de Turing sur l’alphabet 0, 1 qui donne x sur l’entrée vide. Enprenant une machine minimale, on obtient le résultat suivant.

Théorème 4.4.13. [185] Il existe 4 constantes a0, a1, b0, b1 telles que pour touteforme 4-connexe finie du plan discret F ⊂ Z2, si Ka(F) est la taille (en nombre detuiles) du plus petit système d’auto-assemblage qui assemble un homothétique deF, alors

a0K(F) + b0 ≤ Ka(F) log Ka(F) ≤ a1K(F) + b1

.

Démonstration. Pour assembler un homothétique de F, nous allons simu-ler une machine de Turing minimale qui décrit F dans chaque rectangles(F) × s(F) représentant un point de F. Il y a bien sûr plusieurs façonsde décrire une forme par une machine de Turing, nous allons en choisirune qui est adaptée à cette situation. Puisque F est 4-connexe, on peutse donner un arbre couvrant AF de F dont les arêtes sont des arêtes de lagrille Z2. La machine MF prend en entrée deux entiers (x, y) représentantune position sur Z2, et renvoie le sous-ensemble de n, s, e, w indiquantlesquels des voisins de (x, y) sont ses descendants dans AF (par convention,cet ensemble sera vide si (x, y) /∈ F). Comme F est une forme finie, cettefonction est calculable. Soit t(F) le temps de calcul maximal de MF sur lesentrées appartenant effectivement à F.

Le système d’auto-assemblage recherché S est un système qui, danschaque carré 2t(F)× 2t(F), va simuler MF sur l’entrée (x, y), puis va lancerla construction des carrés successeurs suivant la sortie de MF(x, y).

La borne inférieure vient du fait qu’un système à n tuiles peut sedécrire avec n log n bits.

Page 181: Le fichier pdf du livre (EJCIM 2015)

4.4. Auto-assemblage 171

Les questions de possibilité ou non d’assembler un motif deviennentplus complexes pour les ensembles de formes (ou de motifs) [160], ou desmotifs infinis, par exemple fractals [161].

L’importance de la température

La simulation de la machine de Turing utilise fortement le fait d’êtreà température 2 ; en effet, pour que chaque tuile attende d’avoir à la foisla valeur de la case correspondante au temps précédent et la présence –ounon— de la tête, il faut mettre en place une synchronisation par coopération.Chacune de ces informations est portée par une colle de force 1, et il fautces deux colles pour ajouter la nouvelle tuile.

Le cas de la température 1. Est-il possible de simuler une machine deTuring à température 1 ? Dans Z3, une telle simulation est possible. 10 Enrevanche, dans Z2, la question est ouverte.

Conjecture 4.4.14. Le problème suivant est décidable : étant donné un systèmed’auto-assemblage à température 1, a-t-il une production finale de taille finie ?

Les températures au-delà de 2. Les températures au-delà de 2 ne dif-fèrent pas sensiblement de la température 2. En effet, il est possible [66]de simuler tout assemblage par un système à température quelconquepar un système à température 2. Nous ne donnerons pas ici la définitionde simulation, mais le principe est de simuler l’ajout d’une tuile dans lesystème simulé par l’assemblage d’un carré dans le simulateur. Il existeégalement [66] un jeu de tuile universel U : si on donne à U comme grainela description d’un système d’auto-assemblage S , U simule S .

4.4.4 Modèle plus physique : kTAM

Le modèle kTAM

Le modèle de base que nous avons défini ci-dessus permet de répondreà la question « qu’est-il possible d’assembler avec une règle locale ? ». Enrevanche, il ne permet pas de donner une mesure d’efficacité pour cetassemblage. En effet, le nombre d’ajouts de tuiles sera toujours égal à lasurface de la forme à assembler.

Pour répondre à cette préoccupation, il existe un modèle plus prochede la physique, le modèle d’auto-assemblage cinétique, ou kTAM. Dans ce

10. La définition d’auto-assemblage donnée s’étend de façon naturelle à Z3.

Page 182: Le fichier pdf du livre (EJCIM 2015)

172 Chapitre 4. Construire et calculer dans un monde 2D

modèle, un motif est plongé dans une solution contenant toutes les tuilesdu système d’auto-assemblage à des concentrations données.

Définition 4.4.15. Un système d’assemblage cinétique est un système d’auto-assemblage avec la donnée, pour chaque méta-tuile, d’un réel positif, sa concentra-tion.

On considèrera des systèmes normés, c’est-à-dire des systèmes dans lesquelsla somme des concentrations est 1.

La dynamique —c’est à dire les transitions— d’un système cinétiquesont décrites par un processus de Markov en temps continu. Les états de ceprotocole sont les productions du système d’auto-assemblage sous-jacent,et ses transitions sont aussi celles du système d’auto-assemblage. Le taux(c’est à dire la vitesse) de la transition p→ p′ est donné par la concentrationde la tuile ajoutée pour passer de p à p′.

Exemple. Considérons un système cinétique S . Supposons qu’à partird’une production de droite, il y ait 3 transitions possibles 1, 2 et 3, corres-pondant à trois ajouts de tuiles possibles, 1 et 2 étant à la même position.Pour chacun de ces ajouts de tuiles, on tire, suivant une loi de Poisson letemps avant que cet ajout ne se fasse. On a donc trois réels aléatoires, t1 letemps nécessaire pour faire la transition 1, t2 pour faire la transition 2 et t3pour faire la transition 3. Ils sont donnés par :

P(t1 > x) = e−k1x

P(t2 > x) = e−k2x

P(t3 > x) = e−k1x

Ainsi, si t1 a la plus petite valeur, alors on réalisera la transition 1au bout de ce temps t1. De même, si t2 est minimal, c’est la transition2 qui sera choisie, et la transition 3 pour t3. Notons que les transitions1 et 2 sont mutuellement exclusives, puisqu’elles concernent l’ajout dedeux tuiles différentes au même endroit, tandis que 3 est indépendantede celles-ci et peut se faire en parallèle. Prenons le cas où on réalise latransition 1 ; on arrive dans un état où seule la transition 3 est possible.Celle-ci sera alors réalisée au bout d’un temps t′ avec P(t′ > x) = e−k1(x−t1)

(pour x > t1). Dans le cas où la transition 3 est déclenchée en première,on a : P(t3 > x) = e−k1x, ce qui nous donne pour toute valeur de t1 :P(t3 > x|t3 > t1) = e−k1(x−t1) (pour x > t1). On retrouve bien le parallélismeentre ces deux transitions : t3 mettra le même temps à se déclencher que t1ait lieu entre temps ou non.

Page 183: Le fichier pdf du livre (EJCIM 2015)

4.4. Auto-assemblage 173

B

CA

A

A

A

C

B

B

D

DB

D

FE

C

E

F

F

E

F

D

E

C CAA

C

B DB

FE

C

E F

E

D

E

C

FIGURE 4.27 – Deux systèmes cinétiques à température 1 pour assembler un carré3× 3.

Temps d’assemblage

Dans un système cinétique, on peut parler du temps d’assemblage d’uneproduction : c’est le temps moyen pour passer de la source à cette production,sachant que le système va donner cette production.

Exercice 4.4.3. Pour chacun des deux systèmes de la Fig. 4.27 (à tempé-rature 1), donner le temps d’assemblage pour l’unique production quirecouvre un carré 3× 3. Toutes les concentrations sont égales à 1/9. Danschacun des cas, la source est la tuile en bas à gauche.

Temps parallèle et temps Markov. Calculer le temps d’assemblage desproductions à l’aide de la chaîne de Markov est un peu fastidieux. On peutdonner une autre définition du temps d’assemblage qui tienne compte duparallélisme. La première idée est la suivante : considérer que les ajoutsde tuiles indépendants se font en parallèle revient à considérer qu’ils sefont tous en même temps. On pourrait donc prendre une dynamique ouchaque transition représente non pas l’ajout d’une tuile possible, maisl’ajout d’une tuile à chaque endroit possible. Malheureusement, pour certainssystèmes, cette dynamique, la dynamique parallèle ne donne pas les mêmesproductions que la dynamique asynchrone considérée jusque-là.

Exercice 4.4.4. Montrer que toute production d’un système S suivant ladynamique parallèle est aussi une production suivant la dynamique asyn-chrone.

Donner un exemple de système d’auto-assemblage avec une produc-tion qui n’est pas possible suivant la dynamique parallèle.

Page 184: Le fichier pdf du livre (EJCIM 2015)

174 Chapitre 4. Construire et calculer dans un monde 2D

Donner un exemple où la production en question est finale.

En observant les productions de la dynamique parallèle, on constateque dans chaque production, toute tuile ajoutée au temps t est adjacente àau moins une tuile ajoutée au temps t− 1. Dans la dynamique asynchroneen revanche, une tuile peut être ajoutée longtemps après toutes ses voisines.Dans certains cas, il est possible de reconstituer un «historique parallèleplausible», l’ordre d’assemblage qui nous permet notamment de calculer letemps d’assemblage d’une production.

Définition 4.4.16. Soit S un système d’auto-assemblage, P une production de S ,et <P une relation d’ordre partiel sur les positions de dom(P). <P est un ordred’assemblage pour P si, pour toute suite de transitions (ti)i≤k de S arrivantà P, on a que pour tout i, si ti consiste à ajouter une tuile à la position z à uneproduction p, alors ∀d(z)in dom(p), 6 z >P d(z).

Un ordre d’assemblage est donc un ordre partiel compatible avecles ajouts de tuiles : chaque tuile est supérieure pour cet ordre aux tuilesadjacentes qui la précèdent. Un tel ordre, quand il existe, permet de donnerune estimation du temps d’assemblage.

Théorème 4.4.17. Soit S un système cinétique d’auto-assemblage où toutes lesconcentrations sont égales à 1, et dont la source est réduite à une seule tuile. Soit Pune production ayant un ordre d’assemblage <P. Soit p(<P) la profondeur de<P (la taille de la plus longue suite croissnte de P), et t(P) le temps d’assemblagede P. Alors t(P) = Ω(p(<P).

Programmation par les concentrations

L’utilisation des concentrations permet de diriger l’assemblage. Parexemple, les productions finales du jeu de tuiles de la Fig. 4.21 sont lescarrés de toutes tailles supérieures à 2, mais en jouant sur la concentrationde la tuile qui arrête la croissance de la diagonale, on peut contrôler la taillemoyenne du carré obtenu.

Le modèle cinétique permet également de « tricher » avec le théorème4.4.13. En effet, il est possible de cacher de l’information dans les concentra-tions. Celles-ci sont des réels, et peuvent donc chacune contenir autant debits que souhaité d’information. Il existe un système d’auto-assemblage quiéchantillone ces concentrations pour récupérer l’information, et assembleainsi une forme arbitraire.

Théorème 4.4.18. [49] Il existe un unique système d’auto-assemblage Su, etune fonction κ : P(Z2) → RSu tels que, pour tout ε > 0, pour toute forme F

Page 185: Le fichier pdf du livre (EJCIM 2015)

4.5. Conclusion 175

4-connexe de Z2, le système cinétique Su avec les concentrations κ(P) assembleune production finale dont la forme est un homothèthique de F avec une probabilitép > 1− ε.

Assemblage avec erreurs

Ces systèmes plus physiques permettent aussi de représenter le risqued’erreur au cours de l’assemblage. Dans une implémentation physique —ouchimique— de l’auto-assemblage, il est possible que des transitions «illé-gales» aient lieu. Ces transitions peuvent amener à la formation de motifsstables qui ne sont pas des productions. Des systèmes d’auto-assemblagesavec un mécanisme de correction d’erreur [204] permettant de s’assurerque les productions obtenues seront celles du modèle classique avec forteprobabilité.

4.4.5 Autres développements

Un nombre important de variantes de l’auto-assemblage ont été intro-duites, à la fois pour représenter plus finement la plausibilité physique del’assemblage et pour introduire d’autres moyens de contrôler le processusd’auto-assemblage. On a ainsi notamment des modèles où des motifs déjàassemblés peuvent interagir entre eux [64], des modèles où la températurepeut changer au cours de l’assemblage [128].

On trouve aussi une étude plus fine de la dynamique de l’assemblage,avec une notion de simulation et d’universalité intrinsèque [66] et unrésultat de non-universalité de la température 1 [152] ; on a là le débutd’une théorie de la compléxité propre à l’auto-assemblage.

4.5 Conclusion

Les modèles présentés sont ancrés dans l’espace et montrent la ri-chesse du domaine. Les possibilités de calcul sont immenses. Ces modèlesapportent un autre type d’algorithmique où lieu, distance, agencement. . .sont autant de contraintes et de possibilités.

Sans surprise, il est possible de calculer au sens de Turing. Dès que l’onpeut profiter de la continuité du temps et de l’espace, calculs analogique ethyper-calcul arrivent également.

Cela reste vrai tant que le contexte est idéal : ni erreur ni approximation,pas de limite au découpage de l’espace ni à la densité d’information.

Le grand absent des modèles où la spatialisation est le paradigmeest l’automate cellulaire. Comme il a été le sujet d’un cours de l’école

Page 186: Le fichier pdf du livre (EJCIM 2015)

176 Chapitre 4. Construire et calculer dans un monde 2D

précédente [163], il n’est pas question de l’aborder. Des liens avec les mo-dèles présentés existent néanmoins, par exemple la notion de cône espace-temps et de causalité.

Le signal est une notion clé pour les automates cellulaires. Il s’agit làd’un motif qui se répète périodiquement et définit ainsi la vitesse commepour les machines à signaux et les automates de Mondrian.

Il existe d’autres pendants continus des automates cellulaires [111, 190,par exemple] et d’autres modèles qui auraient pu être présentés, mais il nes’agit pas ici de faire un catalogue.

Dans l’auto-assemblage, géométrie et synchronisation sont indisso-ciables. Le signal y est — informellement ici, même si des définitions plusprécises existent — un vecteur de transmission d’information, mais doitégalement construire son propre milieu de propagation.

Page 187: Le fichier pdf du livre (EJCIM 2015)

Chapitre 5

Contrôle des modèlesprobabilistes partiellementobservables

Nathalie BertrandSerge Haddad

De nombreux domaines d’application nécessitent l’analyse de modèlesprobabilistes partiellement observables. Considérons par exemple le diag-nostic de dysfonctionnements dans les réseaux de télécommunications. Lesystème chargé de la surveillance d’un tel réseau n’a accès qu’à une connais-sance partielle de l’état de chacun des composants, et les occurrences depannes sont naturellement modélisées par une distribution de probabilitéobtenue par des observations statistiques. De façon analogue, la gestiondu trafic ferroviaire repose sur des capteurs de position des trains, et lesinformations qu’ils remontent doivent être interprétées pour contrôler aumieux la vitesse et l’espacement des trains. La modélisation de telles appli-cations nécessite un cadre qui combine trois aspects importants : contrôle,probabilités, et observation partielle.

L’objectif de ce chapitre est de passer en revue les problèmes de contrôlepour plusieurs modèles formels qui combinent probabilités et observationpartielle.

Dans un premier temps, on s’intéressera aux automates probabilistes(PA), où le contrôleur, dépourvu d’observations, doit interagir avec un envi-ronnement afin d’atteindre un objectif avec une probabilité maximale. Nousétudierons d’abord les automates probabilistes du point de vue de la théoriedes langages en établissant comment leur expressivité se compare à celle de

Page 188: Le fichier pdf du livre (EJCIM 2015)

178 Chapitre 5. Contrôle, probabilités et observation partielle

familles classiques de langages. On présentera également leurs propriétésde clôture. Puis, on détaillera les problèmes de décision relatifs au contrôledes automates probabilistes. En particulier, on montrera que l’équivalenceest décidable pour les automates probabilistes, mais que l’existence d’uncontrôleur garantissant une probabilité supérieure à un seuil fixé est unproblème indécidable. D’autres résultats plus récents d’indécidabilité serontaussi présentés.

Nous introduirons ensuite les processus de décision markoviens partiel-lement observables (POMDP). Ce modèle généralise celui des PA puisquele contrôleur a accès au cours de l’exécution du système à une informationpartielle sur l’état courant. Les POMDP étendent également les processusde décision markoviens MDP pour lesquels l’observation est parfaite. Ondéveloppera un algorithme de synthèse d’une politique optimale de contrôle àhorizon fini, c’est-à-dire lorsque le nombre d’étapes est fini et fixé à l’avance.Puis, on étudiera des problèmes d’optimisation à horizon infini, en détaillantpour des propriétés qualitatives (c.-à-d. où on requiert une probabibilitépositive ou égale à 1 d’atteindre un objectif), les résultats de décidabilitéet de complexité. D’un point de vue applicatif, on montrera comment lesPOMDP permettent de spécifier et d’analyser le problème du diagnosticactif de panne, correspondant à la recherche d’un contrôleur garantissant ladiagnosticabilité du système.

Enfin, nous évoquerons le cas plus général des jeux stochastiques àsignaux. Ce modèle classique en théorie des jeux étend les modèles précédentsen exprimant l’interaction de deux joueurs partiellement informés dans unenvironnement probabiliste. Après avoir établi pour quels objectifs de gainces jeux sont déterminés (c.-à-d. que l’un des deux joueurs a une stratégiegagnante), nous présenterons les principaux résultats de décidabilité etd’indécidabilité pour les jeux stochastiques à signaux.

5.1 Automates probabilistes

5.1.1 Présentation

Les automates probabilistes ont été introduits pour spécifier de nou-velles familles de langages formels [165]. Ils se différencient des automatesnon déterministes de la façon suivante : étant donné un caractère lu, l’étatsuivant est choisi de manière probabiliste. Ainsi après avoir lu un mot dansl’automate, chaque état a une probabilité d’être l’état atteint. En cumulantla probabilité des états finals, on obtient une valeur qu’on peut compareravec un seuil pour déterminer si le mot appartient au langage spécifié parl’automate.

Page 189: Le fichier pdf du livre (EJCIM 2015)

5.1. Automates probabilistes 179

Un autre point de vue sur ces automates est lié à des problèmes deplanification, et nous allons l’illustrer maintenant. Supposez que vous pla-nifiez des vacances à l’étranger. Vous devez choisir avec quel train ou avionvoyager, quelle maison ou chambre d’hôtel louer, quelles excursions en-treprendre ou expositions visiter, etc. Chacune de ces actions peut êtremodélisée par un caractère d’un alphabet particulier et l’effet de ces ac-tions étant incertain, le changement d’état déclenché par une action estnaturellement spécifié par une distribution. Votre objectif est de maximiserla probabilité de réussir vos vacances. Par exemple, les états pourraientêtre : départ, aéroport, hôtel, succès, échec. Dans l’état départ vous avezle choix entre deux compagnies d’avion lowcost ou highcost. La com-pagnie lowcost vous conduit à l’état aéroport (respectivement échec encas d’annulation de vol) avec probabilité 0.9 (respectivement 0.1). Uneautre distribution est associée avec highcost. La réservation de l’hôtelpeut être effectuée par internet ou téléphone. Une réservation internet

vous conduit de l’état aéroport à l’état hôtel (respectivement échec encas d’annulation de réservation) avec probabilité 0.7 (respectivement 0.3).Pour le choix des excursions, vous avez affaire à deux agences toutvoir

et nerienrater. Le mot lowcost.internet.toutvoir est un plan possible etsa probabilité de réussite est la probabilité de terminer dans l’état succès.On peut alors chercher un mot qui maximise cette probabilité ou, plusmodestement, un mot dont la probabilité est supérieure à un seuil.

Afin de définir les automates probabilistes (PA), nous adoptons laterminologie de la théorie des langages formels. Rappelons qu’étant donnéun ensemble fini ou dénombrable E, une distribution sur E est une fonctionπ de E dans R≥0 telle que ∑e∈E π(e) = 1, et on notera Dist(E) l’ensembledes distributions sur E.

Définition 5.1.1 (PA). Un automate probabilisteA = (Q, A, Paa∈A, π0, F)est défini par :

— Q, l’ensemble fini des états ;— A, l’alphabet fini ;— pour tout a ∈ A, Pa, une matrice stochastique indicée par Q, c.-à-d. telle

que ∀q ∈ Q ∑q′∈Q Pa[q, q′] = 1 et ∀q, q′ ∈ Q Pa[q, q′] ≥ 0 ;— π0, la distribution initiale des états et F ⊆ Q l’ensemble des états finals.

Lorsque la distribution initiale est une distribution de Dirac concentréeen q0, on dit que q0 est l’état initial.

Exemple 5.1.2 (Un exemple de PA). La figure 5.1 décrit un PA avec un étatinitial q0 et un état final q1. À des fins de concision, un arc d’un état à un autre estétiqueté par un vecteur de probabilités de transition indicé par les caractères. Pour

Page 190: Le fichier pdf du livre (EJCIM 2015)

180 Chapitre 5. Contrôle, probabilités et observation partielle

rendre ces indices explicites, le vecteur est représenté par une somme formelle. Parexemple, la transition qui boucle autour de q0 est étiquetée par 1a + 1

2 b signifiantque lorsque a (respectivement b) est lue dans q0, la probabilité que l’état suivantsoit q0, Pa[q0, q0] (respectivement Pb[q0, q0]), est égale à 1 (respectivement 1

2 ).

q0 q1

112 b

12 a

1a + 12 b 1

2 a + 1b

FIGURE 5.1 – Un exemple de PA.

La définition suivante formalise la probabilité d’acceptation d’un mot,c’est-à-dire la probabilité d’atteindre un état final après avoir lu ce motlorsque l’état initial est distribué selon π0.

Définition 5.1.3. Soit A un PA et w = a1 . . . an ∈ A∗ un mot, la probabilitéd’acceptation de w par A est définie par :

PrA(w)def= ∑

q∈Qπ0[q] ∑

q′∈F

(n

∏i=1

Pai

)[q, q′].

Notation. Etant donné un mot w = a1 . . . an, la matrice stochatique Pw est

définie par Pwdef= ∏n

i=1 Pai . En particulier Pε = Id. Ainsi, PrA(w) = π0Pw1TF

où 1F est le vecteur indicateur du sous-ensemble F (et l’exposant T dénotela transposition).

Calculons PrA(abba) dans l’exemple 5.1.2. Puisqu’il n’y a que deuxétats, il nous suffit de calculer successivement la probabilité d’acceptationdes préfixes de abba. Pour le mot vide ε, PrA(ε) = 0. Puis :

— PrA(a) = 12 PrA(ε) = 0,

— PrA(ab) = PrA(a) + 12 (1− PrA(a)) = 1

2— PrA(abb) = PrA(ab) + 1

2 (1− PrA(ab)) = 34

— PrA(abba) = 12 PrA(abb) = 3

8Plus généralement, on obtient les équations de récurrence suivantes :

PrA(wa) =12

PrA(w) et PrA(wb) =12(1 + PrA(w))

Justifions par exemple la deuxième équation. La probabilité d’atteindreq1 après avoir lu wb est égale à la probabilité d’atteindre q0 après avoir lu

Page 191: Le fichier pdf du livre (EJCIM 2015)

5.1. Automates probabilistes 181

w et de passer de q0 à q1 par l’action b plus la probabilité d’atteindre q1après avoir lu w et de rester en q1 par l’action b. En appliquant les résultatsélémentaires sur les probabilités conditionnelles la première probabilité estégale à 1

2 (1− PrA(w)) car 1− PrA(w) est la probabilité d’atteindre q0 aprèsavoir lu w. La deuxième probabilité est égale à PrA(w), d’où le résultat.

À partir de ces équations, on déduit une expression explicite de laprobabilité d’acceptation :

PrA(a1 . . . an) =n

∑i=1

2i−1−n · 1ai=b.

Observez que supw∈A∗ PrA(w) = 1 et que cette valeur n’est atteinte paraucun mot fini.

Étant donné un PA A = (Q, A, Paa∈A, π0, F) et un mot fini w,A se comporte comme une chaîne de Markov à temps discret (DTMC)MwA = (S, πS

0 , P). Cette interprétation a encore plus de sens pour les mots

infinis, comme nous le verrons par la suite. Si w def= w1 · · ·wn, l’ensemble

des états de cette DTMC est S def= Q× [0, n] ; la distribution initiale est don-

née par celle du PA : πS0 ((q, 0)) = π0(q) (et πS

0 est nulle partout ailleurs) ;et la matrice de transition est définie pour tout q, q′ ∈ Q et i < n parP[(q, i), (q′, i + 1)] = Pwi+1 [q, q′], P[(q, n), (q, n)] = 1 (les états correspon-dant à l’instant n sont absorbants) et P est nulle pour tous les autres coeffi-cients.

Les languages stochastiques sont alors obtenus à l’aide de seuils et d’opé-rateurs de comparaison.

Définition 5.1.4. Soit A un automate probabiliste, θ ∈ [0, 1] un seuil et ./ ∈<,≤,>,≥,=, 6= un opérateur de comparaison. Alors le langage L./θ(A) estdéfini par :

L./θ(A) = w ∈ A∗ | PrA(w) ./ θ.Les langages stochastiques de l’exemple 5.1.2 ont une interprétation

naturelle. En définissant va = 0 et vb = 1, la probabilité d’acceptation d’unmot w = w1 . . . wn est alors le nombre binaire 0.vwn . . . vw1 . En particulier,L≥ 1

2(A) est l’ensemble des miroirs des représentations des nombres bi-

naires au moins égaux à 12 . Observez que la représentation d’un nombre

n’est pas unique en raison de l’ajout de zéros en début du mot (c.-à-d. à lafin de la représentation).

Exemple 5.1.5 (Un PA qui compte). La figure 5.2 décrit un PA sur l’alphabeta, b. Il s’agit d’une représentation succincte où nous avons omis un état absor-bant non final et toutes les transitions vers cet état. Par exemple, à partir de q0

Page 192: Le fichier pdf du livre (EJCIM 2015)

182 Chapitre 5. Contrôle, probabilités et observation partielle

(respectivement q2) en lisant b l’automate va vers l’état puits avec probabilité 1(respectivement 1

2 ).

q0

q1

q2

q3 q4

q5

1

12 a

1b

12 a

12 a

1b

1a

12 a

12 b

1a

1b

FIGURE 5.2 – Un PA A tel que L= 12(A) = anbn | n > 0.

Tout mot w différent de ambn avec m > 0, n > 0 ne peut être accepté etpar conséquent, PrA(w) = 0. Soit donc w = ambn avec m > 0, n > 0. Lemot w peut être accepté par un chemin q0qm

1 qn2 ou par la famille de chemins

q0qr3qs

4qn5 avec 0 < r, s et r + s = m. La probabilité du premier chemin est

12 1m+1( 1

2 )n−1 = 1

2n tandis que la somme des probabilités des chemins de la familleest ∑m

r=212r = 1

2 − 12m . En sommant, on obtient PrA(w) = 1

2 + 12n − 1

2m . Parconséquent, L= 1

2(A) = anbn | n > 0.

Afin de pouvoir manipuler des PA de façon effective, nous devonsimposer des restrictions sur leur définition, conduisant à la sous-classesuivante de PA.

Définition 5.1.6. Un PA est dit rationnel si ses distributions de probabilitéappartiennent à QQ : c.-à-d. pour tout a ∈ A et tous s, s′ ∈ Q, Pa[s, s′] ∈ Q . Unlangage stochastique rationnel est un langage stochastique spécifié par un PArationnel avec un seuil rationnel.

L’exemple 5.1.2 montre que anbn | n > 0 est un langage stochastiquerationnel.

Page 193: Le fichier pdf du livre (EJCIM 2015)

5.1. Automates probabilistes 183

5.1.2 Propriétés des langages stochastiques

Expressivité

Une première question à traiter est liée à la définition des langagesstochastiques : pouvons-nous restreindre les seuils possibles et les opéra-teurs de comparaison en conservant le même pouvoir d’expression ? Nousdémontrons d’abord que nous pouvons toujours utiliser un seuil 1

2 (outoute valeur arbitraire strictement comprise entre 0 et 1).

Proposition 5.1.7. SoitA un PA, θ ∈ [0, 1] un seuil et ./∈ <,≤,>,≥,=, 6=un opérateur de comparaison. Alors il existe un PA A′ tel que :

L./ 12(A′) = L./θ(A).

De plus si A est un PA rationnel et θ ∈ Q alors A′ est également un PA rationnel.

Démonstration. Étant donnésA et θ 6= 12 , on construitA′ comme représenté

ci-dessous.

q q0A

απ0[q] 1− α

1A

On ajoute un état q0 qui est absorbant quelle que soit la lettre choisie.La distribution initiale est modifiée ainsi : π′0[q0] = 1− α et pour tout q ∈ Q,π′0[q] = απ0[q] où 0 < α < 1. Le fait que q0 soit final ou non, et la valeur αdépendent de θ de la façon suivante :

— Si θ > 12 alors q0 /∈ F et α

def= 1

2θ de telle sorte que pour w ∈ A∗,PrA′(w) = 1

2θ PrA(w). Ainsi, w ∈ L./ 12(A′) ssi w ∈ L./θ(A).

— Si θ < 12 alors q0 ∈ F et α

def= 1

2(1−θ)de telle sorte que pour w ∈ A∗,

PrA′(w) = 1−2θ+PrA(w)2(1−θ)

. Ainsi, w ∈ L./ 12(A′) ssi w ∈ L./θ(A).

Dans les deux cas on a donc bien L./ 12(A′) = L./θ(A).

Nous établissons maintenant que les opérateurs d’égalité et de diffé-rence peuvent être omis.

Proposition 5.1.8. Pour tout PA A il existe un PA A′ tel que :

L= 14(A′) = L≥ 1

4(A′) = L= 1

2(A) et donc L< 1

4(A′) = L 6= 1

2(A).

De plus si A est un PA rationnel et θ ∈ Q alors A′ est également un PA rationnel.

Page 194: Le fichier pdf du livre (EJCIM 2015)

184 Chapitre 5. Contrôle, probabilités et observation partielle

récursivementénumérable

contextuel

algébrique

régulier

stochastiquerationnel

stochastique

FIGURE 5.3 – La hiérarchie de Chomsky complétée.

Démonstration. On construit A′ = (Q′, A, P′aa∈A, π′0, F′) ainsi :— Q′ = Q×Q ;— P′a[(q1, q2), (q′1, q′2)] = Pa[q1, q′1]Pa[q2, q′2] ;— π′0[q1, q2] = π0[q1]π0[q2] et F′ = F× (Q \ F).

Lorsqu’un mot w est lu, les deux composantes de l’automate se comportentde manière indépendante et par conséquent : PrA′(w) = PrA(w)(1 −PrA(w)). Ce qui entraîne PrA′(w) ≤ 1

4 quel que soit le mot w, et PrA′(w) =14 si et seulement si PrA(w) = 1

2 .

Observons maintenant que l’on peut restreindre les opérateurs decomparaison utilisés pour définir les langages stochastiques. En effet, encomplémentant les états finals, l’opérateur ≤ (respectivement <) peut êtresimulé par l’opérateur > (respectivement ≥).

Proposition 5.1.9. Soit A un PA et A′ défini comme A excepté que F′ = Q \ F.Alors :

L≥θ(A′) = L<θ(A) et L>θ(A′) = L≤θ(A).

La deuxième question d’expressivité que nous traitons est liée à lacomparaison de la famille des langages stochastiques avec les familles clas-siques de langages, que l’on rappelle brièvement. Les langages récursive-ment énumérables sont ceux engendrés par une grammaire sans restrictionsur la nature des règles ou, de manière équivalente, ceux reconnus par unemachine de Turing. Les langages contextuels sont ceux engendrés par unegrammaire dont le membre gauche de toute règle est au plus aussi long quele membre droit de la règle (à l’exception d’une unique règle pour générerle mot vide, s’il appartient au langage). Les langages algébriques sont ceux

Page 195: Le fichier pdf du livre (EJCIM 2015)

5.1. Automates probabilistes 185

engendrés par une grammaire dont le membre gauche de toute règle estun unique symbole. Les langages réguliers sont ceux engendrés par unegrammaire dont le membre gauche de toute règle est un unique symbole etle membre droit a au plus deux symboles dont le premier est un caractère.Le théorème de Kleene établit que les langages réguliers sont aussi ceuxreconnus par automate fini (que l’on peut choisir déterministe et complet).La figure 5.3 illustre le positionnement des langages stochastiques et deslangages stochastiques rationnels vis à vis de ces familles de langages. Dansce qui suit, nous détaillons ces comparaisons.

Considérons les langages L>θ(A) | 0 ≤ θ ≤ 1 où A est le PAprésenté dans l’exemple 5.1.2. Étant donnés θ < θ′ il existe un nombrebinaire b tel que θ < b < θ′, ce qui entraîne L>θ′(A) ( L>θ(A). Ainsi,la famille des langages L>θ(A) | 0 ≤ θ ≤ 1 n’est pas dénombrable,contrairement à la famille des langages récursivement énumerables. On endéduit :

Proposition 5.1.10. Il existe un langage stochastique non récursivement énume-rable.

Un automate fini déterministe complet (de fonction de transition δ) estun cas particulier d’automate probabiliste dont la distribution associée à lapaire (s, a) est une distribution de Dirac de support l’état δ(s, a). Ainsi, lafamille des langages réguliers est incluse dans la famille des langages sto-chastiques rationnels. Il est facile de démontrer l’inclusion stricte puisquele langage de l’exemple 5.1.5 n’est pas régulier.

Proposition 5.1.11. La famille des langages réguliers est strictement incluse dansla famille des langages stochastiques rationnels.

Les deux propositions suivantes établissent que les langages algé-briques et les langages stochastiques (rationnels) sont incomparables.

Proposition 5.1.12 ([158]). Il existe un langage algébrique qui n’est pas unlangage stochastique. Plus précisément L = an1 ban2 b . . . ank ba∗ | k ≥ 2 ∧∀i, ni ≥ 0 ∧ ∃i > 1 : ni = n1 est un langage algébrique qui n’est passtochastique.

Démonstration. Soit L = an1 ban2 b . . . ank ba∗ | ∃i > 1 ni = n1. L est algé-brique car reconnaissable par un automate non déterministe à pile (voir parexemple [116]). En effet avec un compteur (c.-à.-d une pile sur un alphabetunaire), on compte n1 le nombre de a jusqu’à la première occurrence de b.Puis on devine une occurrence de b et on décrémente le compteur par les

Page 196: Le fichier pdf du livre (EJCIM 2015)

186 Chapitre 5. Contrôle, probabilités et observation partielle

occurrences de a jusqu’à la prochaine occurrence de b. Si le compteur estnul alors le mot est accepté.Supposons que L = L>θ(A) ou L = L≥θ(A) pour A un PA. Soit ∑n

i=0 cixi lepolynôme minimal de la matrice Pa. Puisque 1 est une valeur propre de Pa,on obtient ∑n

i=0 ci = 0 ce qui entraîne l’existence de coefficients strictementpositifs et négatifs.Par définition, ∑n

i=0 ciPai = 0 et donc pour tout mot w, ∑ni=0 ciPaiw = 0. Si

ci1 , . . . , cik sont les coefficients strictement positifs du polynôme, choisissonsw = bai1 b . . . baik b, et soit 0 ≤ i ≤ n.Si L = L>θ(A), par définition de L, π0Paiw1T

F > θ ssi i ∈ i1, . . . , ik. Donc :0 = ∑n

i=0 ciπ0Paiw1TF > (∑n

i=0 ci)θ = 0, une contradiction.Si maintenant L = L≥θ(A), on a π0Paiw1T

F ≥ θ ssi i ∈ i1, . . . , ik. Donc :0 = ∑n

i=0 ciπ0Paiw1TF > (∑n

i=0 ci)θ = 0, une contradiction.Ainsi, L n’est pas un langage stochastique.

Proposition 5.1.13. Il existe un langage stochastique rationnel qui n’est pasalgébrique. Plus précisément L = anbncn | n > 0 est un langage stochastiquerationnel qui n’est pas algébrique.

Démonstration. En utilisant le lemme d’Ogden on prouve facilement queL = anbncn | n > 0 n’est pas algébrique (voir par exemple [116]).Observons que L = L1 ∩ L2 avec L1 = anbnc+ | n > 0 et L2 = a+bncn |n > 0. En utilisant la propriété de clôture énoncée par la proposition 5.1.20,il suffit de prouver que chaque Li est un langage stochastique rationnel, telque Li = L= 1

2(Ai) avec Ai un PA rationnel. Ces deux automates sont des

variantes de ceux de l’exemple 5.1.5. La figure 5.4 décritA1 et nous laissonsau lecteur le soin de spécifier A2.

Observons que le problème du mot est décidable pour la famille deslangages stochastiques rationnels. Étant donné un PA rationnel, un seuilrationnel, un opérateur de comparaison et un mot, on peut décider si lemot appartient au langage stochastique rationnel ainsi défini. En analysantla complexité d’une telle procédure, on obtient le résultat suivant.

Proposition 5.1.14 ([65]). La famille des langages stochastiques rationnels eststrictement incluse dans la famille des langages contextuels.

Démonstration. Les langages contextuels sont exactement les langages pourlesquels le problème du mot peut être décidé par une procédure non déter-ministe en espace linéaire [131].

Page 197: Le fichier pdf du livre (EJCIM 2015)

5.1. Automates probabilistes 187

q0

q1

q2

q3 q4

q5q6 q7

1

12 a

1b

12 a

12 a

1b

1c 1c

1a

12 a

12 b

1a

1b1c 1c

FIGURE 5.4 – Un PA A tel que L= 12(A) = anbnc+ | n > 0.

Nous démontrons que l’appartenance d’un mot à un langage stochastiquerationnel peut être décidée par une procédure déterministe en espace li-néaire. Cette complexité est loin d’être optimale [143], mais suffit pourprouver que les langages stochastiques rationnels sont contextuels. Toutd’abord on calcule le plus petit commun multiple, disons b, des dénomina-teurs de θ, des éléments des matrices Paa∈A et des éléments du vecteurπ0. Ceci se fait en espace constant (c.-à-d. indépendant de n, la taille dumot w = a1 . . . an à tester). Puis on construit les matrices entières P′a = bPaet le vecteur entier π′0 = bπ0 de nouveau en espace constant.Le problème de l’appartenance de w à L./θ(A) se traduit alors en :π′0(∏

ni=1 P′ai

)1TF ./ θbn+1 ? Observez que l’espace nécessaire au calcul de

θbn+1 est en O(n). On calcule aussi v = π′0(∏ni=1 P′ai

) en initialisant v à π′0et en le multipliant successivement par P′ai

. A la ième itération, la sommedes coefficients de v est exactement bi+1. Par conséquent, ceci s’effectueaussi en espace O(n). Finalement, la comparaison requiert seulement desindices de bits à comparer eux aussi en espace O(n).

Nous terminons cette section par un résultat intéressant montrantqu’utiliser des « poids » en lieu et place des probabilités n’étend pas l’ex-pressivité de tels automates. A cette fin, nous introduisons les PA generaliséset leurs langages.

Page 198: Le fichier pdf du livre (EJCIM 2015)

188 Chapitre 5. Contrôle, probabilités et observation partielle

Définition 5.1.15. Un PA generalisé A = (Q, A, Paa∈A, π0, π f ) est définipar :

— Q, l’ensemble fini des états ;— A, un alphabet fini ;— Pour tout a ∈ A, Pa, une matrice réelle indicée par Q×Q ;— π0, un vecteur initial de réels indicé par Q et π f , un vecteur final de réels

indicé par Q.

Définition 5.1.16. Soit A un PA généralisé et w ∈ A∗ un mot, le poids d’ac-ceptation de w par A est défini par :

PrA(w)def= π0PwπT

f

où comme précédemment Pwdef= ∏n

i=1 Pai pour w = a1 . . . an.

Nous définissons maintenant la famille des langages stochastiques(rationnels) généralisés.

Définition 5.1.17. Soit A un PA généralisé, θ ∈ R un seuil et ./ ∈ <,≤,>,≥,=, 6= un opérateur de comparaison. Alors L./θ(A) est défini par :

L./θ(A) = w ∈ A∗ | PrA(w) ./ θ

Lorsque les nombres apparaissant dans cette définition sont des rationnels, on parlede langage stochastique rationnel généralisé.

Théorème 5.1.18 ([197]). Les familles des langages stochastiques (rationnels)généralisés et des langages stochastiques (rationnels) coïncident.De plus il existe un algorithme, opérant en temps polynomial, qui transforme unlangage stochastique rationnel généralisé en un langage stochastique rationnel.

Clôture

La proposition suivante montre que comme pour la plupart des fa-milles classiques de langages, les langages stochastiques sont clos parintersection et union avec un langage régulier. Ce qui est intéressant icic’est que l’automate probabiliste construit dans la preuve est de taille li-néaire en la taille des deux automates en entrée (contrairement au produitsynchronisé utilisé dans d’autres constructions).

Proposition 5.1.19. La famille des langages stochastiques (rationnels) est closepar intersection et union avec les langages reguliers.

Page 199: Le fichier pdf du livre (EJCIM 2015)

5.1. Automates probabilistes 189

Démonstration. Soient L./θ(A1) un langage stochastique rationnel (avec./∈ >,≥) et L=1(A2) un langage régulier (c.-à-d. A2 est un automateprobabiliste avec des distributions de Dirac). Sans perte de généralité, noussupposons que ./ θ est différent de > 1. Alors A = (Q, A, Paa∈A, π0, F)est défini par :

— Q = Q1 ]Q2 (où ] dénote l’union disjointe) ;— Pour tout i ∈ 1, 2 et q ∈ Qi, π0(q) = 1

2 πi,0(q) ;— Pour tout a ∈ A, q1, q′1 ∈ Q1, q2, q′2 ∈ Q2, Pa[q1, q′1] = P1,a[q1, q′1],

Pa[q2, q′2] = P2,a[q2, q′2] et Pa[q1, q′2] = Pa[q2, q′1] = 0 ;— F = F1 ] F2.

Montrons que L./ θ2(A) = L./θ(A1) ∪ L=1(A2). Considérons un mot w. Par

construction, PrA(w) = 12 (PrA1(w) + PrA2(w)).

Cas w ∈ L=1(A2). PrA(w) ≥ 12 ./ θ

2 . Donc w ∈ L./ θ2(A).

Cas w /∈ L=1(A2). PrA(w) = 12 PrA1(w).

Donc w ∈ L./ θ2(A) ssi w ∈ L./θ(A1).

Nous laissons le lecteur vérifier que L./ 1+θ2(A) = L./θ(A1) ∩ L=1(A2).

En utilisant une preuve similaire à celle de la proposition 5.1.8, onétablit un deuxième résultat de clôture.

Proposition 5.1.20. La famille des langages stochastiques (rationnels)L=θ(A)A,θ est close par intersection.

Afin de prouver des résultats négatifs de clôture, nous exhibons unlangage stochastique particulier.

Lemme 5.1.21. Soit A l’automate de la figure 5.5. Alors :

L= 12(A) = am1 b . . . bamk b | k > 1∧ ∀i, mi ≥ 0∧m1 = mk.

Démonstration. Clairement, pour tout mot w ∈ A∗ \ am1 b . . . bamk b | k >1 ∧ mi ≥ 0, on a PrA(w) = 0, car alors soit w se termine par a, soit wcontient au plus un b.Soit w = am1 b . . . bamk b avec k > 1. Ce mot peut être accepté soit par unchemin démarrant de q0, soit par un chemin démarrant de q3.

— Lorsque le chemin démarre de q0, afin d’être accepté il doit resterdans q0 pour tous les b excepté pour celui qui précède amk . Puis ildoit rester dans q1 pour tous les a. Ceci conduit à une probabilitéd’acceptation égale à 1

2k+mk.

— Lorsque le chemin démarre de q3, afin d’être rejeté il doit resterdans q3 pour tous les a qui précèdent le premier b puis doit resterdans q5 en lisant les autres b. Ceci conduit à une probabilité de rejetégale à 1

2k+m1.

Page 200: Le fichier pdf du livre (EJCIM 2015)

190 Chapitre 5. Contrôle, probabilités et observation partielle

q0

q1

q2

q3 q4

q5 q6

12

12

12 b

1b

12 a

1b12 b

1b1a

1a 12 b

12 a 1

2 a

1a

12 b

1a

1b

FIGURE 5.5 – Un PA pour am1 b . . . bamk b | k > 1∧m1 = mk.

Ainsi, PrA(w) = 12 − 1

2k+m1+ 1

2k+mk. Par conséquent, w is accepté si et seule-

ment si m1 = mk.

Proposition 5.1.22 ([198]). La famille des langages stochastiques n’est closeni par concaténation avec un langage régulier, ni par étoile de Kleene, ni parhomomorphisme.

Démonstration. Nous établissons uniquement le premier résultat et laissonsle soin au lecteur de s’appuyer sur le lemme 5.1.21 pour les autres résultats.Soit L = am1 b . . . bamk b | k > 1 ∧ m1 = mk le langage stochastique dulemme 5.1.21. Alors LA∗ = am1 bam2 b . . . amk ba∗ | ∃i > 1 : mi = m1 n’estpas un langage stochastique comme établi par la proposition 5.1.12.

Nous terminons cette section par un théorème valable uniquementpour les langages stochastiques, la clôture des langages stochastiques ra-tionnels par intersection et union demeurant une question ouverte.

Théorème 5.1.23 ([85]). La famille des langages stochastiques n’est close ni parintersection ni par union même pour un alphabet unaire.

5.1.3 Décidabilité et indécidabilité dans les PA

Nous illustrons ici la frontière entre décidabilité et indécidabilité enétudiant deux problèmes voisins : l’équivalence d’automates probabilisteset l’égalité de langages stochastiques.

Page 201: Le fichier pdf du livre (EJCIM 2015)

5.1. Automates probabilistes 191

Définition 5.1.24. Soient A et A′ deux automates probabilistes sur le mêmealphabet A. A et A′ sont équivalents si pour tout mot w ∈ A∗ :

PrA(w) = PrA′(w).

Algorithme 6 : Equivalence de deux automates probabilistes [179].

Equivalence(A,A′)Input : A,A′, deux PA sur l’alphabet A tels que F ∪ F′ 6= ∅

Output : le statut de l’équivalence avec un témoin en cas de nonéquivalence

Data : v, x, y, z vecteurs de RQ et v′, x′, y′, z′ vecteurs de RQ′

Data : Stack dont les éléments sont des paires de vecteur de RQ∪Q′

et de motData : Gen, un ensemble de vecteurs orthogonaux (non nuls) de

RQ∪Q′ , a un caractère

if π0 · 1F 6= π′0 · 1F′ then return(false, ε)

Gen← (1F, 1F′) ; Push(Stack, ((1F, 1F′), ε))repeat

((v, v′), w)← Pop(Stack)for a ∈ A do

z← Pav ; z′ ← P′avif π0 · z 6= π′0 · z′ then return(false, aw)

y← 0 ; y′ ← 0for (x, x′) ∈ Gen do

y← y + z·xx·x x

y′ ← y′ + z′·x′x′·x′ x

if (z, z′) 6= (y, y′) thenPush(Stack, ((z, z′), aw))Gen← Gen∪ (z− y, z′ − y′)

until IsEmpty(Stack)return(true)

Sans perte de généralité, nous supposons que F ∪ F′ 6= ∅. Examinonsl’algorithme 6. Il essaie d’établir la non équivalence en trouvant un contre-exemple par énumération des mots par longueur croissante (en démarrantavec le mot vide). Tant qu’il n’y parvient pas il maintient une pile de mots w

Page 202: Le fichier pdf du livre (EJCIM 2015)

192 Chapitre 5. Contrôle, probabilités et observation partielle

pour lesquels il cherchera des contre-exemples de la forme aw. Afin d’éviterdes calculs redondants, il conserve aussi dans la pile la paire de vecteurs(Pw1F, P′w1F′).

Sans « élagage », on obtiendrait un semi-algorithme qui ne termineraitque si A et A′ n’étaient pas équivalents. Aussi, l’algorithme maintient Genun ensemble de vecteurs orthogonaux non nuls de RQ∪Q′ . Quand un mot wn’est pas un contre-exemple, l’algorithme teste si le vecteur (Pw1F, P′w1F′)n’appartient pas à l’espace vectoriel engendré par Gen. Il effectue ce test encalculant la projection orthogonale de ce vecteur sur ce sous-espace et en lecomparant avec le vecteur original. Si le vecteur n’y appartient pas alors lemot w est empilé. La différence entre le vecteur et sa projection orthogonaleest ajoutée à Gen préservant ainsi la propriété d’orthogonalité.

Par construction, lorsque l’algorithme trouve un contre-exemple il aétabli la non équivalence. Prouver l’équivalence lorsque l’algorithme n’apas trouvé de contre-exemple est plus subtil.

Proposition 5.1.25. L’algorithme 6 opère en temps O(|A|n3) avec n = |Q|+|Q′| et décide si A et A′ sont équivalents.

Démonstration. Puisque la dimension de l’espace vectoriel engendré parGen est au plus n, il y a au plus n itérations de la boucle principale. L’indicede la première boucle interne parcourt A tandis que celui de la boucle laplus interne parcourt Gen× Gen. Ceci induit une complexité temporelle enO(n3|A|).Supposons, par l’absurde, que les automates ne sont pas équivalents et quel’algorithme ne l’a pas détecté. Soit u un mot tel que PrA(u) 6= PrA′(u).u n’a pas été examiné par l’algorithme. Ecrivons u = w′w avec w le plusgrand suffixe examiné par l’algorithme. Parmi ces mots u, sélectionnons unmot tel que |w′| soit minimal. Nous affirmons qu’il existe un mot w′′ qui aété empilé avant w tel que PrA(w′w′′) 6= PrA′(w′w′′).En effet puisque w n’est pas empilé, considérons w1, . . . , wk les mots précé-demment insérés dans la pile lorsque w est examiné, il existe donc λ1, . . . , λktels que :

Pw1F =k

∑i=1

λiPwi 1F et P′w1F′ =k

∑i=1

λiP′wi1F′ .

Aussi :

PrA(w′w)def= π0Pw′Pw1F =

k

∑i=1

λiπ0Pw′Pwi 1F =k

∑i=1

λiPrA(w′wi).

Page 203: Le fichier pdf du livre (EJCIM 2015)

5.1. Automates probabilistes 193

De manière similaire :

PrA′(w′w) =k

∑i=1

λiPrA′(w′wi).

Donc ∑ki=1 λiPrA(w′wi) 6= ∑k

i=1 λiPrA′(w′wi) ce qui implique l’existenced’un indice i tel que PrA(w′wi) 6= PrA′(w′wi). Par conséquent, nous avonsétabli notre affirmation.Réécrivons w′ = w′′′a. Puisque wi a été inséré dans la pile, awi est examinépar l’algorithme. Aussi, le mot u′ = w′wi admet une décomposition u′ = z′zoù z le plus grand suffixe examiné par l’algorithme a pour suffixe awi. Donc|z′| < |w′|, entraînant une contradiction avec la minimalité de w′. On adonc prouvé la correction de l’algorithme 6.

Considérons à présent le problème de l’égalité des langages stochas-tiques L./θ(A) et L./′θ′(A′). Si A and A′ sont équivalents et ./ θ est iden-tique à ./ θ′, les langages sont égaux. Malheureusement, il ne s’agit qued’une condition suffisante et le problème plus simple du vide du langageest déjà indécidable.

Proposition 5.1.26 ([162]). Soit A un automate probabiliste rationnel, le pro-blème L= 1

2(A) = ∅ ? est indécidable.

Rappelons le problème de correspondance de Post (PCP). Étant donnésun alphabet A et deux morphismes ϕ1, ϕ2 de A vers 0, 1+, existe-t-ilun mot w ∈ A+ tel que ϕ1(w) = ϕ2(w) ? Ce problème est indécidable.Nous considérons ici une restriction de ce problème où les images descaractères appartiennent à (10 + 11)+. Ce problème reste indécidable caren insérant un 1 avant chaque caractère de l’image on réduit le problèmeoriginal à cette variante. Un mot w = a1 . . . an ∈ (10 + 11)+ définit unevaleur val(w) ∈ [0, 1] par : val(w) = ∑n

i=1ai

2n−i . De plus, puisque chaque motdémarre avec un 1, val(w) = val(w′) implique w = w′. Nous allons raffinerl’exemple 5.1.2 afin d’établir la preuve de la proposition 5.1.26 [99].

Démonstration. À partir d’une instance de PCP, on construit d’abord un PAA tel que L= 1

2(A) = ε si et seulement si le PCP n’a pas de solution.

Pour w ∈ A+ et i ∈ 1, 2, nous définissons vali(w) = val(ϕi(a)). Le PAA = (Q, A, Paa∈A, π0, F) est alors défini par :

— Q = q10, q11, q20, q21 ;— π0[q10] = π0[q20] =

12 et π0[q11] = π0[q21] = 0 ;

Page 204: Le fichier pdf du livre (EJCIM 2015)

194 Chapitre 5. Contrôle, probabilités et observation partielle

— Pour tout a ∈ A et i ∈ 1, 2, Pa[qi0, qi1] = 1− Pa[qi0, qi0] = vali(a),Pa[qi1, qi1] = 1− Pa[qi1, qi0] = vali(a) + 2−|ϕi(a)|, et tous les autreséléments des matrices stochastiques sont nuls ;

— F = q11, q20.Par conséquent, pour tout w ∈ A∗ et a ∈ A

1qi0 Pwa1Tqi1

= 1qi0 Pw1Tqi1(vali(a) + 2−|ϕi(a)|) + (1− 1qi0 Pw1T

qi1)vali(a)

= vali(a) + 2−|ϕi(a)|1qi0 Pw1Tqi1

.

Par induction nous obtenons que pour tout w = a1 . . . an :

1qi0 Pw1Tqi1

=n

∑j=1

vali(aj)2−∑j<k≤n |ϕi(ak)| = vali(w).

Aussi, pour w ∈ A+ : PrA(w) = 12 (val1(w) + 1 − val2(w)). Donc w ∈

L= 12(A) ssi val(ϕ1(w)) = val(ϕ2(w)). En raison de notre hypothèse sur les

images, ceci est équivalent à ϕ1(w) = ϕ2(w), ce qui signifie que w est unesolution de l’instance du PCP.A+ est un langage régulier (reconnu par un automate à deux états). Enutilisant la proposition 5.1.19, on construit A′ tel que L= 1

2(A′) = L= 1

2(A) \

ε. Par conséquent, L= 12(A′) = ∅ ssi le PCP n’a pas de solution.

En s’appuyant sur la proposition 5.1.8 nous obtenons immédiatementle corollaire suivant.

Corollaire 5.1.27. Soit A un automate probabiliste rationnel et θ ∈ ]0, 1[ unrationnel, le problème L≥θ(A) = ∅ ? est indécidable.

Le prochain corollaire nécessite un peu plus de travail.

Corollaire 5.1.28. Soit A un automate probabiliste rationnel et θ ∈ ]0, 1[ unrationnel, le problème L>θ(A) = ∅ ? est indécidable.

Démonstration. Les probabilités de l’automate correspondant à la réduc-tion du PCP dans la preuve de la proposition 5.1.26 sont des multiplesde 2−k pour un certain k dépendant du PCP. La transformation de la pro-position 5.1.8 produit un automate, A, dont les probabilités sont des pro-duits des probabilités originales. Ils sont donc des multiples de 4−k etL≥ 1

4(A) = ∅ ssi le PCP correspondant n’a pas de solution.

En raison des probabilités de transition, pour tout mot w ∈ A+, PrA(w) =d

4k|w| où d est un entier dépendant de w. Donc PrA(w) ≥ 14 si et seulement

si PrA(w) > 14 − 1

4k|w| .

Soit A′ = (Q′, A, P′aa∈A, π′0, F′) défini par :

Page 205: Le fichier pdf du livre (EJCIM 2015)

5.1. Automates probabilistes 195

— Q′ = Q ∪ q0, q1 ;

— Pour tout q ∈ Q, π′0[q] =π[q]

2 , π′0[q0] =12 et π′0[q1] = 0 ;

— Pour tout a ∈ A et q, q′ ∈ Q, P′a[q, q′] = P′a[q, q′], P′a[q0, q0] =

1− P′a[q0, q1]def= 1

4k , P′a[q1, q1] = 1, et tous les autres éléments desmatrices stochastiques sont nuls ;

— F′ = F ∪ q0.A′ est décrit ci-dessous (où l’on a omis l’état puits q1).

q q0A

12 π0[q] 1

2

14k A

Ainsi, pour tout w ∈ A+, PrA′(w) = PrA(w)2 + 1

2×4k|w| . Ce qui peut être réécritcomme : PrA(w) = 2PrA′(w)− 1

4k|w| . Par conséquent, PrA(w) > 14 − 1

4k|w|

ssi PrA′(w) > 18 . Donc L> 1

8(A′) = L≥ 1

4(A) ∪ ε. Comme précédemment,

on peut construire A′′ tel que L> 18(A′′) = L> 1

8(A′) \ ε, ce qui conclut la

preuve.

Attirons l’attention sur le seuil θ /∈ 0, 1 pour les résultats d’indéci-dabilité. En effet, lorsque θ ∈ 0, 1, étant donné un PA A, on considèrel’automate non déterministe A′ dont l’ensemble des états initiaux est lesupport de la distribution initiale de A, et dont la fonction de transition ∆est définie par (q, a, q′) ∈ ∆ ssi Pa[q, q′] > 0. La spécification de l’ensembledes états finals dépend du problème considéré. En choisissant le même en-semble d’états finals F, L>0(A) = L(A′). En choisissant le complémentairede F, L<1(A) = L(A′). Par conséquent, le problème du vide du langagepour les valeurs extrêmes de seuil est décidable.

Etant donné un automate probabiliste A, le problème de la valeur1 consiste à décider s’il existe une suite de mots wnn∈N telle quelimn→∞ PrA(wn) = 1. Ce problème a des applications concrètes en pla-nification. Le statut de ce problème n’a été résolu que très récemment.

Proposition 5.1.29 ([99]). Le problème, étant donné A un PA rationnel, del’existence d’une suite wnn∈N telle que limn→∞ PrA(wn) = 1, est indécidable.

Le problème de valeur 1 conduit assez naturellement à une autresémantique des PA. Au lieu de considérer des mots finis, on s’intéresseaux mots infinis. De manière similaire au cas des mots finis, lorsqu’un motinfini w = w1w2 . . . est choisi, le PA A se comporte comme une DTMC

Page 206: Le fichier pdf du livre (EJCIM 2015)

196 Chapitre 5. Contrôle, probabilités et observation partielle

MwA dont les états sont les paires (q, n) avec q ∈ Q et n ∈ N. Dans l’état

(q, n), les probabilités de transition sont définies par la matrice Pwn+1 :P[(q, n), (q′, n + 1)] = Pwn+1 [q, q′] (les autres probabilités de transition étantnulles). L’ensemble des états finals est alors interprété comme un ensembled’états que l’exécution aléatoire ρ = q0q1 . . . doit rencontrer infinimementsouvent :

PrA(w) = PrMwA(ρ | ρ = q0q1 . . . ∧ ∀n ∃n′ > n qn′ ∈ F).

Lorsqu’on considère cette sémantique on parle d’automate de Büchi probabi-liste (PBA) [11, 10]. Définissons les langages associés.

Définition 5.1.30. Soit B = (Q, A, Paa∈A, π0, F) un PBA, θ ∈ [0, 1] unseuil et ./ ∈ <,≤,>,≥,=, 6= un opérateur de comparaison. Alors le langageLω./θ(B) est défini par :

Lω./θ(B) = w ∈ Aω | PrB(w) ./ θ.

La preuve originale du résultat suivant [9, 10] s’obtient par réductiond’une variante du problème du vide pour les langages stochastiques. Cettepreuve s’appuie sur le fait que le fait que le langage d’un PBA définipar une condition de stricte positivité soit vide ou non, ne dépend pasuniquement de la structure de l’automate, mais aussi des valeurs précisesdes probabilités. Nous fournissons ici une courte preuve alternative baséesur la proposition 5.1.29.

Théorème 5.1.31. Le problème, étant donné un PBA B, de savoir si Lω>0(B) = ∅,

est indécidable.

fq

f]

1]π0[q]]

FIGURE 5.6 – Réduction du problème de valeur 1 dans les PA.

Page 207: Le fichier pdf du livre (EJCIM 2015)

5.2. Processus de décision markoviens partiellement observables 197

Démonstration. À partir d’un PAA sur l’alphabet A, on construit un PBA B,comme illustré par la figure 5.6. Le PBA B étendA avec un état supplémen-taire f], qui est son état final, et des transitions depuis tout état final de Avers f], ainsi que de f] vers l’état initial de A, toutes sur une nouvelle lettre] /∈ A. Cette construction assure que la valeur de A est 1 si et seulement siil existe un mot infini w accepté avec probabilité positive dans B.

Pour se convaincre de la correction de cette réduction, supposonsd’abord que la valeur deA est 1. Alors, à tout entier k ∈N, on peut associerun mot fini vk ∈ Σ∗ tel que PrA(vk) ≥ 1− 2−k. On définit alors le mot infiniw comme la concaténation des vk séparés par deux ] : w = v1]]v2]]v3 · · · .La probabilité d’acceptation de w dans B est PrB(w) ≥ ∏k∈N(1− 2−k) > 0.Ainsi, w est accepté par B.Supposons à présent que la valeur de A est strictement inférieure à 1.Ainsi, il existe ε > 0, tel que pour tout mot fini v ∈ Σ∗, PrA(v) < 1− ε.Pour qu’un mot soit accepté avec probabilité positive dans B, il doit né-cessairement contenir une infinité de facteurs ]]. Il est donc de la formew = v1]]v2]]v3 · · · avec vk ∈ Σ∗ pour tout k ∈ N. Alors, PrB(w) =

∏k∈N PrA(vk) < ∏k∈N(1− ε) = 0, et donc, w n’est pas accepté avec proba-bilité positive par B.

5.2 Processus de décision markoviens partiellementobservables

5.2.1 Présentation

Afin de motiver le modèle des processus de décision markovienspartiellement observables, reprenons notre problème de planification devacances. Tel que nous l’avons présenté, le plan produit par l’analyse d’unautomate probabiliste est le « meilleur » avant son exécution. Cependant lamodélisation par automate probabiliste ne prend pas en compte des infor-mations que nous pourrions acquérir durant les vacances. Par exemple, lechoix de l’agence pour les excursions s’effectuerait à l’hôtel en ayant prisconnaissance des tarifs en vigueur à cette date. Afin de prendre en comptel’interaction entre planification et exécution, il est nécessaire d’introduireun formalisme plus expressif : les processus de décision markoviens par-tiellement observables (POMDP) [7]. Dans la suite l’agent (ou contrôleur, oujoueur) choisit les actions au cours de l’exécution.

Les POMDP étendent les automates probabilistes. De même que précé-demment, étant donné un état courant s et une action a, l’état suivant s′ estobtenu par la distribution p(s′|s, a) (analogue des matrices de probabilité

Page 208: Le fichier pdf du livre (EJCIM 2015)

198 Chapitre 5. Contrôle, probabilités et observation partielle

Paa∈A pour les PA). Comme les POMDP sont souvent employés pourrésoudre des problèmes d’optimisation, une récompense r(s, a) est associéeà une paire constituée d’un état s et d’une action a. Dans le cas d’exécutionsfinies on associe une récompense finale rf (s) pour tout s ∈ S.

Un POMDP est muni d’un ensemble d’observations Ω. À chaqueinstant, l’agent reçoit une observation ω ∈ Ω. Les observations sont liéesaux états et aux actions : l’agent observe ω lorsqu’il a exécuté l’actiona et atteint l’état s avec probabilité o(ω|a, s). De manière cohérente, lesrécompenses obtenues ne sont pas connues de l’agent. Si elles étaientobservables, il faudrait exiger que ces récompenses ne dépendent que desobservations et des actions.

Définition 5.2.1 (POMDP). Un processus de décision markovien partielle-ment observableM = (S, Ω, A, o, p, r) est défini par :

— S, l’ensemble fini des états ;— Ω, l’ensemble fini des observations ;— A, l’ensemble fini des actions ;— À tout a ∈ A et s ∈ S, on associe une distribution dont le domaine

est Ω : o(ω|a, s) dénote la probabilité d’une observation ω pour cettedistribution.

— À tout a ∈ A et s ∈ S, on associe une distribution dont le domaine est S :p(s′|s, a) dénote la probabilité du nouvel état s′ pour cette distribution.

— À chaque état s on associe une récompense finale rf (s) ∈ Q et à chaqueaction a ∈ A on associe une récompense r(s, a) ∈ Q.

Exemple 5.2.2 (Un exemple de POMDP). Nous illustrons le formalisme desPOMDP avec un exemple proposé par Sondik [186] et nous introduisons unereprésentation graphique en figure 5.7. Ce POMDP modélise un problème demarketing. Au début d’une période de vente, une société décide de mettre sur lemarché soit un produit de luxe (L) soit un produit standard (S) ce qui constitueles actions du POMDP. Le comportement des consommateurs dépend de leur état(interne) inconnu de la société : préférant les marques (B) ou y étant indifférent (B).Cet état peut changer d’une période à la suivante. Cependant la seule informationdont la société dispose est le fait que le client achète le produit (P) ou non (P).La représentation graphique inclut trois types de sommets : les cercles sont lesétats du POMDP, les losanges correspondent aux instants où l’action est choisieet les rectangles correspondent aux instants où le nouvel état est sélectionnéaléatoirement et l’observation n’est pas encore fournie. Par exemple, il y a unarc de B à (B, L) signifiant que la société a choisi de distribuer le produit deluxe. L’étiquette de l’arc correspond à la récompense r(B, L). Il y a un arc de(B, L) à (L, B) étiquetée par 0.8 signifiant que p(B|B, L) = 0.8. Enfin l’étiquette

Page 209: Le fichier pdf du livre (EJCIM 2015)

5.2. Processus de décision markoviens partiellement observables 199

0.8P + 0.2P de l’arc de (L, B) à B signifie qu’avec probabilité 0.8 le client achèterale produit, c.-à-d. o(P|L, B) = 0.8.

L, B

B

S, B

B, L

B, S

L, B

B

S, B

B, L

B, S

4

0

−4

−3

0.8P + 0.2P

0.9P + 0.1P

0.6P + 0.4P

0.4P + 0.6P

0.8

0.20.5

0.5

0.5

0.50.4

0.6

FIGURE 5.7 – Un exemple de POMDP.

Afin d’obtenir un processus stochastique à partir d’un POMDP, nousintroduisons la notion de politique (aussi appelée stratégie). Une politiqueélimine le non déterminisme de la façon suivante. Étant donnée l’infor-mation disponible sur l’exécution courante, une politique sélectionne (demanière éventuellement aléatoire) la prochaine action à exécuter. L’infor-mation disponible correspond à ce qui est observé, et est donc un élémentde (AΩ)∗.

Définition 5.2.3. SoitM un POMDP. Une politique ν : (AΩ)∗ → Dist(A)est une fonction de l’ensemble des histoires (AΩ)∗ vers l’ensemble des distribu-tions sur A. On note ν(ρ, a) la probabilité que l’action a soit choisie étant donnéel’histoire ρ.

Une fois que la politique est fixée, un POMDP devient une chaîne deMarkov à temps discret (DTMC) que nous formalisons ainsi.

Définition 5.2.4. SoitM un POMDP, ν une politique et π une distribution surS. AlorsMν

π est la DTMC définie par :— (AΩ)∗ × S, l’ensemble des états ;— La distribution initiale π0 est définie par : π0(ε, s) = π(s) et π0 est

nulle pour les autres états ;— La matrice de transition P est définie par : P[(ρ, s), (ρaω, s′)] =

ν(ρ, a)p(s′|s, a)o(ω|a, s′) et P est nulle ailleurs.

Page 210: Le fichier pdf du livre (EJCIM 2015)

200 Chapitre 5. Contrôle, probabilités et observation partielle

Lorsque l’ensemble des observations Ω est un singleton, l’observationne fournit aucune information utile, on parle alors de POMDP aveugle.Ce modèle est très proche des PA : la seule différence est la possibilité desélectionner l’action courante de manière aléatoire (ce point sera discutédans la section 5.2.3). Lorsque Ω = S et pour toute paire (a, s) o(s|a, s) =1, l’agent connaît exactement l’état du système, le POMDP devient unprocessus de décision markovien (MDP). Ce formalisme a fait l’objet denombreuses recherches [164] mais il ne rentre pas dans le cadre de cechapitre.

Considérons le cas d’une observation déterministe ne dépendant quede l’état courant : ∀s ∈ S ∃ωs ∈ Ω ∀a ∈ A o(ωs|a, s) = 1. A priori,cette restriction semble diminuer le pouvoir d’expression des POMDP. Enréalité, étant donné un POMDPM arbitraire, on peut construire un POMDPM′ satisfaisant cette restriction et ayant le même comportement queM.L’ensemble des états deM′ est défini par S′ = S×Ω avec o(ω|a, (s, ω)) =1 et p′((s′, ω′)|(s, ω), a) = p(s′|s, a)o(ω′|a, s′). Nous laissons le soin aulecteur de compléter cette transformation et de vérifier sa correction. Avecdes observations déterministes, la définition se simplifie ainsi.

Définition 5.2.5 (POMDP). Un processus de décision markovien partielle-ment observableM = (S, Ω, A, o, p, r) est défini par :

— S, l’ensemble fini des états ;— Ω, l’ensemble fini des observations ;— A, l’ensemble fini des actions ;— o : S→ Ω est la fonction d’observation ;— À tout a ∈ A et s ∈ S, on associe une distribution dont le domaine est S :

p(s′|s, a) dénote la probabilité du nouvel état s′ pour cette distribution.— À chaque état s on associe une récompense finale rf (s) ∈ Q et à chaque

action a ∈ A on associe une récompense r(s, a) ∈ Q.

La notion de politique (ou stratégie) introduite en définition 5.2.3 pourla définition générale des POMDP s’adapte naturellement au cadre oùl’observation est déterministe. De plus, la matrice de transition de la chaînede Markov à temps discret induite est simplifiée : P[(ρ, s), (ρao(s′), s′)] =ν(ρ, a)p(s′|s, a), et P est nulle ailleurs.

Exemple 5.2.6 (Un exemple de POMDP avec observation déterministe).La figure 5.8 décrit un POMDP avec observation déterministe. L’ensemble desobservations est Ω = ry, ps. On représente les observations par des rayures (ry)et des pois (ps) : o(q0) = o(q1) = ry et o(q2) = ps. Les arcs sont ici étiquetéscomme dans les PA. Par exemple, l’étiquette de l’arc de q1 vers q0 signifie quep(q0|q1, a) = 1

4 et p(q0|q1, b) = 12 . Toutes les récompenses sont nulles (et omises),

exceptée la récompense finale de q2, qui est égale à 1.

Page 211: Le fichier pdf du livre (EJCIM 2015)

5.2. Processus de décision markoviens partiellement observables 201

q0 q1

q2

1

12 a + 1

2 b

14 a + 1

2 b14 a + 1

2 b12 a + 1

2 b

12 a + 1

4 b12 a + 1

2 b

14 a 1

4 a + 14 b

FIGURE 5.8 – Un POMDP avec observation déterministe.

On associe généralement trois types de récompenses à des exécutions.

Définition 5.2.7. SoitM un POMDP et σ = s0a1s1 . . . aisi . . . une exécutionfinie ou infinie. Lorsque σ est finie, n représente le nombre d’actions effectuées.Alors :

— Quand σ est finie, sa récompense totale u(σ) est définie paru(σ) = ∑n

i=1 r(si−1, ai) + r f (sn) ;— Quand σ est infinie, sa récompense actualisée vλ(σ) par rapport à

0 < λ < 1 est définie par vλ(σ) = ∑∞i=1 r(si−1, ai)λ

i−1 ;— Quand σ est infinie, sa récompense moyenne par valeurs supérieures

g+(σ) est définie par g+(σ) = lim supn→∞1n ∑n

i=1 r(si−1, ai).

Notons Xn la variable aléatoire représentant l’état de Mνπ visité au

nieme instant. De même, Yn et On = o(Xn) dénotent la variable aléatoire del’action et de l’observation à cet instant.

Définition 5.2.8. SoitM un POMDP avec π une distribution initiale sur S.Soit ν une politique et 0 < λ < 1 un facteur d’actualisation. Alors :

— La récompense totale espérée uνt au temps t sous la politique ν est

définie par : uνt = ∑n−1

i=0 Eν(r(Xi, Yi)) + Eν(r f (Xn)) ;— La récompense actualisée espérée vν

λ sous la politique ν est définiepar :vν

λ = ∑∞i=0 Eν(r(Xi, Yi))λ

i ;— La récompense moyenne par valeurs supérieures espérée gν

+ sousla politique ν est définie par : gν

+ = lim supn→∞1n ∑n−1

i=0 Eν(r(Xi, Yi)).

Nous sommes maintenant en mesure de spécifier les problèmes d’op-timisation des POMDP. Soit u∗t = supν(u

νt ), v∗λ = supν(v

νλ) et g∗+ =

supν(gν+). On souhaite résoudre les problèmes suivants :

— Calculer u∗t (respectivement v∗λ, g∗+).

Page 212: Le fichier pdf du livre (EJCIM 2015)

202 Chapitre 5. Contrôle, probabilités et observation partielle

— Trouver (si elle existe) une politique ν telle que uνt = u∗t (respecti-

vement vνλ = v∗λ, gν

+ = g∗+).— Etant donné ε > 0, calculer ut (respectivement vλ, g+) tel que|u∗t − ut| ≤ ε (respectivement |v∗λ − vλ| ≤ ε, |g∗+ − g+| ≤ ε) ettrouver une politique correspondante.

5.2.2 Analyse des POMDP à horizon fini

Afin d’analyser le problème d’optimisation d’un POMDP à hori-zon fini, nous introduisons une distribution clé. Soit une histoire h =a0ω1 . . . ai−1ωi, alors πh

i (s) pour s ∈ S dénote la probabilité que Xi = s,connaissant l’histoire h :

πhi (s) = Pr(Xi = s |

∧j≤i

Oj = ωj ∧∧

j≤i−1

Yj = aj).

Nous n’avons pas indiqué quelle politique ν avait été choisie. Tout d’abord,cette probabilité conditionnelle est bien définie pour toute politique ν telle

que x def= Prν(

∧j≤i Oj = ωj ∧

∧j≤i−1 Yj = aj) > 0. Il est donc nécessaire que

pour tout 0 ≤ j < i, ν(a0ω1 . . . ωj)(aj) > 0. On observe alors que x et πhi

(si ce vecteur est défini) sont indépendants du choix d’un tel ν. On peutdonc sans perte de généralité supposer que ν(a0ω1 . . . ωj)(aj) = 1. Poursimplifier les notations, on introduit la variable aléatoire de l’histoire àl’instant i : Hi = Y0O1 . . . Yi−1Oi.

Le lemme suivant fournit un moyen de calculer la distribution πhi par

valeurs de i croissantes.

Lemme 5.2.9. SoientM un POMDP h = a0ω1 . . . ai−1ωi un comportementobservé, ai une action et ωi+1 une observation pour lesquels il existe ν une politiquetelle que Prν(Hi+1 = haiωi+1) > 0. Alors :

— Si o(s) 6= ωi+1, πhaiωi+1i+1 (s) = 0 ;

— Si o(s) = ωi+1,

πhaiωi+1i+1 (s) =

∑s′∈S πhi (s′)p(s|s′, ai)

∑s′′|o(s′′)=ωi+1 ∑s′∈S πhi (s′)p(s′′|s′, ai)

.

Démonstration. Nous établissons d’abord une équation intermédiaire.

Pr(Xi = s′ | Hi = h ∧Yi = ai) =Pr(Xi = s′ ∧Yi = ai | Hi = h)

Pr(Yi = ai | Hi = h)= πh

i (s′) (5.1)

puisque d’après nos observations sur le choix des politiques, le dénomina-teur est égal à 1. Établissons maintenant le lemme pour le cas o(s) = ωi+1

Page 213: Le fichier pdf du livre (EJCIM 2015)

5.2. Processus de décision markoviens partiellement observables 203

(l’autre cas étant trivial).

πhaiωi+1i+1 (s) =

Pr(Xi+1 = s ∧Oi+1 = ωi+1 | Hi = h ∧Yi = ai)

∑o(s′′)=ωi+1Pr(Xi+1 = s′′ ∧Oi+1 = ωi+1 | Hi = h ∧Yi = ai)

Le dénominateur est indépendant de s. Développons le numérateur N enfonction de l’état atteint au temps i.

N def= Pr(Xi+1 = s ∧Oi+1 = ωi+1 | Hi = h ∧Yi = ai)

= ∑s′∈S

Pr(Xi = s′ ∧ Xi+1 = s ∧Oi+1 = ωi+1 | Hi = h ∧Yi = ai).

Nous ré-exprimons les termes non nuls de la somme à l’aide de probabilitésconditionnelles. Afin d’alléger les notations, nous n’avons pas indiqué larestriction aux s′ pour lesquels le terme associé est non nul.

N = ∑s′∈S

(Pr(Xi = s′ | Hi = h ∧Yi = ai)

· Pr(Xi+1 = s | Xi = s′ ∧ Hi = h ∧Yi = ai)

· Pr(Oi+1 = ωi+1 | Xi+1 = s ∧ Xi = s′ ∧ Hi = h ∧Yi = ai))

.

Le dernier facteur est égal à 1. À partir de l’équation (5.1) et de la séman-tique d’un POMDP, on en déduit :

N = ∑s′∈S

πhi (s′)p(s|s′, ai).

Il suffit alors de reporter dans le dénominateur pour conclure.

Ce lemme motive l’introduction de Pa,ω, une matrice indicée par S× S,et définie par Pa,ω[s, s′] = p(s′|s, a) si o(s′) = ω et Pa,ω[s, s′] = 0 sinon.Les matrices Pa sont définies comme précédemment. Observons que Pa =

∑ω∈Ω Pa,ω. Le lemme peut alors être réécrit ainsi :

πhi · Pai ,ωi+1 · 1 > 0 =⇒ π

haiωi+1i+1 =

πhi · Pai ,ωi+1

πhi · Pai ,ωi+1 · 1

.

Théorème 5.2.10. Soit M un POMDP et k un entier représentant l’horizon.Alors l’algorithme 7 calcule un ensemble d’indices Zk, une famille de vecteursrzz∈Zk , et une famille de polyèdres Dzz∈Zk tels que

⋃z∈Zk

Dz soit égal àl’espace des distributions sur les états et tels que pour tout π ∈ Dz, distributioninitiale sur S, u∗k (π) = π · rz.

Page 214: Le fichier pdf du livre (EJCIM 2015)

204 Chapitre 5. Contrôle, probabilités et observation partielle

Démonstration. Nous prouvons ce théorème par induction sur k. Par défi-nition, pour k = 0, u∗0 = r f · π. Par conséquent, Z0 = ε, rε = r f et Dε estl’espace des distributions.Supposons le résultat valide pour k, et introduisons le vecteur ba définipar ba[s] = r(s, a). On examine alors la première action à choisir et ens’appuyant sur le lemme précédent, on obtient :

u∗k+1(π) = maxa∈A

(π · ba + ∑

ω∈Ω|π·Pa,ω ·1>0(π · Pa,ω · 1)u∗k

(π · Pa,ω

π · Pa,ω · 1

)).

Choisissons un polyèdre Dz = π | ∀1 ≤ i ≤ nz π · cz,i ≤ kz,i arbitrairede Zk. Définissons le polyèdre :

Da,ω,z = π | π · 1 = 1 ∧∀1 ≤ i ≤ nz π · Pa,ω · cz,i − kz,i(π · Pa,ω · 1). ≤ 0.

Choisissons aussi une fonction f : A×Ω→ Zk et considérons une distri-bution π telle que pour tout (a, ω) soit π · Pa,ω · 1 = 0 soit π ∈ Da,ω, f (a,ω).

u∗k+1(π) = maxa∈A

(π · ba + ∑

ω∈Ω|π·Pa,ω ·1>0(π · Pa,ω · 1)

π · Pa,ω

π · Pa,ω · 1· r f (a,ω)

)

= maxa∈A

(π · ba + ∑

ω∈Ωπ · Pa,ω · r f (a,ω)

).

On a pu enlever la restriction π · Pa,ω · 1 > 0 pour les observations de lasomme car les termes ajoutés sont nuls. Définissons enfin le polyèdre :

D f ,a = π | π ∈⋂a′ ,ω

Da′ ,ω, f (a′ ,ω) ∧

π · (ba + ∑ω∈Ω

Pa,ω · r f (a,ω)) ≥ π · (ba′ + ∑ω∈Ω

Pa′ ,ω · r f (a′ ,ω))

Notons r f ,a = ba + ∑ω∈Ω Pa,ω · r f (a,ω). Nous laissons au lecteur le soinde vérifier que

⋃f ,a D f ,a est l’ensemble des distributions et que pour tout

π ∈ D f ,a, u∗k+1(π) = π · r f ,a. Autrement dit, Zk+1 = ZA×Ωk × A.

Comme la taille de l’ensemble des indices Zk à considérer croît expo-nentiellement avec l’horizon k, il est intéressant de minimiser cette famille,en éliminant les domaines vides. En pratique cette minimisation est faite

Page 215: Le fichier pdf du livre (EJCIM 2015)

5.2. Processus de décision markoviens partiellement observables 205

Algorithme 7 : Calcul des valeurs et politiques optimales à horizonfini.

Optimal(M, k)Input :M, un POMDP ; k, un horizon

Output : r, les formes linéaires à évaluerpour les stratégies optimales à horizon ≤ hOutput : D, les domaines associés

Data : Pa,ω des matrices sous-stochastiques ; ω, une observationData : a, une action ; z, une séquence d’actions ; s, s′, des étatsfor a ∈ A do

for s ∈ S do ba[s]← r(s, a)

for ω ∈ Ω dofor s, s′ ∈ S do

if o(s′) = ω then Pa,ω[s, s′] = p(s′|s, a)else Pa,ω[s, s′] = 0

Z0 ← ε ; r[ε]← r f ; D[ε]← π | π · 1 = 1for i from 1 to k do

Zi ← ZA×Ωi−1 × A

for f ∈ ZA×Ωi−1 do

for a ∈ A, ω ∈ Ω doLet D[ f (a, ω)] = π | ∀1 ≤ i ≤ n π · ci ≤ kiDa,ω, f (a,ω) ← π | π · 1 = 1 ∧∀1 ≤ i ≤ n π · Pa,ω · ci − ki(π · Pa,ω · 1) ≤ 0

for a ∈ A doD[ f , a]← π | π ∈ ⋂a′ ,ω Da′ ,ω, f (a′ ,ω) ∧π · (ba + ∑ω∈Ω Pa,ω · r[ f (a, ω)]) ≥π · (ba′ + ∑ω∈Ω Pa′ ,ω · r[ f (a′, ω)])r[ f , a]← ba + ∑ω∈Ω Pa,ω · r[ f (a, ω)]

return(D,r)

Page 216: Le fichier pdf du livre (EJCIM 2015)

206 Chapitre 5. Contrôle, probabilités et observation partielle

à la volée. Nous renvoyons à [183, 45, 112] pour plus de détails sur cesdéveloppements algorithmiques.

À titre d’exemple, illustrons le calcul de ces formes linéaires sur lePOMDP de l’exemple 5.2.6. Décrivons d’abord les matrices Pa,rg, Pa,vt Pb,rget Pa,vt.

Pa,rg =

14

12 0

14

14 0

12

12 0

Pa,vt =

0 0 14

0 0 12

0 0 0

Pb,rg =

0 12 0

12

14 0

12

12 0

Pb,vt =

0 0 12

0 0 14

0 0 0

Les variables des formes linéaires seront notées x = (x0, x1, x2). Pardéfinition, x · rε = x2. Puisque Z0 est un singleton, Z1 = A. Plus préci-sément, ra = ba + Pa,rg · rε + Pa,vt · rε = Pa,vt · rε = ( 1

4 , 12 , 0) (car les deux

autres termes sont nuls). D’où x · ra =14 x0 +

12 x1. Par un calcul analogue,

x · rb =12 x0 +

14 x1. On déduit aisément que Da = x | x · 1 = 1∧ x0 ≤ x1

et Db = x | x · 1 = 1 ∧ x0 ≥ x1. Soit f ∈ AA×Ω définie par f (a, rg) = a,f (a, vt) = b, f (b, rg) = b, f (a, vt) = a. Alors r f ,a = Pa,rg · rb + Pa,vt · ra =

( 14 , 3

16 , 38 ) + (0, 0, 0). Le calcul de D f ,a est déjà bien plus complexe...

5.2.3 Décidabilité et indécidabilité à horizon infini

Après avoir décrit comment optimiser le comportement d’un POMDPà horizon fini, examinons maintenant les questions d’optimisation à ho-rizon infini. Comme l’analyse des PA l’a illustré, ces questions sont à lafrontière de la décidabilité. Il est donc intéressant d’identifier des critèresde difficulté des problèmes. Un critère naturel consiste à distinguer lesproblèmes quantitatifs dont l’énoncé comporte une valeur de probabilitéou d’espérance arbitraire (e.g. un seuil) et les problèmes qualitatifs dontl’énoncé ne comporte que des probabilités extrêmes (i.e. 0 ou 1). Les pro-blèmes quantitatifs standard des POMDP sont indécidables. Dans le casqualitatif, le critère déterminant est lié à la complexité de la condition degain d’une exécution. Ainsi il est presque immédiat que le problème del’accessibilité d’un état est plus simple que le problème de l’accessibilitérépétée. Ceci peut se formaliser en considérant la hiérarchie qui définit laσ-algèbre des boréliens : l’accessibilité est spécifiée par un ouvert alors quel’accessibilité répétée est spécifiée par une intersection dénombrable d’ou-verts. Une autre critère provient du fait qu’il existe deux valeurs extrêmeset qu’on peut ainsi définir des objectifs multiples vis à vis des seuils deprobabilité. Nous détaillons maintenant les résultats les plus significatifs.

Page 217: Le fichier pdf du livre (EJCIM 2015)

5.2. Processus de décision markoviens partiellement observables 207

Problèmes quantitatifs

Le théorème suivant établit que la plupart des problèmes de décisionrelatifs aux problèmes d’optimisation sont indécidables.

Théorème 5.2.11 ([144]). Soit M un POMDP. Les problèmes suivants sontindécidables.

— Étant donnée une valeur g+, decider si g∗+ > g+.— Étant donnée une valeur vλ, decider si v∗λ > vλ.— Decider s’il existe une stratégie à mémoire finie ν telle que vν

λ = v∗λ.— Pour ε > 0 fixé, et sachant que g∗+ ∈ [0, ε] ] [1− ε, 1],

décider si g∗+ ∈ [0, ε].

L’indécidabilité de ce dernier problème, appelé ε-approximabilité,montre que l’indécidabilité des problèmes quantitatifs est très robuste.

Le seul résultat de calculabilité connu pour les problèmes quantitatifsest une conséquence directe de l’analyse des POMDP à horizon fini et de ladéfinition de la récompense actualisée espérée.

Proposition 5.2.12. SoitM un POMDP, 0 < λ < 1 un facteur d’actualisationet ε > 0. Alors on peut calculer une stratégie à mémoire finie ν telle que :

vνλ ≥ v∗λ − ε

Problèmes qualitatifs

Nous considèrons dans la suite des problèmes qualitatifs. Plus préci-sément, on compare la probabilité maximale de satisfaire une conditionborélienne aux constantes 0 et 1. Afin de spécifier les objectifs considérés,nous empruntons les notations de la logique temporelle linéaire LTL [146].Étant donnéM un POMDP, on s’intéresse aux conditions de gain des typessuivants : accessibilité, sûreté, Büchi et co-Büchi. Commençons donc parintroduire ces objectifs, qui sont toutes définies comme un sous-ensemblede Qω relativement à un sous-ensemble d’états F ⊆ Q.

— La condition d’accessibilité, notée ♦F stipule que F doit être visitéau moins une fois :

♦F = q0q1q2 · · · ∈ Qω | ∃n, qn ∈ F

— La condition de sûreté F est duale de celle d’accessibilité (F =¬♦¬F) :

F = q0q1q2 · · · ∈ Qω | ∀n, qn ∈ F

Page 218: Le fichier pdf du livre (EJCIM 2015)

208 Chapitre 5. Contrôle, probabilités et observation partielle

— La condition de Büchi, notée ♦F requiert que l’ensemble F soitvisité un nombre infini de fois :

♦F = q0q1q2 · · · ∈ Qω | ∀m ∃n ≥ m, qn ∈ F

— Enfin, la condition de co-Büchi, ♦F, est comme son nom l’indiqueduale de celle de Büchi (♦F = ¬♦¬F) :

♦F = q0q1q2 · · · ∈ Qω | ∃m ∀n ≥ m, qn ∈ F

Avant de présenter les résultats concernant les POMDP pour les condi-tions de gain ci-dessus, on énonce un résultat général, dû à Chatterjee etal. [47].

Théorème 5.2.13. SoitM un POMDP avec un espace d’états fini ou dénom-brable et ϕ ⊆ Qω un objectif borélien. Pour toute stratégie ν, il existe une stratégiedéterministe ν′ telle que Prν(M |= ϕ) ≤ Prν′(M |= ϕ).

Ce théorème exprime que, lorsqu’il existe une stratégie (a priori rando-misée) pour un objectif donné avec un seuil de probabilité (par exempleaccessibilité avec probabilité 1), alors il existe une stratégie déterministequi réalise cet objectif avec ce même seuil.

Indécidabilité de problèmes qualitatifs

Théorème 5.2.14. Le problème suivant est indécidable : étant donnés un POMDPM et un sous-ensemble de ses états F ⊆ Q, existe-t-il une stratégie ν assurantPrν(M |= ♦F) > 0 ?

L’indécidabilité peut déjà être établie pour la classe des POMDPaveugles, c’est-à-dire pour lesquels il y a une observation unique, indé-pendante de l’état courant. Il est même suffisant de prouver l’indécidabilitédans les POMDP aveugles restreints aux stratégies déterministes, grâce authéorème 5.2.13. Or, les POMDP aveugles munis d’une condition de Büchiet restreints aux stratégies déterministes (c.-à-d. des mots infinis) ne sontrien d’autre que des PBA. Le théorème 5.2.14 est alors une conséquenceimmédiate du théorème 5.1.31.

Intéressons nous à présent à la réalisation d’objectifs multiples. Oncherche à décider de l’existence d’une stratégie assurant simultanémentune propriété de Büchi presque sûrement et une propriété de sûreté avecprobabilité positive. Au delà de son intérêt purement théorique, ce pro-blème sera motivé par la suite dans le cadre du diagnostic de panne pourles systèmes contrôlables probabilistes.

Page 219: Le fichier pdf du livre (EJCIM 2015)

5.2. Processus de décision markoviens partiellement observables 209

Dans un premier temps, montrons que les stratégies assurant unetelle combinaison d’objectifs peuvent être complexes. Plus précisément, surl’exemple de la figure 5.9, il existe bien une stratégie qui satisfait les deuxobjectifs simultanément, mais aucune stratégie à mémoire finie ne convient.Le POMDP de la figure 5.9 n’a qu’une seule classe d’observation, le joueurest donc aveugle et ne prend ses décisions qu’en fonction du nombred’étapes qui se sont produites. L’ensemble récurrent est F = q2, r2, etl’ensemble sûr est I = q1, q2.

q1q2

r2 r1

1a

1a

1a 1a

12 a

1a

12 a

1a

1a

FIGURE 5.9 – Un exemple nécessitant une mémoire infinie.

Commençons par définir une stratégie, à mémoire infinie, qui ga-rantit à la fois de visiter F infiniment souvent avec probabilité 1 et derester dans I avec probabilité positive. Cette stratégie est déterministeet peut donc être décrite par un mot infini : w = aak1 aak2 aak3 · · · oùk = (ki)i∈N>0 est une suite d’entiers naturels strictement positifs tels quepk = ∏i>0(1− 2−ki) > 0. Sous cette stratégie, la probabilité de rester dansla partie sûre est strictement positive, puisque c’est précisément pk. De plus,jouer infiniment souvent l’action a garantit de visiter infiniment souvent Fpresque sûrement.

Justifions maintenant que toute stratégie à mémoire finie échoue àsatisfaire les deux objectifs simultanément. Soit ν une stratégie à mémoirefinie. Puisque le POMDP est aveugle, ν est en fait une suite ultimementpériodique de distributions d’actions : ν = δ1 · · · δn−1(δn · · · δm)ω avecδi ∈ Dist(a, a) pour i ∈ 1, · · · , m (où Dist(E) est l’ensemble des dis-tributions à support dans E). Afin de satisfaire l’objectif de Büchi ♦Fpresque sûrement, l’action a doit être jouée infiniment souvent, avec pro-babilité 1. On en déduit qu’il existe i ∈ n, · · · , m telle que δi[a] = p > 0.Mais après n+(k+ 1)m actions, la probabilité de rester dans I est inférieureou égale à (1− p

2m−n )k. Par conséquent, la probabilité de rester toujours dans

Page 220: Le fichier pdf du livre (EJCIM 2015)

210 Chapitre 5. Contrôle, probabilités et observation partielle

I est nulle. La combinaison des deux objectifs n’est donc pas réalisable parune stratégie à mémoire finie.

En s’appuyant sur cet exemple on établit le théorème suivant a priorisurprenant, puisque indépendamment, les problèmes d’existence d’unestratégie assurant une condition de Büchi presque sûrement ou une condi-tion de sûreté positivement, sont décidables pour les POMDP (voir plusloin le théorème 5.2.18 et la proposition 5.2.17). Cependant, imposer qu’unemême stratégie satisfasse les deux conditions mène à un problème indéci-dable.

Théorème 5.2.15 ([21]). Le problème suivant est indécidable : étant donnés unPOMDPM et deux sous-ensembles de ses états F, I ⊆ Q, existe-t-il une stratégieν telle que Prν(M |= ♦F) = 1 et Prν(M |= I) > 0 ?

ti

f

s

π0[i]

qb

paM

r1r2

t1i1

f1

s1

π0[i]t2i2

f2

s2

t3i3

f3

s3

M′

1a+1b

1a+1b

qb

qb qb

pa

pa

pa

1b

1a

1a+1b

1a+1b1b

1a

qb

pa

FIGURE 5.10 – Réduction pour le théorème 5.2.15.

Démonstration. On réduit le problème d’existence d’une stratégie assurantun objectif de Büchi avec probabilité positive dans un POMDP aveugle. Laréduction est inspirée de l’exemple présenté en figure 5.9 et est illustrée enfigure 5.10.

M est un POMDP aveugle d’ensemble d’actions a, b et pour lequell’ensemble à visiter infiniment souvent est F (avec f ∈ F). À partir deM,

Page 221: Le fichier pdf du livre (EJCIM 2015)

5.2. Processus de décision markoviens partiellement observables 211

on construit le POMDP aveugleM′ en dupliquant l’ensemble des actionsen a, b, a, b, et en utilisant trois copies deM (dont les sous-ensemblesd’états sont notés Q1, Q2, Q3) et deux états supplémentaires r1, r2. DansM′,l’ensemble récurrent est constitué de la deuxième copie deM (à gauche),ainsi que de l’état r2, et est représenté par les états entourés deux fois ;l’ensemble I sûr regroupe tous les états non grisés, c’est-à-dire, tous sauf r1et r2. Le passage de la première copie (à droite) à la deuxième se fait parles actions α pour α ∈ A. Ces mêmes actions, depuis les autres copies fontquitter la zone sûre, en menant à l’état r2. Depuis un état qui était récurrentpourM dans la deuxième et la troisième copies (ici f2, f3), les actions a etb permettent de retourner à la première copie. Depuis un état qui n’étaitpas récurrent pour M dans la deuxième copie (ici s2), les actions a et bconduisent à la troisième copie. Enfin, dans la zone non sûre, les actions aet b mènent à r1, tandis que les a et b ont pour destination r2.

Nous observons d’abord les faits suivants. Une séquence infinie deM′

visite infiniment souvent F′ si et seulement si a, b apparaît infinimentsouvent. Cette séquence ne visite jamais r1, r2 si lorsque ces actionsapparaissent, l’état courant appartient à la première copie. Enfin on rejointla première copie depuis les autres copies uniquement par une action a, bà partir d’une copie d’un état de F.

Supposons qu’il existe une stratégie ν dans M telle que Prν(M |=♦F) = p > 0. Cette stratégie peut être choisie déterministe. Par consé-quent, elle est décrite par un mot infini w = w1 . . . wn . . . Choisissonsune suite infinie (β j)j∈N avec 0 < β j < 1 telle que ∏j≥0 β j > 0. Nousconstruisons itérativement une séquence infinie strictement croissante d’en-tiers (nj)j∈N comme suit. On pose n0 = 0, et si n0, . . . , nj ont été définis,nj+1 > nj est le plus petit entier qui satisfait :

Prν(M |= ♦[nj+1,nj+1]F | M |=

i∧k=0

♦[nk+1,nk+1]F ∧♦F)≥ β j ,

où la notation ♦[m,M]F signifie que F est visité entre les instants m et M. Enraison de la propriété de ν, et de l’hypothèse de récurrence, la probabilitéconditionnelle est bien définie, et elle tend vers 1 lorsque nj+1 tend versl’infini. Ainsi nj+1 est bien définie. Par construction :

Prν(M |=

∧j≥0

♦[nj+1,nj+1]F)≥ p ∏

j≥0β j > 0 .

Définissons la stratégie déterministe ν′ décrite par w′ = w′1 . . . w′n . . . dansM′. A un instant k différent de tout nj, w′k = wk et pour tout nj, w′nj

= wnj .

Page 222: Le fichier pdf du livre (EJCIM 2015)

212 Chapitre 5. Contrôle, probabilités et observation partielle

Puisque a, b est sélectionné infiniment souvent, F′ est visité infinimentsouvent par toute exécution engendrée par ν′. De plus la probabilité quepour tout j, à l’instant nj l’état courant soit dans Q1, est au moins égaleà p ∏j≥0 β j. Par conséquent, avec au moins cette probabilité, la séquencealéatoire dansM′ engendrée par ν restera toujours dans Q1 ∪Q2 ∪Q3. ν′

atteint donc les objectifs du théorème.Supposons maintenant qu’il existe ν′ une stratégie deM′ qui atteint

les objectifs du théorème. Puisque M′ est aveugle, ν′ correspond à uneséquence de distributions δ′1, δ′2, . . . avec δ′i ∈ Dist(a, b, a, b). Alors ν estune stratégie aléatoire définie par δ1, δ2, . . . avec δi[α] = δ′i [α] + δ′i [α] pourα ∈ a, b. Considérons l’ensemble des séquences deM′ qui visitent infini-ment souvent F′ et jamais r1, r2. Cet ensemble a une probabilité positivesous la stratégie ν′. Si on « projette » l’ensemble de ces séquences en oubliantla copie et le surlignement, alors l’ensemble obtenu a même probabilitédansM sous la stratégie ν et il visite infiniment souvent F.

Décidabilité de problèmes qualitatifs

Commençons par quelques résultats relativement faciles.

Proposition 5.2.16. Le problème suivant est NLOGSPACE-complet : étant don-nés un POMDP M et un sous-ensemble de ses états F ⊆ Q, existe-t-il unestratégie ν assurant Prν(M |= ♦F) > 0 ?

Démonstration. La preuve se base sur le fait que l’existence d’une stratégieassurant Prν(M |= ♦F) > 0 est équivalente à l’existence d’un cheminmenant d’un état initial à un état cible. L’existence d’un tel chemin estclairement une condition nécessaire. C’est également une condition suffi-sante, car alors la simple stratégie qui consiste à jouer à chaque étape unedistribution uniforme sur toutes les actions du POMDP assigne à ce cheminune probabilité non nulle.

Pour ce qui concerne les objectifs de sûreté, on a :

Proposition 5.2.17. Les problèmes suivants sont EXPTIME-complets : étantdonnés un POMDPM et un sous-ensemble de ses états F ⊆ Q

— existe-t-il une stratégie ν assurant Prν(M |= F) = 1 ?— existe-t-il une stratégie ν assurant Prν(M |= F) > 0 ?

Démonstration. Considérons tout d’abord le cas d’une condition de sûretéavec probabilité 1. Pour cela, on construit le jeu à deux joueurs à observationparfaite associé à un POMDP (et à un ensemble d’états F) en utilisant lescroyances déduites des observations. Étant donnés M = (Q, Ω, A, o, p)

Page 223: Le fichier pdf du livre (EJCIM 2015)

5.2. Processus de décision markoviens partiellement observables 213

et F ⊆ Q, on définit le jeu à deux joueurs et sous observation parfaiteGM = (C, A, ∆) où C = 2Q \ ∅ est l’ensemble des croyances possibles.Pour c ∈ C une croyance et a ∈ A une action, on note Post(c, A) = q′ ∈Q | ∃q ∈ c, p(q′|q, a) > 0. La relation de transition ∆ ⊆ C × A × Csatisfait alors (c1, a, c2) ∈ ∆ s’il existe une observation o ∈ Ω telle quec2 = Post(c1, a) ∩ o. Le jeu se déroule de la façon suivante : depuis unétat c1 ∈ C, le premier joueur choisit une action a ∈ A, et son adversairechoisit un successeur c2 tel que (c1, a, c2) ∈ ∆. L’objectif de sûreté F dansle POMDP est transformé en un objectif de sûreté F dans le jeu à deuxjoueurs, avec F = c ∈ C | c ⊆ F.Cette construction fondée sur les croyances déduites des observationsassure qu’il existe une stratégie ν dansM telle que Prν(M |= F) = 1depuis la distribution initiale π0 si et seulement si le premier joueur aune stratégie dans GM depuis q | π0(q) > 0 qui garantit F quels quesoient les choix de son adversaire. Les jeux de sûreté à deux joueurs etsous observation parfaite sont résolubles en temps polynomial (cf, parexemple [104]). Par conséquent, le problème de l’existence d’une stratégieassurant Prν(M |= F) = 1 est dans EXPTIME.La borne inférieure de complexité est obtenue en observant que les jeux desûreté partiellement observables sont EXPTIME-difficiles [23].

Venons en à présent aux conditions de sûreté avec probabilité positive.Pour cela, montrons que l’on peut utiliser le cas précédent comme sous-routine. Plus précisément, il existe une stratégie ν assurant Prν(M |=F) > 0 dansM depuis π0 si et seulement si il existe un état q tel que (a) ilexiste une stratégie ν1 depuis π0 assurant Prν1

(M |= F Until q) > 0, et (b)il existe une stratégie ν2 depuis q assurant Prν2

(M |= F) = 1. La formuleF Until q est satisfaite par les séquences telles que F reste vrai jusqu’à ceque q le devienne.

L’implication de droite à gauche est claire : il suffit de combiner ν1 et ν2

pour construire une stratégie assurant l’objectif de sûreté avec probabilité 1.On bascule de ν1 dès qu’on atteint une croyance contenant q.

Détaillons donc l’autre implication, et montrons même que l’on peutprendre ν1 = ν. Sans perte de généralité on suppose que les états hors de Fsont absorbants. On raisonne alors par l’absurde en supposant que pourtout état q atteint avec probabilité positive depuis q0 sous ν, il n’existe pasde stratégie νq depuis q telle que Prνq

(M |= F) = 1. En particulier, pourN = |Q|, on peut borner, indépendamment de q et de νq, la probabilité derester dans F pendant N étapes par une constante 1− γN , où γ est la pluspetite valeur de probabilité qui apparaît dans le POMDPM. La probabilitéde rester dans F pendant kN étapes sous ν est donc bornée par (1− νN)k,

Page 224: Le fichier pdf du livre (EJCIM 2015)

214 Chapitre 5. Contrôle, probabilités et observation partielle

qui tend vers 0 lorsque k ∈ N croît, ce qui contredit le fait que ν gagnepositivement l’objectif de sûreté.

Pour décider si depuis la distribution initiale π0 il existe une stratégieν assurant Prν(M |= F) > 0, on procède donc de la façon suivante : oncommence par calculer l’ensemble Win=1 des états q ∈ Q tels que depuis qil existe une stratégie réalisant l’objectif de sûretéF avec probabilité 1. Ondécide ensuite si depuis π0, il existe une stratégie qui permet d’atteindreWin=1 avec probabilité positive tout en restant dans F. Puisque que l’on asupposé que l’ensemble Q \ F est absorbant, pour cette deuxième étape, ilsuffit de vérifier que Win=1 est accessible depuis l’état initial, comme expli-qué dans la preuve de la proposition 5.2.16. Ces deux étapes fournissentun algorithme EXPTIME pour décider si depuis q0 il existe une stratégie νtelle que Prν(M |= F) > 0.Pour prouver la borne inférieure, on peut réduire le problème d’acceptationpar une machine de Turing alternante en espace polynomial [48].

Intéressons nous pour terminer à la question de l’existence d’unestratégie assurant un objectif de Büchi presque sûrement.

Théorème 5.2.18. Le problème suivant est EXPTIME-complet : étant donnés unPOMDPM et un sous-ensemble de ses états F ⊆ Q, existe-t-il une stratégie νassurant Prν(M |= ♦F) = 1 ?

Démonstration. De façon similaire à la preuve de la proposition 5.2.17, onconsidère l’automate des croyances associé à un POMDP. Pour M =(Q, Ω, A, o, p), on construit AM = (C, A×Ω, ∆) tel que C = 2Q est l’en-semble des croyances possibles (∅ est introduit pour faciliter la spécifica-tion de la procédure), et la relation de transition ∆ ⊆ C× (A×Ω)× C estdéterministe et définie par :

∆(c, (a, o)) =⋃q∈cq′ ∈ Q | p(q, a, q′) > 0 ∩ o.

Dans ce qui suit, pour simplifier les notations, ∆(c, (a1, o1) · · · (an, on))désigne l’application successive de la fonction de transition, c’est-à-dire∆(· · ·∆(c, (a1, o1)), · · · (an, on)).

En utilisant l’automate des croyances, on calcule l’ensemble Win descroyances gagnantes, c’est-à-dire l’ensemble des supports de distributionsdepuis lesquels il existe une stratégie assurant l’objectif de Büchi presquesûrement. Notons que cet ensemble est bien défini : pour deux distribu-tions ayant même support, une stratégie commune est gagnante presquesûrement (resp. positivement) depuis les deux ou depuis aucune. En effet :Prν

π0(M |= ϕ) = ∑q∈Q π0(q) · Prν

q(M |= ϕ). L’ensemble Win est défini

Page 225: Le fichier pdf du livre (EJCIM 2015)

5.2. Processus de décision markoviens partiellement observables 215

comme un plus grand point fixe, en partant de Win0 = C, et en calculantWini+1 à partir de Wini comme suit :

Wini+1 = c ∈ Wini | ∃(a1, o1) · · · (an, on), ∅ 6= ∆(c, (a1, o1), · · · (an, on)) ⊆ F

et ∀k, ∀o′k , ∆(c, (a1, o1), · · · (ak , o′k)) ∈ Wini.

On se convainc assez facilement que si depuis une distribution initiale,il existe une stratégie gagnante, alors son support appartient au point fixeWin. Clairement, l’existence d’un chemin γc menant de c à F est nécessairepour pouvoir atteindre F presque sûrement. De plus, quelles que soient lesobservations qui font dévier γc, depuis la distribution obtenue, la stratégiedoit à nouveau permettre de satisfaire l’objectif de Büchi presque sûrement.

Définissons une stratégie ν, qui assure Prν(M |= ♦F) = 1 depuisn’importe quelle distribution initiale ayant pour support une croyancede Win. Cette stratégie ne dépend pas des distributions précises, maisseulement de leur support. À partir de c ∈ Win, idéalement, la stratégiecherche à réaliser le chemin γc = c

a1 ,o1−−→ · · · an ,on−−→ qui mène à F. La stratégiepossède autant de « modes » qu’il y a de croyances dans Win, et dans lemode correspondant à c, elle cherche à réaliser γc. Depuis c, la premièredécision est donc de jouer a1, et si l’observation est o1, de continuer avec a2,etc. tant que les observations sont conformes à celles décrites par le cheminmenant à F. Si, à l’étape k, l’observation est o′k au lieu de l’observationattendue ok, par définition du point fixe, la nouvelle croyance c′ est toujoursdans Win. La stratégie passe donc dans le mode correspondant à c′, etcherche à atteindre F par γc′ , le chemin associé à c′.

Le tableau qui suit récapitule les résultats de complexité dans lesPOMDP pour les différentes questions qualitatives, selon l’objectif consi-déré.

Accessibilité Sûreté Büchi co-BüchiPr > 0 NLOGSPACE-c. EXPTIME-c. indécidable EXPTIME-c.Pr = 1 EXPTIME-c. EXPTIME-c. EXPTIME-c. indécidable

FIGURE 5.11 – Complexité des problèmes qualitatifs pour les POMDP.

Application au diagnostic de panne

Comme application des problèmes théoriques sur les POMDP étudiésdans cette section, nous présentons maintenant le diagnostic de panne.

Page 226: Le fichier pdf du livre (EJCIM 2015)

216 Chapitre 5. Contrôle, probabilités et observation partielle

En théorie du contrôle, le diagnostic consiste à détecter l’occurrence defautes dans des systèmes partiellement observables. Plus précisément, nousconsidérons un système sujet aux pannes, et qu’un utilisateur extérieurpeut observer, au moins de façon partielle, et qu’il cherche à contrôler pourpouvoir détecter les fautes. Pour cela, partons d’un modèle probabiliste desystème à événement discret, dans lequel certains événements sont obser-vables, d’autres non, et certains événements sont contrôlables et d’autresnon.

Définition 5.2.19. Un système probabiliste à événement discret S = (S, s0, E , ∆)est défini par la donnée de S un ensemble fini d’états dont s0 ∈ S l’état initial, Eun ensemble d’événements et ∆ : S× E × S→ [0, 1] une fonction de transitionprobabiliste telle que : pour tout s ∈ S, ∑a∈E , s′∈S p(s, a, s′) = 1.

Remarquons que les probabilités sortantes d’un état ont pour somme 1.Autrement dit, un système probabiliste à événement discret est une DTMClorsqu’on oublie les actions.

Afin de spécifier le problème de diagnostic de panne, l’ensemble desévénements E , est partitionné de deux façons : entre les événements obser-vables et inobservables E = Eo t Eno et entre les événements contrôlableset incontrôlables E = Ec t Enc avec Eno ⊆ Enc. De plus E contient un événe-ment inobservable particulier, f ∈ Eno qui désigne la faute (ou erreur, oupanne).

L’utilisateur du système n’observe que partiellement son comporte-ment : étant donnée une exécution, il ne perçoit que la suite des événementsobservables qui la compose. On dit qu’une telle suite d’observations estsûrement fautive si toutes les exécutions du système qui peuvent la générercontiennent l’événement fautif f. Symétriquement, elle est sûrement correctesi toutes les exécutions qui la génèrent ne contiennent pas f. Dans les autrescas, elle est dite ambiguë.

Le problème de contrôle afin d’assurer la diagnosticabilité du systèmeest intuitivement le suivant : peut-on dynamiquement interdire certainsévénements contrôlables, de façon à ce que les exécutions d’observationambiguë soient de mesure nulle. De plus le contrôle ne doit pas bloquerle système : autrement dit depuis tout état, au moins une transition restefranchissable.

La figure 5.12 représente un exemple de système probabiliste à événe-ment discret, pour lequel Ec = Eo = a, b, c, d, e, et Enc = Eno = f, u. Surcet exemple, adcbω est une suite d’observations sûrement fautive, acbω estsûrement correcte, tandis que aadcbω est ambiguë puisqu’elle correspond àune exécution fautive et une exécution correcte ayant respectivement pour

préfixes s0f−→ s1

a−→ s2a−→ s2 et s0

u−→ s3a−→ s4

a−→ s2.

Page 227: Le fichier pdf du livre (EJCIM 2015)

5.2. Processus de décision markoviens partiellement observables 217

s0

s1 s2

s3 s4 s5

12 f

12 u

1a

1a

13 d1

4 a

14 c

13 a+ 1

3 b

12 b 1b

FIGURE 5.12 – Un système probabiliste à événement discret.

Les stratégies du contrôleur pour le problème de diagnostic probabi-liste prennent la forme suivante : pour chaque suite finie d’événementsobservables, un choix est fait sur l’ensemble des événements contrôlablesautorisés. Ce choix pouvant être « randomisé », formellement, une stratégieest une fonction ν : E∗o → Dist(Ec).

Sur notre exemple, une stratégie possible de contrôle, particulièrementsimple et non randomisée, est la suivante : ν(ε) = Ec, et ν(av) = Ec \ apout tout v ∈ E∗o . Cette stratégie interdit donc l’occurrence de l’événementa, sauf la toute première. Ainsi, elle exclut l’observation ambiguë aadcbω

discutée plus haut. La seule observation ambiguë restante dans ce systèmecontrôlé est abω, et elle correspond à un ensemble d’exécutions de proba-bilité nulle. Remarquons que cette stratégie n’introduit pas non plus deblocage.

Le contrôle pour le diagnostic probabiliste a de fortes ressemblancesavec les problèmes que l’on a étudiés pour les POMDP. En effet, dans lesdeux cas, le modèle est probabiliste, et un utilisateur partiellement informécherche à contrôler le système pour assurer un objectif donné. Reformulerle diagnostic probabiliste pour les systèmes à événements discrets, en unproblème de décision décidable sur les POMDP, soulève plusieurs difficul-tés. Tout d’abord, dans le cadre du diagnostic, le contrôleur a la possibilitéd’interdire des événements, alors que dans un POMDP, la stratégie choi-sit quelle action effectuer. De plus, pour ce qui concerne le diagnostic, lecontrôleur observe certains événements (précisément ceux qui sont obser-vables) alors que dans un POMDP l’information est liée aux états visités. Lapremière difficulté est levée en définissant comme actions du POMDP lessous-ensembles d’événements qui comprennent tous les événements noncontrôlables. Pour s’affranchir de la seconde difficulté, on s’appuie sur un

Page 228: Le fichier pdf du livre (EJCIM 2015)

218 Chapitre 5. Contrôle, probabilités et observation partielle

automate déterministe avec condition d’acceptation de Büchi, qui reconnaîtexactement les séquences observables non ambiguës [109]. Enfin une troi-sième difficulté vient du fait que le contrôleur ne reprend la main qu’aprèsun événement observable. Aussi, une transition du POMDPcorrespond àune séquence d’événements inobservables suivis d’un événement obser-vable.

Sans détailler sa correction, nous présentons brièvement la structure decet automate déterministe de Büchi BS associé à un PLTS S . Ses états sontdes triplets (U, V, W) de sous-ensembles d’états de S , tels que U ∪V ∪W 6=∅ et V ∩W = ∅. L’alphabet est Eo, de manière à ce que cet automatereconnaisse des séquences observables. Intuitivement, si une séquencev ∈ E∗o mène à un état (U, V, W), la composante U représente l’ensembledes états accessibles par une exécution correcte d’observation v, tandisque V ∪W est l’ensemble des états accessibles par une séquence fautived’observation v. De plus, W contient les états correspondant à des fautesdont les plus anciennes, alors que V fait office de « salle d’attente » pourdes fautes plus récentes. Les séquences observables menant à (U, V, W)avec U 6= ∅ et V ∪W 6= ∅ sont donc ambiguës, et l’automate cherched’abord à résoudre l’ambiguïté entre U et W, puis celle posée par les fautesplus récentes (et donc stockées dans V). L’ensemble des états acceptants deBS est formé de ceux tels que U = ∅ ou W = ∅, qui correspondent doncrespectivement à des séquences nécessairement fautives, ou des séquencesdont l’ambiguïté la plus ancienne a été levée.

En construisant une forme de produit du PLTS S avec l’automatedéterministe BS , on obtient un POMDP MS dont on note Desamb l’en-semble des états dont la deuxième composante est un état acceptant deBS (c’est-à-dire pour lesquels l’une au moins des composantes U ou W estvide).

Proposition 5.2.20. S est activement diagnosticable si et seulement si il existeune stratégie ν dansMS telle que Prν(MS |= ♦Desamb) = 1

En utilisant le théorème 5.2.18, on en déduit un algorithme de décisionpour le problème de diagnostic actif probabiliste. On peut même établir lacomplexité exacte de ce problème :

Théorème 5.2.21. Le problème de contrôle pour le diagnostic de systèmes proba-bilistes à événements discrets est EXPTIME-complet.

La borne supérieure en EXPTIME peut paraître surprenante. En effet,MS est un POMDP de taille exponentielle en la taille de S , et l’algorithmede résolution pour une condition de Büchi presque sûre dans les POMDPest en EXPTIME, puisqu’il repose sur la construction de l’ensemble des

Page 229: Le fichier pdf du livre (EJCIM 2015)

5.3. Jeux stochastiques à signaux 219

croyances. Cependant, dans le POMDP MS que nous considérons, lescroyances du système S sont déjà présentes dans l’état ((U, V, W), s) sousla forme U ∪ V ∪W. Ainsi, la deuxième exponentielle lors de la résolu-tion du POMDP peut être évitée, et le problème du diagnostic actif restedans EXPTIME. Pour la borne inférieure, on peut réduire la résolution dejeux de sûreté partiellement observables qui est un problème EXPTIME-difficile [23].

Une façon de contrôler un système pour qu’il soit diagnosticable, estde forcer (presque sûrement) l’occurrence d’une faute. On peut alors mêmeprédire qu’une faute aura lieu avant qu’elle se produise. Évidemment,un tel contrôleur présente peu d’intérêt et il est pertinent de raffiner leproblème de contrôle pour le diagnostic en diagnostic actif sauf : existe-t-ilune stratégie qui assure que le système soit à la fois presque sûrementdiagnosticable, et non fautif avec probabilité positive ? En utilisant la mêmeapproche que pour le diagnostic actif, on peut reformuler le problème dudiagnostic actif sauf pour S en l’existence d’une stratégie dans le POMDPMS qui garantisse en même temps un objectif de Büchi avec probabilité1 et un objectif de sûreté avec probabilité positive. L’objectif de Büchi estcomme avant ♦Desamb, tandis que l’objectif de sûreté est Correct oùCorrect correspond aux états (q, (U, V, W)) de MS tels que V ∪W = ∅.Malheureusement, le problème auquel on se réduit est indécidable, commeon l’a vu avec le théorème 5.2.15. En outre, en adaptant la preuve de cethéorème, on peut montrer que le problème de diagnostic actif sauf pourles systèmes probabilistes est indécidable [21]. Cependant en se limitantaux stratégies à mémoire finie (une condition nécessaire pour implémenterun contrôleur) ce problème devient EXPTIME-complet.

5.3 Jeux stochastiques à signaux

5.3.1 Présentation

Afin de généraliser le modèle des POMDP étudié dans la section pré-cédente, on s’intéresse maintenant aux jeux stochastiques à signaux, un mo-dèle courant en théorie des jeux pour les interactions à deux joueurs dansun environnement probabiliste et partiellement observable [187, 168, 166].De façon analogue au cas des POMDP, les joueurs ne peuvent pas observerl’état courant du jeu : leur seule source d’information est la suite de signauxqu’ils recoivent au long la partie. À la différence des observations dans lesPOMDP, on suppose ici que les signaux ne dépendent pas uniquementde l’état courant, mais peuvent dépendre de l’action, et peuvent mêmevarier pour une action et un état cible fixés. Illustrons la notion de jeux

Page 230: Le fichier pdf du livre (EJCIM 2015)

220 Chapitre 5. Contrôle, probabilités et observation partielle

stochastiques à signaux par un premier exemple, à un seul joueur, pour sefamiliariser avec le modèle et comprendre en quoi les signaux diffèrent desobservations dans les POMDP.

Exemple 5.3.1 (Exemple de jeu stochastique à signaux à un joueur).

q1 q2

t

s

g1,⊥,1 g2 ,⊥,1

g2 ,⊥,1 g1,⊥,1

?,⊥,1

?,⊥,1

a,α,1/2

a,⊥,1/2

a,β,1/2

a,⊥,1/2

FIGURE 5.13 – Un exemple de jeu stochastique à signaux à un joueur.

La figure 5.13 présente un exemple de jeu stochastique à un joueur, informépar des signaux. L’ensemble des signaux est α, β,⊥, et les actions possibles sonta, g1 et g2. La transition de q1 à q1 étiquetée par a, α, 1/2 signifie que depuis q1,si le joueur choisit l’action a, il recevra le signal α, et le nouvel état sera q1 avecprobabilité 1/2. La notation ? représente n’importe quelle action. Le jeu commenceavec probabilité uniforme dans chacun des états q1 et q2, et l’objectif est d’atteindrel’état t. Pour cela, le joueur doit deviner correctement l’état initial : si le jeu acommencé en qi, alors gi lui permet d’atteindre t. Afin de faire son choix de façonsûre, il peut auparavant jouer l’action a jusqu’à ce que, presque sûrement, il recoivele signal α ou β, permettant de déterminer si le jeu se trouve dans l’état q1 ouq2. Dans ce jeu, l’unique joueur a donc une stratégie pour atteindre l’état t avecprobabilité 1. Observez que même à un joueur, le modèle des jeux stochastiquesà signaux généralise celui des POMDP, puisque, le signal reçu ne dépend pasuniquement de l’état, ni même de l’action et de l’état, mais aussi de la transitionelle-même.

Venons en maintenant à la définition de jeux stochastiques à deuxjoueurs à signaux.

Définition 5.3.2. Un jeu stochastique à deux joueurs à signaux est un tuple(Q, δ0, I, J, C, D, ∆) où Q est un ensemble fini d’états, δ0 ∈ Dist(Q) une distri-bution initiale, I (resp. J) est l’ensemble des actions du joueur 1 (resp. du joueur2), C (resp. D) est l’ensemble des signaux du joueur 1 (resp. du joueur 2), et∆ : Q× I × J → Dist(Q× C× D) est la fonction de transition.

Page 231: Le fichier pdf du livre (EJCIM 2015)

5.3. Jeux stochastiques à signaux 221

La sémantique d’un jeu stochastique à signaux est la suivante : ini-tialement, le jeu commence dans l’état q0, avec probabilité δ0(q0) ; puis, àchaque étape n ∈N, chacun des joueurs choisit une action in ∈ I et jn ∈ J.Ils recoivent respectivement les signaux cn ∈ C et dn ∈ D, et le nouvelétat du jeu est qn+1. Ceci arrive avec probabilité ∆(qn+1, cn, dn|qn, in, jn),donnée par la fonction de transition ∆. Une partie est une suite finieou infinie q0, i0, j0, c1, d1, q1, . . . , cn, dn, qn · · · , telle que, pour tout m ≥ 0,∆(qm+1, cm+1, dm+1|qm, im, jm) > 0.

Dans les jeux stochastiques à signaux, comme pour l’étude qualitativedes POMDP, les conditions de gain sont des sous-ensembles de Qω. On seconcentrera ici sur des objectifs définis par les conditions d’accessibilité, deBüchi, et de leurs conditions duales respectives, sûreté et co-Büchi.

Les deux joueurs prennent leurs décisions en fonction de la suite dessignaux qu’ils ont reçue jusqu’alors. Une stratégie est donc une fonctionassociant à chaque suite finie de signaux privés, une distribution de pro-babilité sur les actions. Formellement, une stratégie du joueur 1 est unefonction σ : C∗ → Dist(I). Quand le joueur 1 a reçu les signaux c1, . . . , cn iljoue donc l’action i avec probabilité σ(c1, . . . , cn)(i). La notion de stratégieτ : D∗ → Dist(J) pour le joueur 2 est définie de façon symétrique. Un profilde stratégies, c’est-à-dire une stratégie pour chacun des joueurs, définit unemesure de probabilité sur l’ensemble des parties, et après projection, unemesure de probabilité sur l’ensemble des séquences de Qω, notée Prσ,τ.

Étant donnée une condition de gain V ⊆ Qω, on dit qu’une stratégie σpour le joueur 1 est presque sûrement gagnante si quelle que soit la stratégieτ que choisit le joueur 2, Prσ,τ(V) = 1. Similairement, σ est positivementgagnante si quelle que soit la stratégie τ du joueur 2, Prσ,τ(V) > 0. Parextension, on dira qu’une distribution est presque sûrement gagnante(resp. positivement gagnante), si le joueur 1 possède une stratégie presquesûrement (resp. positivement) gagnante depuis cette distribution initiale.De la même façon que pour les POMDP, le fait que le joueur 1 possèdeune stratégie gagnante (que ce soit presque sûrement, ou positivement)ne dépend que du support de la distribution initiale. Ainsi, on parleraégalement de support presque sûrement ou positivement gagnant.

Exemple 5.3.3 (Exemple de jeu stochastique à signaux à deux joueurs).Un nouvel exemple de jeu stochastique à signaux, à deux joueurs, est donné enfigure 5.14. Les transitions sont étiquetées par des triplets : le premier élémentcorrespond aux actions choisies par chacun des joueurs, le deuxième élémentdécrit les signaux qu’ils reçoivent, et le dernier élément est la probabilité de cettetransition.

Le jeu commence dans l’état q0, et chacun des joueurs choisit pile (p) ou face

Page 232: Le fichier pdf du livre (EJCIM 2015)

222 Chapitre 5. Contrôle, probabilités et observation partielle

q1 t

q=

q0

q 6=

pp,⊥α,1f f ,⊥α,1

f p,⊥β,1 p f ,⊥β,1

?g=,⊥⊥,1

?g6= ,⊥⊥,1

f f ,⊥γ,1pp,⊥γ,1

f p,⊥δ,1p f ,⊥δ,1

?g6= ,⊥⊥,1

?g=,⊥⊥,1

FIGURE 5.14 – Un exemple de jeu stochastique à signaux à deux joueurs.

( f ). Le nouvel état est q= ou q 6=, selon qu’ils font le même choix ou non. Depuisq1, l’évolution est la même, à la différence près que les signaux reçus par le joueur2 sont a priori différents. Le joueur 1 est aveugle (il reçoit tout le temps le mêmesignal) et ne peut que compter les étapes. L’objectif du joueur 1 est d’atteindre lacible t, et cela arrive lorsque le joueur 2 ne devine pas correctement : soit il joue g 6=dans l’état q=, soit il joue g= dans l’état q 6=. Nous allons voir qu’en fonction dessignaux du joueur 2, le jeu peut être presque sûrement gagnant pour le joueur 1,gagnant avec probabilité positive, ou même perdant.Dans un premier temps, supposons que tous les signaux α, β, γ et δ sont différents.Le joueur 2 connaît alors toujours la position réelle du jeu, et peut choisir enconséquence q= ou q 6= pour éviter t. Il a donc une stratégie qui garantit d’éviter t,et le joueur 1 gagne avec probabilité 0.Supposons maintenant que α = β, mais γ 6= δ. Intuitivement, à la première étape,le joueur 2 ne peut pas distinguer si le jeu se trouve dans l’état q= ou q 6=. Puis,lorsque le jeu atteint q1, le joueur 2 peut éviter d’atteindre t quoi que fasse le joueur1. Pour chacun des joueurs, à la première étape, le meilleure stratégie est de joueruniformément pile ou face. Ainsi, dans ce cas, le joueur 1 gagne avec probabilité1/2.Supposons enfin que α = β et γ = δ, et donc que le joueur 2 ne puisse jamaissavoir si le jeu se trouve en q= ou q 6=. La meilleure stratégie pour le joueur 1 est detoujours jouer uniformément pile ou face. Sous cette stratégie aléatoire, et quoi quefasse le joueur 2, toutes les deux étapes, la probabilité est 1/2 d’atteindre t. Ainsi,le joueur 1 gagne presque sûrement.

Pour terminer cette introduction aux jeux stochastiques à signaux, ondéfinit la notion de croyance, qui représente l’information qu’un joueur ade la position actuelle du jeu, et que l’on a déjà introduite pour les POMDP.

Page 233: Le fichier pdf du livre (EJCIM 2015)

5.3. Jeux stochastiques à signaux 223

Étant donné un jeu (Q, δ0, I, J, C, D, ∆), initialement, la croyance du joueur1, et du joueur 2 est Supp(δ0). Supposons qu’à une étape du jeu, la croyancedu joueur 1 est c1. S’il choisit de jouer i ∈ I et qu’il reçoit le signal c ∈ C, sacroyance est mise à jour en c′1, définie par :

c′1 = q′ ∈ Q | ∃q ∈ c1 ∃j ∈ J ∃d ∈ D, ∆(q′, c, d|q, i, j) > 0.

La mise à jour des croyances pour le joueur 2 est définie de façon tout à faitsymétrique.

5.3.2 Caractère déterminé

Considérons un jeu dont l’arène est une séquence infinie d’états qui vé-rifient ou pas une propriété F. Le joueur 1 choisit un état de la séquence puisle joueur 2 choisit un état ultérieur de la séquence. Le joueur 1 (respective-ment 2) gagne si l’état choisi par le second joueur ne satisfait pas F. L’issued’une partie est fixée par les choix (i.e. les stratégies) des deux joueurs. Onnote valj(νj, νj) ∈ 0, 1 le résultat du joueur j ∈ 1, 2 avec adversaire jlorsque j (respectivement j) choisit comme stratégie νj (respectivement νj).Dans un jeu de ce type, valj(νj, νj) = 1− valj(νj, νj). Une stratégie νj estgagnante si pour toute stratégie νj de l’adversaire valj(νj, νj) = 1. Il ne peuty avoir simultanément une stratégie gagnante pour les deux joueurs.

Le jeu est déterminé si l’un des deux joueurs a une stratégie gagnante.Un résultat fondamental de la théorie des jeux énonce que les jeux à infor-mation parfaite et condition borélienne sont déterminés [147]. Dans notreexemple, le joueur 1 gagne si la séquence satisfait ♦¬F et le joueur 2gagne si la séquence satisfait ♦F. On retrouve ici aussi la dualité desformules sous la forme d’un jeu.

Définissons une notion de jeu déterminé adaptée aux jeux stochas-tiques. Dans un tel jeu une fois fixées les stratégies des deux joueurs, le jeustochastique devient un processus stochastique et la valeur du jeu pour unjoueur est une variable aléatoire de Bernouilli (sous réserve que l’ensembledes chemins qui satisfont la condition de gain soit mesurable). Chaquejoueur cherche alors à maximiser l’espérance de cette variable aléatoirec’est à dire la probabilité qu’un chemin aléatoire satisfasse la condition degain.

Définition 5.3.4. Une condition de gain (accessibilité, sureté, Büchi) est déter-minée si pour tout jeu stochastique à signaux, toute distribution initiale δ0 admetsoit une stratégie presque sûrement gagnante pour le joueur 1, soit une stratégiegagnante avec probabilité positive pour le joueur 2.

Page 234: Le fichier pdf du livre (EJCIM 2015)

224 Chapitre 5. Contrôle, probabilités et observation partielle

Formellement, le caractère déterminé s’exprime ainsi, pour W ⊆ Qω :(∃ν1 ∀ν2 Prν1 ,ν2

δ0(W) = 1

)ou(∃ν2 ∀ν1 Prν1,ν2

δ0(W) < 1

)En raison de l’observation partielle des jeux stochastiques à signaux le

caractère déterminé dépend étroitement de la condition de gain [22].

Théorème 5.3.5. Les jeux stochastiques à signaux avec conditions d’accessibilité,de sûreté ou de Büchi, sont déterminés.

q1 q2t?d,q1⊥,1

?c,q2⊥,1??,q1⊥,1 ac,t⊥,1bc,q2⊥,1

?d,t⊥,1

FIGURE 5.15 – Un jeu non-déterminé avec condition de gain de co-Büchi.

Théorème 5.3.6. Les jeux stochastiques à signaux avec conditions co-Büchi nesont pas déterminés.

Démonstration. Nous allons démontrer ce résultat en analysant le jeu dela figure 5.15 où la distribution initiale est concentrée en t. Dans ce jeu,le joueur 1 observe tout, le joueur 2 est aveugle, et l’objectif du joueur 1est de ne visiter l’état t qu’un nombre fini de fois. Puisque le joueur 2 estaveugle, une stratégie de ce joueur est une suite de distributions où l’onnote ci (respectivement di) la probabilité de choisir c (respectivement d) àl’instant i.

Fixons une stratégie arbitraire pour le joueur 2 et définissons la straté-gie du joueur 1 ainsi. A l’instant i, si c≥i = ∏j≥i ci est nulle alors le joueur 1choisit a sinon le joueur 1 choisit b. La suite c≥i est croissante. Supposonsqu’elle soit toujours nulle. Alors la probabilité de choisir d au moins unefois est égale à 1 et donc presque sûrement la transition t→ q1 sera franchie(satisfaisant ainsi la condition de co-Büchi). Dans le cas contraire, à partird’un certain i0, il existe ε > 0 tel que pour tout i ≥ i0, c≥i ≥ ε. La stratégiedu joueur 1 conduit soit à franchir t→ q1, soit à visiter infiniment souventq2 avec une probabilité au plus 1− ε à chaque nouvelle visite depuis t dele quitter. Par conséquent, presque sûrement le chemin aléatoire resteraindéfiniment dans q1 ou q2.

Fixons maintenant une stratégie arbitraire pour le joueur 1 et spéci-fions, par induction sur les instants, une stratégie déterministe du joueur

Page 235: Le fichier pdf du livre (EJCIM 2015)

5.3. Jeux stochastiques à signaux 225

2 de la forme cn1 dcn2 d . . . ou cn1 dcn2 d . . . cni dcω à l’aide d’une suite (pi)i∈N∗

telle que pour tout i, 0 < pi < 1 et ∏i∈N∗ pi > 0. Supposons-la définiejusqu’à l’instant k = i + ∑j≤i nj, qu’elle soit de la forme cn1 dcn2 d . . . cni det que la probabilité d’être dans t à l’instant k soit supérieure ou égale à∏j≤i pj. Cette hypothèse est satisfaite pour i = 0. Définissons p commela probabilité qu’à partir de cet instant, la stratégie du joueur 1 choisisseindéfiniment a tant que le système est dans l’état t. Si p est non nul alors lastratégie du joueur 2 se termine par cω avec une probabilité au moins égaleà p ∏j≤i pj > 0 de rester indéfiniment dans t. Si p est nul alors il existeni+1 tel qu’à partir de cet instant la probabilité induite par la stratégie dujoueur 1 de choisir b au moins une fois dans les ni+1 prochains instants soitsupérieure ou égale à pi. La stratégie du joueur 2 se prolonge par cni+1 dvérifiant à l’étape suivante l’hypothèse d’induction. Dans le cas d’une stra-tégie construite de la forme cn1 dcn2 d . . . la probabilité de visiter infinimentsouvent t est au moins égale à ∏i∈N∗ pi.

5.3.3 Résolution des jeux stochastiques à signaux

Les jeux stochastiques à signaux formant une extension des POMDP,les résultats d’indécidabilité obtenus dans la section précédente s’ap-pliquent également ici. En particulier, on ne peut pas décider, étant donnésun jeu stochastique à signaux et un sous-ensemble F de ses états, si lejoueur 1 a une stratégie garantissant avec probabilité positive de visiterF infiniment souvent, quoi que fasse le joueur 2. Si les résultats d’indéci-dabilité s’étendent des POMDP aux jeux stochastiques, il est remarquableque les résultats de décidabilité soient également valables dans ce cadreplus général. Commençons par un cas relativement simple où le joueur 1cherche à garantir une condition d’accessibilité avec probabilité positive.

Proposition 5.3.7. On peut calculer en EXPTIME l’ensemble des supports posi-tivement gagnants pour le joueur 1 et la condition d’accessibilité ♦F.

Démonstration. Puisque les jeux stochastiques à signaux et condition d’ac-cessibilité sont déterminés, de façon équivalente, on peut calculer les sup-ports depuis lesquels le joueur 2 a une stratégie qui assure de rester hors deF avec probabilité 1. Pour cette condition de sûreté, l’ensemble des supportsL ⊆ 2Q qui sont gagnants pour le joueur 2 peut être caractérisé commeun plus grand point fixe. On définit donc L0 = L ∈ 2Q | L ∩ F = ∅,et inductivement à partir de Li, on construit Li+1 comme l’ensemble dessupports L ∈ Li qui n’intersectent pas F et depuis lesquels le joueur 2possède une action qui garantit que sa prochaine croyance est encore dansLi, et ce quelle que soit l’action choisie par le joueur 1, et quel que soit le

Page 236: Le fichier pdf du livre (EJCIM 2015)

226 Chapitre 5. Contrôle, probabilités et observation partielle

signal reçu par le joueur 2.

Li+1 = L ∈ Li | ∃j ∈ J ∀i ∈ I ∀d ∈ D, B(d|L, i, j) 6= ∅ =⇒ B(d|L, i, j) ∈ Li

Pour l’ensemble limite L dans ce calcul de point fixe, on se convaincaisément que depuis tout support L ∈ L, le joueur 2 a une stratégie pourassurer de rester hors de F. En effet, depuis L, il possède une action qui luipermet de rester sûrement dans L, et on peut donc itérer ce raisonnement.De plus, si L /∈ L, on peut montrer que quelle que soit sa stratégie, le joueur1 a une stratégie permettant de forcer la visite de F en temps fini, avecprobabilité positive.

Après ce cas relativement facile, concentrons nous sur des jeux aveccondition de Büchi, et voyons comment le résultat du théorème 5.2.18 segénéralise aux jeux stochastiques.

Théorème 5.3.8. On peut calculer en 2EXPTIME l’ensemble des supportspresque sûrement gagnants pour le joueur 1 et la condition de Büchi ♦F.

Démonstration. On se contente de donner ici l’idée de la preuve.Pour décider si le joueur 1 possède une stratégie presque sûrement

gagnante, on fait appel à l’algorithme de la proposition 5.3.7.Supposons pour commencer que depuis tout support le joueur 1 peut

garantir d’atteindre F une fois avec probabilité positive. Dans cette situationtrès favorable, en répétant toujours cette même stratégie qui cherche àatteindre F, le joueur 1 peut assurer la condition de Büchi ♦F presquesûrement.

Puisque les jeux stochastiques à signaux et condition d’accessibilitésont déterminés, dans le cas contraire, il existe un support L depuis lequel lejoueur 2 possède une stratégie qui garantit ¬F presque sûrement, et doncsûrement. En fait, dès que le joueur 2 peut forcer la croyance du joueur 1 àêtre précisément L depuis un support L′, alors L′ est gagnant positivementpour le joueur 2. Ceci n’est pas complètement trivial, car le joueur 2 neconnaît pas a priori les croyances du joueur 1. Pour gagner positivement, illui faut donc jouer de façon aléatoire jusqu’à un moment supposer que lacroyance du joueur 1 est L, et à ce moment là jouer la stratégie qui gagnesûrement depuis L. Bien qu’une telle stratégie ne soit pas optimale (dansbien des cas, le joueur 2 supposera à tort que la croyance de son adversaireest L), elle permet au joueur 2 d’atteindre son objectif de co-Büchi avecprobabilité positive.

De ces observations, on déduit que le joueur 1 doit éviter d’avoir pourcroyance L, et même L′, s’il veut gagner presque sûrement. En faisant cela,

Page 237: Le fichier pdf du livre (EJCIM 2015)

5.3. Jeux stochastiques à signaux 227

il peut cependant empêcher le jeu d’aller vers la cible F, et crée donc denouveaux supports gagnants positivement pour le joueur 2, etc.

Le raisonnement qui précède suggère donc de calculer l’ensemble dessupports presque sûrement gagnants pour le joueur 1 pour la conditionde Büchi comme le plus grand ensembleW de supports depuis lesquels lejoueur 1 a une stratégie pour assurer une probabilité positive d’atteindre Ftout en garantissant que sa croyance reste dansW . On peut tirer de cela unecaractérisation deW comme plus grand point fixe, en utilisant l’algorithmede la proposition 5.3.7 comme routine.

Au delà du saut de complexité entre les POMDP et les jeux stochas-tiques à signaux à deux joueurs, soulignons une différence importante, quiconcerne la mémoire nécessaire aux joueurs pour satisfaire leurs objectifs.Dans les POMDP, cette mémoire était au mieux nulle (pour gagner posi-tivement un jeu avec condition d’accessibilité), et au pire exponentielle(par exemple pour gagner positivement un jeu avec condition de sûreté),essentiellement basée sur les croyances. Dans le cas des jeux stochastiquesà signaux à deux joueurs, une mémoire exponentielle ne suffit pas. Plusprécisément, on peut montrer que pour gagner positivement un jeu aveccondition de sûreté, les croyances du joueur 2 ne sont pas suffisantes, et ilpeut devoir recourir à ses croyances sur les croyances de son adversaire,impliquant une mémoire doublement exponentielle.

Page 238: Le fichier pdf du livre (EJCIM 2015)
Page 239: Le fichier pdf du livre (EJCIM 2015)

Bibliographie

[1] L. Adleman, Q. Cheng, A. Goel, M.-D. Huang, and H. Wasserman.Linear self-assemblies : Equilibria, entropy and convergence rates. InIn Sixth International Conference on Difference Equations and Applications.Taylor and Francis, 2001.

[2] H. Andréka, I. Németi, and P. Németi. General relativistic hypercom-puting and foundation of mathematics. Nat. Comput., 8(3) :499–516,2009.

[3] S. Arnborg, D. G. Corneil, and A. Proskurowski. Complexity offinding embeddings in a k-tree. SIAM Journal on Algebraic DiscreteMethods, 8(2) :277–284, Apr. 1987.

[4] E. Artin. Über die Zerlegung definiter Funktionen in Quadrate.Abhand lungen Math., 5(1) :100–115, 1927. Seminar Univ. Hamburg.

[5] E. Asarin and O. Maler. Achilles and the Tortoise climbing up thearithmetical hierarchy. In FSTTCS ’95, number 1026 in LNCS, pages471–483, 1995.

[6] E. Asarin, O. Maler, and A. Pnueli. Reachability analysis of dynamicalsystems having piecewise-constant derivatives. Theoret. Comp. Sci.,138(1) :35–65, 1995.

[7] K. J. Aström. Optimal control of Markov decision processes withincomplete state estimation. Journal of Mathematical Analysis andApplications, 10 :174–205, 1965.

[8] J. Backus. Can programming be liberated from the Von Neumannstyle : A functional style and its algebra of programs. Communicationsof the ACM, 22(8) :613–641, August 1978. Turing Award Lecture.

[9] C. Baier, N. Bertrand, and M. Größer. On decision problems forprobabilistic Büchi automata. In Proceedings of FoSSaCS’08, volume4962 of Lecture Notes in Computer Science, pages 287–301. Springer,2008.

Page 240: Le fichier pdf du livre (EJCIM 2015)

230 BIBLIOGRAPHIE

[10] C. Baier, N. Bertrand, and M. Größer. Probabilistic ω-automata. J.ACM, 59(1), 2012.

[11] C. Baier and M. Größer. Recognizing omega-regular languages withprobabilistic automata. In Proceedings of LICS’05, pages 137–146. IEEEComputer Society Press, 2005.

[12] B. Bank, M. Giusti, J. Heintz, and G.-M. Mbakop. Polar varieties andefficient real elimination. Mathematische Zeitschrift, 238(1) :115–144,2001.

[13] B. Bank, M. Giusti, J. Heintz, M. Safey El Din, and E. Schost. Onthe geometry of polar varieties. Applicable Algebra in Engineering,Communication and Computing, 21(1) :33–83, 2010.

[14] S. Basu, R. Pollack, and M.-F. Roy. Computing roadmaps of semi-algebraic sets on a variety. Journal of the AMS, 3(1) :55–82, 1999.

[15] S. Basu, R. Pollack, and M.-F. Roy. Algorithms in real algebraic geometry,volume 10 of Algorithms and Computation in Mathematics. Springer-Verlag, second edition, 2006.

[16] F. Becker, M. Chapelle, J. Durand-Lose, V. Levorato, and M. Senot.Abstract geometrical computation 8: Small machines, accumulations& rationality. Submitted, 2013.

[17] C. H. Bennett. Notes on the history of reversible computation. IBM J.Res. Dev., 32(1) :16–23, 1988.

[18] A. Benoit, M. Cole, S. Gilmore, and J. Hillston. Flexible SkeletalProgramming with eSkel. In J. C. Cunha and P. D. Medeiros, editors,11th International Euro-Par Conference, LNCS 3648, pages 761–770.Springer, 2005.

[19] P. Berman and T. Fujito. On approximation properties of the inde-pendent set problem for low degree graphs. Theory of ComputingSystems, 32(2) :115–132, 1999.

[20] Y. Bertot and P. Castéran. Interactive Theorem Proving and ProgramDevelopment. Springer, 2004.

[21] N. Bertrand, E. Fabre, S. Haar, S. Haddad, and L. Hélouët. Activediagnosis for probabilistic systems. In Proceedings of FoSSaCS’14, vo-lume 8412 of Lecture Notes in Computer Science, pages 29–42. Springer,2014.

[22] N. Bertrand, B. Genest, and H. Gimbert. Qualitative determinacyand decidability of stochastic games with signals. In Proceedings ofLICS’09, pages 319–328. IEEE Computer Society Press, 2009.

Page 241: Le fichier pdf du livre (EJCIM 2015)

BIBLIOGRAPHIE 231

[23] D. Berwanger and L. Doyen. On the power of imperfect information.In Proceedings of FSTTCS’08, volume 2 of LIPIcs, pages 73–82. SchlossDagstuhl - Leibniz-Zentrum fuer Informatik, 2008.

[24] R. Bird. The promotion and accumulation strategies in transforma-tional programming. ACM Trans. Program. Lang. Syst., 6(4) :487–504,Oct. 1984.

[25] R. Bird and O. de Moor. Algebra of Programming. Prentice Hall, 1996.

[26] R. S. Bird. Lectures on constructive functional programming. InM. Broy, editor, Constructive Methods in Computing Science, number 55in NATO ASI, Marktoberdorf, BRD, 1989. Springer.

[27] A. Björklund. Determinant sums for undirected hamiltonicity. SIAMJournal on Computing, 43(1) :280–299, 2014.

[28] A. Björklund, T. Husfeldt, , P. Kaski, and M. Koivisto. Fourier meetsmobius : Fast subset convolution. Proceedings of STOC 2007, ACMPress, pages 67–74, 2007.

[29] A. Björklund, T. Husfeldt, and M. Koivisto. Set partitioning viainclusion-exclusion. SIAM Journal on Computing, 39(2) :546–563, 2009.

[30] L. Blum, F. Cucker, M. Shub, and S. Smale. Complexity and real compu-tation. Springer, New York, 1998.

[31] L. Blum, M. Shub, and S. Smale. On a theory of computation andcomplexity over the real numbers: NP-completeness, recursive func-tions and universal machines. Bull. Amer. Math. Soc., 21(1) :1–46,1989.

[32] J. Bochnak, M. Coste, and M.-F. Roy. Real algebraic Geometry. Er-gebnisse der Mathematik und ihrer Grenzgebite. Springer-Verlag,1998.

[33] H. L. Bodlaender. A linear-time algorithm for finding tree-decompositions of small treewidth. SIAM Journal on Computing,25(6) :1305–1317, 1996.

[34] H. L. Bodlaender, F. V. Fomin, A. M. C. A. Koster, D. Kratsch, andD. M. Thilikos. On exact algorithms for treewidth. ACM Transactionson Algorithms, 9(1) :12, 2012.

[35] V. Bouchitté and I. Todinca. Treewidth and minimum fill-in : Grou-ping the minimal separators. SIAM Journal on Computing, 31(1) :212–232, 2001.

[36] N. Bourgeois, B. Escoffier, V. T. Paschos, and J. M. M. van Rooij. Fastalgorithms for max independent set. Algorithmica, 62(1-2) :382–415,2012.

Page 242: Le fichier pdf du livre (EJCIM 2015)

232 BIBLIOGRAPHIE

[37] O. Bournez. Some bounds on the computational power of piece-wise constant derivative systems (extended abstract). In ICALP ’97,number 1256 in LNCS, pages 143–153, 1997.

[38] O. Bournez. Achilles and the Tortoise climbing up the hyper-arithmetical hierarchy. Theoret. Comp. Sci., 210(1) :21–71, 1999.

[39] O. Bournez. Some bounds on the computational power of piecewiseconstant derivative systems. Theory Comput. Syst., 32(1) :35–67, 1999.

[40] T. Bröcker and K. Jänich. Introduction to differential topology. Cam-bridge University Press, 1982.

[41] B. Buchberger. Ein Algorithmus zum Auffinden der Basiselemente des Res-tklassenringes nach einem nulldimensionalen Polynomideal. PhD thesis,University of Innsbruck, 1965.

[42] J. Canny. The complexity of robot motion planning. MIT Press, 1987.

[43] D. Caromel and M. Leyton. Fine tuning algorithmic skeletons. InA.-M. Kermarrec, L. Bougé, and T. Priol, editors, Euro-Par ParallelProcessing, volume 4641 of LNCS 4641, pages 72–81. Springer, 2007.

[44] J.-C. Carrega. Théorie des corps - La règle et le compas. Hermann, 1981.

[45] A. R. Cassandra, M. L. Littman, and N. L. Zhang. Incremental pru-ning : A simple, fast, exact method for partially observable Markovdecision processes. In Proceedings of UAI’87, pages 54–61. MorganKaufmann, 1997.

[46] E. Chailloux, P. Manoury, and B. Pagano. Développement d’applicationsavec Objective Caml. O’Reilly, 2000.

[47] K. Chatterjee, L. Doyen, H. Gimbert, and T. A. Henzinger. Random-ness for free. In Proceedings of MFCS’10, volume 6281 of Lecture Notesin Computer Science, pages 246–257. Springer, 2010.

[48] K. Chatterjee, L. Doyen, and T. Henzinger. Qualitative analysis ofpartially-observable Markov decision processes. In Proceedings ofMFCS’10, volume 6281 of Lecture Notes in Computer Science, pages258–269. Springer, 2010.

[49] H.-L. Chen, D. Doty, and S. Seki. Program size and temperature inself-assembly. In ISAAC 2011 : Proceedings of the 22nd InternationalSymposium on Algorithms and Computation, volume 7074 of LectureNotes in Computer Science, pages 445–453. Springer-Verlag, 2011.

[50] A. Chlipala. An Introduction to Programming and Proving withDependent Types in Coq. Journal of Formalized Reasoning, 3(2), 2010.

Page 243: Le fichier pdf du livre (EJCIM 2015)

BIBLIOGRAPHIE 233

[51] M. Cole. Parallel Programming, List Homomorphisms and the Maxi-mum Segment Sum Problem. In G. R. Joubert, D. Trystram, F. J. Peters,and D. J. Evans, editors, Parallel Computing : Trends and Applications,PARCO 1993, pages 489–492. Elsevier, 1994.

[52] M. Cole. Parallel Programming with List Homomorphisms. ParallelProcessing Letters, 5(2) :191–203, 1995.

[53] G. E. Collins. Quantifier elimination for real closed fields by cy-lindrical algebraic decomposition. Lecture notes in computer science,33 :515–532, 1975.

[54] M. Cook. Universality in elementary cellular automata. ComplexSystems, 15 :1–40, 2004.

[55] T. Coquand and G. Huet. The Calculus of Constructions. Informationand Computation, 37(2-3), 1988.

[56] T. Coquand and C. Paulin. Inductively defined types. In COLOG-88 International Conference on Computer Logic, number 417 in LNCS,Tallinn, USSR, 1988. Springer.

[57] T. H. Cormen, C. E. Leiserson, R. L. Rivest, and C. Stein. Introductionto Algorithms. The MIT Press, 3rd edition, 2009.

[58] M. Coste and M. Shiota. Nash triviality in families of Nash manifolds.Inventiones Mathematicae, 108(1) :349–368, 1992.

[59] D. Cox, J. Little, and D. O’Shea. Ideals, varieties and algorithms : anintroduction to computational algebraic geometry and commutative algebra.Springer-Verlag, 1992.

[60] M. Davis, G. Logemann, and D. W. Loveland. A machine programfor theorem-proving. Communications of the ACM, 5(7) :394–397, 1962.

[61] M. Davis and H. Putnam. A computing procedure for quantificationtheory. Journal of the ACM, 7(3) :201–215, 1960.

[62] M. de Berg, O. Cheong, M. van Kreveld, and M. Overmars. Compu-tational Geometry : Algorithms and Applications. Springer, 3rd edition,2008.

[63] J.-P. Delahaye. Information, complexité et hasard. Hermès sciencepublications, 1999.

[64] E. D. Demaine, M. J. Patitz, T. A. Rogers, R. T. Schweller, S. M.Summers, and D. Woods. The two-handed tile assembly modelis not intrinsically universal. In ICALP : 40th International Colloquiumon Automata, Languages and Programming, volume 7965 of LNCS,pages 400–412, Riga, Latvia, July 2013. Springer. Arxiv preprint :arXiv:1306.6710.

Page 244: Le fichier pdf du livre (EJCIM 2015)

234 BIBLIOGRAPHIE

[65] P. D. Diêu. On the languages representable by finite probabilisticautomata. Z. Math. Logik Grundlagen Math., 17 :427–442, 1971.

[66] D. Doty, J. H. Lutz, M. J. Patitz, R. T. Schweller, S. M. Summers, andD. Woods. The tile assembly model is intrinsically universal. In Pro-ceedings of the 53rd Annual IEEE Symposium on Foundations of ComputerScience, pages 439–446, Oct. 2012. Arxiv preprint : arXiv:1111.3097.

[67] R. G. Downey and M. R. Fellows. Parameterized Complexity. Springer-Verlag, 1999. 530 pp.

[68] D. Duchier, J. Durand-Lose, and M. Senot. Fractal parallelism: SolvingSAT in bounded space and time. In C. Otfried, K.-Y. Chwa, andK. Park, editors, Int. Symp. on Algorithms and Computation (ISAAC ’10),number 6506 in LNCS, pages 279–290. Springer, 2010.

[69] D. Duchier, J. Durand-Lose, and M. Senot. Computing in the fractalcloud: modular generic solvers for SAT and Q-SAT variants. InM. Agrawal, B. S. Cooper, and A. Li, editors, Theory and Applicationsof Models of Computations (TAMC ’12), number 7287 in LNCS, pages435–447. Springer, 2012.

[70] J. Durand-Lose. Calculer géométriquement sur le plan – machines àsignaux. Habilitation à Diriger des Recherches, École Doctorale STIC,Université de Nice-Sophia Antipolis, 2003. In French.

[71] J. Durand-Lose. Abstract geometrical computation for black holecomputation (extended abstract). In M. Margenstern, editor, Machines,Computations, and Universality (MCU ’04), number 3354 in LNCS,pages 176–187. Springer, 2005.

[72] J. Durand-Lose. Abstract geometrical computation 1: Embeddingblack hole computations with rational numbers. Fund. Inf., 74(4) :491–510, 2006.

[73] J. Durand-Lose. Abstract geometrical computation and the linearBlum, Shub and Smale model. In B. S. Cooper, B. Löwe, and A. Sorbi,editors, Computation and Logic in the Real World, 3rd Conf. Computabilityin Europe (CiE ’07), number 4497 in LNCS, pages 238–247. Springer,2007.

[74] J. Durand-Lose. The signal point of view: from cellular automata tosignal machines. In B. Durand, editor, Journées Automates cellulaires(JAC ’08), pages 238–249, 2008.

[75] J. Durand-Lose. Abstract geometrical computation and computableanalysis. In J. F. Costa and N. Dershowitz, editors, Int. Conf. onUnconventional Computation 2009 (UC ’09), number 5715 in LNCS,pages 158–167. Springer, 2009.

Page 245: Le fichier pdf du livre (EJCIM 2015)

BIBLIOGRAPHIE 235

[76] J. Durand-Lose. Abstract geometrical computation 4: small Turinguniversal signal machines. Theoret. Comp. Sci., 412 :57–67, 2011.

[77] J. Durand-Lose. Abstract geometrical computation 5: embeddingcomputable analysis. Nat. Comput., 10(4) :1261–1273, 2011. Specialissue on Unconv. Comp. ’09.

[78] J. Durand-Lose. Geometrical accumulations and computably enu-merable real numbers (extended abstract). In C. S. Calude, J. Kari,I. Petre, and G. Rozenberg, editors, Int. Conf. Unconventional Computa-tion 2011 (UC ’11), number 6714 in LNCS, pages 101–112. Springer,2011.

[79] J. Durand-Lose. Abstract geometrical computation 6: a reversible,conservative and rational based model for black hole computation.Int. J. Unconventional Computing, 8(1) :33–46, 2012.

[80] J. Durand-Lose. Irrationality is needed to compute with signal ma-chines with only three speeds. In P. Bonizzoni, V. Brattka, andB. Löwe, editors, CiE ’13, The Nature of Computation, number 7921 inLNCS, pages 108–119. Springer, 2013. Invited talk for special sessionComputation in nature.

[81] K. Emoto, F. Loulergue, and J. Tesson. A Verified Generate-Test-Aggregate Coq Library for Parallel Programs Extraction. In InteractiveTheorem Proving (ITP), number 8558 in LNAI, pages 258–274. Springer,2014.

[82] G. Etesi and I. Németi. Non-Turing computations via Malament-Hogarth space-times. Int. J. Theor. Phys., 41(2) :341–370, 2002.

[83] J.-C. Faugère. A new efficient algorithm for computing Gröbner bases(F4).-. Journal of Pure and Applied Algebra, 139(1–3) :61–88, 1999.

[84] J.-C. Faugère. A new efficient algorithm for computing Gröbnerwithout reduction to zero (F5). In Proceedings of ISSAC 2002, pages 75– 83. ACM Press, 2002.

[85] M. Fliess. Propriétés booléennes des langages stochastiques. Mathe-matical Systems Theory, 7(4) :353–359, 1974.

[86] F. V. Fomin, P. A. Golovach, J. Kratochvíl, D. Kratsch, and M. Liedloff.Branch and recharge : Exact algorithms for generalized domination.Algorithmica, 61(2) :252–273, 2011.

[87] F. V. Fomin, F. Grandoni, and D. Kratsch. A measure & conquerapproach for the analysis of exact algorithms. Journal of the ACM,56(5), 2009.

Page 246: Le fichier pdf du livre (EJCIM 2015)

236 BIBLIOGRAPHIE

[88] F. V. Fomin and P. Kaski. Exact exponential algorithms. Communica-tions of the ACM, 56(3) :80–88, 2013.

[89] F. V. Fomin and D. Kratsch. Exact Exponential Algorithms. Springer-Verlag New York, Inc., New York, NY, USA, 1st edition, 2010. 206pp.

[90] F. V. Fomin, D. Kratsch, I. Todinca, and Y. Villanger. Exact algo-rithms for treewidth and minimum fill-in. SIAM Journal on Computing,38(3) :1058–1079, 2008.

[91] F. V. Fomin, M. Liedloff, P. Montealegre-Barba, and I. Todinca. Algo-rithms parameterized by vertex cover and modular width, throughpotential maximal cliques. In R. Ravi and I. L. Gørtz, editors, Algo-rithm Theory - SWAT 2014 - 14th Scandinavian Symposium and Work-shops, Copenhagen, Denmark, July 2-4, 2014. Proceedings, volume 8503of Lecture Notes in Computer Science, pages 182–193. Springer, 2014.

[92] F. V. Fomin, I. Todinca, and Y. Villanger. Large induced subgraphsvia triangulations and CMSO. In C. Chekuri, editor, SODA, pages582–583. SIAM, 2014.

[93] F. V. Fomin and Y. Villanger. Finding induced subgraphs via minimaltriangulations. In J.-Y. Marion and T. Schwentick, editors, STACS, vo-lume 5 of LIPIcs, pages 383–394. Schloss Dagstuhl - Leibniz-Zentrumfuer Informatik, 2010.

[94] F. V. Fomin and Y. Villanger. Treewidth computation and extremalcombinatorics. Combinatorica, 32(3) :289–308, 2012.

[95] S. Gaspers, D. Kratsch, and M. Liedloff. On independent sets andbicliques in graphs. Algorithmica, 62(3-4) :637–658, 2012.

[96] F. Gavril. The intersection graphs of subtrees in trees are exactly thechordal graphs. Journal of Combinatorial Theory, Series B, 16(1) :47 – 56,1974.

[97] L. Gesbert, Z. Hu, F. Loulergue, K. Matsuzaki, and J. Tesson. Syste-matic Development of Correct Bulk Synchronous Parallel Programs.In International Conference on Parallel and Distributed Computing, Appli-cations and Technologies (PDCAT), pages 334–340. IEEE, 2010.

[98] J. Gibbons. The third homomorphism theorem. Journal of FunctionalProgramming, 6(4) :657–665, 1996.

[99] H. Gimbert and Y. Oualhadj. Probabilistic automata on finite words :Decidable and undecidable problems. In Proceedings of ICALP’10,volume 6199 of Lecture Notes in Computer Science, pages 527–538.Springer, 2010.

Page 247: Le fichier pdf du livre (EJCIM 2015)

BIBLIOGRAPHIE 237

[100] E. Giménez. A Calculus of Infinite Constructions and its application tothe verification of communicating systems. PhD thesis, École NormaleSupérieure de Lyon, 1996.

[101] M. Giusti, G. Lecerf, and B. Salvy. A Gröbner free alternative forpolynomial system solving. Journal of Complexity, 17(1) :154–211,2001.

[102] G. Gonthier. Formal Proof – The Four-Color Theorem. Notices of theAmerican Mathematical Society, 55(11) :1382–1393, december 2008.

[103] G. Gonthier, A. Asperti, J. Avigad, Y. Bertot, C. Cohen, F. Garillot,S. Le Roux, A. Mahboubi, R. O’Connor, S. Ould Biha, I. Pasca, L. Ri-deau, A. Solovyev, E. Tassi, and L. Théry. A machine-checked proofof the odd order theorem. In Interactive Theorem Proving, volume 7998of LNCS, pages 163–179. Springer, 2013.

[104] E. Grädel, W. Thomas, and T. Wilke, editors. Automata, Logics, andInfinite Games : A Guide to Current Research, volume 2500 of LectureNotes in Computer Science. Springer, 2002.

[105] G. Greuel and G. Pfister. A Singular Introduction to CommutativeAlgebra. Springer-Verlag, second edition edition, 2007.

[106] D. Grigoriev and D. Pasechnik. Polynomial time computing overquadratic maps I. sampling in real algebraic sets. Computationalcomplexity, 14 :20–52, 2005.

[107] D. Grigoriev and N. Vorobjov. Solving systems of polynomials in-equalities in subexponential time. Journal of Symbolic Computation,5 :37–64, 1988.

[108] Y. Gurevich and S. Shelah. Expected computation time for hamil-tonian path problem. SIAM Journal on Computing, 16(3) :486–502,1987.

[109] S. Haar, S. Haddad, T. Melliti, and S. Schwoon. Optimal constructionsfor active diagnosis. In Proceedings of FSTTCS’13, volume 24 of LIPIcs,pages 527–539. Schloss Dagstuhl - Leibniz-Zentrum fuer Informatik,2013.

[110] T. Hagino. A Categorical Programming Language. PhD thesis, Univer-sity of Edinburgh, 1987.

[111] M. Hagiya. Discrete state transition systems on continuous space-time : A theoretical model for amorphous computing. In C. Calude,M. J. Dinneen, G. Paun, M. J. Pérez-Jiménez, and G. Rozenberg, edi-tors, Unconventional Computation, 4th Int. Conf., UC ’05, Sevilla, Spain,October 3-7, 2005, Proceedings, volume 3699 of LNCS, pages 117–129.Springer, 2005.

Page 248: Le fichier pdf du livre (EJCIM 2015)

238 BIBLIOGRAPHIE

[112] E. A. Hansen. An improved policy iteration algorithm for partiallyobservable MDPs. In Proceedings of NIPS’97. The MIT Press, 1997.

[113] M. Held and R. M. Karp. A dynamic programming approach to thesequencing problems. Journal of the Society for Industrial and AppliedMathematics, 10(1) :196–210, 1962.

[114] M. L. Hogarth. Deciding arithmetic using SAD computers. Brit. J.Philos. Sci., 55 :681–691, 2004.

[115] H. Hong and M. Safey El Din. Variant quantifier elimination. Journalof Symbolic Computation, 47(7) :883–901, 2012.

[116] J. Hopcroft, R. Motwani, and J. Ullman. Introduction to AutomataTheory, Languages, and Computation. Addison-Wesley, Third edition,2006.

[117] E. Horowitz and S. Sahni. Computing partitions with applications tothe knapsack problem. Journal of the ACM, 21 :277–292, 1974.

[118] W. A. Howard. The formulae-as-types notion of construction. In J. P.Seldin and J. R. Hindley, editors, To H. B. Curry : Essays on CombinatoryLogic, Lambda Calculus and Formalism, pages 479–490. Academic Press,1980.

[119] Z. Hu, M. Takeichi, and W.-N. Chin. Parallelization in calculationalforms. In POPL, pages 316–328. ACM, 1998.

[120] U. Huckenbeck. Euclidian geometry in terms of automata theory.Theoret. Comp. Sci., 68(1) :71–87, 1989.

[121] U. Huckenbeck. A result about the power of geometric oracle ma-chines. Theoret. Comp. Sci., 88(2) :231–251, 1991.

[122] R. Impagliazzo, R. Paturi, and F. Zane. Which problems have stronglyexponential complexity ? Journal of Computer and System Sciences,63(4) :512–530, 2001.

[123] G. Jacopini and G. Sontacchi. Reversible parallel computation: anevolving space-model. Theoret. Comp. Sci., 73(1) :1–46, 1990.

[124] Jean-Charles Faugère, M. Safey El Din, and P. Spaenlehauer. Criticalpoints and gröbner bases : the unmixed case. In J. van der Hoevenand M. van Hoeij, editors, International Symposium on Symbolic andAlgebraic Computation, ISSAC’12, Grenoble, France - July 22 - 25, 2012,pages 162–169. ACM, 2012.

[125] Z. Jelonek. Testing sets for properness of polynomial mappings.Mathematische Annalen, 315(1) :1–35, 1999.

Page 249: Le fichier pdf du livre (EJCIM 2015)

BIBLIOGRAPHIE 239

[126] Z. Jelonek and K. Kurdyka. Quantitative generalized Bertini-Sardtheorem for smooth affine varieties. Discrete and Computational Geo-metry, 34(4) :659–678, 2005.

[127] D. S. Johnson, C. H. Papadimitriou, and M. Yannakakis. On gene-rating all maximal independent sets. Information Processing Letters,27(3) :119–123, 1988.

[128] M.-Y. Kao and R. T. Schweller. Reducing tile complexity for self-assembly through temperature programming. In SODA, pages 571–580. ACM Press, 2006.

[129] H. Kuchen. A Skeleton Library. In 8th International Euro-Par Confe-rence, LNCS 2400, pages 620–629. Springer, 2002.

[130] K. Kurdyka, P. Orro, and S. Simon. Semialgebraic Sard theorem forgeneralized critical value. Journal of differential geometry, 56(1) :67–92,2000.

[131] P. S. Landweber. Three theorems on phrase structure grammars oftype 1. Information and Control, 6(2) :131–136, 1963.

[132] D. Lazard. Gröbner bases, Gaussian elimination and resolution ofsystems of algebraic equations. In Computer Algebra, EUROCAL’83,volume 162 of LNCS, pages 146–156. Springer, 1983.

[133] G. Lecerf. Computing the equidimensional decomposition of analgebraic closed set by means of lifting fibers. Journal of Complexity,19(4) :564–596, 2003.

[134] Y. Lecerf. Machines de Turing réversibles. Récursive insolubilité enn ∈ N de l’équation u = θnu, où θ est un isomorphisme de codes.Comptes rendus des séances de l’académie des sciences, 257 :2597–2600,1963.

[135] J. Légaux, F. Loulergue, and S. Jubertie. Managing Arbitrary Distribu-tions of Arrays in Orléans Skeleton Library. In International Conferenceon High Performance Computing and Simulation (HPCS), pages 437–444.IEEE, 2013.

[136] C. Lenté, M. Liedloff, A. Soukhal, and V. T’kindt. On an extensionof the sort & search method with application to scheduling theory.Theoretical Computer Science, 511 :13–22, 2013.

[137] X. Leroy. Formal verification of a realistic compiler. Commun. ACM,52(7) :107–115, 2009.

[138] X. Leroy, D. Doligez, A. Frisch, J. Garrigue, D. Rémy, and J. Vouillon.The OCaml System release 4.00.0. http://caml.inria.fr, 2012.

Page 250: Le fichier pdf du livre (EJCIM 2015)

240 BIBLIOGRAPHIE

[139] P. Letouzey. Coq Extraction, an Overview. In A. Beckmann, C. Di-mitracopoulos, and B. Löwe, editors, Logic and Theory of Algorithms,Fourth Conference on Computability in Europe, CiE 2008, volume 5028of LNCS. Springer, 2008.

[140] F. Loulergue, F. Gava, and D. Billiet. Bulk Synchronous Parallel ML :Modular Implementation and Performance Prediction. In Internatio-nal Conference on Computational Science (ICCS), volume 3515 of LNCS,pages 1046–1054. Springer, 2005.

[141] F. Loulergue, G. Hains, and C. Foisy. A Calculus of Functional BSPPrograms. Science of Computer Programming, 37(1-3) :253–277, 2000.

[142] F. Loulergue, S. Robillard, J. Tesson, J. Légaux, and Z. Hu. FormalDerivation and Extraction of a Parallel Program for the All NearestSmaller Values Problem. In ACM Symposium on Applied Computing(SAC), pages 1577–1584. ACM, 2014.

[143] I. I. Macarie. Space-efficient deterministic simulation of probabilisticautomata. SIAM Journal on Computing, 27(2) :448–465, 1998.

[144] O. Madani, S. Hanks, and A. Condon. On the undecidability ofprobabilistic planning and related stochastic optimization problems.Artificial Intelligence, 147(1-2) :5–34, 2003.

[145] G. Malcolm. Data structures and program transformation. Sci. Com-put. Programming, 14(2-3) :255–279, Oct. 1990.

[146] Z. Manna and A. Pnueli. The Temporal Logic of Reactive and ConcurrentSystems. Springer, 1992.

[147] D. A. Martin. Borel determinacy. Annals of Mathematics, 102(2) :363–371, 1975.

[148] K. Matsuzaki, H. Iwasaki, K. Emoto, and Z. Hu. A Library ofConstructive Skeletons for Sequential Style of Parallel Programming.In InfoScale’06 : Proceedings of the 1st international conference on Scalableinformation systems. ACM, 2006.

[149] K. Meer and C. Michaux. A survey on real structural complexitytheory. Bulletin of the Belgian Mathematical Society, 4 :113–148, 1997.

[150] L. Meertens. Algorithmics – towards programming as a mathematicalactivity. In Proceedings of CWI Symposium on Mathematics and ComputerScience, pages 289 – 334. North-Holland, 1986.

[151] L. Meertens. First Steps Towards the Theory of Rose Trees. CWI,Amsterdam, IFIP Working Group 2.1 Working paper 592 ROM-25,1988.

Page 251: Le fichier pdf du livre (EJCIM 2015)

BIBLIOGRAPHIE 241

[152] P.-E. Meunier, M. J. Patitz, S. M. Summers, G. Theyssier, A. Winslow,and D. Woods. Intrinsic universality in tile self-assembly requirescooperation. In SODA, pages 752–771. SIAM, 2014.

[153] M. Mezzarobba and M. Safey El Din. Computing roadmaps insmooth real algebraic sets. In Proceedings of Transgressive Computing,pages 327–338, 2006.

[154] J. Moon and L. Moser. On cliques in graphs. Israel Journal of Mathe-matics, 3(1) :23–28, 1965.

[155] A. Morihata, K. Matsuzaki, Z. Hu, and M. Takeichi. The third homo-morphism theorem on trees : downward & upward lead to divide-and-conquer. In Z. Shao and B. C. Pierce, editors, POPL’09, pages177–185. ACM, 2009.

[156] K. Morita, A. Shirasaki, and Y. Gono. A 1-tape 2-symbol reversibleTuring machine. Transactions of the IEICE, E 72(3) :223–228, Mar. 1989.

[157] P. Narbel. Programmation fonctionnelle, générique et objet. Vuibert, 2005.

[158] M. Nasu and N. Honda. A context-free language which is not accep-table by a probabilistic automaton. Information and Control, 18(3) :233–236, 1971.

[159] Y. Okamoto, T. Uno, and R. Uehara. Counting the number of inde-pendent sets in chordal graphs. J. Discrete Algorithms, 6(2) :229–242,2008.

[160] M. J. Patitz and S. M. Summers. Self-assembly of decidable sets. InProceedings of The Seventh International Conference on UnconventionalComputation (Vienna, Austria, August 25-28, 2008), pages 206–219,2008.

[161] M. J. Patitz and S. M. Summers. Self-assembly of discrete self-similarfractals. Natural Computing, 1 :135–172, 2010.

[162] A. Paz. Introduction to probabilistic automata (Computer science andapplied mathematics). Academic Press Inc., 1971.

[163] S. Peyronnet, editor. Informatique Mathématique — une photographie en2014. Presses Universitaires de Perpignan, 2014.

[164] M. L. Puterman. Markov Decision Processes : Discrete Stochastic DynamicProgramming. Wiley, 2005.

[165] M. O. Rabin. Probabilistic automata. Information and Control, 6(3) :230–245, 1963.

[166] J. Renault. The value of repeated games with an informed controller.Technical report, CEREMADE, Paris, Jan. 2007.

Page 252: Le fichier pdf du livre (EJCIM 2015)

242 BIBLIOGRAPHIE

[167] R. M. Robinson. Undecidability and nonperiodicity for tilings on theplane. Inventiones Mathematicae, 12(3) :177–209, september 1971.

[168] D. Rosenberg, E. Solan, and N. Vieille. Stochastic games with im-perfect monitoring. Technical Report 1376, Northwestern University,July 2003.

[169] M. Safey El Din. Finding sampling points on real hypersurfaces ineasier in singular situations. In MEGA, 2005.

[170] M. Safey El Din. Testing sign conditions on a multivariate polynomialand applications. Mathematics in Computer Science, 1(1) :177–207, 2007.

[171] M. Safey El Din. Computing the global optimum of a multivariatepolynomial over the reals. In Proceedings of ISSAC 2008, pages 71–78,2008.

[172] M. Safey El Din and E. Schost. Polar varieties and computation ofone point in each connected component of a smooth real algebraicset. In J. Sendra, editor, Proceedings of ISSAC 2003, pages 224–231.ACM Press, aug 2003.

[173] M. Safey El Din and É. Schost. Properness defects of projections andcomputation of one point in each connected component of a realalgebraic set. Discrete and Computational Geometry, 32(3) :417–430,2004.

[174] M. Safey El Din and E. Schost. A baby steps/giant steps pro-babilistic algorithm for computing roadmaps in smooth boundedreal hypersurface. Discrete and Computational Geometry, 2010. DOI10.1007/s00454-009-9239-2.

[175] M. Safey El Din and E. Schost. A nearly optimal algorithm for deci-ding connectivity queries in smooth and bounded real algebraic sets.Submitted to Memoirs of AMS, 2014.

[176] É. Schost. Computing parametric geometric resolutions. ApplicableAlgebra in Engineering, Communication and Computing, 13(5) :349–393,2003.

[177] R. Schroeppel and A. Shamir. A T = O(2n/2), S = O(2n/4) algo-rithm for certain NP-complete problems. SIAM Journal on Computing,10(3) :456–464, 1981.

[178] J. T. Schwartz and M. Sharir. On the “piano movers” problem. II.General techniques for computing topological properties of real alge-braic manifolds. Adv. in Appl. Math., 4(3) :298–351, 1983.

[179] M.-P. Schützenberger. On the definition of a family of automata.Information and Control, 4(2-3) :245––270, 1961.

Page 253: Le fichier pdf du livre (EJCIM 2015)

BIBLIOGRAPHIE 243

[180] M. Senot. Geometrical model of computation : fractals and complexity gaps.Thèse de doctorat, Université d’Orléans, June 2013.

[181] I. Shafarevich. Basic Algebraic Geometry 1. Springer Verlag, 1994.Second edition.

[182] M. Sipser. Introduction to the Theory of Computation. PWS PublishingCo., Boston, Massachusetts, 1997.

[183] R. D. Smallwood and E. J. Sondik. The optimal control of partially ob-servable Markov processes over a finite horizon. Operations Research,21(5) :1071–1088, 1973.

[184] M. Snir and W. Gropp. MPI the Complete Reference. MIT Press, 1998.[185] D. Soloveichik and E. Winfree. Complexity of self-assembled shapes.

In C. Ferretti, G. Mauri, and C. Zandron, editors, DNA, volume 3384of Lecture Notes in Computer Science, pages 344–354. Springer, 2004.

[186] E. J. Sondik. The optimal control of partially observable Markovprocesses over the infinite horizon : Discounted costs. OperationsResearch, 26(2) :282–304, 1978.

[187] S. Sorin. A first course on zero-sum repeated games. Springer, 2002.[188] M. Sozeau. Un environnement pour la programmation avec types dépen-

dants. PhD thesis, University Paris South, LRI, 2008.[189] M. Sozeau and N. Tabareau. Universe polymorphism in Coq. In

Interactive Theorem Proving (ITP), volume 8558 of LNCS, pages 499–514. Springer, 2014.

[190] I. Takeuti. Transition systems over continuous time-space. Electr.Notes Theor. Comput. Sci., 120 :173–186, 2005.

[191] R. Tarjan and A. Trojanowski. Finding a maximum independent set.SIAM Journal on Computing, 6 :537–546, 1977.

[192] R. E. Tarjan and A. E. Trojanowski. Finding a maximum independentset. SIAM Journal on Computing, 6(3) :537–546, 1977.

[193] A. Tarski. A decision method for elementary algebra and geometry. Uni-versity of California Press, 1951.

[194] J. Tesson, H. Hashimoto, Z. Hu, F. Loulergue, and M. Takeichi. Pro-gram Calculation in Coq. In Thirteenth International Conference onAlgebraic Methodology And Software Technology (AMAST2010), LNCS6486, pages 163–179. Springer, 2010.

[195] J. Tesson and F. Loulergue. A Verified Bulk Synchronous Parallel MLHeat Diffusion Simulation. In International Conference on Computatio-nal Science (ICCS), Procedia Computer Science, pages 36–45. Elsevier,2011.

Page 254: Le fichier pdf du livre (EJCIM 2015)

244 BIBLIOGRAPHIE

[196] The Coq Development Team. The Coq Proof Assistant. http://coq.inria.fr.

[197] P. Turakainen. Generalized automata and stochastic languages. Pro-ceedings of the American Mathematical Society, 21(2) :303–309, 1969.

[198] P. Turakainen. Some closure properties of the family of stochasticlanguages. Information and Control, 18(3) :253––256, 1971.

[199] L. G. Valiant. A bridging model for parallel computation. Commun.ACM, 33(8) :103, 1990.

[200] H. Wang. Proving theorems by pattern recognition—ii. Bell SystemTech. Journal, 40(1) :1 – 41, 1961.

[201] K. Weihrauch. Introduction to computable analysis. Texts in Theoreticalcomputer science. Springer, Berlin, 2000.

[202] R. Williams. Improving exhaustive search implies superpolynomiallower bounds. SIAM Journal on Computing, 42(3) :1218–1244, 2013.

[203] E. Winfree. Algorithmic Self-Assembly of DNA. PhD thesis, Caltech,1998.

[204] E. Winfree and R. Bekbolatov. Proofreading tile sets : Error correctionfor algorithmic self-assembly. In J. Chen and J. H. Reif, editors, DNA,volume 2943 of Lecture Notes in Computer Science, pages 126–144.Springer, 2003.

[205] G. J. Woeginger. Exact algorithms for np-hard problems : A survey.In M. Jünger, G. Reinelt, and G. Rinaldi, editors, Combinatorial Opti-mization - Eureka, You Shrink !, Papers Dedicated to Jack Edmonds, 5thInternational Workshop, Aussois, France, March 5-9, 2001, Revised Pa-pers, volume 2570 of Lecture Notes in Computer Science, pages 185–208.Springer, 2001.

[206] D. Woods and T. Neary. The complexity of small universal Turingmachines : A survey. Theoret. Comp. Sci., 410(4–5) :443–450, 2009.

[207] M. Xiao and H. Nagamochi. Exact algorithms for maximum inde-pendent set. In L. Cai, S. Cheng, and T. W. Lam, editors, Algorithmsand Computation - 24th International Symposium, ISAAC 2013, HongKong, China, December 16-18, 2013, Proceedings, volume 8283 of LectureNotes in Computer Science, pages 328–338. Springer, 2013.

[208] M. Xiao and H. Nagamochi. Exact algorithms for maximum inde-pendent set. CoRR, abs/1312.6260, 2013.

Page 255: Le fichier pdf du livre (EJCIM 2015)

Table des figures

1.1 Points critiques des projections de la sphère . . . . . . . . . 131.2 Exemple avec f = X1(X1X2 − 1) . . . . . . . . . . . . . . . . 171.3 Exemple f = X2

1 + (X1X2 − 1)2 . . . . . . . . . . . . . . . . 181.4 Calcul d’au moins un point par composante connexe par

différentes projections . . . . . . . . . . . . . . . . . . . . . . 261.5 Cartes routières données par l’algorithme de Canny et une

variante . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 351.6 Exemple d’un calcul de carte routière par une stratégie

diviser-pour-régner . . . . . . . . . . . . . . . . . . . . . . . 381.7 Exemple d’élimination faible des quantificateurs . . . . . . 45

2.1 Dans une même unité de temps, on traite deux fois plusde données avec un algorithme en O(2n/2) qu’avec unalgorithme en O(2n) (2n/2 ≈ 1.41n). . . . . . . . . . . . . . . 49

2.2 Un graphe où les sommets colorés en noir forment unensemble stable de taille maximum. . . . . . . . . . . . . . . 50

2.3 La fonction x1/x qui est maximum pour λ ≈ 2.71. . . . . . . 542.4 Une collection de triangles. . . . . . . . . . . . . . . . . . . . 542.5 Un morceau de graphe où l’on aurait commencé à brancher

sur les sommets v1 et v2 pour les ajouter au stable. . . . . . 572.6 Borne supérieure versus borne inférieure. . . . . . . . . . . 592.7 Une collection de K6 et un morceau de l’arbre de recherche

correspondant à l’exécution de StableMax sur ce graphe. . . 592.8 Un exemple d’arbre d’intervalles pour un ensemble P de

points. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 672.9 Calcul d’une requête sur des arbres d’intervalles. . . . . . . 682.10 Un exemple de décomposition dans le cas de 3 machines. . 732.11 Un graphe G, une décomposition arborescente de largeur 3

et la triangulation H associée. . . . . . . . . . . . . . . . . . 77

Page 256: Le fichier pdf du livre (EJCIM 2015)

246 TABLE DES FIGURES

2.12 Un bloc (S, C) et l’une de ses décompositions en blocs pluspetits. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78

3.1 Homomorphisme h = L⊕, f M comme composition de mapet reduce . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92

3.2 Déduction naturelle . . . . . . . . . . . . . . . . . . . . . . . 973.3 λ-calcul simplement typé . . . . . . . . . . . . . . . . . . . . 973.4 Exemple de preuve en déduction naturelle . . . . . . . . . . 983.5 Exemple de typage d’un λ-terme . . . . . . . . . . . . . . . 98

4.1 Calcul du milieu du segment AB. . . . . . . . . . . . . . . . 1394.2 Espace de Mondrian. . . . . . . . . . . . . . . . . . . . . . . 1404.3 Cônes et causalité. . . . . . . . . . . . . . . . . . . . . . . . . 1414.4 Trajectoires sur un Piecewise Constant Derivative. . . . . . 1424.5 Exemple de machine à signaux et de diagramme

espace-temps. . . . . . . . . . . . . . . . . . . . . . . . . . . 1454.6 Calculer le milieu. . . . . . . . . . . . . . . . . . . . . . . . . 1474.7 Simulation d’une machine de Turing par une machine à

signaux. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1484.8 Étape de contraction. . . . . . . . . . . . . . . . . . . . . . . 1504.9 Contraction itérée. . . . . . . . . . . . . . . . . . . . . . . . . 1514.10 Fractales. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1524.11 Résolution de QSAT par calcul fractal complet. . . . . . . . 1544.12 Résolution de QSAT par calcul fractal, détails. . . . . . . . . 1554.13 Agrégation du résultat. . . . . . . . . . . . . . . . . . . . . . 1554.14 Ajout du réel 15 au réel −8. . . . . . . . . . . . . . . . . . . . 1574.15 Un exemple de jeu de tuiles de Wang et un morceau d’un

pavage possible par ce jeu de tuiles. . . . . . . . . . . . . . . 1614.16 Un exemple de lien le long d’une coupe d’un motif ; les

colles représentées par une minuscule ont une force 1, etles majucscules une force 2 ; le lien le long de la coupereprésentée est de 8 . . . . . . . . . . . . . . . . . . . . . . . 163

4.17 Des exemples de motifs auto-assemblés ; les colles de force2 sont représentés par des majuscules, les colles de force1 par des minuscules. À quelle température chaque motifest-il stable ? . . . . . . . . . . . . . . . . . . . . . . . . . . . 164

4.18 Un exemple de motif avec des transitions possibles àtempérature 2. . . . . . . . . . . . . . . . . . . . . . . . . . . 164

4.19 Un système d’auto-assemblage pour les rectangles àtempérature 2. . . . . . . . . . . . . . . . . . . . . . . . . . . 165

4.20 Une progression possible de l’assemblage d’un rectangle. . 166

Page 257: Le fichier pdf du livre (EJCIM 2015)

TABLE DES FIGURES 247

4.21 Un système d’auto-assemblage pour les carrés àtempérature 2. . . . . . . . . . . . . . . . . . . . . . . . . . . 166

4.22 Progression de l’assemblage d’un carré. . . . . . . . . . . . 1664.23 Un compteur à température 2 ; la couleur de chaque tuile

indique le bit qu’elle représente. . . . . . . . . . . . . . . . . 1674.24 Assemblage du compteur à température 2. . . . . . . . . . . 1684.25 Le jeu de tuile pour simuler une machine de Turing. . . . . 1694.26 Un exemple de calcul par le jeu de tuiles simulant une

machine de Turing. . . . . . . . . . . . . . . . . . . . . . . . 1694.27 Deux systèmes cinétiques à température 1 pour assembler

un carré 3× 3. . . . . . . . . . . . . . . . . . . . . . . . . . . 173

5.1 Un exemple de PA. . . . . . . . . . . . . . . . . . . . . . . . . 1805.2 Un PA A tel que L= 1

2(A) = anbn | n > 0. . . . . . . . . . . 182

5.3 La hiérarchie de Chomsky complétée. . . . . . . . . . . . . . 1845.4 Un PA A tel que L= 1

2(A) = anbnc+ | n > 0. . . . . . . . . 187

5.5 Un PA pour am1 b . . . bamk b | k > 1∧m1 = mk. . . . . . . . 1905.6 Réduction du problème de valeur 1 dans les PA. . . . . . . . 1965.7 Un exemple de POMDP. . . . . . . . . . . . . . . . . . . . . 1995.8 Un POMDP avec observation déterministe. . . . . . . . . . 2015.9 Un exemple nécessitant une mémoire infinie. . . . . . . . . 2095.10 Réduction pour le théorème 5.2.15. . . . . . . . . . . . . . . 2105.11 Complexité des problèmes qualitatifs pour les POMDP. . . 2155.12 Un système probabiliste à événement discret. . . . . . . . . 2175.13 Un exemple de jeu stochastique à signaux à un joueur. . . . 2205.14 Un exemple de jeu stochastique à signaux à deux joueurs. . 2225.15 Un jeu non-déterminé avec condition de gain de co-Büchi. . 224

Page 258: Le fichier pdf du livre (EJCIM 2015)
Page 259: Le fichier pdf du livre (EJCIM 2015)

Table des matières

Sommaire i

Liste des auteurs iii

Préface v

1 Algorithmes efficaces en géométrie algébrique réelle 11.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21.2 Objets de base : algorithmes et bornes . . . . . . . . . . . . . 8

1.2.1 Définitions . . . . . . . . . . . . . . . . . . . . . . . . . 81.2.2 Points et valeurs critiques . . . . . . . . . . . . . . . . 111.2.3 Énoncés de transversalité, propriétés des points et

valeurs critiques . . . . . . . . . . . . . . . . . . . . . 141.2.4 Valeurs critiques généralisées . . . . . . . . . . . . . . 161.2.5 Résolution des systèmes polynomiaux : le cas de la

dimension nulle . . . . . . . . . . . . . . . . . . . . . . 191.2.6 Bornes sur le degré et calcul des points critiques . . . 21

1.3 Calcul d’au moins un point par composante connexe . . . . 221.3.1 Réduction au cas algébrique . . . . . . . . . . . . . . . 231.3.2 Le cas équidimensionnel lisse . . . . . . . . . . . . . . 241.3.3 Méthodes de déformation et variétés singulières . . . 28

1.4 Connexité dans les ensembles algébriques réels . . . . . . . . 311.4.1 Préliminaires . . . . . . . . . . . . . . . . . . . . . . . 321.4.2 Amélioration pratique de l’algorithme de Canny . . . 341.4.3 Pas de bébé – pas de géant pour les hypersurfaces

lisses bornées . . . . . . . . . . . . . . . . . . . . . . . 371.5 Vers l’élimination des quantificateurs . . . . . . . . . . . . . . 40

1.5.1 Optimisation polynomiale . . . . . . . . . . . . . . . . 411.5.2 Élimination faible des quantificateurs réels . . . . . . 42

Page 260: Le fichier pdf du livre (EJCIM 2015)

250 TABLE DES MATIÈRES

2 Algorithmes modérément exponentiels 472.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . 482.2 Algorithmes de branchement . . . . . . . . . . . . . . . . . . 50

2.2.1 Algorithmes d’énumération pour les stables maximaux 522.2.2 À la recherche du plus grand stable . . . . . . . . . . 552.2.3 Dénombrer plus vite qu’énumérer . . . . . . . . . . . 61

2.3 La méthode Trier & Chercher . . . . . . . . . . . . . . . . . . 622.3.1 Introduction à la méthode . . . . . . . . . . . . . . . . 622.3.2 Un algorithme pour les problèmes à une seule

contrainte . . . . . . . . . . . . . . . . . . . . . . . . . 642.3.3 Un algorithme pour les problèmes à plusieurs

contraintes . . . . . . . . . . . . . . . . . . . . . . . . . 662.3.4 Un exemple d’application de la méthode Trier &

Chercher étendue . . . . . . . . . . . . . . . . . . . . . 702.4 Programmation dynamique . . . . . . . . . . . . . . . . . . . 74

2.4.1 L’approche Held-Karp : VOYAGEUR DE COMMERCE . 752.4.2 Un algorithme pour LARGEUR ARBORESCENTE . . . . 762.4.3 La combinatoire au secours de la programmation

dynamique . . . . . . . . . . . . . . . . . . . . . . . . 792.4.4 Extensions . . . . . . . . . . . . . . . . . . . . . . . . . 81

2.5 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82

3 Calcul de programmes parallèles avec Coq 873.1 Une introduction à la théorie des listes . . . . . . . . . . . . . 88

3.1.1 Listes, map, reduce, et parallélisme . . . . . . . . . . 893.1.2 Troisième théorème d’homomorphisme . . . . . . . . 913.1.3 Somme maximum des préfixes d’une liste . . . . . . 94

3.2 L’assistant de preuve Coq . . . . . . . . . . . . . . . . . . . . 963.2.1 La correspondance de Curry-Howard . . . . . . . . . 963.2.2 Interaction avec l’assistant de preuve Coq . . . . . . . 993.2.3 Quelques applications de Coq . . . . . . . . . . . . . 103

3.3 Programmation fonctionnelle en Coq . . . . . . . . . . . . . . 1043.3.1 Les entiers naturels en Coq . . . . . . . . . . . . . . . 1053.3.2 Polymorphisme . . . . . . . . . . . . . . . . . . . . . . 1063.3.3 Exécution de programmes dans l’assistant de preuve 1073.3.4 Modules . . . . . . . . . . . . . . . . . . . . . . . . . . 108

3.4 Vérification de programmes en Coq . . . . . . . . . . . . . . 1103.4.1 Établir des propriétés . . . . . . . . . . . . . . . . . . 1103.4.2 Prouver des propriétés . . . . . . . . . . . . . . . . . . 1113.4.3 Fonctions avec pré- et post-conditions . . . . . . . . . 114

3.5 Structures algébriques et classes de types . . . . . . . . . . . 114

Page 261: Le fichier pdf du livre (EJCIM 2015)

TABLE DES MATIÈRES 251

3.5.1 Classes de type . . . . . . . . . . . . . . . . . . . . . . 1143.5.2 Monoïdes . . . . . . . . . . . . . . . . . . . . . . . . . 1163.5.3 Utiliser des monoïdes avec classe . . . . . . . . . . . . 1173.5.4 Réduction . . . . . . . . . . . . . . . . . . . . . . . . . 119

3.6 Programmation parallèle en Coq . . . . . . . . . . . . . . . . 1193.6.1 Homomorphismes de listes . . . . . . . . . . . . . . . 1203.6.2 Théorèmes sur les homomorphismes . . . . . . . . . 1223.6.3 La somme maximum des préfixes . . . . . . . . . . . 1243.6.4 Programmation parallèle explicite en Coq . . . . . . . 1283.6.5 Parallélisation automatique . . . . . . . . . . . . . . . 132

3.7 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 133

4 Construire et calculer dans un monde 2D 1354.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1364.2 Divers modèles en géométrie euclidienne . . . . . . . . . . . 138

4.2.1 Avec la règle et le compas . . . . . . . . . . . . . . . . 1384.2.2 Automates de Mondrian . . . . . . . . . . . . . . . . . 1404.2.3 Dérivée constante par région . . . . . . . . . . . . . . 141

4.3 Machines à signaux . . . . . . . . . . . . . . . . . . . . . . . . 1434.3.1 Définitions . . . . . . . . . . . . . . . . . . . . . . . . . 1434.3.2 Calculer au sens de Turing . . . . . . . . . . . . . . . 1474.3.3 Malléabilité de l’espace-temps et trous noir . . . . . . 1504.3.4 Construction et utilisation de fractales . . . . . . . . . 1524.3.5 Calcul analogique . . . . . . . . . . . . . . . . . . . . . 156

4.4 Auto-assemblage . . . . . . . . . . . . . . . . . . . . . . . . . 1594.4.1 Présentation du modèle . . . . . . . . . . . . . . . . . 1594.4.2 Assemblage de formes simples . . . . . . . . . . . . . 1654.4.3 Calcul dans l’auto-assemblage . . . . . . . . . . . . . 1684.4.4 Modèle plus physique : kTAM . . . . . . . . . . . . . 1714.4.5 Autres développements . . . . . . . . . . . . . . . . . 175

4.5 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 175

5 Contrôle, probabilités et observation partielle 1775.1 Automates probabilistes . . . . . . . . . . . . . . . . . . . . . 178

5.1.1 Présentation . . . . . . . . . . . . . . . . . . . . . . . . 1785.1.2 Propriétés des langages stochastiques . . . . . . . . . 1835.1.3 Décidabilité et indécidabilité dans les PA . . . . . . . 190

5.2 Processus de décision markoviens partiellement observables 1975.2.1 Présentation . . . . . . . . . . . . . . . . . . . . . . . . 1975.2.2 Analyse des POMDP à horizon fini . . . . . . . . . . . 2025.2.3 Décidabilité et indécidabilité à horizon infini . . . . . 206

Page 262: Le fichier pdf du livre (EJCIM 2015)

252 TABLE DES MATIÈRES

5.3 Jeux stochastiques à signaux . . . . . . . . . . . . . . . . . . . 2195.3.1 Présentation . . . . . . . . . . . . . . . . . . . . . . . . 2195.3.2 Caractère déterminé . . . . . . . . . . . . . . . . . . . 2235.3.3 Résolution des jeux stochastiques à signaux . . . . . 225

Bibliographie 229

Table des figures 245

Table des matières 249