ECG appliquées · Chapitre 03 · Premier semestre

Théorie des graphes

1re année

Sommets, arêtes, matrice d'adjacence, chemins, connexité, degré, formule d'Euler, analyse de réseaux sociaux.

Ce qu'il faut savoir faire

  • Sommets
  • Arêtes
  • Matrice d'adjacence
  • Chemins
  • Connexité
  • Degré
  • Formule d'Euler
  • Analyse de réseaux sociaux

Un plan de métro, une liste d'amis sur un réseau social, un tableau des échanges commerciaux entre pays, l'ensemble des liens hypertextes qui relient les pages du web : ces objets n'ont apparemment rien de commun. Ils le deviennent dès que l'on efface tout sauf une information, la seule qui compte ici : qui est relié à qui. Ce qui reste alors est un ensemble de points, et un ensemble de liens entre ces points. Cet objet minimal s'appelle un graphe, et il est d'une efficacité surprenante.

L'originalité de ce chapitre est qu'un graphe se manipule dans deux langages qui disent exactement la même chose. Le premier est le dessin : des ronds et des traits, sur lesquels on lit d'un coup d'œil les voisinages et les chemins. Le second est un tableau de nombres, la matrice d'adjacence, qui contient exactement la même information sous une forme calculable. Tout l'intérêt est là : traduite en matrice, une question de dessin devient un calcul, et le calcul, vous savez le mener depuis le chapitre précédent. Le théorème central du chapitre dit ainsi que le coefficient d'indice (i,j) de Ad compte les chemins de longueur d allant du sommet i au sommet j. Une multiplication de matrices, et l'on connaît d'un coup tous les trajets d'une longueur donnée dans un réseau que l'on ne pourrait pas dessiner.

Le plan est le suivant. La section 1 explique la démarche de modélisation et donne les ordres de grandeur des graphes réels. Les sections 2 et 3 installent le vocabulaire, d'abord sans orientation puis avec. La section 4 construit la matrice d'adjacence et fait le lien entre ses coefficients et le dessin. La section 5 définit les chaînes et les cycles, et la section 6 démontre le théorème des puissances, qui est le résultat le plus utilisé du chapitre. Les sections 7 et 8 traitent la connexité et la distance, la section 9 les degrés et la formule d'Euler dite des poignées de main. Les sections 10 et 11 sont deux compléments : les cycles eulériens, et les mesures de centralité utilisées dans l'analyse des réseaux sociaux.

Voici enfin les notations en vigueur dans tout le chapitre. Un graphe est noté G=(S,A), où S est l'ensemble de ses sommets et A l'ensemble de ses arêtes, ou de ses arcs s'il est orienté. Son ordre est le nombre n de sommets, et m désigne le nombre d'arêtes. Une arête est notée {u,v}, un arc (u,v). La matrice d'adjacence est notée A=(ai,j) : le A calligraphique désigne toujours l'ensemble des arêtes, le A droit toujours la matrice. Le degré d'un sommet s est noté d(s), ses degrés entrant et sortant d(s) et d+(s). La distance entre deux sommets est notée δ(u,v), avec la lettre delta, car d est déjà pris par le degré ; l'excentricité d'un sommet est e(s) et le diamètre du graphe diam(G). Une chaîne s'écrit u0u1uk et un chemin orienté u0u1uk. Enfin, le symbole marque la fin d'une démonstration.

Modéliser par un graphe

Modéliser une situation par un graphe demande deux décisions, et deux seulement : que représentent les sommets, et quelle relation représentent les arêtes. Tout le reste du travail est mathématique. Ces deux décisions ne sont pas neutres : selon la relation choisie, le graphe obtenu est orienté ou non, et les conclusions changent.

Voici cinq situations classiques, avec les ordres de grandeur correspondants.

Situation Sommets Arêtes ou arcs Orienté ? Taille
Réseau social d'amitié les comptes « u et v sont amis » non de l'ordre de 3×109 sommets
Réseau social d'abonnement les comptes « u suit v » oui idem
Graphe du web les pages « la page u contient un lien vers v » oui plusieurs centaines de milliards de pages
Réseau de transport les stations « une ligne relie directement u et v » non quelques centaines de sommets
Échanges économiques les pays ou les secteurs « u exporte vers v » oui quelques dizaines à quelques centaines

Ces ordres de grandeur méritent d'être médités. Le dernier chiffre publié par Meta pour Facebook seul, en décembre 2023, était d'environ 3,07 milliards de comptes actifs mensuels, ce qui donne un graphe à plus de trois milliards de sommets. Aucun chiffre officiel n'existe pour le graphe du web ; les estimations disponibles évoquent plusieurs centaines de milliards de documents indexés. Un tel graphe ne se dessine évidemment pas : il ne s'étudie que par le calcul, ce qui est exactement le propos de ce chapitre. À l'inverse, le réseau des stations d'un métro tient sur une feuille, et c'est sur des exemples de cette taille que nous apprendrons les méthodes.

La distinction orienté ou non n'est pas une subtilité d'école. L'amitié sur Facebook est symétrique : si u est ami avec v, alors v est ami avec u, et le graphe n'est pas orienté. L'abonnement sur un réseau du type X ou Instagram ne l'est pas : on peut suivre un compte sans être suivi en retour, et le graphe est orienté. Un lien hypertexte non plus : la page u peut pointer vers v sans réciprocité, ce qui est précisément ce qui permet de classer les pages par importance.

Exemple

Cinq élèves d'une classe, A, B, C, D et E, se prêtent leurs notes de cours. On sait que A et B s'échangent leurs notes, de même que A et C, B et C, B et D, C et D, et enfin D et E.

La relation « s'échanger ses notes » étant symétrique, on modélise par un graphe non orienté : les sommets sont les cinq élèves, et l'on relie deux élèves lorsqu'ils échangent leurs notes. On obtient exactement le graphe dessiné à la section suivante.

Si l'on avait choisi la relation « u recopie les notes de v », qui n'a aucune raison d'être réciproque, on aurait obtenu un graphe orienté différent.

Une fois la modélisation faite, les questions que l'on pose au graphe sont toujours à peu près les mêmes. L'information circule-t-elle entre deux points quelconques du réseau, autrement dit le graphe est-il connexe ? Combien d'étapes faut-il au minimum pour aller d'un point à un autre, autrement dit quelle est la distance ? Combien existe-t-il de trajets d'une longueur donnée ? Enfin, quels sommets sont les plus importants, et en quel sens ? Ce chapitre donne un outil pour chacune de ces questions.

Vocabulaire des graphes non orientés

Définition

Un graphe simple fini non orienté est un couple G=(S,A)

  • S est un ensemble fini non vide, dont les éléments sont appelés les sommets ;
  • A est un ensemble de paires {u,v} de sommets distincts, appelées les arêtes.

L'ordre de G est le nombre n de ses sommets, et l'on note m son nombre d'arêtes.

Le mot simple porte deux interdictions. Une arête relie deux sommets distincts : il n'y a pas de boucle, c'est-à-dire d'arête d'un sommet vers lui-même. Et A est un ensemble de paires : une même paire y figure au plus une fois, il n'y a donc pas d'arête multiple. Un graphe qui autorise boucles et arêtes multiples s'appelle un multigraphe ; nous n'en rencontrerons qu'un seul, à la section 10, avec les ponts de Königsberg.

Définition

