Je
travaille sur les
graphes. Il
s'agit d'objets largement utilsés par toutes les disciplines
scientifique, afin de modéliser des problèmes. Un graphe,
dans la version la plus simple, n'est rien d'autre qu'une relation
binaire sur un ensemble fini. En d'autres termes, on trace des points
sur une feuille, on s'intéresse à des
sommets que des
arêtes relient, et la seule
information intéressante est de savoir si deux sommets sont
reliés ou non. Je m'intéresse aux
décompositions de graphes,
c'est-à-dire à des méthodes permettant de
découper le graphe en sous-graphes disjoints. Ces sous-graphes
entretiennent entre eux des relations particulières, dont
l'exploitation permet de résoudre plus efficacement des
problèmes. Par exemple, si l'on divise un graphe en composantes
connexes, de nombreux problèmes (routage, coloration, clique
maximum...) peuvent être résolus (en parallèle) sur
chaque composante, puis on fait l'union (ou le maximum, ou une
opération plus complexe) des solutions pour obtenir la solution
pour le graphe de départ. Je me suis intéressé
à une décomposition récursive, qui va plus loin
que la décomposition en composantes connexes : la
décomposition
modulaire. J'ai
travaillé sur une
généralisation
plus abstraite, des d
écompositions qui
l'étendent, ou encore qui qui l'
adaptent
au graphes bipartis, et sur des
algorithmes
pour la calculer. Je me suis aussi intéressé en la
décomposition des
graphes
réalistes en
communautés
(clusters).
La
décomposition modulaire
Un sommet
v d'un graphe
distingue un ensemble de sommets
X de ce même
si il est voisin de certains sommets de
V, mais non de tous (et si
v
n'appartient pas à
X).
Un ensemble de sommets que nul ne distingue est
un
module.
Il existe une façon canonique (sans équivoque) de
décomposer le graphe, en faisant une partition dont chaque
partie est un module, puis en repartant récursivement sur
chaque graphe induit par un module. On obtient ainsi l'
arbre de décomposition modulaire,
qui permet de représenter dans un espace
O(n) la famille (pourtant de taille
exponentielle) des modules du graphe. De nombreux problèmes
NP-complets (très durs)
peuvent être résolus en temps
polynomial (rapide) si cet arbre a
de bonnes propriétés.