• Aucun résultat trouvé

Nombre de parcours entre les sommets d’un graphe

Dans le document tel-00416598, version 1 - 14 Sep 2009 (Page 194-197)

Les notions qui sont abordées ici ont un statut quelque peu à part dans le programme de Terminale ES. La représentation du graphe est matricielle, et on cherche à déterminer un nombre de parcours dans le graphe, un parcours étant un chemin pouvant passer plusieurs fois par le même arc. Par rapport au reste du programme, il nous semble que la résolution de ce problème passe par une technique, non justifiée, et difficilement justifiable auprès d’élèves de Terminale ES. C’est pourquoi nous ne nous étendrons pas sur ce paragraphe.

Nous donnerons l’énoncé du problème général, puis ferons une brève incursion dans le domaine de l’algèbre, avant de montrer le résultat pour un graphe non orienté.

Comment compter le nombre de parcours entre les différents couples de sommets d’un multigraphe orienté donné ?

4.8.1 Sur un exemple

Prenons un multigraphe orienté où chaque arc est nommé :

1Des règles de construction peuvent être élaborées par les élèves. Par exemple, une « règle de construc-tion » consisterait à remarquer que si l’automate doit reconnaître une famille de mots contenant la séquence de lettresT, il doit en particulier reconnaître T.

tel-00416598, version 1 - 14 Sep 2009

À ce graphe, nous pouvons faire correspondre samatrice d’adjacenceA. Cette matrice est une matrice carrée comportant autant de lignes et de colonnes que le graphe ne compte de sommets, et où l’intersection de la ligneiavec la colonnej est le nombre d’arcs menant du sommetiau sommetj, 0 indiquant l’absence d’arc deiversj. La matrice d’adjacence1 du graphe précédent est donc :

Cette façon de représenter le graphe de façon matricielle offre l’avantage d’être une struc-ture de données facilement manipulable par un ordinateur. Elle permet aussi de calculer le nombre de parcours de longueur fixée existant entre un sommet et un autre. En effet, la puissance n-ième d’une matrice d’adjacence A donne le nombre de parcours de longueur n dans un graphe, le coefficient cij de la matrice An fournissant le nombre de parcours de longueur n du sommet i vers le sommet j.

Entamons une brève parenthèse algébrique : nous donnons cet aparté car il a semblé éclairer le problème à un certain nombre de professeurs lors des formations auxquelles nous avons participé. Pour constater le mécanisme à l’œuvre dans ce produit matriciel, nous allons créer une nouvelle matriceB comportant le nom des arcs menant du sommet iau sommetj à l’intersection de la ligneiet de la colonnej. Lorsqu’il existe plusieurs arcs du sommetiau sommet j, on les additionne de façon formelle, cette addition correspondant au «OU » logique. (Par exemple, entre le sommet 1 et le sommet 2, deux arcs existent : a1,2 et b1,2, nous les additionnerons donc dans la matrice B).

1D’autres matrices peuvent représenter un graphe, préciser que la matrice associée à un graphe est la matriced’adjacencen’est donc pas facultatif. Nous pouvons par exemple définir la matrice d’incidence d’un multigraphe : c’est une matrice comportant autant de lignes que le graphe compte de sommets, et autant de colonnes que d’arcs parallèles. L’intersection de la ligneiavec la colonnejest égale au nombre (respectivement à l’opposé du nombre) d’arcs parallèlesj dontiest l’extrémité initiale (respectivement finale).

tel-00416598, version 1 - 14 Sep 2009

B =

Prenons comme produit « · », un produit non commutatif (ce produit correspond à la concaténation de chaînes de caractères) et prenons la puissance deuxième deB :

B2 =

Par construction, cette matrice décrit les parcours de longueur 2 entre deux sommets du graphe, 0 indiquant l’absence de parcours de cette longueur. Par exemple la valeur située à la troisième colonne de la première ligne a1,2·a2,3+b1,2 ·a2,3 indique qu’il existe deux parcours de longueur deux du sommet 1 vers le sommet 2, le parcours a1,2 ·a2,3 et le parcours b1,2·a2,3.

L’ordre dans le produit est important pour la description du parcours :a2,4·a4,1 eta4,1·a2,4 comprennent les mêmes arêtes, mais le second n’est pas un parcours dans le graphe, ce pourquoi nous avons choisi un produit non commutatif.

Le nombre de parcours de longueur fixée entre deux sommets du graphe est le nombre des chaînes de caractères concaténées par le produit que nous avons choisi, alors que la longueur de chaque chaîne de caractères est la longueur du parcours.

4.8.2 Dans un graphe simple non orienté

Si le graphe est simple et non orienté, la matrice d’adjacence du graphe sera une matrice symétrique dont les valeurs seront prises dans {0,1}. Montrons par récurrence sur n que chaque coefficient de la puissance n-ième de la matrice donne le nombre de parcours de longueur n dans le graphe.

Soit A la matrice d’adjacence d’un graphe G à n sommets où chaque coefficient de la matrice est noté aij,i etj compris entre 1 et n. Le coefficient de de cette matrice donne bien le nombre de parcours de longueur 1 entre i etj.

Supposons maintenant que la matrice An−1 a pour coefficients bij pour1≤i≤n et1≤ j ≤n, chaque bij donnant le nombre de parcours entre i et j de longueurn−1dans G.

Pour i,j et k entiers fixés entre 1 et n, la valeur deaikbkj est le produit entre le nombre de parcours de longueur n −1 entre les sommets i et k (par hypothèse) avec le poids de l’arête entre k et j : aikbkj correspond donc au nombre de parcours de longueur n dans le graphe dont la dernière arête parcourure est l’arête kj. Pour compter le nombre de parcours de longueur n de i vers j nous devons sommer les valeurs de aikbkj pour k

tel-00416598, version 1 - 14 Sep 2009

variant de 1 à n, ce qui est la définition même d’un coefficient de la matrice A×An−1. donne donc le nombre de parcours de longueur n entrei etj.

4.8.3 Connaissances mises en jeu dans le problème

Ce problème nécessite la connaissance du produit matriciel. Le produit matriciel fait par-tie du programme de Première ES, et les élèves sont censés1 savoir effectuer un calcul matriciel à la main pour des matrices de taille 2, 3 ou 4 au plus, et connaître les fonc-tionnalités de leur calculatrice leur permettant de faire des opérations sur de « petites » matrices2. Pour comprendre les mécanismes permettant d’obtenir un nombre de parcours de longueur donnée dans un graphe, il me semble que la connaissance de la technique du produit matriciel ne suffit pas, cette technique en elle seule n’expliquant rien. La compréhension passe par la compréhension de l’algèbre sous-jacente, ou au moins du pro-duit matriciel « générique »3, pas d’un résultat fourni par une machine. Enseigner cette technique à des élèves n’ayant pas de connaissance d’algèbre demande soit, de présenter la technique comme une sorte d’introduction au calcul algébrique en détaillant le calcul littéralement, soit, de la présenter comme une sorte d’opération « magique », ce qui n’est pas forcément satisfaisant du point de vue de l’enseignant.

Cette opération matricielle ne fournit pas la longueur des chemins dans le graphe : elle compte le nombre de parcours, pour lesquels un arc ou une arête peut être parcouru plusieurs fois. C’est le seul lieu du programmme de terminale ES où ce type de parcours dans les graphes intervient, ce qui pose la question de l’utilité même d’un tel calcul.

Dans le document tel-00416598, version 1 - 14 Sep 2009 (Page 194-197)