• Aucun résultat trouvé

Dans cette Section, nous montrons que le problème Racine Carrée Minimum est soluble en temps polynomial lorsque l’entrée est un graphe de degré maximum ∆(G) ≤ 6. Nous renvoyons à la Section4.4pour une définition du problème Racine Carrée Minimum Étiquetée. Le Lemme4.7

Lemme 4.7. Soit G = (V, E) un graphe. Il y a un algorithme en temps O(n · f(tw(G))) pour

résoudre le problème Racine Carrée Minimum Étiquetée, pour une certaine fonction f.

Démonstration. Bien que nous pourrions écrire un algorithme de Programmation Dynamique Arbo-rescente pour ce problème, nous donnons ici une preuve plus courte non constructive de ce lemme.

Nous exprimons le problème de l’existence d’une racine carrée étiquetée en logique MSOL. L’exis-tence d’un graphe H tel que G = H2, R ⊆ EH et B ∩ EH = ∅ est équivalent à l’existence d’un sous-ensemble X ⊆ EG d’arêtes qui vérifie R ⊆ X, B ∩ X = ∅, et :

⋄ pour toute arête uv ∈ EG, soit uv ∈ X ou alors il existe uw, wv ∈ X ⋄ pour tout couple uw, vw ∈ X d’arêtes distinctes, uv ∈ EG.

Notre problème est donc expressible en logique MSOL. Il suffit d’appliquer le Théorème de Cour-celle [49] pour achever la preuve de notre lemme.

Soit G = (V, E) un graphe connexe, et soit u ∈ VG. On note L0(u), . . . , Ls(u)(u) les différents

niveaux d’un parcours en largeur à partir de u, c’est-à-dire Li(u) = {v ∈ VG | distG(u, v) = i} pour i = 1, . . . , s(u), avec s(u) = max distG(u, v) étant l’excentricité de u. On pose également

Li = ∅ pour tout i > s(u). Nous établissons le Lemme 4.8 suivant pour borner la largeur linéaire d’un graphe, que nous appliquons dans le Lemme 4.9 à une certaine famille de graphes de degré maximum ∆(G) ≤ 6.

Lemme 4.8. Soit G = (V, E) un graphe connexe, et soit u ∈ VG. Alors :

pw(G2) + 1 ≤ max

0≤i≤s(u){|Li(u) ∪ Li+1(u) ∪ Li+2(u)|}

Démonstration. Nous construisons une décomposition en chemin (X, P ), où P est un chemin

or-donné de sommets 0, . . . , s(u). Pour tout i ∈ {0, . . . , s(u)}, on définit Xi = Li(u)∪Li+1(u)∪Li+2(u). Par définition L0(u), . . . , Ls(u) constituent une partition de VG. En conséquence Ss(u)

i=0Xi = VG. Pour toute arête xy ∈ EG2 telle que x ∈ Li(u) et y ∈ Lj(u), il vient |i − j| ≤ 2. En conséquence par construction de notre décomposition, pour toute arête xy ∈ EG2 : x, y ∈ Xi, pour un cer-tain i ∈ {0, . . . , s(u)}. Finalement, si un sommet x ∈ Xi∩ Xj avec i + 1 < j, alors i + 1 = j et

x∈ Li+2⊆ Xi+1. Cela signifie que l’ensemble {i | x ∈ Xi} induit un sous-chemin de P .

Nous achevons la preuve en observant que par construction, la largeur de (X, P ) est donnée par max0≤i≤s{|Li(u) ∪ Li+1(u) ∪ Li+1(u)|} − 1.

Lemme 4.9. Soit G un graphe satisfaisant ∆(G) ≤ 6, et soit H une racine carrée de G. Si tout

chemin induit xyz de H avec {dH(y) = 2, dH(x) ≥ 2, dH(y) ≥ 2} est inclus dans H dans un cycle

induit de longueur au plus 6, alors pw(G) ≤ 71.

Démonstration. Sans perte de généralité, nous supposons que G est connexe. Si G n’est pas connexe,

nous considérons ses composantes connexes séparément. Soit u ∈ VG. Nous effectuons un parcours en largeur BFS dans H à partir de u pour obtenir les niveaux L0(u), . . . , Ls(u). Un sommet y est appelé un fils d’un sommet x dans BFS si xy ∈ EG, x ∈ Li(u) et y ∈ Li+1(u), pour un certain

