• Aucun résultat trouvé

Recherche d’un ensemble maximum de taxons compatibles

2.3 Reconstruction à partir de clades

2.3.3 Recherche d’un ensemble maximum de taxons compatibles

a) Complexité du problème

Problème 2 (MAXIMUMCOMPATIBLESUBSET(MCS))

Entrée : un ensembleCde clades sur un ensembleXde taxons.

Sortie : le plus petit ensemble R de taxons de X tel que l’ensemble de clades C|X−R ne

contienne pas de chevauchement.

Pour un ensemble quelconque de clades, ce problème est équivalent au problème

MAXIMUMCOMPATIBLETREE9(MCT)qui est NP-complet [Steel et Hamel, 1996]. Nous ap-

pellerons MCS-r (MCS-restreint) le problème MCS pour lequel les instances sont réduites aux ensembles de cladesC surXpour lesquels les propriétés (P1) et (P2) sont vérifiées. Nous montrons maintenant que ce problème MCS-r est NP-complet.

Théorème 8 (NP-complétude de MCS-r) SoitCun ensemble de clades deX avec les pro- priétés (P1) et (P2). Résoudre MCS-r sur ce type d’instances est un problème NP-complet.

Démonstration. Réduisons le problème MCS au problème MCS-r.

SoitXun ensemble de taxons etCune instance du problème MCS. SoientX0= X∪{o}, oùoest un nouveau taxon distinct de ceux deX, etC1l’ensemble de tous les clades triviaux.

DéfinissonsC0= (C\C1)∪{X}∪{{o,x} | x∈X}. Notons que par construction, l’ensemble de

cladesC0deX0a les propriétés (P1) et (P2). Montrons qu’il existe une solutionR0de taille

k + 1au problème MCS-r pourC0si et seulement si il existe une solutionRde taillekau problème MCS pourC.

9. Problème MCT (MAXIMUMCOMPATIBLETREE) : étant donné un ensembleTd’arbres en entrée, re-

cherche du plus grand sous-ensemble de feuillesSXtel que pour tous les arbresTT,T|Sont un raffine- ment commun.

⇒: soitR0 une solution au problème MCS-r pourC0 de taillek + 1, deux cas se pré- sentent.

Cas (1) :o∈R0. AlorsR = R0\{o}est de tailleket supprime tous les chevauchements de

C.

Cas (2) :o∉R0. Dans ce cas, l’ensembleR0doit contenir tous les éléments deXsauf un, c’est-à-dire|R0| = k + 1 = |X| − 1, car sinon il resterait deux clades de la forme{o,x}et

{o,y}, qui se chevaucheraient. Alors tout sous-ensembleR⊆Xde taille|X|−2 = kconvient pourC, parce qu’une collection de clades sur seulement deux taxons ne peut contenir de chevauchements.

⇐: SoitRune solution du problème MCS-r pourC, de taillek. ConsidéronsR0= R∪{o}. Cet ensemble a pour taillek + 1, supprime tous les chevauchements entre les clades de type{o,x}car il supprime le taxono. Tous les autres chevauchements sont supprimés car

R⊆R0. 

b) Algorithme de complexité paramétrée pour MCS-r

Il existe un algorithme FPT en le nombre de conflits pour résoudre le problème MCT pour un ensemble d’arbres phylogénétiques enracinés surX[Berry et Nicolas, 2006]. Cet algorithme peut également être utilisé pour résoudre le problème MCS-r en codant chaque cladeCpar un arbre phylogénétique qui le contient.

Nous présentons maintenant l’algorithme FPT implémenté dans Dendroscope en sep- tembre 2008 pour résoudre directement le problème MCS-r. Cet algorithme, appelé Seed- Growing fonctionne très bien en pratique.

Pour toute paire de clades chevauchantsA, B∈C, on définit la déclaration d’incompa- tibilité(A−B, A∩B, B−A). On noteLla liste de toutes ces déclarations d’incompatibilité pour l’ensemble de cladesC(voir figure 2.18(b) page 95).

Pour résoudre le problème MCS-r, on doit trouver un ensemble minimum de taxons

R⊆X qui résout toutes les déclarations d’incompatibilité dans L, c’est-à-dire que pour chacune d’entre elles, au moins un de ses trois termes est contenu dansR.

L’algorithme SeedGrowing, décrit en pseudo-code en figure 2.16, fonctionne en construisant un ensemble S de solutions candidates, appelées graines, dont il essaie d’étendre celle de taille minimale qui résout le plus de déclarations d’incompatibilité, jusqu’à en trouver une qui résout toutes les déclarations d’incompatibilités.

Théorème 9 (Complexité de l’algorithme SeedGrowing) S’il existe une solution de taillek

au problème MCS-r pour un ensembleH de déclarations d’incompatibilités, alors l’algo- rithme SeedGrowing la trouvera en considérant au plus3k+1graines. Sa complexité dans le pire cas est en tempsO(k|H|3k).

SeedGrowing(L: liste de déclarations d’incompatibilité à 3 membres) 1. S← {L[1][1], L[1][2], L[1][3]}

