No cache version.

Caching disabled. Default setting for this page:enabled (code LNG204)
If the display is too slow, you can disable the user mode to view the cached version.

Composantes Fortement Connexes

Rappel :

Composantes simplement connexes

Nous pouvons définir la connexité simple de la manière suivante : x, ∀y : ∃ chaîne entre x et y.

La notion « simplement connexe » (en anglais, “weakly connected”) peut s'appliquer à l'ensemble du graphe (si pour tout couple de sommet x et y il existe une chaîne entre x et y), ou à une partie du graphe (nous parlons alors de composante simplement connexe). Cette notion de connexité simple est assez évidente lorsque nous avons peu de sommets et que nous représentons graphiquement le graphe, comme dans l'exemple ci dessous. Nous pouvons dès lors constater qu'au sein d'une composante simplement connexe (csc) chaque sommet est accessible au départ de n'importe quel sommet de la composante.

Graphes simplement connexes

Si mn-1, toutes les arêtes2sont reliées. Dans ce cas, nous avons une seule composante simplement connexe.

Si m < n-1, nous nous trouvons en présence de plus d'une composante simplement connexe.

L'exemple ci-contre montre que notre graphe comporte deux composantes simplement connexes.
Les sommets {1, 2, 3, 4, 5} forment une composante simplement connexe, et les sommets {6,7} forment la deuxième.

Cet exemple montre un graphe simple non-orienté. Qu'en est-il pour les graphes orientés ?

Dans notre premier exemple, si nous appliquons cete définition le ne comportait qu'une seule csc composée des sommets {1,3}, et cinq csc composées chacune d'un seul sommet ({2}, {4}, {5}, {6}, et {7}). Or ce n'est pas le cas.
Dans le cas de graphes orientés nous devons considérer les arcs comme des arêtes, et nous pouvons ensuite appliquer la définition de la csc qui dit que chaque sommet de la composante simplement connexe doit être accessible depuis n'importe quel sommet de la même composante.

Si notre graphe comportait un huitième sommet qui n'était relié à aucun autre sommet, ou s'il était relié à lui même par une boucle, il serait considéré comme une composante simplement connexe, car tout sommet isolé respecte la définition de la csc. Nous aurions alors trois composantes simplement connexes.

Un graphe complet est donc toujours simplement connexe, mais tout graphe simplement connexe n'est pas forcément complet, car la connexité relie x et y par des chaînes (peu importe la longueur), mais un graphe complet a la contrainte que x et y soient reliés par seulement des chaînes (ou chemins) de longueur 1.

Contents Haut

Composantes fortement connexes

Nous pouvons définir la connexité forte de la manière suivante : x, ∀y : ∃ chemin entre x et y et ∃ chemin entre y et x.

Nous pourrions considérer chaque composante simplement connexe d'un graphe non-orienté comme une composante « fortement connexe » (en anglais, “strongly connected”) de ce graphe, en considérant chaque arête comme deux arcs de sens opposés, mais nous réserverons uniquement la connexité forte aux graphes orientés.

Comme dans le cas de la connexité simple, la connexité forte peut s'appliquer à un graphe en entier (graphe fortement connexe), ou le graphe peut être décomposé en composantes fortement connexes.

Un graphe complet est donc toujours un graphe fortement connexe (car nous pouvons remplacer les arêtes par deux arcs aux directions opposées), mais l'inverse n'est pas toujours vrai (pour être complet, les chemins doivent avoir une longueur 1).

De par sa définition, un graphe fortement connexe contient forcément des circuits.

Pour chercher les composantes fortement connexes d'un graphe, nous pouvons utiliser les algorithmes de Foulkes ou de Malgrange.

Contents Haut

Algorithme de Foulkes

Fonctionnalités de l'algorithme de Foulkes

  • L'algorithme de Foulkes permet de construire les composantes fortement connexes d'un graphe.

Caractéristiques de l'algorithme de Foulkes

L'algorithme de Foulkes présume que nous avons préalablement effectué une recherche de la fermeture transitive de notre graphe (par exemple avec l'algorithme de Warshall).

Si deux sommets appartiennent à la même composante fortement connexe, nous pouvons en déduire certaines similitudes au niveau de la matrice d'accessibilité (ils peuvent accéder au même ensemble de sommets). Nous devrons donc chercher au sein de la matrice de fermeture transitive les sommets pour lesquels la ligne dans cette matrice est identique. Ils appartiennent donc à la même composante fortement connexe.

Contents Haut

Complexité de l'algorithme de Foulkes

La complexité générale est de Ordre de grandeur(n3) car le calcul de la matrice de fermeture transitive est déjà de Ordre de grandeur(n3).

Algorithme de Malgrange

Fonctionnalités de l'algorithme de Malgrange

  • L'algorithme de Malgrange permet de construire les composantes fortement connexes d'un graphe.

Caractéristiques de l'algorithme de Malgrange

  • Choisir arbitrairement un sommet x
  • Chercher les successeurs de x, soit S(x) au moyen de DFS
  • Chercher les prédécesseurs de x, soit P(x) au moyen de DFS
  • S(x) ∩P(x) nous donne la composante fortement connexe contenant x.
Error Infobrol

Can not display this page of the Infobrol website

Type of error (18-01)

Unknown format specifier "&"

Please try again in a few minutes…

Return to the home page




Steph