i ∈ {0, . . . , s(u) − 1}. Dans un tel cas, on dit de plus que x est un père de y. Observons qu’un sommet peut avoir plusieurs pères. Pour trois sommets x, y, z, on dit que z est un petit-fils de x si

y est un fils de x et si z est un fils de y. On dit de plus dans un tel cas que x est un grand-père de y. Finalement, on dit que y est un descendant de x si x ∈ Li(u), y ∈ Lj(u) avec i < j, et il existe un chemin de longueur j − i dans G qui relie x à y. Nous montrons préalablement une série d’affirmations.

Affirmation 0. ∀ x ∈ V : x est adjacent dans G à ses fils, petits-fils, pères et grand-pères de BFS. Affirmation 1. ∀ i ≥ 2, ∀ x ∈ Li(u) : la somme du nombre des fils et des petits-fils de x est au

plus 4.

L’Affirmation 1 est une conséquence de l’Affirmation 0 et du fait que ∀ x ∈ V : dG(x) ≤ 6. Ces deux remarques sont importantes pour nos futurs raisonnements.

Affirmation 2. Si x ∈ Li, i ≥ 2, et si x possède au moins deux petits-fils, alors seul un fils y de x possède des fils. w2 x y1 y2 z1 z2 v1 v2 u

Li(u) Li+1(u) Li+2(u)

Li−2(u) Li−1(u)

w1

Figure 4.5 – Configuration de x et de ses petits-fils.

Nous montrons cette affirmation par contradiction. Supposons que x possède au moins deux fils distincts y1 6= y2, chacun possédant des fils. Par hypothèse, x possède au moins deux petits-fils distincts. Posons z1 6= z2 les petits-fils de x pour lesquels y1 est un père de z1 et y2 est un père de

z2. Notons que nous n’excluons pas y2 d’être un père de z1, ni même que nous n’excluons pas y1 d’être un fils de z2. Avec i ≥ 2 : x possède un père et un grand-père. Soit alors v2 un père de x, et soit v1 un père de v2. Voir Fig. 4.5.

Dans un premier temps, observons que v1v2x est un chemin induit de H. En effet, si v2 est adjacent à un autre sommet z, alors étant donné les niveaux de la configuration, on a z 6= y1, y2, z1, z2. Or par l’affirmation 0, dG(x) ≥ 7, ce qui est une contradiction. En conséquence, dH(v2) = 2.

Observons à présent que puisque i ≥ 2, alors dH(v1) ≥ 2. Avec dH(x) ≥ 2, alors par la condition de

H énoncée dans le lemme, v1v2x est inclus dans H dans un cycle induit C de longueur au plus 6.

Si x a un voisin r 6= v2, y1, y2 dans H, on a r 6= v1, z1, z2 sinon r ou x n’est pas dans le bon niveau de BFS. En conséquence, par l’Affirmation 0, dG(x) ≥ 7 dans G. Cette contradiction montre que

dH(x) = 3, et en conséquence l’arête xy1 ou xy2 est contenue dans C. Supposons par symétrie que

xy1∈ C. Alors C = v1v2xy1w2w1comme montré dans la Fig.4.5. Par conséquent, w2est un nouveau sommet distinct des autres qui satisfait w2∈ NG(x), et donc dG(x) ≥ 7. Cette contradiction finale achève la preuve de l’Affirmation 2.

Affirmation 3. Si x ∈ Li, i ≥ 2, alors pour tout j > i : x possède au plus 4 descendants dans Lj(u).

Par l’Affirmation 1, x possède au plus 4 descendants dans Lj(u) quand j = i + 1 et j = i + 2. Si i = s − 1 ou i = s − 2, l’affirmation est donc vérifiée par la précédente observation. Montrons l’affirmation 3 par récurrence. Soit i < s − 2, et supposons que l’affirmation soit vérifiée pour tout

k > i. Par la première observation, la propriété est vérifiée pour j = i + 1 et j = i + 2.