Soit G=(S,A) un graphe non orienté et soit a={u,v} une arête de G.

  • Les sommets u et v sont les extrémités de a, et l'on dit que a est incidente à u et à v.
  • Deux sommets u et v sont dits adjacents, ou voisins, lorsque {u,v}A.
  • L'ensemble des voisins de u est noté V(u) et appelé voisinage de u.
  • Le degré de u, noté d(u), est le nombre d'arêtes incidentes à u ; dans un graphe simple, c'est aussi son nombre de voisins, c'est-à-dire le cardinal de V(u). Un sommet de degré 0 est dit isolé. La section 9 est consacrée aux propriétés de ces degrés.

Graphe non orienté à cinq sommets A, B, C, D et E, avec les arêtes AB, AC, BC, BD, CD et DE

Exemple

Lisons entièrement le graphe G1 ci-dessus. Son ensemble de sommets est S={A,B,C,D,E}, donc son ordre est n=5. Son ensemble d'arêtes est

A={{A,B},{A,C},{B,C},{B,D},{C,D},{D,E}},

donc m=6. Les voisinages se lisent directement sur le dessin :

V(A)={B,C},V(B)={A,C,D},V(C)={A,B,D},V(D)={B,C,E},V(E)={D}.

Les sommets A et B sont adjacents, les sommets A et D ne le sont pas, bien que l'on puisse aller de l'un à l'autre en passant par B. C'est le graphe de l'exemple des notes de cours de la section 1.

Définition

Soit G=(S,A) un graphe. Un sous-graphe de G est un graphe G=(S,A) tel que SS et AA, chaque arête de A ayant ses deux extrémités dans S.

Lorsque A contient toutes les arêtes de G dont les deux extrémités sont dans S, on dit que G est le sous-graphe induit par S.

Trois familles de graphes reviennent constamment, et méritent un nom.

Définition

Soit n un entier naturel non nul.

  • Le graphe complet d'ordre n, noté Kn, est le graphe à n sommets dans lequel deux sommets distincts quelconques sont adjacents : toutes les arêtes possibles sont présentes.
  • Un graphe est dit r-régulier lorsque tous ses sommets ont exactement r voisins. Il est dit régulier s'il est r-régulier pour un certain r.
  • Un graphe est dit vide lorsque A= : il a des sommets, mais aucune arête.

Graphe complet K5 : cinq sommets A, B, C, D et E deux à deux reliés, soit dix arêtes

Exemple

Le graphe K5 ci-dessus a cinq sommets et 10 arêtes. Chaque sommet est relié aux quatre autres : K5 est donc 4-régulier. Plus généralement, Kn est (n1)-régulier, et nous démontrerons à la section 9 qu'il possède exactement n(n1)2 arêtes.

Le graphe G1 de la figure précédente, lui, n'est pas régulier : le sommet E n'a qu'un voisin alors que B en a trois. Enfin, le sous-graphe de G1 induit par {A,B,C} est un triangle, c'est-à-dire une copie de K3.

Graphes orientés

Lorsque la relation modélisée n'est pas symétrique, il faut munir chaque lien d'un sens.

Définition

Un graphe orienté est un couple G=(S,A)S est un ensemble fini non vide de sommets et où A est un ensemble de couples (u,v) de sommets distincts, appelés les arcs.

L'arc (u,v) se dessine par une flèche allant de u vers v ; le sommet u en est l'origine et v l'extrémité.

L'arc (u,v) et l'arc (v,u) sont deux arcs différents. Un graphe orienté peut contenir les deux, l'un des deux, ou aucun des deux : c'est toute la différence avec le cas non orienté, où l'arête {u,v} et l'arête {v,u} sont la même.

Définition

Soit G=(S,A) un graphe orienté et soit s un sommet de G.

  • Les successeurs de s sont les sommets v tels que (s,v)A, et ses prédécesseurs les sommets u tels que (u,s)A.
  • Le degré sortant de s, noté d+(s), est son nombre de successeurs, c'est-à-dire le nombre d'arcs d'origine s.
  • Le degré entrant de s, noté d(s), est son nombre de prédécesseurs, c'est-à-dire le nombre d'arcs d'extrémité s.

Graphe orienté à quatre sommets numérotés 1, 2, 3 et 4, avec les arcs 1 vers 2, 2 vers 3, 3 vers 4, 4 vers 1, 1 vers 3 et 3 vers 1

Exemple

Le graphe orienté G2 ci-dessus a pour sommets 1, 2, 3 et 4, et pour arcs

A={(1,2),(2,3),(3,4),(4,1),(1,3),(3,1)},

soit six arcs. Les successeurs de 1 sont 2 et 3, ses prédécesseurs sont 3 et 4, donc d+(1)=2 et d(1)=2. De même d+(2)=1 et d(2)=1, puis d+(3)=2 et d(3)=2, enfin d+(4)=1 et d(4)=1.

Notez que les deux arcs (1,3) et (3,1) sont présents, ce qui se dessine par deux flèches opposées : on peut aller de 1 à 3 et revenir. En revanche l'arc (2,1) n'existe pas : de 2, on ne peut pas revenir directement en 1.

À tout graphe orienté on peut associer le graphe non orienté obtenu en effaçant le sens des flèches, appelé graphe non orienté sous-jacent. C'est une opération qui perd de l'information, et il faut se garder de l'effectuer sans le dire : sur G2, elle transformerait les deux arcs (1,3) et (3,1) en une seule arête.

Matrice d'adjacence

Pour calculer sur un graphe, il faut le ranger dans un tableau. Cela suppose d'abord de numéroter ses sommets, une fois pour toutes.

Définition

Soit G un graphe d'ordre n dont les sommets ont été numérotés s1,s2,,sn. La matrice d'adjacence de G relativement à cette numérotation est la matrice A=(ai,j)Mn(R) définie, pour tous indices i et j, par

  • dans le cas non orienté : ai,j=1 si {si,sj}A, et ai,j=0 sinon ;
  • dans le cas orienté : ai,j=1 si (si,sj)A, et ai,j=0 sinon.

Autrement dit, le coefficient d'indice (i,j) vaut 1 lorsqu'il existe un lien allant de si vers sj, et 0 sinon.

La matrice d'adjacence dépend de la numérotation choisie : changer l'ordre des sommets échange les lignes et les colonnes correspondantes. Ce n'est pas gênant, à une condition, impérative : annoncer la numérotation avant d'écrire la matrice, et ne plus en changer.

Propriété

Soit A la matrice d'adjacence d'un graphe simple G d'ordre n.

  1. Tous les coefficients diagonaux de A sont nuls : ai,i=0 pour tout i.
  2. Si G est non orienté, alors A est symétrique : tA=A.

Démonstration. Pour le premier point, un graphe simple ne comporte pas de boucle : le sommet si n'est jamais adjacent à lui-même, donc ai,i=0 pour tout indice i.

Pour le second point, soient i et j deux indices. Dans un graphe non orienté, une arête est une paire {si,sj}, et {si,sj}={sj,si} : les deux écritures désignent le même ensemble. L'appartenance {si,sj}A équivaut donc à {sj,si}A. Par définition de la matrice d'adjacence, ai,j et aj,i valent tous deux 1 dans ce cas, et tous deux 0 dans le cas contraire. Ainsi ai,j=aj,i pour tous i et j, ce qui signifie exactement que tA=A.

La réciproque de ce dernier point est vraie et tout aussi utile : une matrice carrée dont les coefficients sont des 0 et des 1, symétrique et de diagonale nulle, est la matrice d'adjacence d'un unique graphe simple non orienté sur les sommets numérotés. Une matrice non symétrique, elle, ne peut provenir que d'un graphe orienté.

Exemple

Reprenons le graphe G1 de la section 2, avec la numérotation A, B, C, D, E. Sa matrice d'adjacence est

A=(0110010110110100110100010)

Elle est bien symétrique, de diagonale nulle. La première ligne se lit : A est voisin de B et de C, pas de D ni de E. La dernière ligne se lit : E n'a que D pour voisin.

