3 La notion de graphe généralise amplement la notion de relation sur un ensemble ; elle s'intéresse à la façon dont sont liés les objets. Avec les plans de métro, les cartes routières, les schémas de circuits électriques, les formules des molécules, les organigrammes, les arbres généalogiques, on utilise chaque jour des graphes...
5 \section{Définitions et premiers exemples}
8 \subsection{Définitions}
10 \begin{Def}[Graphe non orienté, sommet, arête]
11 Un \emph{graphe non orienté}\index{graphe!non orienté} $G = (S, A)$ est défini par l'ensemble fini $S = \{s_1, s_2, ..., s_n\}$ dont les éléments sont appelés \emph{sommets}\index{sommet}, et par l'ensemble fini $A = \{a_1, a_2, ..., a_m\}$ dont les éléments sont appelés \emph{arêtes}\index{arête}.
13 Une arête $a$ de l'ensemble $A$ est définie par une paire non-ordonnée de sommets, appelés les \emph{extrémités} \index{extrémités} de $a$. Si les extrémités coïncident, on parle de \emph{boucle}\index{boucle}.
15 Si l'arête $a$ relie les sommets $s_i$ et $s_j$, on dira que ces sommets sont \emph{adjacents}\index{sommet!adjacent}, ou incidents avec $a$, ou encore que l'arête $a$ est incidente avec les sommets $s_i$ et $s_j$.
17 On notera qu'un graphe a au moins un sommet ; on notera par la suite \emph{ordre}\index{graphe!ordre}\index{ordre d'un graphe} d'un graphe son nombre de sommets.
22 % On peut définir autrement cet objet, et certains auteurs choisissent celle-ci : \og Un \emph{graphe non orienté}\index{graphe!non orienté} est un triplet $(S, A, \delta )$, où
24 % \item $S$ est un ensemble fini non vide,
25 % \item $A$ est un ensemble fini,
26 % \item $\delta$ est une fonction de $A$ dans $S_2 \cup S$, où $S_2$ est l'ensemble des parties à 2 éléments de $S$.
27 % \end{enumerate}\fg{}
28 % Ces définitions sont évidemment équivalentes. Il se pourra, dans la suite de cours, que l'on utilise par moment cette deuxième définition...
33 Dans le présent chapitre, et ses proches successeurs, graphe signifie graphe non orienté (même quand cela n'est pas spécifié). Il existe aussi des graphes orientés ; ils seront étudiés plus loin.
37 La définition précédente n'interdit pas la possibilité que deux mêmes sommets soient reliés par deux arêtes différentes.
42 \subsection{Représentation graphique et notion de graphes pondérés}
44 Les graphes non orientés admettent une représentation graphique permettant leur visualisation :
47 \includegraphics[scale=0.7]{graphes/completK5}
52 Signalons aussi dès à présent la possibilité de pondérer les arêtes d'un graphe non orienté (la définition de graphe est alors à adapter) :
55 \includegraphics[scale=0.7]{graphes/exemples.eps}
60 % On a 6 wagons à trier. Dans la gare de triage, les wagons entrent dans l'ordre 2, 5, 3, 6, 1, 4 et doivent sortir dans l'ordre croissant. Deux wagons i et j peuvent être mis sur la même voie si et seulement s'ils entrent dans l'ordre dans lequel ils doivent sortir.
62 % \item Dessinez un graphe illustrant la situation, en indiquant ce que représentent les sommets et les arêtes de votre graphe.
63 % \item Quel sera le nombre minimal de voies nécessaires au tri?
69 \subsection{Degré, chaîne}
71 \subsubsection{Degré d'un sommet, d'un graphe}
73 \begin{Def}[Degré d'un sommet]
74 On appelle \emph{degré} d'un sommet $s$, noté $d(s)$, le nombre d'arêtes dont le sommet $s$ est une extrémité (les boucles comptent pour deux).
77 \begin{Th}[Lemme des poignées de mains]
78 La somme des degrés des sommets d'un graphe est égale à deux fois le nombre d'arêtes.
82 \begin{Def}[Degré d'un graphe]
83 Le degré d'un graphe est le degré maximum de tous ses sommets.
87 Calculez les degrés des sommets, et le degré des graphes ci-dessus.
92 \begin{Def}[Graphe régulier]
93 Un graphe dont tous les sommets ont le même degré est dit \emph{régulier}\index{graphe!régulier}. Si le degré commun est k, alors on dit que le graphe est k-régulier.
97 Les graphes précédent sont-ils réguliers ?
101 Représentez un graphe 3-régulier.
104 On reviendra sur cette notion dans la section exercices de la fin du paragraphe.
106 \subsubsection{Chaîne}
109 Une chaîne dans G, est une suite de la forme $$(s_0, a_1, s_1, a_2, ..., s_{k-1}, a_k, s_k)$$
111 \item ayant pour éléments alternativement des sommets ($s_i$) et des arêtes ($a_i$),
112 \item commençant et se terminant par un sommet,
113 \item et telle que les extrémités de $a_i$ soient $s_{i-1}$ et $s_i$, $i = 1, ..., k$.
117 \noindent $s_0$ est appelé le \emph{départ} de la chaîne et $s_k$ l'\emph{arrivée}.
120 On a choisi ici de réserver le terme de \emph{chemin} aux graphes orientés.
124 \begin{Def}[Sommet accessible]
125 Dans un graphe (orienté ou non), on dit que le sommet $s'$ est \emph{accessible}\index{sommet!accessible} à partir du sommet $s$ s'il existe une chaîne menant de $s$ à $s'$.
129 On dit aussi qu'on peut \emph{atteindre} $s'$ à partir de $s$.
132 \begin{Def}[Chaîne élémentaire]
133 Une chaîne dans laquelle tous les sommets sont différents s'appelle une \emph{chaîne élémentaire} \index{chaîne!élémentaire}.
137 On parle aussi de chaîne \emph{simple}\index{chaîne!simple}.
141 Une chaîne simple a forcément toutes ses arêtes différentes, et ne contient évidemment pas de boucle.
145 \begin{Th}[Existence de chaînes élémentaires]
146 \'Etant donné une chaîne qui joint $s$ et $s'$ (différents), on peut toujours lui enlever arêtes et sommets pour obtenir une chaîne \emph{élémentaire} joignant $s$ à $s'$.
151 Réfléchir à la preuve de cette existence.
155 \subsection{circuit{}-cycle}
158 Une chaîne de longueur $n$ dont le départ et l'arrivée co\"incident s'appelle un \emph{circuit}\index{circuit} de longueur $n$.
164 Une boucle est un circuit de longueur 1.
170 Un circuit dont tous les sommets et toutes les arêtes sont différentes, s'appelle un \emph{cycle.}\index{cycle}
174 Représentez un graphe qui admet :
184 \begin{Def}[Graphe simple]
185 Un graphe est dit \emph{simple}\index{graphe!simple}, s'il ne contient pas de boucles et s'il n'y a pas plus d'une arête reliant deux mêmes sommets.
189 Représentez un graphe simple (resp. qui n'est pas simple).
193 \subsection{Exercices}
196 On s'intéresse aux graphes 3-réguliers simples.
198 \item Essayez de construire de tels graphes ayant 4 sommets, 5 sommets, 6 sommets, et 7 sommets.
199 \item Qu'en déduisez-vous?
203 \textit{\underline{Réponse :}} D'après le lemme des poignées de mains, la somme des degrés des sommets est égale au double du nombre d'arêtes. Si chaque sommet est de degré 3, la somme des degrés des sommets est :
205 \item paire, si le nombre de sommets est pair,
206 \item impaire, sinon.
208 Comme cette somme doit être égale à un nombre pair (le double du nombre d'arêtes), seuls les graphes 3-réguliers ayant 4, ou 6 sommets, sont possibles.
212 Montrez qu'un graphe simple a un nombre pair de sommets de degré impair.
216 \textit{\underline{Réponse :}} D'après le lemme des poignées de mains, la somme $S$ des degrés des sommets est égale au double du nombre d'arêtes, donc cette somme est paire. D'autres part, $S$ est égale à la somme :
218 \item des degrés pairs,
219 \item des degrés impairs
221 La somme des degrés pairs est paire. \'Etudions la somme $S'$ des degrés impairs : notons $i_0$ le nombre de sommets de degrés impairs. Cette somme $S'$ est égale à $\sum_{k=1}^{i_0} (2 k_i + 1)$, puisque chaque degré est ici impairs. Donc $S' = 2 \left(\sum_{k=1}^{i_0} k_i \right) + i_0$, soit $S'$ est égale à un nombre pair plus $i_0$. Quand on met tout bout à bout, on obtient finalement l'équation en parité : pair + pair + $i_0$ = pair, soit $i_0$ est pair !
224 Est-il possible de relier 15 ordinateurs de sorte que chaque appareil soit relié avec exactement trois autres?
228 \textit{\underline{Réponse :}} Non, application directe de l'exercice précédent.
231 Un groupe de 15 fans d’un chanteur célèbre, possède les deux particularités suivantes :
233 \item Chaque personne connaît au moins 7 autres
234 \item Toute information détenue par une personne est répercutée dans la minute qui suit à ses connaissances (et uniquement à elles)
236 Quel est le temps maximal entre le moment où une des 15 fans apprend une chose nouvelle sur leur idole, et celui où le groupe entier est au courant ?
240 \textit{\underline{Réponse :}} L'éméteur de l'information est un sommet relié à au moins 7 autres. Notons $I$ l'ensemble de ces sommets.
241 Il reste au plus 7 sommets (15-(7+1)). Notons $J$ cet ensemble.
242 Chacun des sommets de $J$ est nécessairement relié à un des sommets de $I$, sinon il ne serait relié qu'à 6 sommets.
243 L'information met donc au plus 2 mins.
247 \section{Quelques types particuliers de graphes}
249 \subsection{Graphes planaires}
250 \begin{Def}[Graphe planaire]
251 Si on arrive à dessiner le graphe sans qu'aucune arête n'en coupe une autre (les arêtes ne sont pas forcément rectilignes), on dit que le graphe est \emph{planaire}\index{graphe!planaire}.
255 Représentez un graphe planaire.
259 Représentez un graphe non planaire.
263 Les graphes planaires seront plus systématiquement étudiés au chapitre suivant.
267 \subsection{Multigraphes}
269 En général, dans ce cours, les graphes étudiés sont simples. On a cependant vu qu'il pouvait, pour un graphe quelconque, exister des boucles, voire des arêtes multiples : on parle, dans ce cas, de \index{multigraphe}\emph{multigraphe}.
272 Un exemple de multigraphe :
275 \includegraphics[scale=0.7]{graphes/grapheNonSimple.eps}
277 \noindent S = \{1, 2, 3, 4\}
279 \noindent A = \{(1,1), (1,3), (1,4), (2,3), (2,3), (3,4)\}
282 \subsection{Graphes connexes}
284 \begin{Def}[Graphe connexe]
285 Un graphe est \emph{connexe}\index{graphe!connexe} s'il est possible, à partir de n'importe quel sommet, d'atteindre n'importe quel autre sommet du graphe (si, pour tout couple de sommets $(s, s')$, il existe une chaîne reliant $s$ à $s'$).
290 C'est en particulier le cas lorsqu'à partir d'un sommet on peut atteindre tous les autres sommets.
296 Représenter un graphe (non orienté) connexe, et un graphe non connexe.
304 \begin{Def}[Composantes connexes]
305 Un graphe non connexe se décompose en \emph{composantes connexes}\index{composantes connexes!d'un graphe}.
310 Exemple d'un graphe n'étant pas connexe :
312 \includegraphics[scale=0.7]{graphes/grapheNonConnexe.eps}
315 \noindent S = \{1, 2, 3, 4, 5, 6\}
317 \noindent A = \{(1,3), (1,4), (2,3), (3,4), (5,6)\}\\
320 Ici, les composantes connexes sont \{1, 2, 3, 4\} et \{5, 6\}.
323 \subsection{Graphes complets}
325 \subsubsection{Définition}
327 \begin{Def}[Graphe complet]
328 Un graphe est \emph{complet}\index{graphe!complet} si chaque sommet du graphe est relié directement à tous les autres sommets.
331 \subsubsection{Exemples et exercices}
334 On note $K_n$ tout graphe non orienté simple d'ordre $n$, tel que toute paire de sommets est reliée par une unique arête.
338 $\forall n, K_n$ est complet.
341 \begin{Ex}[Graphe complet $K_5$]
342 Exemple d'un graphe complet :
344 \includegraphics[scale=0.7]{graphes/completK5.eps}
347 S = \{1, 2, 3, 4, 5\}
349 A = \{(1,2), (1,3), (1,4), (1,5), (2,3), (2,4), (2,5), (3,4), (3,5), (4,5)\}
354 Combien d'arêtes possède le graphe $K_n$ ?
358 \noindent\textit{\underline{Réponse :}} Chacun des $n$ sommets possède $n-1$ arêtes, et chaque arête est ainsi comptée deux fois... $\dfrac{n(n-1)}{2}$.
363 Un tournoi d'échecs oppose 6 personnes. Chaque joueur doit affronter tous les autres.
365 \item Construisez un graphe représentant toutes les parties possibles.
366 \item Quel type de graphe obtenez-vous?
367 \item Si l'on ne joue qu'un match par jour, combien de jours faudra-t-il pour terminer le tournoi ?
368 \item Aidez-vous du graphe pour répondre aux problèmes suivants :
370 \item Si chaque joueur ne joue qu'un match par jour, combien de jours faudra-t-il pour terminer le tournoi?
371 \item Proposer un calendrier des matches.
377 \subsection{Graphes biparti}
379 \subsubsection{Définition et premières propriétés}
381 \begin{Def}[Graphes biparti]
382 Un graphe est \emph{biparti}\index{graphe!biparti} si ses sommets peuvent être divisés en deux ensembles X et Y, de sorte que toutes les arêtes du graphe relient un sommet dans X à un sommet dans Y.
385 On peut se rendre compte que les graphes biparti sont les graphes que l'on peut colorier avec au plus deux couleurs, de sorte que deux sommets adjacents ne possèdent jamais la même couleur. En d'autres termes, les graphes bipartis sont les graphes dont le nombre chromatique est inférieur ou égal à 2 (ce terme sera défini plus proprement dans la suite du cours).
389 Responsables d'organiser des speed datings, on souhaite placer les différents individus inscrits à une soirée donnée, dans différentes salles, de telles sorte que nul ne se connaît dans une salle donnée.
391 \item Donner un exemple où cela n'est pas possible.
392 \item Comment modéliser ce problème à l'aide d'un graphe ?
393 \item Peut-on n'utiliser que deux salles, s'il est possible de placer 3 individus autour d'une table de telle sorte que chaque individu connaît ses trois voisins ? Que se passe-t-il si on remplace 3 par 5, par 7 ?
398 Le résultat suivant se déduit assez aisément...
401 Un graphe est biparti si et seulement il ne contient pas de cycle impair.
405 Relier les notions de graphe biparti et de relation binaire.
409 Relier les graphes N-parti aux relations N-aires, aux bases de données.
414 \subsubsection{Graphe biparti complet}
416 \begin{Def}{Graphes biparti complet}
417 Un graphe biparti est dit \emph{biparti complet} (ou encore est appelé une biclique) si chaque sommet de U est relié à chaque sommet de V.
420 \begin{Ex}[Graphe biparti complet]
422 Exemple d'un graphe biparti complet :
425 \includegraphics[scale=0.7]{graphes/biparti.eps}
428 S = \{1, 2, 3, 4, 5\}
430 A = \{(1,2), (1,4), (2,3), (2,5), (3,4), (4,5)\}
432 Avec les notations de la définition, on a U=\{1, 3, 5\} et V=\{2, 4\}, ou vice versa.
435 Un tel graphe se note $K_{3,2}$. Plus généralement,
438 On note $K_{m,n}$ un graphe biparti complet liant $m$ sommets à $n$ sommets.
442 Ces graphes $K_{m,n}$ possèdent $mn$ arêtes.
448 \subsection{Exercices}
451 Sur un échiquier 3x3, les deux cavaliers noirs sont placés sur les cases a1 et c1, les deux cavaliers blancs occupant les cases a3 et c3.
452 Aidez-vous d'un graphe pour déterminer les mouvements qui permettront aux cavaliers blancs de prendre les places des cavaliers noirs, et vice versa.
455 \noindent\textit{\underline{Réponse :}} Faire un graphe biparti :
457 \item $a_1, a_3, c_1, c_3$ d'un côté,
458 \item $a_2, b_1, b_2, b_3, c_2$ de l'autre.
460 avec des arêtes quand le passage d'une case à l'autre est possible pour un cavalier (par exemple, entre $a_1$ et $b_3$). On oriente alors les arêtes, suivant les parcours à réaliser par les cavaliers. De $a_1$, on peut envoyer le cavalier en $b_3$ ou $c_2$. Mais si on l'envoie en $c_2$, il se retrouve le coup d'après en $a_3$.
464 Quel est le nombre maximal d'arêtes dans un graphe non orienté d'ordre $n$ qui ne possède pas d'arêtes parallèles ? Et si l'on suppose qu'il ne possède pas de boucle ?
467 \noindent\textit{\underline{Réponse :}} Le cas le pire correspond au graphe complet $K_n$, et on a déjà calculé son nombre d'arêtes : $(n-1)+...+1 = \dfrac{n(n-1)}{2}$. Rajouter des boucles revient, dans le cas le pire, à rajouter une arête sur chaqu'un des n sommets. On ajoute donc $n$ à ce qui précède, pour trouver : $\dfrac{n(n+1)}{2}$.
472 \section{Représentation des graphes}
474 Nous aimons bien communiquer par des dessins, mais les machines n'en sont pas encore là : il faut donc trouver d'autres façons de représenter les graphes.
476 La solution consiste à utiliser des matrices, et il y a différentes méthodes. Dans ce qui suit, on considère des graphes non pondérés, mais ces représentations s'adaptent sans problème aux graphes pondérés.
478 \subsection{Matrice d'incidence}
480 \subsubsection{Présentation}
482 La \emph{matrice d'incidence}\index{matrice!d'incidence} d'un graphe non orienté est une matrice $J$ à coefficients entiers dont les lignes sont repérées par les sommets d'un graphe et les colonnes par ses arêtes :
484 \begin{Def}[Matrice d'incidence]
485 Par définition, $J_{s,\varepsilon}$ vaut :
487 \item 1 quand $s$ est une extrémité de l'arête $\varepsilon$ si celle-ci n'est pas une boucle,
488 \item 2 quand $s$ est une extrémité de la boucle $\varepsilon$,
489 \item 0 si $s$ n'est pas une extrémité de $\varepsilon$.
494 On peut reconstituer un graphe non orienté à partir de sa matrice d'incidence, car elle donne le nombre de sommets, le nombre d'arêtes et elle dit comment chaque arête est liée à chaque sommet.
500 Représentez le graphe non orienté dont la matrice d'incidence est :
503 \begin{array}{ccccccccc}
504 1 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 \\
505 0 & 1 & 1 & 0 & 1 & 0 & 0 & 1 & 0 \\
506 0 & 0 & 0 & 0 & 1 & 0 & 0 & 1 & 1 \\
507 0 & 0 & 0 & 1 & 0 & 0 & 2 & 0 & 1 \\
508 0 & 0 & 1 & 1 & 0 & 1 & 0 & 0 & 0 \\
509 0 & 1 & 0 & 0 & 0 & 1 & 0 & 0 & 0 \\
510 1 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 \\
519 Représentez les matrices d'incidences des graphes de ce chapitre.
523 Réfléchir aux avantages et inconvénients d'un tel mode de représentation des graphes.
526 \subsubsection{Résultat}
529 Si $s_1,\hdots, s_n$ sont les sommets d'un graphe non orienté, alors :
530 $$\left( \begin{array}{c} d(s_1) \\ d(s_2) \\ \vdots \\ d(s_n) \end{array} \right) = J \left( \begin{array}{c} 1 \\ 1 \\ \vdots \\ 1 \end{array} \right)$$
539 \subsection{Matrice d'adjacence}
541 \subsubsection{Présentation}
542 On peut représenter un graphe non orienté par une matrice d'adjacence.
544 \begin{Def}[Matrice d'adjacence]
545 Dans une \emph{matrice d'adjacences}\index{matrice!d'adjacence}, les lignes et les colonnes représentent les sommets du graphe.
547 \item Un 1 à la position (i,j) signifie que le sommet i est adjacent au sommet j.
548 \item Sinon, on place un 0.
550 En cas de boucle (pour le sommet $i$, par exemple), on place un 1 sur la diagonale (en position $(i,i)$).
554 On aurait pu convenir de placer un 2 en cas de boucle. L'avantage serait de continuer à obtenir le degré des sommets en faisant les sommes par lignes. Par contre, on perdrait la possibilités, évoquée ci-dessous, de déterminer les chemins de longueur $k$.
559 \subsubsection{Exemple}
561 Considérons le graphe $G$ :
564 \includegraphics[scale=0.75]{graphes/graphe1bx.eps}
567 Voici la matrice d'adjacences du graphe G :
584 Décrivez le graphe G ci-dessous par une matrice d'adjacences.
586 \includegraphics[scale=0.7]{graphes/graphe2.eps}
592 Représentez les matrices d'adjacences des graphes de ce chapitre.
596 Réfléchir à la possibilité d'extension des matrices d'adjacences aux graphes :
603 \subsubsection{Propriétés de la matrice d'adjacence}
604 Cette matrice a plusieurs caractéristiques :
608 \item Elle est carrée : il y a autant de lignes que de colonnes.
609 \item Un 1 sur la diagonale indique une boucle. Si le graphe n'a pas de boucle, alors la diagonale de sa matrice d'adjacence est nulle.
610 \item La matrice d'adjacence d'un graphe non orienté est symétrique : $m_{ij} = m_{ji}$.
618 Calculez $M^2$ et $M^3$ pour la matrice d'adjacence $M$ ci-dessus. Comparer ces matrices aux chaînes de longueur 2 et 3 reliant deux sommets quelconques.
623 Soit $A$ la matrice d'adjacence d'un graphe $G$. Le coefficient $(s,t)$ de $A^k$ est le nombre de chaînes de longueur $k$ qui mènent du sommet $s$ au sommet $t$.
627 Démontrez ce résultat, par récurrence.
633 $$J=\left( \begin{array}{cccc} 2 & 1 & 0 & 1 \\ 0 & 1 & 1 & 0 \\ 0 & 0 & 1 & 1 \\ \end{array}\right)$$
635 \item Dessinez le graphe non orienté ayant $J$ pour matrice d'incidence.
636 \item Déterminez sa matrice d'adjacence B.
637 \item Vérifiez les formules précédentes :
639 \item le lien entre matrice d'incidence et degré des sommets,
640 \item le lien entre $B^k$ et les chaînes de longueur $k$.
646 Quels sont les avantages et les inconvénients de cette méthode de représentation des graphes ? Comparez-la aux matrices d'incidences.
648 En particulier, pour un graphe à $m$ sommets et $n$ arêtes, quelle représentation est la plus gourmande en espace mémoire ? Cela dépend du nombres d'arêtes ?
652 \subsection{Listes d'adjacence}
655 \subsubsection{Présentation}
658 \begin{Def}[Liste d'adjacence]
659 On peut encore représenter un graphe en donnant pour chacun de ses sommets la liste des sommets auxquels il est adjacent. On parle alors de \emph{liste d'adjacence}\index{liste!d'adjacence}.
663 On considère le graphe $G$ suivant :
665 \includegraphics[scale=0.7]{graphes/graphe1b.eps}
668 \noindent Voici les listes d'adjacences de $G$ :
683 Représentez les listes d'adjacences des graphes de ce chapitre.
687 Discuter des avantages et des inconvénients de cette méthode de représentation. On la comparera aux matrices d'adjacence et d'incidence.
695 \centerline{\x{Fin du Chapitre}}