Si x possède un unique petit-fils z, alors pour tout j ≥ i + 3, les descendants de x sont exactement les descendants de z dans Lj(u). Par hypothèse de récurrence, notre affirmation est donc vérifiée. Sinon si x possède plus de deux petits-fils, alors par l’Affirmation 2, x possède un unique fils y qui possède des descendants. Et nous concluons avec la même remarque que précédemment avec les descendants de y.

Nous achevons désormais la preuve de notre Lemme4.9. Trivialement, |L0(u)| = 1. Par l’Affirmation 0, on a alors |L1(u)| ≤ 6 et |L2(u)| ≤ 5. Soit p = |L1(u)|. Du fait que ∀ x ∈ L1(u) : dG(x) ≤ 6, alors pour tout x ∈ L1(u) : x possède au plus 5 − p petit-fils car il est garanti dans G que x est adjacent à u, à tous les autres sommets de L1(u), ainsi qu’à un de ses fils. L3(u) vérifie donc |L3(u)| ≤ p(5−p). En observant que si p = 6, alors L2(u) = L3(u) = ∅, L3(u) satisfait alors |L3(u)| ≤ max1≤p≤5{p(5 − p)} = 6. Par l’Affirmation 3, |L4(u)| ≤ 4|L3(u)| ≤ 24. On montre finalement par récurrence en utilisant les Affirmations 2 et 3 que pour tout i ≥ 5, |Li(u)| ≤ 4|L3(u)| ≤ 24. En appliquant le Lemme 4.8, on a alors pw(G) ≤ 71.

Nous pouvons à présent montrer le résultat principal de cette Section.

Théorème 4.10. Il y a un algorithme en temps polynomial O(n5) pour résoudre le problème de

Racine Carrée Minimum d’un graphe de degré maximum au plus 6. Démonstration. Notre algorithme procède en deux étapes.

Soit G un graphe satisfaisant ∆(G) ≤ 6. Nous utilisons deux ensembles d’arêtes R et B, et nous essayons de déterminer une racine carrée de G qui contient les arêtes de R et qui ne contient aucune arête de B. En d’autres termes, nous résolvons le problèmes de Racine Carrée Minimum Étiquetée. Nous initialisons R = ∅ et B = ∅. Nous appliquons ensuite la Règle de Réduction de Chemins définie ci-après. Ici, nous disons qu’une séquence u1, . . . , u est maximale si elle ne peut être étendue en ajoutant de nouveaux sommets au début ou à la fin de la séquence car elle ne remplirait pas l’ensemble des conditions i)–v) de la règle suivante :

Règle de Réduction de Chemins.

1. Déterminer une séquence de sommets u1, . . . , u, ℓ ≥ 3 maximale telle que i) ui, ui+1, ui+2 sont tous deux à deux adjacents, i ∈ {1, . . . , ℓ − 2}

ii) les ensembles {x1, . . . , xp} = NG(u1) ∩ NG(u2) \ {u1, u2, u3} et {y1, . . . , yq} = NG(uℓ−1) ∩

NG(u) \ {uℓ−2, uℓ−1, u} ne sont pas vides

iii) dG(u2) = p+q+2 si ℓ = 3, et dG(u2) = p+3, dG(uℓ−1) = q+3, dG(ui) = 4 for i ∈ {3, ℓ−2} si ℓ ≥ 4

iv) NG(ui) ∩ NG(ui+2) = {ui+1}, pour i ∈ {1, . . . , ℓ − 2}

v) si ℓ ≤ 4, alors x1u, . . . , xpu ∈ E/ G, y1u1, . . . , yqu1∈ E/ G, et si ℓ = 3, alors xiyj ∈ E/ G pour

i∈ {1, . . . , p} et j ∈ {1, . . . , q}.

2. On pose R = {u1u2, u2u3, . . . , uℓ−1u} ∪ {x1u1, . . . , xpu1} ∪ {y1u, . . . , yqu} et B = {x1u2, . . . , xpu2} ∪ {y1u2, . . . , yqu2} ∪ {uiui+2|1 ≤ i ≤ ℓ − 2} ∪ {zu1|z ∈ NG(u1) \ {u2, u3, x1, . . . , xp}} ∪ {zu|z ∈ NG(u) \ {uℓ−2, uℓ−1, y1, . . . , yq}}.