Exemple

Pour le graphe complet K5, tout sommet est adjacent à tous les autres : la matrice d'adjacence a des 1 partout sauf sur la diagonale,

AK5=(0111110111110111110111110)

Pour le graphe orienté G2 de la section 3, avec la numérotation 1, 2, 3, 4,

AG2=(0110001010011000)

Cette dernière matrice n'est pas symétrique : par exemple a1,2=1 alors que a2,1=0, ce qui traduit l'existence de l'arc (1,2) et l'absence de l'arc (2,1). En revanche a1,3=a3,1=1, car les deux arcs opposés sont présents.

Propriété

Soit A la matrice d'adjacence d'un graphe G d'ordre n ayant m arêtes, ou m arcs.

  1. Si G est non orienté, la somme des coefficients de la ligne i vaut d(si), et il en va de même pour la colonne i.
  2. Si G est orienté, la somme des coefficients de la ligne i vaut d+(si), et celle de la colonne i vaut d(si).
  3. La somme de tous les coefficients de A vaut 2m si G est non orienté, et m s'il est orienté.

Démonstration. Traitons le cas non orienté. Fixons i. La somme de la ligne i est j=1nai,j. Chaque terme de cette somme vaut 1 lorsque sj est voisin de si, et 0 sinon : la somme compte donc exactement le nombre de voisins de si, c'est-à-dire son degré. La symétrie de A donne alors le résultat pour la colonne i, dont les coefficients sont les mêmes.

Dans le cas orienté, le même raisonnement s'applique : j=1nai,j compte les arcs d'origine si, soit d+(si), tandis que k=1nak,i compte les arcs d'extrémité si, soit d(si).

Pour le troisième point, la somme de tous les coefficients est i=1nj=1nai,j, c'est-à-dire la somme des sommes de lignes. Dans le cas orienté, elle vaut donc i=1nd+(si), et chaque arc étant compté une fois, à sa ligne d'origine, ce total vaut m. Dans le cas non orienté, chaque arête {si,sj} fournit deux coefficients égaux à 1, à savoir ai,j et aj,i : le total vaut donc 2m.

Méthode

Passer du dessin à la matrice, et réciproquement.

Du dessin à la matrice.

  1. Numéroter les sommets et écrire cette numérotation à côté de la matrice.
  2. Remplir ligne par ligne : à la ligne i, placer un 1 dans chaque colonne j telle qu'il existe une arête, ou un arc, de si vers sj.
  3. Contrôler : diagonale nulle, matrice symétrique dans le cas non orienté, et somme totale des coefficients égale à 2m (non orienté) ou m (orienté).

De la matrice au dessin.

  1. Placer n points et les nommer s1,,sn.
  2. Pour chaque coefficient égal à 1 d'indice (i,j) : tracer une arête entre si et sj si A est symétrique, une flèche de si vers sj sinon.
  3. Contrôler que le degré de chaque sommet dessiné est bien la somme de la ligne correspondante.

Exemple

Reconstituons le graphe non orienté H de matrice d'adjacence

AH=(0101101001011010)

La matrice est symétrique de diagonale nulle : elle provient bien d'un graphe simple non orienté à quatre sommets s1, s2, s3, s4. Les coefficients égaux à 1 situés au-dessus de la diagonale sont d'indices (1,2), (1,4), (2,3) et (3,4) : les arêtes sont donc {s1,s2}, {s1,s4}, {s2,s3} et {s3,s4}. Le graphe est un quadrilatère s1s2s3s4s1. Chaque sommet est de degré 2, et la somme des coefficients vaut 8=2×4 : il y a bien quatre arêtes.

Chaînes, chemins et cycles

Se déplacer dans un graphe, c'est passer de proche en proche d'un sommet à un sommet voisin.

Définition

Soit G un graphe non orienté et soit k un entier naturel. Une chaîne de longueur k est une suite de sommets

u0u1uk

telle que, pour tout i compris entre 0 et k1, les sommets ui et ui+1 soient adjacents.

Les sommets u0 et uk sont les extrémités de la chaîne, et l'on dit qu'elle joint u0 à uk. La longueur est le nombre k d'arêtes parcourues, en comptant les répétitions éventuelles.

Une chaîne peut repasser par un sommet déjà visité, et même réemprunter une arête déjà parcourue. Pour tout sommet u, la suite réduite à u est une chaîne de longueur 0. Deux qualificatifs servent à interdire les répétitions.

Définition

Soit u0u1uk une chaîne d'un graphe non orienté.

  • Elle est dite simple lorsque ses arêtes sont deux à deux distinctes.
  • Elle est dite élémentaire lorsque ses sommets sont deux à deux distincts.
  • Elle est dite fermée lorsque u0=uk.

Un cycle est une chaîne fermée, de longueur non nulle, dont les arêtes sont deux à deux distinctes. Un cycle est dit élémentaire lorsque ses sommets sont deux à deux distincts, à l'exception des deux extrémités qui coïncident.

Une chaîne élémentaire est toujours simple, car deux arêtes égales auraient les mêmes extrémités ; la réciproque est fausse. Dans un graphe simple, un cycle est nécessairement de longueur au moins 3 : la longueur 1 exigerait une boucle, et la longueur 2 réemprunterait la même arête à l'aller et au retour.

Dans le cas orienté, les mêmes notions existent, mais chaque étape doit respecter le sens des flèches, et le vocabulaire change.

Définition

Soit G un graphe orienté. Un chemin de longueur k est une suite de sommets

u0u1uk

telle que, pour tout i compris entre 0 et k1, le couple (ui,ui+1) soit un arc de G.

Un circuit est un chemin fermé, de longueur non nulle, dont les arcs sont deux à deux distincts.

Contrairement au cas non orienté, un circuit de longueur 2 est possible dans un graphe orienté : il suffit que les deux arcs opposés (u,v) et (v,u) existent, et l'on peut alors décrire uvu sans réemprunter le même arc.

Graphe non orienté à cinq sommets s1, s2, s3, s4 et s5 formant un cycle, avec une arête supplémentaire entre s2 et s5

Exemple

Sur le graphe G3 ci-dessus, dont les arêtes sont {s1,s2}, {s2,s3}, {s3,s4}, {s4,s5}, {s5,s1} et {s2,s5} :

  • s1s2s3s4 est une chaîne de longueur 3, élémentaire.
  • s1s2s5s1s2 est une chaîne de longueur 4 qui n'est ni simple, car l'arête {s1,s2} y figure deux fois, ni élémentaire.
  • s1s2s5s1 est un cycle élémentaire de longueur 3 : c'est le triangle s1s2s5.
  • s2s3s4s5s2 est un cycle élémentaire de longueur 4.
  • s1s2s3s4s5s1 est un cycle élémentaire de longueur 5 qui passe par tous les sommets.

Propriété

Concaténation. Soit G un graphe. S'il existe une chaîne de longueur p joignant u à v, et une chaîne de longueur q joignant v à w, alors il existe une chaîne de longueur p+q joignant u à w.

Démonstration. Notons u=x0x1xp=v la première chaîne et v=y0y1yq=w la seconde. Considérons la suite de sommets obtenue en écrivant la première, puis la seconde privée de son premier terme :

x0x1xpy1y2yq.

Deux sommets consécutifs y sont adjacents : c'est vrai à l'intérieur de chaque morceau par hypothèse, et au raccord parce que xp=v=y0 est adjacent à y1. C'est donc une chaîne, et elle comporte p+q arêtes. Elle joint bien x0=u à yq=w. Le même raisonnement vaut mot pour mot pour les chemins d'un graphe orienté.

Compter les chemins avec les puissances de la matrice