2. Pour tout élémentsdeSfaire

3. rang(s) = 1

4. Smin=éléments deSde taille minimale

5. s∗=élément deS

minde rang maximal

6. Tant que rang(s)<|L|faire

7. Sis∗résout la déclaration d’incompatibilitéL[rang(s) + 1]alors 8. rang(s∗) =rang(s∗) + 1

9. Sinon

10. S← S∪{s∗∪L[rang(s∗) + 1][1], s∗∪L[rang(s∗) + 1][2], s∗∪L[rang(s∗) + 1][3]}

11. S← S−{s∗}

12. Smin=éléments deSde taille minimale

13. s∗=élément deSminde rang maximal

14. Renvoyers∗

FIGURE2.16 : L’algorithme SeedGrowing qui recherche un ensemble de taille minimale qui

résout toutes les déclarations d’incompatibilité deL.

Démonstration. Démontrons que si un élément minimums∈Scontientktaxons, alors

Scontient au plus3k+1ensembles. Considérons l’arbre d’énumération des graines généré par l’algorithme. La profondeur d’un sommetvde cet arbre est le nombre d’arcs dans le chemin depuis la racine versv.

Au début d’une itération, l’algorithme choisit une graine s de taille minimale. Par construction, la profondeur du sommet correspondant sera d’au plus |s|. Si s résout la déclaration d’incompatibilité suivante, alors aucun sommet n’est ajouté à l’arbre d’énu- mération. Dans le cas contraire, trois sommets sont ajoutés, chacun représentant une graine dont la taille est strictement plus grande que|s|. Ainsi, l’arbre d’énumération aura une profondeur d’au plusk + 1, et il y aura au plus trois fois plus de sommets à la profon- deuriqu’à la profondeuri − 1. Ceci implique que le nombre de graines considérées dans

Sest au plus3k+1. 

c) Codage de MCS-r comme problème d’édition d’un graphe sans M

Il est également possible de coder le problème MCS-r comme celui de l’édition d’un graphe. Ceci permet de résoudre le problème avec une meilleure complexité théorique en temps, en utilisant le meilleur algorithme connu pour le problème HITTINGSET.

Définition 2.4 (Graphe des caractères) Soit C = {C1, . . . , Cr} un ensemble de clades sur

(C∪X, E), oùE ={{x,Ci}|x∈Ci}. Les sommets deG(C)associés àXsont appelés sommets- taxons.

Définition 2.5 (Graphe sans M) Un graphe bipartiG = (X∪Y, E), oùX etY sont des en- sembles indépendants, est un graphe sans M s’il ne contient pas de graphe M, c’est-à-dire de chemin de longueur 5 avec ses deux extrémités dansYcomme sous-graphe induit.

Notons que le chevauchemment de deux cladesC1etC2deCimplique l’existence de

trois taxons x, y et z tels que x ∈C1− C2, y∈C1∩C2, z ∈C2− C1, ce qui correspond

précisément à la présence d’un graphe M, comme montré en figure 2.17 à la page 2.17.

FIGURE2.17 : Le graphe de caractères de C = {{a,b}, {a,b,x}, {a,x}, {b,x}, {b,y}, {c,d},

{c,d,x,y}, {c,x}, {d,y}, {x,y}}. Les clades{b,x}et{c,d,x,y}étant incompatibles, ils corres- pondent à la présence d’un graphe M (par exemple celui sur les sommets-taxons{b,x,y} montré en gras) dans le graphe des caractères.

Théorème 10 Étant donné un ensembleCde clades, résoudre le problème MCS-r sur l’en- sembleCest équivalent à supprimer le plus petit nombretde sommets-taxons dans le graphe de caractèresG(C)afin qu’il devienne un graphe sans M.

Ainsi, un simple arbre de recherche bornée sur les graphes M pour éliminer leurs sommets-taxons donne, comme l’algorithme SeedGrowing, une complexité en temps de

O∗(3k)(pour tout graphe M, essayer de supprimer l’un de ses trois sommets-taxons)10. Le problème peut aussi être résolu en appliquant un algorithme FPT11 de résolution de

3-HITTINGSETsur les ensembles de trois sommets-taxons des graphes M.

Précisons que cette approche par suppression de sommets pour obtenir un graphe sans M est similaire à celle utilisée pour résoudre le problème MINIMUM FLIP CONSEN-

SUS[Chen et al., 2006] qui consiste à déterminer le nombre minimum de modifications

(addition ou suppression de taxons) pour qu’un ensemble de clades ne contienne plus de chevauchement. Ce problème, qui revient à modifier le plus petit nombre d’arêtes dans le graphe de caractères afin qu’il devienne un graphe sans M, est également NP-complet et des algorithmes FPT, entre autres, ont été proposés pour le résoudre [Chen et al., 2006; Böcker et al., 2008; Komusiewicz et Uhlmann, 2008].

10. c’est-à-direO(poly(n)3k)oùpolyest une fonction polynomiale. 11. enO∗(2.076k)d’aprèshttp://fpt.wikidot.com/fpt-races