AccueilđŸ‡«đŸ‡·Chercher

Algorithme de Karger

En algorithmique des graphes, l'algorithme de Karger est un algorithme probabiliste pour le problĂšme de la coupe minimum (MIN-CUT). C'est donc un algorithme utilisant une source d'alĂ©as, pour produire une solution correcte avec une bonne probabilitĂ©. Le problĂšme en question est le suivant : Ă©tant donnĂ© un graphe non orientĂ© trouver un ensemble de sommets non trivial minimisant le nombre d'arĂȘtes sortant de cet ensemble.

L'outil principal de l'algorithme est la contraction alĂ©atoire d'arĂȘtes, qui fait dĂ©croĂźtre le nombre de sommets.

Il est dû à David Karger et a été publié en 1993[1]. Plusieurs variations ont ensuite été proposées.

Notion de coupe minimum

Une coupe minimum.

L'objet du problĂšme est un graphe non orientĂ©, un objet mathĂ©matique qui permet par exemple de reprĂ©senter des rĂ©seaux de communications. Les nƓuds du rĂ©seau sont appelĂ©s les sommets et les connexions sont les arĂȘtes. MathĂ©matiquement, un graphe non orientĂ© G est la donnĂ©e d'un ensemble fini, notĂ© V (les sommets) et d'un sous-ensemble E de V×V (les arĂȘtes).

On parle de coupe pour dĂ©signer deux concepts proches : une partition des sommets en deux sous-ensembles non vides ou bien les arĂȘtes ayant une extrĂ©mitĂ© dans chacun de ces sous-ensembles. Lorsqu'on parle du cardinal d'une coupe on entend le nombre d'arĂȘtes de cette coupe. Une coupe minimum dans un graphe non orientĂ© est une coupe de cardinal minimum. Il peut exister plusieurs coupes minimums.

Le concept de coupe minimum est reliĂ© Ă  un autre concept fondamental en thĂ©orie des graphes, la notion de flot maximum. En effet le thĂ©orĂšme flot-max/coupe-min Ă©tablit qu'Ă©tant donnĂ© deux sommets particuliers s et t dans le graphe, le flot maximum pouvant passer par le rĂ©seau de s Ă  t est Ă©gal au cardinal de la coupe minimum avec la contrainte que s doit ĂȘtre dans un sous-ensemble et t dans l'autre.

ProblĂšme de la coupe minimum

Le problĂšme de la coupe minimum consiste, Ă©tant donnĂ© un graphe, Ă  dĂ©terminer une coupe minimum. Ce problĂšme peut ĂȘtre rĂ©solu de façon dĂ©terministe en cherchant un flot maximum entre toute paire de sommets grĂące au thĂ©orĂšme flot-max/coupe-min. Il existe de nombreux algorithmes pour cela, par exemple l'algorithme de Ford-Fulkerson ou l'algorithme de poussage/rĂ©Ă©tiquetage. L'algorithme de Karger est beaucoup plus simple[2] mais probabiliste.

Description de l'algorithme

Notion de contraction

Contraction d'une arĂȘte (en gras).

L'algorithme est basĂ© sur une procĂ©dure de contraction d'arĂȘte. Cette procĂ©dure consiste, Ă©tant donnĂ© un graphe G et une arĂȘte e=(a,b), Ă  fusionner a et b pour former un unique sommet ab reliĂ© Ă  la fois aux voisins de a et au voisins de b (hormis a et b). Le graphe ainsi formĂ© est notĂ© G/e. Cette transformation peut faire apparaĂźtre des arĂȘtes en double si a et b partagent un voisin. AprĂšs plusieurs contractions on a des multi-arĂȘtes et on travaille donc avec des multigraphes. Le point important est qu'une coupe dans le graphe aprĂšs contraction, Ă©tait dĂ©jĂ  une coupe dans le graphe de dĂ©part[3].

Description informelle

L'algorithme consiste simplement Ă  contracter une arĂȘte tirĂ©e uniformĂ©ment dans le graphe, Ă  la contracter, et Ă  recommencer l'opĂ©ration jusqu'Ă  n'avoir que deux sommets. Les deux sommets reprĂ©sentent la partition de sommets, et les arĂȘtes entre eux deux sont les arĂȘtes de la coupe.

Un exemple d’exĂ©cution de l'algorithme est donnĂ© par l'image suivante.

Un déroulement de l'algorithme de Karger sur un graphe.
10 répétitions de l'algorithme de Karger.

Pseudo-code

Le pseudo-code est le suivant :

   fonction contraction(G=(V,E)):
       tant que |V| > 2
           choisir e dans E aléatoirement (*fonction aléatoire uniforme*)
           G ← G/e
       retourner l'unique coupure de G