Voici le théorème central du chapitre. Il transforme un problème de dénombrement de trajets, qui semble exiger un examen du dessin, en un simple produit de matrices.

Propriété

Théorème des puissances. Soit G un graphe, orienté ou non, d'ordre n, de sommets numérotés s1,,sn et de matrice d'adjacence A. Pour tout entier naturel d et tous indices i et j, le coefficient d'indice (i,j) de Ad est égal au nombre de chemins de longueur d allant de si à sj, ces chemins étant appelés chaînes dans le cas non orienté.

Démonstration. Pour tous indices i et j et tout entier naturel d, notons Nd(i,j) le nombre de chemins de longueur d allant de si à sj. Ce nombre est fini, car un tel chemin est déterminé par la suite de ses d+1 sommets, choisis parmi un ensemble fini. Montrons par récurrence sur d la propriété

P(d):pour tous indices i et j,Nd(i,j)=(Ad)i,j.

Initialisation. Traitons d'abord d=0. Un chemin de longueur 0 d'origine si se réduit au seul sommet si : il y en a exactement un allant de si à si, et aucun allant de si à sj lorsque ji. Ainsi N0(i,j) vaut 1 si i=j et 0 sinon, ce qui est exactement le coefficient d'indice (i,j) de A0=In. Donc P(0) est vraie.

Hérédité. Soit d un entier naturel tel que P(d) soit vraie. Fixons deux indices i et j, et comptons les chemins de longueur d+1 allant de si à sj. Un tel chemin s'écrit

si=u0u1udud+1=sj,

et il possède un avant-dernier sommet ud, parfaitement déterminé par le chemin. Classons donc ces chemins selon ce sommet : pour chaque indice k compris entre 1 et n, notons Ek l'ensemble des chemins de longueur d+1 de si à sj dont l'avant-dernier sommet est sk. Un chemin appartient à un et un seul de ces ensembles, qui sont donc deux à deux disjoints et de réunion l'ensemble de tous les chemins comptés.

Dénombrons Ek. Se donner un élément de Ek, c'est se donner un chemin de longueur d de si à sk, puis franchir l'arc de sk vers sj ; cette dernière étape est possible si et seulement si ak,j=1, et elle est alors unique. Donc Ek est vide si ak,j=0, et de cardinal Nd(i,k) si ak,j=1. Dans les deux cas, card(Ek)=Nd(i,k)ak,j. En sommant sur k,

Nd+1(i,j)=k=1nNd(i,k)ak,j.

L'hypothèse de récurrence donne Nd(i,k)=(Ad)i,k, d'où

Nd+1(i,j)=k=1n(Ad)i,kak,j=(AdA)i,j=(Ad+1)i,j,

la dernière égalité venant de la définition du produit matriciel. Donc P(d+1) est vraie.

Conclusion. Par récurrence, P(d) est vraie pour tout entier naturel d.

Ce théorème a plusieurs conséquences immédiates, toutes utiles en exercice.

Propriété

Corollaires. Soit G un graphe d'ordre n de matrice d'adjacence A.

  1. Le nombre total de chemins de longueur d dans G, toutes extrémités confondues, est la somme de tous les coefficients de Ad.
  2. Si G est non orienté, alors (A2)i,i=d(si) pour tout indice i.
  3. Si G est non orienté, son nombre de triangles, c'est-à-dire d'ensembles de trois sommets deux à deux adjacents, vaut 16tr(A3).

Démonstration. Le premier point est immédiat : les chemins de longueur d se répartissent selon leur couple d'extrémités (si,sj), et le nombre de ceux qui correspondent au couple (si,sj) est (Ad)i,j. La somme de tous les coefficients de Ad les compte donc tous, une fois chacun.

Pour le deuxième point, écrivons le coefficient diagonal du produit :

(A2)i,i=k=1nai,kak,i=k=1nai,k2=k=1nai,k=d(si),

où l'on a utilisé successivement la symétrie de A, le fait que chaque ai,k vaut 0 ou 1, donc est égal à son carré, et la propriété de la section 4 sur la somme d'une ligne. Concrètement, les chaînes fermées de longueur 2 issues de si consistent à aller chez un voisin puis à revenir : il y en a autant que de voisins.

Pour le troisième point, fixons i et comptons les chaînes fermées de longueur 3 issues de si, dont le nombre est (A3)i,i. Une telle chaîne s'écrit siuvsi. Comme le graphe est simple, il n'a pas de boucle, donc usi et vsi ; de plus u et v sont adjacents, donc distincts. Les trois sommets si, u, v sont ainsi deux à deux distincts et deux à deux adjacents : ils forment un triangle contenant si. Réciproquement, chaque triangle contenant si fournit exactement deux telles chaînes, correspondant aux deux sens de parcours. Donc (A3)i,i=2ti, où ti désigne le nombre de triangles contenant si. En sommant sur i, et en remarquant que chaque triangle est compté une fois pour chacun de ses trois sommets,

tr(A3)=i=1n2ti=2×3×T=6T,

T est le nombre de triangles du graphe. D'où T=16tr(A3).

Exemple

Reprenons le graphe G1 et sa matrice A de la section 4. Le calcul du produit A×A, puis de A2×A, donne

A2=(2112013211123112113001101)A3=(2552254561554612662321130)

Les deux matrices sont symétriques, ce qui est un premier contrôle. Interprétons quelques coefficients.

Le coefficient (A2)1,4=2 annonce deux chaînes de longueur 2 de A à D : ce sont ABD et ACD. Le coefficient (A2)1,5=0 annonce qu'aucune chaîne de longueur 2 ne joint A à E, ce que le dessin confirme. La diagonale de A2 est (2,3,3,3,1) : ce sont exactement les degrés de A, B, C, D et E, conformément au corollaire.

Le coefficient (A3)1,5=2 annonce deux chaînes de longueur 3 de A à E : ce sont ABDE et ACDE. Enfin tr(A3)=2+4+4+2+0=12, donc le graphe possède 126=2 triangles : ABC et BCD. On les retrouve sur le dessin.

Méthode

Compter les chemins d'une longueur donnée.

  1. Numéroter les sommets et écrire la matrice d'adjacence A.
  2. Calculer Ad pour la longueur d demandée, en enchaînant les produits : A2=A×A, puis A3=A2×A, et ainsi de suite.
  3. Lire le coefficient d'indice (i,j) : c'est le nombre cherché de chemins de si à sj.
  4. Contrôles systématiques : la matrice Ad est symétrique si le graphe est non orienté, ses coefficients sont des entiers positifs ou nuls, et la diagonale de A2 redonne les degrés.
  5. Si la question porte sur les chemins de longueur comprise entre 1 et d, sommer les puissances : A+A2++Ad.

Connexité et composantes connexes

Un réseau n'a d'intérêt que si l'information peut y circuler. La notion correspondante est la connexité.

Définition

Soit G un graphe non orienté et soient u et v deux sommets. On dit que u et v sont reliés, et l'on note uRv, lorsqu'il existe une chaîne de u à v.

Propriété

La relation « être relié » est réflexive, symétrique et transitive.

Démonstration. Réflexivité. Pour tout sommet u, la chaîne réduite au seul sommet u, de longueur 0, joint u à u. Donc uRu.

Symétrie. Supposons uRv et soit u=x0x1xk=v une chaîne. La suite obtenue en la lisant à l'envers, à savoir xkxk1x0, est encore une chaîne : deux sommets consécutifs y sont adjacents, l'adjacence étant symétrique dans un graphe non orienté. Elle joint v à u, donc vRu.

Transitivité. Supposons uRv et vRw. La propriété de concaténation de la section 5 fournit une chaîne de u à w, donc uRw.

