Problème de l'isomorphisme de sous-graphes

Un article de Wikipédia, l'encyclopédie libre.
Le problème est de savoir si un graphe contient un autre graphe comme sous-graphe.

En informatique théorique, le problème de l'isomorphisme de sous-graphes est le problème de décision suivant : étant donnés deux graphes G et H, déterminer si G contient un sous-graphe isomorphe à H[1]. C'est une généralisation du problème de l'isomorphisme de graphes.

Définition[modifier | modifier le code]

Soient et deux graphes. Le problème de décision de l'isomorphisme de sous-graphe est : « Est-ce qu'il existe un sous-graphe , avec et , tel qu'il existe une bijection telle que  ? ».

Complexité[modifier | modifier le code]

Le problème est NP-complet[2].

Réduction du problème de la clique[modifier | modifier le code]

Le problème de la clique se réduit en temps polynomial au problème de l'isomorphisme de sous-graphe. Il suffit de prendre pour une -clique, dès lors, par définition le problème de l'isomorphisme de sous-graphes généralise le problème de la clique. Puisque le problème de la clique est NP-difficile, alors le problème de l'isomorphisme est NP-difficile.

Un autre réduction consiste à utiliser le problème du chemin hamiltonien, et a l'avantage de montrer que le problème est aussi difficile sur les graphes planaires[3].

Algorithme non-déterministe polynomial[modifier | modifier le code]

Il existe un algorithme non-déterministe qui résout en temps polynomial le problème. L'algorithme consiste à prendre le sous-graphe et une fonction aléatoirement, puis à vérifier si est un isomorphisme. Vérifier que est bien un isomorphisme se calcule en temps polynomial : il suffit de voir si tous les voisinages sont conservés par l'isomorphisme.

Relation à d'autres problèmes[modifier | modifier le code]

Le problème de l'isomorphisme de sous-graphes est un problème plus général que le problème de l'isomorphisme de graphes, où on demande si G et H sont isomorphes. En effet, on peut décider l'isomorphisme de G et H et donnant (G, H) en entrée à un algorithme qui décide l'isomorphisme de sous-graphes.

Notes et références[modifier | modifier le code]

  1. J. R. Ullmann, « An Algorithm for Subgraph Isomorphism », J. ACM, vol. 23, no 1,‎ , p. 31–42 (ISSN 0004-5411, DOI 10.1145/321921.321925, lire en ligne, consulté le )
  2. Ingo Wegener, Complexity Theory : Exploring the Limits of Efficient Algorithms, Springer, , 308 p. (ISBN 978-3-540-21045-0, lire en ligne), p. 81.
  3. Colin de la Higuera, Jean-Christophe Janodet, Émilie Samuel, Guillaume Damiand et Christine Solnon, « Polynomial algorithms for open plane graph and subgraph isomorphisms », Theoretical Computer Science, vol. 498,‎ , p. 76-99 (DOI 10.1016/j.tcs.2013.05.026, lire en ligne) « It is known since the mid-70’s that the isomorphism problem is solvable in polynomial time for plane graphs. However, it has also been noted that the subisomorphism problem is still NP-complete, in particular because the Hamiltonian cycle problem is NP-complete for planar graphs. »