Analyse de l'algorithme

Terminaison

Le nombre de sommets du graphe est réduit de un à chaque étape, il y a donc n-2 étapes, et l'algorithme termine.

Probabilité d'erreur

Soit k la taille de la coupe minimum du graphe G, et soit C une telle coupe (vue comme un ensemble d'arĂȘtes). Remarquons que le degrĂ© minimum de G est k sinon on pourrait isoler un sommet de bas degrĂ© et obtenir une coupe de taille infĂ©rieure Ă  k. On cherche Ă  savoir la probabilitĂ© d'avoir C Ă  la fin de l'algorithme, c'est-Ă -dire la probabilitĂ© de n'avoir contractĂ© aucune arĂȘte de C.

En notant n le nombre de sommet et l’évĂ©nement « l'arĂȘte contractĂ©e Ă  l'Ă©tape n'appartient pas Ă  C » , on peut montrer[4] que

Donc la probabilité de succÚs est au moins .

En répétant l'algorithme fois, on peut avoir un algorithme avec une probabilité de succÚs constante. En effet la probabilité d'échec pour l'algorithme répété est au plus car les exécutions sont indépendantes. Cette quantité tend vers 1/e quand n tend vers l'infini.

Complexité

Pour un graphe donnĂ© sous forme de liste d'adjacence ou de matrice d'adjacence, un run de l'algorithme peut ĂȘtre implĂ©mentĂ© en temps , on a donc une complexitĂ© quadratique en fonction du nombre de nƓuds. Avec un nombre quadratique de rĂ©pĂ©titions on obtient un algorithme en .

Cette complexitĂ© peut ĂȘtre amĂ©liorĂ©e pour obtenir un algorithme quasi quadratique, de probabilitĂ© d'erreur tendant vers zĂ©ro avec n tendant vers l'infini[5].

Historique et extensions

L'algorithme de Karger a Ă©tĂ© inventĂ© par Karger, et publiĂ© en 1993[1]. Plusieurs variations et dĂ©veloppements ont ensuite Ă©tĂ© proposĂ©s. Par exemple la complexitĂ© a Ă©tĂ© amĂ©liorĂ©e par Karger et Stein[6]. Karger et Motwani ont montrĂ© que MIN-CUT Ă©tait dans la classe de complexitĂ© appelĂ©e NC, en dĂ©randomisant un autre algorithme utilisant le mĂȘme principe de contraction[7] - [8].

L'algorithme de Karger est connu pour sa simplicité et est parfois utilisé pour introduire la notion d'algorithme probabiliste[9].

Notes et références

  1. David Karger, « Global Min-cuts in RNC and Other Ramifications of a Simple Mincut Algorithm », dans Proc. 4th Annual ACM-SIAM Symposium on Discrete Algorithms, (lire en ligne)
  2. Pour la simplicité, voir la phrase suivante dans Motwani et Raghavan 1995 : Note the extreme simplicity of the randomized algoritm we have just studied. In contrast, most deterministic algorithms for this problem are based on network flows and are considerably more complicated.
  3. Motwani et Raghavan 1995.
  4. Voir par exemple Motwani et Raghavan 1995.
  5. L'algorithme amélioré est décrit dans notes de cours sur l'algorithme de Karger, par Eric Vigoda (Georgia Institute of Technology), et l'article original est (Karger et Stein 1993).
  6. Version conférence : Karger et Stein 1993, version journal : Karger et Stein 1996
  7. David R. Karger et Rajeev Motwani, « Derandomization through approximation: An NC algorithm for minimum cuts », dans Proceedings of the twenty-sixth annual ACM symposium on Theory of computing, , p. 497-506
  8. Une dérandomisation consiste en la transformation d'un algorithme randomisé en un algorithme déterministe. Celle de l'article en question utilise des marches aléatoires sur des graphes expanseurs.
  9. Voir par exemple Motwani et Raghavan 1995 et les notes du cours de Sanjeev Arora (UniversitĂ© de Princeton (Today’s topic is simple but gorgeous: Karger’s min cut algorithm and its extension.).

Bibliographie

  • (en) David Karger, « Global Min-cuts in RNC and Other Ramifications of a Simple Mincut Algorithm », dans Proc. 4th Annual ACM-SIAM Symposium on Discrete Algorithms, (lire en ligne)
  • (en) David R. Karger et Clifford Stein, « An algorithm for minimum cuts », dans STOC, , p. 757-765

Liens externes

Cet article est issu de wikipedia. Text licence: CC BY-SA 4.0, Des conditions supplĂ©mentaires peuvent s’appliquer aux fichiers multimĂ©dias.