Cette relation range donc les sommets en paquets, deux sommets étant dans le même paquet exactement lorsqu'on peut aller de l'un à l'autre.

Définition

Les classes de la relation « être relié » s'appellent les composantes connexes de G : la composante connexe d'un sommet u est l'ensemble des sommets reliés à u.

Le graphe G est dit connexe lorsqu'il possède une seule composante connexe, c'est-à-dire lorsque deux sommets quelconques sont toujours reliés par une chaîne.

Graphe non orienté à huit sommets présentant trois composantes connexes : le triangle ABC, la chaîne D-E-F-G, et le sommet isolé H

Exemple

Le graphe G4 ci-dessus a pour arêtes {A,B}, {A,C}, {B,C}, {D,E}, {E,F} et {F,G}. Il n'est pas connexe : aucune chaîne ne joint A à D, puisqu'aucune arête ne quitte le triangle ABC. Ses composantes connexes sont

{A,B,C},{D,E,F,G},{H}.

Le sommet H, de degré 0, est dit isolé : il forme à lui seul une composante.

En numérotant les sommets composante par composante, la matrice d'adjacence prend une forme diagonale par blocs, chaque bloc correspondant à une composante et tous les coefficients situés hors des blocs étant nuls. C'est ce que l'on lit sur le tableau suivant, qui est la matrice d'adjacence de G4 pour la numérotation A, B, C, D, E, F, G, H.

A B C D E F G H
A 0 1 1 0 0 0 0 0
B 1 0 1 0 0 0 0 0
C 1 1 0 0 0 0 0 0
D 0 0 0 0 1 0 0 0
E 0 0 0 1 0 1 0 0
F 0 0 0 0 1 0 1 0
G 0 0 0 0 0 1 0 0
H 0 0 0 0 0 0 0 0

Reste à savoir tester la connexité sans examiner le dessin, ce qui est indispensable dès que le graphe est grand. Le résultat repose sur le lemme suivant, qui borne la longueur des chaînes utiles.

Propriété

Lemme. Soit G un graphe d'ordre n et soient u et v deux sommets reliés. Alors il existe une chaîne élémentaire de u à v, et sa longueur est inférieure ou égale à n1.

Démonstration. L'ensemble des longueurs des chaînes joignant u à v est une partie non vide de N, puisque u et v sont reliés ; elle admet donc un plus petit élément. Soit u=u0u1uk=v une chaîne de longueur minimale k.

Montrons par l'absurde que ses sommets sont deux à deux distincts. Supposons qu'il existe deux indices p<q tels que up=uq. Considérons alors la suite

u0u1upuq+1uq+2uk.

C'est encore une chaîne joignant u à v. En effet, si q=k, la suite s'arrête à up=uq=v, et tous ses couples de sommets consécutifs proviennent de la chaîne initiale ; si q<k, ces couples sont eux aussi inchangés, sauf au raccord, où up=uq est adjacent à uq+1 par hypothèse. Dans les deux cas, la longueur obtenue vaut k(qp), qui est strictement inférieure à k puisque q>p. Cela contredit la minimalité de k.

Les sommets u0,u1,,uk sont donc deux à deux distincts : la chaîne est élémentaire. Ces k+1 sommets distincts appartiennent à S, qui en compte n, donc k+1n, c'est-à-dire kn1.

Propriété

Critère matriciel de connexité. Soit G un graphe non orienté d'ordre n, de matrice d'adjacence A. Posons

M=In+A+A2++An1.

Alors G est connexe si et seulement si tous les coefficients de M sont strictement positifs.

Démonstration. Commençons par une remarque valable dans les deux sens. D'après le théorème des puissances, pour tous indices i et j,

Mi,j=d=0n1(Ad)i,j

est une somme de n nombres entiers positifs ou nuls, le terme d'indice d comptant les chaînes de longueur d de si à sj. Par conséquent, Mi,j>0 si et seulement s'il existe au moins un entier d compris entre 0 et n1 tel que (Ad)i,j>0, c'est-à-dire si et seulement s'il existe une chaîne de longueur au plus n1 joignant si à sj.

Supposons G connexe, et soient i et j deux indices. Si i=j, alors (A0)i,i=(In)i,i=1, donc Mi,i1>0. Si ij, les sommets si et sj sont reliés par connexité ; le lemme fournit une chaîne élémentaire de si à sj, de longueur dn1. Alors (Ad)i,j1, et tous les autres termes de la somme étant positifs ou nuls, Mi,j>0. Tous les coefficients de M sont donc strictement positifs.

Réciproquement, supposons tous les coefficients de M strictement positifs, et soient u et v deux sommets, d'indices i et j. Comme Mi,j>0, la remarque initiale fournit un entier d tel que (Ad)i,j>0, c'est-à-dire au moins une chaîne de longueur d joignant u à v. Ainsi deux sommets quelconques sont reliés : G est connexe.

Exemple

Testons la connexité de G1, qui est d'ordre n=5. Il faut donc calculer M=I5+A+A2+A3+A4. En reprenant A, A2 et A3 déjà obtenues et en calculant A4=A3×A, on trouve

M=(15161616416242318816232418816181821648865)

Tous les coefficients sont strictement positifs, donc G1 est connexe. Le plus petit d'entre eux, M1,5=4, concerne le couple (A,E) : ce sont les deux sommets les plus difficiles à joindre, ce que confirmera le calcul des distances.

Dans le cas orienté, la même construction fonctionne, mais la propriété obtenue est plus exigeante : on parle de forte connexité, c'est-à-dire de l'existence, pour tout couple de sommets (u,v), d'un chemin de u vers v et d'un chemin de v vers u. Le critère est identique : le graphe orienté est fortement connexe si et seulement si tous les coefficients de In+A++An1 sont strictement positifs. La démonstration est la même, à ceci près que la symétrie n'est plus disponible, ce qui est sans importance puisqu'on traite les couples (i,j) et (j,i) séparément.

Exemple

Pour le graphe orienté G2, d'ordre 4, le calcul donne

I4+A+A2+A3=(4232222132422122)

Tous les coefficients sont strictement positifs : G2 est fortement connexe. On peut le vérifier sur le dessin, par exemple en constatant que le circuit 12341 passe par tous les sommets.

Méthode

Tester la connexité d'un graphe d'ordre n.

  1. Écrire la matrice d'adjacence A.
  2. Calculer les puissances A2,,An1, puis la somme M=In+A++An1.
  3. Si tous les coefficients de M sont strictement positifs, conclure que le graphe est connexe. Si un seul coefficient Mi,j est nul, conclure qu'il ne l'est pas, et que si et sj appartiennent à deux composantes connexes différentes.
  4. Raccourci utile en pratique : dès qu'une somme partielle In+A++Ak, avec k<n1, n'a que des coefficients strictement positifs, le graphe est connexe et il est inutile de poursuivre les calculs.
  5. Pour un petit graphe, ne pas oublier qu'exhiber une chaîne entre chaque couple de sommets, ou une seule chaîne passant par tous, suffit à prouver la connexité.

Distance, excentricité et diamètre

Définition

Soit G un graphe non orienté et soient u et v deux sommets reliés. La distance de u à v, notée δ(u,v), est la plus petite longueur d'une chaîne joignant u à v.

On pose δ(u,u)=0. Lorsque u et v ne sont pas reliés, on convient que δ(u,v)=+, ou l'on dit que la distance n'est pas définie.

Cette définition a un sens : l'ensemble des longueurs de chaînes joignant u à v est une partie non vide de N, elle admet donc un plus petit élément. Le lemme de la section 7 garantit de plus que δ(u,v)n1 dès que les deux sommets sont reliés. Enfin, la distance est symétrique : δ(u,v)=δ(v,u), puisqu'une chaîne se parcourt dans les deux sens.