3. Si R ∩ B 6= ∅ ou R∩ B 6= ∅, alors arrêter et retourner no.

4. Supprimer les sommets u2, u4. . . , u de G, et supprimer également l’arête u1u3 si ℓ = 3. Modifier R = (R ∪ R) ∩ EG et B = (B ∪ B) ∩ EG. Modifier s = s − ℓ + 1.

Pour montrer que la Règle de Réduction de Chemins est valide, considérons une instance (G, R, B, s) du problème Racine Carrée Minimum Étiquetée et supposons que u1, . . . , usoit une séquence de sommets qui satisfasse i)–v) de l’étape 1. Par le Lemme 4.5, pour toute racine carrée H de G (si elle existe) : R ⊆ EH et B ∩ EH = ∅ pour les ensembles R et B construits à l’étape 2. En conséquence, si R ∩ B 6= ∅ ou R∩ B 6= ∅, alors nous avons une no-réponse. Supposons que nous ne nous soyons pas arrêté à l’étape 3, et notons ( ˆG, ˆR, ˆB, ˆs) l’instance du problème Racine Carrée

Minimum Étiquetéeobtenu à l’étape 4. Soit H une solution de (G, R, B, s). Puisque R⊆ EH et

B∩ EH = ∅ par le Lemme 4.5, il suffit de vérifier directement si le graphe ˆH obtenu à partir de H par suppression de u2, . . . , uℓ−1 est une solution de ( ˆG, ˆR, ˆB, ˆs). D’un autre côté, si ˆH est une

solution de ( ˆG, ˆR, ˆB, ˆs), alors H obtenu en joignant u1 et u par un chemin de longueur ℓ − 1 est une solution pour (G, R, B, s).

Nous appliquons la Règle de Réduction de Chemins de manière récursive le plus longtemps possible. Supposons que nous ne nous soyons pas arrêté et retourné no. Pour simplifier la notation, suppo-sons que (G, R, B, s) est l’instance obtenue du problème Racine Carrée Minimum Étiquetée. Puisque nous ne pouvons plus appliquer la Règle de Réduction de Chemins, alors par le Lemme4.4, nous pouvons conclure que pour toute racine carrée H de G : H ne possède pas de chemin induit

u1u2u3 avec dH(u2) = 2, dH(u1) ≥ 2 et dH(u3) ≥ 2 qui ne soit pas inclus dans H dans un cycle induit de longueur au plus 6, autrement nous pourrions appliquer la règle pour la séquence maxi-male qui contient u1, u2, u3. Par le Lemme 4.9, si G admet une racine carrée alors pw(G) ≤ 71. En utilisant l’Algorithme de Bodlaender [23], nous pouvons vérifier pw(G) ≤ 71. Si pw(G) > 71, alors nous pouvons conclure que G n’admet pas de racine carrée. Dans le cas contraire, nous résolvons le problème de Racine Carrée Minimum Étiquetée en utilisant le Lemme 4.7.

Pour conclure la preuve, il reste à analyser le temps d’exécution. Chaque application de la Règle de Réduction de Chemins peut être exécutée en temps O(n3· m). Nous pouvons vérifier chaque triplet

u1, u2, u3 de sommets adjacents en temps O(n3). Nous pouvons ensuite construire les ensembles

NG(u1)∩NG(u2)\{u1, u2, u3}, NG(u1)∩NG(u2)\{u1, u2, u3} et vérifier les conditions i)–v) en temps

O(m). Observons que nous ne pouvons étendre la séquence u1, . . . , uipour i ≥ 3 à la seule condition que NG(ui−1)∩NG(ui)\{ui−2, ui−1, ui} contienne exactement un élément. Par conséquence, le temps total pour obtenir une séquence maximale, pour u1, u2, u3 donné, est O(m). Egalement vérifier si l’instance est une no-réponse à l’étape 3, et la construction de la nouvelle instance peut être effectué en temps linéaire. Puisque la règle est appliquée au plus n fois, nous déduisons que le temps total pour cette étape est O(n5). Finalement, il suffit d’observer que l’Algorithme de Bodlaender [23] s’exécute en temps linéaire, et que le problème Racine Carrée Minimum Étiquetée peut être résolu également en temps linéaire sur les graphes de largeur arborescente bornée.

Documents relatifs