Propriété

Soit G un graphe de matrice d'adjacence A, et soient si et sj deux sommets reliés. Alors

δ(si,sj)=min{dN  ;  (Ad)i,j>0}.

Démonstration. D'après le théorème des puissances, (Ad)i,j est le nombre de chaînes de longueur d joignant si à sj. Dire que (Ad)i,j>0, c'est donc dire qu'il existe au moins une chaîne de longueur d joignant si à sj. L'ensemble {dN  ;  (Ad)i,j>0} est ainsi exactement l'ensemble des longueurs de chaînes joignant si à sj, dont le plus petit élément est la distance par définition.

Propriété

Inégalité triangulaire. Pour tous sommets u, v, w d'une même composante connexe, δ(u,w)δ(u,v)+δ(v,w).

Démonstration. Posons p=δ(u,v) et q=δ(v,w). Il existe une chaîne de longueur p de u à v et une chaîne de longueur q de v à w. Par concaténation, il existe une chaîne de longueur p+q de u à w. La distance de u à w étant la plus petite longueur d'une telle chaîne, elle est inférieure ou égale à p+q.

Définition

Soit G un graphe connexe d'ordre n.

  • L'excentricité d'un sommet s est e(s)=maxvSδ(s,v) : c'est la distance qui sépare s du sommet le plus éloigné de lui.
  • Le diamètre de G est diam(G)=maxsSe(s) : c'est la plus grande distance entre deux sommets du graphe.

Exemple

Calculons toutes les distances dans G1. Le tableau se remplit en cherchant, pour chaque couple, la plus courte chaîne, ou en lisant la première puissance de A dont le coefficient devient non nul.

δ A B C D E e(s)
A 0 1 1 2 3 3
B 1 0 1 1 2 2
C 1 1 0 1 2 2
D 2 1 1 0 1 2
E 3 2 2 1 0 3

Le diamètre vaut donc diam(G1)=3, réalisé par le couple (A,E). Ce résultat se lit aussi sur les puissances de A : les coefficients d'indice (1,5) de A et de A2 sont nuls, alors que celui de A3 vaut 2, donc δ(A,E)=3.

Méthode

Calculer une distance, une excentricité, un diamètre.

  1. Pour δ(si,sj) : calculer A, puis A2, puis A3, et s'arrêter à la première puissance dont le coefficient d'indice (i,j) est non nul. L'exposant atteint est la distance.
  2. Pour un petit graphe, procéder par cercles successifs à partir de si : les voisins de si sont à distance 1, leurs voisins non encore atteints à distance 2, et ainsi de suite.
  3. Dresser le tableau complet des distances, une ligne par sommet.
  4. L'excentricité d'un sommet est le maximum de sa ligne, et le diamètre le maximum du tableau.
  5. Contrôle : le tableau est symétrique, sa diagonale est nulle, et toutes les distances sont inférieures ou égales à n1.

Degré d'un sommet et formule d'Euler

Définition

Rappel de la section 2. Soit G un graphe non orienté et soit s un sommet. Le degré de s, noté d(s), est le nombre d'arêtes incidentes à s ; dans un graphe simple, cela revient au nombre de voisins de s, c'est-à-dire au cardinal de V(s).

Dans un multigraphe, chaque arête multiple compte pour autant d'unités qu'il y a d'exemplaires, et une boucle compte deux fois, puisqu'elle est incidente deux fois au même sommet. Ce point servira aux ponts de Königsberg.

Propriété

Théorème des poignées de main, dit formule d'Euler. Soit G=(S,A) un graphe non orienté ayant m arêtes. Alors

sSd(s)=2m.

Démonstration. Elle procède par double comptage : on dénombre de deux façons différentes le même ensemble fini, ce qui force l'égalité des deux résultats.

Considérons l'ensemble I des couples (s,a)s est un sommet, a une arête, et où s est une extrémité de a. Les éléments de I s'appellent les incidences du graphe.

Premier comptage, en groupant par sommet. Fixons un sommet s. Le nombre d'incidences dont la première composante est s est, par définition même du degré, égal à d(s). En sommant sur tous les sommets,

card(I)=sSd(s).

Second comptage, en groupant par arête. Fixons une arête a={u,v}. Le graphe étant simple, ses deux extrémités u et v sont distinctes, donc le nombre d'incidences dont la seconde composante est a vaut exactement 2. En sommant sur les m arêtes,

card(I)=aA2=2m.

Les deux comptages portant sur le même ensemble, sSd(s)=2m.

L'énoncé porte le nom de « formule des poignées de main » pour la raison suivante : si des personnes se serrent la main, chaque poignée de main est comptée deux fois, une fois pour chaque main tendue. Le total des poignées de main données par l'ensemble des personnes est donc pair.

Propriété

Corollaire. Dans tout graphe non orienté, le nombre de sommets de degré impair est pair.

Démonstration. Notons P l'ensemble des sommets de degré pair et I celui des sommets de degré impair ; ils forment une partition de S, donc

sPd(s)+sId(s)=sSd(s)=2m.

La somme sPd(s) est paire, comme somme d'entiers pairs, et 2m est pair. Par différence, sId(s) est un entier pair.

Or cette dernière somme comporte card(I) termes, tous impairs. Une somme de k entiers impairs a la même parité que k : en effet, chaque terme s'écrit 2qi+1, et la somme vaut 2(qi)+k, qui est pair si et seulement si k l'est. Comme la somme est paire, card(I) est pair.

Propriété

Pour tout entier n1, le graphe complet Kn possède exactement n(n1)2 arêtes.

Démonstration. Dans Kn, chaque sommet est adjacent aux n1 autres, donc tous les sommets sont de degré n1. La somme des degrés vaut par conséquent n(n1). La formule des poignées de main donne n(n1)=2m, d'où m=n(n1)2.

Propriété

Version orientée. Soit G=(S,A) un graphe orienté ayant m arcs. Alors

sSd+(s)=sSd(s)=m.

Démonstration. Chaque arc (u,v) possède exactement une origine, à savoir u, et exactement une extrémité, à savoir v. En classant les arcs selon leur origine, on obtient une partition de A en card(S) paquets, celui associé à s comptant d+(s) arcs ; d'où sSd+(s)=m. En classant cette fois les arcs selon leur extrémité, le même argument donne sSd(s)=m. Les deux sommes valent m, donc elles sont égales.

Exemple

Vérifions la formule sur nos exemples.

Pour G1, les degrés sont d(A)=2, d(B)=3, d(C)=3, d(D)=3 et d(E)=1. Leur somme vaut 2+3+3+3+1=12=2×6, et G1 a bien 6 arêtes. Les sommets de degré impair sont B, C, D et E : ils sont au nombre de quatre, ce qui est bien pair.

Pour K5, tous les degrés valent 4, la somme vaut 20=2×10, et le graphe a bien 5×42=10 arêtes.

Pour le graphe orienté G2, les degrés sortants sont 2, 1, 2, 1, de somme 6, et les degrés entrants sont 2, 1, 2, 1, de somme 6 également : il y a bien 6 arcs.

Méthode

Utiliser la formule des poignées de main.

  1. Pour trouver le nombre d'arêtes connaissant tous les degrés : sommer les degrés et diviser par 2.
  2. Pour trouver un degré manquant : écrire l'équation sSd(s)=2m et résoudre.
  3. Pour montrer qu'une configuration est impossible : vérifier la parité. Une liste de degrés dont la somme est impaire ne peut être celle d'aucun graphe, et un graphe ne peut avoir un nombre impair de sommets de degré impair.
  4. Pour un graphe r-régulier d'ordre n : la somme des degrés vaut nr, donc m=nr2, et en particulier le produit nr doit être pair.

Complément : chaînes et cycles eulériens

Cette section est un complément hors programme. Aucune de ses notions n'est exigible en tant que telle, mais elle éclaire la formule d'Euler de la section précédente, dont elle est l'application historique, et elle explique l'expression de « graphe eulérien » que le programme mentionne parmi les exemples à connaître.

Définition

Soit G un graphe connexe.

  • Une chaîne eulérienne de G est une chaîne qui emprunte chaque arête de G exactement une fois.
  • Un cycle eulérien est une chaîne eulérienne fermée, c'est-à-dire dont les deux extrémités coïncident.

Un graphe qui possède un cycle eulérien est dit eulérien.

Une chaîne eulérienne peut repasser par un même sommet autant de fois qu'il le faut : la contrainte porte sur les arêtes, pas sur les sommets. C'est exactement le problème du dessin « sans lever le crayon et sans repasser deux fois sur le même trait ».

Le problème est né à Königsberg, ville traversée par une rivière formant une île, et dont les quatre quartiers étaient reliés par sept ponts. La question posée aux habitants était de savoir s'il existait une promenade empruntant chacun des sept ponts exactement une fois. Euler la résolut en 1736, et cette résolution est considérée comme l'acte de naissance de la théorie des graphes.

Multigraphe des ponts de Königsberg : quatre sommets N, I, S et E reliés par sept arêtes, dont deux doubles entre N et I et entre S et I

La modélisation est la suivante : les sommets sont les quatre quartiers, à savoir la rive nord N, l'île I, la rive sud S et la rive est E, et chaque pont devient une arête. Comme deux ponts relient N à I, et deux autres S à I, l'objet obtenu est un multigraphe : c'est le seul de ce cours.

Exemple

Résolution du problème des ponts. Comptons les degrés sur le multigraphe ci-dessus, en n'oubliant pas que chaque arête double compte pour deux :

d(N)=3,d(I)=5,d(S)=3,d(E)=3.

Contrôle par la formule des poignées de main : 3+5+3+3=14=2×7, ce qui correspond bien aux sept ponts.

Les quatre sommets sont de degré impair. Or, comme on va le voir, une chaîne eulérienne impose qu'il y ait au plus deux sommets de degré impair. La promenade cherchée n'existe donc pas.

Voici l'argument, qui justifie la condition nécessaire et qu'il faut comprendre plutôt que retenir. Supposons qu'une chaîne eulérienne existe, et soit s un sommet qui n'est pas une extrémité de cette chaîne. Chaque fois que la promenade arrive en s, elle doit en repartir, et elle le fait par une autre arête, puisqu'aucune arête ne sert deux fois. Les arêtes incidentes à s se groupent donc deux par deux, une pour entrer et une pour sortir, et toutes sont utilisées puisque la chaîne est eulérienne : le degré de s est pair.

Il ne reste que les deux extrémités. Si la chaîne est fermée, l'arête du tout premier départ se marie avec celle de la toute dernière arrivée, et le raisonnement précédent s'applique aussi à ce sommet : tous les degrés sont pairs. Si la chaîne n'est pas fermée, le sommet de départ possède une arête de départ non appariée, et le sommet d'arrivée une arête d'arrivée non appariée : ces deux sommets, et eux seuls, sont de degré impair.

Dans tous les cas, un graphe qui admet une chaîne eulérienne a zéro ou deux sommets de degré impair. Königsberg en a quatre, donc la promenade est impossible. La réciproque, plus délicate, est admise.

Propriété

Théorème d'Euler (admis). Soit G un graphe connexe.

  • G admet un cycle eulérien si et seulement si tous ses sommets sont de degré pair.
  • G admet une chaîne eulérienne non fermée si et seulement s'il a exactement deux sommets de degré impair, qui en sont alors les extrémités.

Le corollaire de la section 9 prend ici tout son sens : le nombre de sommets de degré impair étant toujours pair, les cas « un seul sommet impair » ou « trois sommets impairs » ne peuvent pas se produire. Les deux énoncés du théorème couvrent donc tous les cas favorables.

Exemple

Le graphe G1 a quatre sommets de degré impair, à savoir B, C, D et E : il n'admet ni chaîne ni cycle eulérien.

Le graphe G3 de la section 5 a pour degrés d(s1)=2, d(s2)=3, d(s3)=2, d(s4)=2 et d(s5)=3. Il est connexe et possède exactement deux sommets de degré impair, s2 et s5 : il admet donc une chaîne eulérienne non fermée d'extrémités s2 et s5. En voici une :

s2s1s5s4s3s2s5.

Elle est de longueur 6 et emprunte bien les six arêtes, chacune une seule fois. Notez qu'elle repasse par s2 et par s5, ce qui est autorisé.

Le graphe complet K5 est connexe et tous ses sommets sont de degré 4, donc pair : il est eulérien, et l'on peut le dessiner d'un seul trait en revenant à son point de départ, en parcourant les 10 arêtes.

Analyse des réseaux sociaux

Les mesures présentées ici ne sont pas exigibles : le programme précise qu'on les introduit « sur des exemples simples », pour leur interprétation. Elles répondent à une question naturelle dès qu'un graphe modélise un réseau de personnes : quels sommets sont les plus importants, et en quel sens ? Il n'y a pas une seule réponse, car « important » peut vouloir dire deux choses très différentes.

Définition

Soit G un graphe non orienté connexe d'ordre n2 et soit s un sommet. Le degré de centralité de s est

CD(s)=d(s)n1.

C'est la proportion des autres sommets auxquels s est directement relié. Ce nombre appartient toujours à l'intervalle [0,1], puisque d(s)n1, et il vaut 1 exactement lorsque s est adjacent à tous les autres sommets. Un sommet de fort degré de centralité a beaucoup de contacts directs : c'est la définition la plus naïve de l'influenceur.

Définition

Soit G un graphe non orienté connexe et soit s un sommet. Pour deux sommets distincts u et v, tous deux différents de s, notons σu,v le nombre de plus courtes chaînes de u à v, et σu,v(s) le nombre de celles qui passent par s. Le degré d'intermédiarité de s est

CB(s)={u,v}σu,v(s)σu,v,

la somme portant sur toutes les paires de sommets distincts u et v, tous deux différents de s.

Trois remarques sur cette définition. La somme porte sur des paires et non sur des couples : la paire {u,v} n'est comptée qu'une fois. Le graphe étant connexe, chaque dénominateur σu,v est un entier supérieur ou égal à 1, donc la formule a bien un sens. Enfin, chaque terme appartient à [0,1] : lorsque toutes les plus courtes chaînes de u à v passent par s, la paire apporte 1 ; lorsque la moitié y passe, elle apporte 12 ; lorsque aucune n'y passe, elle apporte 0. Pour un graphe d'ordre n, le nombre de paires en jeu est (n1)(n2)2, ce qui donne la valeur maximale théorique de CB.

Graphe non orienté d'un petit réseau social à sept sommets A, B, C, D, E, F et G, formé de deux groupes reliés par l'arête CD, avec G en périphérie

Exemple

Le réseau G5. Ses arêtes sont {A,B}, {A,C}, {B,C}, {C,D}, {D,E}, {D,F}, {E,F} et {F,G}, donc n=7 et m=8. Les degrés sont

d(A)=2,d(B)=2,d(C)=3,d(D)=3,d(E)=2,d(F)=3,d(G)=1,

de somme 16=2×8, ce qui vérifie la formule des poignées de main. Les degrés de centralité, avec n1=6, valent donc

CD(A)=CD(B)=CD(E)=13,CD(C)=CD(D)=CD(F)=12,CD(G)=16.

Trois sommets arrivent donc en tête à égalité : C, D et F.

Pour départager ces trois sommets, calculons l'intermédiarité. Il faut d'abord le tableau des distances, obtenu de proche en proche.

δ A B C D E F G
A 0 1 1 2 3 3 4
B 1 0 1 2 3 3 4
C 1 1 0 1 2 2 3
D 2 2 1 0 1 1 2
E 3 3 2 1 0 1 2
F 3 3 2 1 1 0 1
G 4 4 3 2 2 1 0

On constate sur ce réseau que, pour chaque paire de sommets, la plus courte chaîne est unique, de sorte que tous les σu,v valent 1 : chaque paire apporte donc 0 ou 1, et il suffit de compter les paires dont la plus courte chaîne passe par le sommet étudié.

Exemple

Intermédiarité de D. Les paires à examiner sont les 6×52=15 paires de sommets pris parmi A, B, C, E, F et G. Celles dont l'unique plus courte chaîne passe par D sont les neuf suivantes :

  • {A,E} par ACDE, {A,F} par ACDF, {A,G} par ACDFG ;
  • {B,E}, {B,F} et {B,G} par les chaînes analogues issues de B ;
  • {C,E} par CDE, {C,F} par CDF, {C,G} par CDFG.

Les six autres paires ne passent pas par D : {A,B}, {A,C} et {B,C} restent dans le triangle de gauche, {E,F} et {F,G} sont des arêtes, et {E,G} emprunte EFG. Ainsi

CB(D)=9.

Exemple

Intermédiarité de C, de F et des autres sommets. Le raisonnement est le même.

Pour C : toute chaîne partant de A ou de B vers D, E, F ou G doit emprunter l'arête {C,D}, donc passer par C. Cela fait les huit paires {A,D}, {A,E}, {A,F}, {A,G}, {B,D}, {B,E}, {B,F} et {B,G}, et aucune autre. Donc CB(C)=8.

Pour F : le sommet G n'a que F pour voisin, donc toute chaîne aboutissant à G passe par F. Cela fait les cinq paires {A,G}, {B,G}, {C,G}, {D,G} et {E,G}. Aucune autre paire n'a besoin de F, car D et E sont voisins. Donc CB(F)=5.

Pour A, B, E et G : CB=0. Par exemple une chaîne passant par A relierait B à C en deux étapes, alors que B et C sont voisins ; et G, de degré 1, n'est sur aucun trajet entre deux autres sommets.

Le tableau final est éloquent.

Sommet A B C D E F G
d(s) 2 2 3 3 2 3 1
CD(s) 13 13 12 12 13 12 16
CB(s) 0 0 8 9 0 5 0

Les deux mesures ne disent pas la même chose. Le degré de centralité place C, D et F à égalité : ils ont autant de contacts directs les uns que les autres. L'intermédiarité les sépare nettement, et désigne D comme le sommet le plus stratégique du réseau : 9 des 15 paires de sommets communiquent par lui. Ce n'est pas celui qui a le plus d'amis, c'est celui qui sert de pont entre les deux groupes. Retirer D, ou retirer C, couperait le réseau en deux ; retirer A ne changerait presque rien. En termes de réseau social, un fort CD signale un compte très suivi localement, un fort CB signale un compte par lequel transite l'information entre communautés, dont la disparition fragmente le réseau.

Exemple

Le cas des plus courtes chaînes multiples. Sur le graphe G1 de la section 2, les deux chaînes ABD et ACD sont les plus courtes chaînes de A à D, donc σA,D=2. La paire {A,D} apporte alors 12 à CB(B) et 12 à CB(C) : l'influence se partage entre les deux intermédiaires possibles. De même, σA,E=2 avec les chaînes ABDE et ACDE, ce qui apporte encore 12 à chacun de B et C, mais 1 à D, par lequel les deux chaînes passent. Au total, CB(B)=CB(C)=1 et CB(D)=3.

Un mot, pour finir, sur les tailles réelles. Les calculs ci-dessus ont demandé une page pour sept sommets. Un réseau social réel en compte de l'ordre de trois milliards, soit environ 4,5×1018 paires de sommets à examiner pour une seule intermédiarité : c'est hors d'atteinte, non seulement à la main, mais aussi par un calcul direct sur ordinateur. L'analyse des grands réseaux repose donc sur des algorithmes spécialisés et sur des méthodes d'approximation, dont le principe reste exactement celui que nous venons de voir sur sept sommets.

Ce qu'il faut retenir

Les définitions à connaître.

  • Graphe G=(S,A), ordre n, nombre d'arêtes m
  • Sommets adjacents, voisinage V(s)
  • Arête {u,v} contre arc (u,v)
  • Matrice d'adjacence A=(ai,j)
  • Chaîne, chemin, longueur
  • Chaîne élémentaire, chaîne simple
  • Cycle, circuit
  • Connexité, composante connexe
  • Distance δ(u,v), excentricité, diamètre
  • Degré d(s), degrés d+(s) et d(s)
  • Graphe complet Kn, graphe régulier
  • Degrés de centralité CD et d'intermédiarité CB

Les trois théorèmes exigibles.

  1. Puissances de la matrice d'adjacence. Le coefficient d'indice (i,j) de Ad est le nombre de chemins de longueur d de si à sj. Démonstration par récurrence, en découpant un chemin de longueur d+1 sur son avant-dernier sommet.
  2. Critère matriciel de connexité. Un graphe d'ordre n est connexe si et seulement si tous les coefficients de In+A++An1 sont strictement positifs. L'exposant n1 vient du lemme : entre deux sommets reliés, il existe une chaîne élémentaire, donc de longueur au plus n1.
  3. Formule d'Euler, dite des poignées de main. sSd(s)=2m, par double comptage des incidences. Conséquences : le nombre de sommets de degré impair est pair, et Kn a n(n1)2 arêtes.

Le tableau des réflexes.

Question posée Outil à mobiliser
Combien de chemins de longueur d de si à sj ? le coefficient (Ad)i,j
Combien de chemins de longueur d en tout ? la somme de tous les coefficients de Ad
Le graphe est-il connexe ? tous les coefficients de In+A++An1 sont-ils strictement positifs ?
Quelle est la distance δ(si,sj) ? le plus petit d tel que (Ad)i,j>0
Quel est le degré de si ? la somme de la ligne i de A, ou (A2)i,i
Combien d'arêtes ? la demi-somme des degrés, ou la demi-somme des coefficients de A
Combien de triangles ? 16tr(A3)
Cette liste de degrés est-elle possible ? sa somme doit être paire
Quel sommet est le plus central ? CD pour les contacts directs, CB pour le rôle de pont

Les erreurs les plus fréquentes. Confondre la longueur d'une chaîne, qui compte les arêtes, avec son nombre de sommets, qui vaut un de plus. Oublier d'annoncer la numérotation des sommets avant d'écrire la matrice d'adjacence. Écrire une matrice d'adjacence non symétrique pour un graphe non orienté. Écrire une autre somme que In+A++An1 dans le critère de connexité, en oubliant le terme In ou en s'arrêtant à An2 : c'est cette somme exacte, et elle seule, qui figure au théorème. Oublier que δ désigne la distance et d le degré. Enfin, conclure qu'un graphe est connexe après avoir exhibé une seule chaîne : il faut relier tous les couples de sommets, ou invoquer le critère matriciel.

Bloqué sur « Théorie des graphes » ?

On peut le travailler ensemble dès cette semaine. La première heure est offerte — on fait le point honnêtement, et vous repartez au minimum avec une méthode.