MATHS APPLIQUEES A L'INFORMATIQUE - …notesdecours.drivehq.com/courspdf/MaiGraphes.pdf · La...

59
ENSEIGNEMENT DE PROMOTION SOCIALE —————————————————————— Cours de MATHS APPLIQUEES A L'INFORMATIQUE - Introduction à la théorie des graphes - —————————————————————— H. Schyns Décembre 2009

Transcript of MATHS APPLIQUEES A L'INFORMATIQUE - …notesdecours.drivehq.com/courspdf/MaiGraphes.pdf · La...

Page 1: MATHS APPLIQUEES A L'INFORMATIQUE - …notesdecours.drivehq.com/courspdf/MaiGraphes.pdf · La théorie des graphes est un outil très puissant dans l'analyse des problèmes. De plus,

ENSEIGNEMENT DE PROMOTION SOCIALE

—————————————————————— Cours de

MATHS APPLIQUEES A L'INFORMATIQUE

- Introduction à la théorie des graphes -

——————————————————————

H. Schyns

Décembre 2009

Page 2: MATHS APPLIQUEES A L'INFORMATIQUE - …notesdecours.drivehq.com/courspdf/MaiGraphes.pdf · La théorie des graphes est un outil très puissant dans l'analyse des problèmes. De plus,

Introduction à la théorie des graphes Sommaire

H. Schyns S.1

Sommaire 1. INTRODUCTION

2. DEFINITIONS

3. REPRESENTATIONS

3.1. Position du problème 3.2. Représentation graphique 3.3. Représentation matricielle 3.4. Représentation tabulaire 3.5. Quelques exemples

3.5.1. Carte routière 3.5.2. Base de données 3.5.3. Automate à Etats Finis 3.5.4. Diagramme PERT 3.5.5. Flow sheet industriel

3.6. Conclusion

4. PROPRIETES DES GRAPHES

4.1. Connectivité 4.1.1. Position du problème 4.1.2. Algorithme

4.2. Nombre d'arêtes entre deux points 4.2.1. Position du problème 4.2.2. Algorithme

4.3. Origines et extrémités 4.3.1. Position du problème 4.3.2. Approche intuitive 4.3.3. Algorithme 4.3.4. Application

4.4. Cycles simples et multiples 4.4.1. Position du problème 4.4.2. Algorithme simple 4.4.3. Algorithme complet

4.5. Plus court chemin 4.5.1. Position du problème 4.5.2. Algorithme de Dijkstra

5. AUTRES PROPRIETES

5.1. Planéité 5.1.1. Illustration 5.1.2. Raisonnement 5.1.3. Critère mathématique 5.1.4. Application

5.2. Chemin et circuit eulérien

Page 3: MATHS APPLIQUEES A L'INFORMATIQUE - …notesdecours.drivehq.com/courspdf/MaiGraphes.pdf · La théorie des graphes est un outil très puissant dans l'analyse des problèmes. De plus,

Introduction à la théorie des graphes Sommaire

H. Schyns S.2

5.3. Chemin et circuit hamiltonien

6. EXERCICES DU CHAPITRE

6.1. Exercice 1 6.2. Exercice 2 6.3. Exercice 3 6.4. Exercice 4 6.5. Exercice 5

7. SOURCES

Page 4: MATHS APPLIQUEES A L'INFORMATIQUE - …notesdecours.drivehq.com/courspdf/MaiGraphes.pdf · La théorie des graphes est un outil très puissant dans l'analyse des problèmes. De plus,

Introduction à la théorie des graphes 1 - Introduction

H. Schyns 1.1

1. Introduction

Un graphe est un objet mathématique qui permet de modéliser un grand nombre de problèmes de la vie courante tels que :

- l'organisation d'une entreprise, - un algorithme de calcul, - la structure d'un réseau routier ou informatique, - les relations affectives ou professionnelles entre individus, - des liens de causalité entre des événements, - etc.

La théorie des graphes est un outil très puissant dans l'analyse des problèmes. De plus, de nombreux problèmes de nature différente peuvent se mettre sous la forme de graphes.

La théorie des graphes apparaît alors comme une passerelle qui permet d'appliquer des outils habituellement utilisés dans un contexte à la résolution de problèmes qui appartiennent à un autre contexte (fig. 1.1) (1).

fig. 1.1 La théorie des graphes en tant que passerelle de résolution

Ce thème faisant partie du programme du cours de mathématiques appliquées à l'informatique, l'accent sera mis sur la méthodologie et sur les algorithmes de détection des propriétés.

Les notes commencent par la définition du vocabulaire. Toutefois, pour ne pas alourdir ce premier chapitre, nous n'avons repris que les termes essentiels pour la suite du cours. Le lecteur intéressé trouvera un lexique complet dans les ouvrages cités en référence et, en particulier, dans le cours de Didier Maquin de l'ENSEM-Nancy, disponible sur le web (voir chap. 7 Sources).

Une fois les définitions posées, nous passons aux différentes manières de représenter les graphes et à l'examen de quelques cas typiques : carte routière, base de données, automate à états finis, etc.

Dans le chapitre suivant nous passons en revue les principaux algorithmes qui permettent à un ordinateur d'examiner ou de parcourir un graphe : comment savoir si un graphe est en un seul morceau ou non; combien d'étape faut-il parcourir pour aller d'un point à un autre du graphe, quel est le plus court chemin entre deux points, etc.

1 C'est une des démarches propice à la pensée latérale développée par Edward de Bono

Page 5: MATHS APPLIQUEES A L'INFORMATIQUE - …notesdecours.drivehq.com/courspdf/MaiGraphes.pdf · La théorie des graphes est un outil très puissant dans l'analyse des problèmes. De plus,

Introduction à la théorie des graphes 1 - Introduction

H. Schyns 1.2

Nous examinons ensuite rapidement quelques concepts intéressants tels que planéité, graphe eulérien ou graphe hamiltonien.

Enfin, à titre d'exercice, nous proposons quelques problèmes et applications. Nous encourageons vivement le lecteur à essayer de les résoudre afin de prendre la matière bien en main.

Le lecteur qui veut aborder ce chapitre devrait avoir :

- une maîtrise élémentaire d'un tableur de type Excel ou OpenOffice, - une connaissance élémentaire de la gestion de bases de données, - quelques bases de calcul matriciel.

Des notes de cours sur ces différents pré-requis sont disponibles sur le site www.notesdecours.info.

Page 6: MATHS APPLIQUEES A L'INFORMATIQUE - …notesdecours.drivehq.com/courspdf/MaiGraphes.pdf · La théorie des graphes est un outil très puissant dans l'analyse des problèmes. De plus,

Introduction à la théorie des graphes 2 - Définitions

H. Schyns 2.1

2. Définitions

Un graphe consiste en deux ensembles :

- un ensemble de points, nommés nœuds ou sommets (ang.: vertex (s), vertices (pl))

- un ensemble de droites appelées arêtes (ang.: edges) les relient les nœuds.

fig. 2.1 Exemple de graphe

Dans la plupart du temps, les nœuds représentent des états, des situations tandis que les arêtes représentent des transformations mais c'est parfois l'inverse.

Chaque arête connecte deux et seulement deux nœuds. Ces nœuds sont appelés extrémités (ang.: endpoints) de l'arête considérée. L'existence d'une arête entre deux nœuds est définie par de l'existence d'une certaine relation – au sens mathématique – entre ces nœuds (p.ex.: "est voisin de", "précède", etc.).

Deux nœuds sont dits adjacents ou voisins lorsqu'ils sont reliés par une arête. De même, deux arêtes sont dites adjacentes lorsqu'elles ont un nœud commun. On appelle voisinage d'un nœud l'ensemble de ses voisins.

L'ordre d'un graphe est le nombre de nœuds de ce graphe.

Un graphe est dit non orienté lorsque toutes ses arêtes peuvent être parcourues indifféremment dans les deux sens. C'est le cas lorsque la relation représentée est symétrique par essence (p.ex.: "est voisin de", "dîne avec", "est égal à", etc.). Il est orienté lorsque l'une au moins de ses arêtes ne peut être parcourue que dans un sens, lequel doit être explicitement représenté. C'est le cas lorsque la relation représentée est asymétrique dans sa définition (p.ex.: "est le chef de", "doit de l'argent à", etc.).

fig. 2.2 Graphe non-orienté (à g.) et orienté (à dr.)

Dans un graphe non orienté, le degré d'un nœud est le nombre d'arêtes auxquelles ce nœud appartient. La somme des degrés de chaque nœud est égale au double du nombre total d'arêtes (1).

1 C'est asez évident puisque toute arête a deux extrémités

Page 7: MATHS APPLIQUEES A L'INFORMATIQUE - …notesdecours.drivehq.com/courspdf/MaiGraphes.pdf · La théorie des graphes est un outil très puissant dans l'analyse des problèmes. De plus,

Introduction à la théorie des graphes 2 - Définitions

H. Schyns 2.2

Dans un graphe orienté, on distingue les notions de degré entrant ; nombre d'arêtes qui aboutissent au nœud considéré ; et de degré sortant ; nombre d'arêtes qui partent du nœud considéré. Le degré d'un nœud (au sens large) est alors la somme des degrés entrant et sortant.

Dans un graphe orienté, un chemin est une séquence ordonnée d'arêtes qui permet de passer continûment d'un nœud à un autre. Dans un graphe non orienté, on parle plutôt de chaîne.

fig. 2.3 Chemin (à g.) et circuit et cycle dans un graphe orienté (à dr.)

Lorsque le chemin revient au nœud de départ, il définit un parcours fermé nommé circuit. Dans un graphe non orienté, un parcours fermé est un cycle.

Lorsqu'un cycle est composé d'une seule arête qui relie un sommet à lui-même, on parle de boucle.

Un graphe acyclique est un graphe non orienté qui ne contient aucun cycle.

Un graphe non orienté est connexe (d'un seul tenant) s'il existe une chaîne reliant tout couple quelconque de sommets. La définition vaut aussi pour un graphe orienté à condition de considérer le graphe non-orienté correspondant, c'est-à-dire le graphe dans lequel toutes les arêtes sont devenues bidirectionnelles.

Si l'existence d'un chemin entre tout couple de sommets se vérifie dans le graphe orienté original, alors celui-ci est dit fortement connexe.

fig. 2.4 Graphe orienté connexe mais non fortement connexe

Un arbre est simplement un graphe non orienté, connexe et acyclique. Si les arêtes sont orientées, on parle plutôt d'arborescence (1).

1 Dont un exemple est l'arborescence des dossiers dans l'organisation d'un système de fichiers d'un

ordinateur.

Page 8: MATHS APPLIQUEES A L'INFORMATIQUE - …notesdecours.drivehq.com/courspdf/MaiGraphes.pdf · La théorie des graphes est un outil très puissant dans l'analyse des problèmes. De plus,

Introduction à la théorie des graphes 2 - Définitions

H. Schyns 2.3

fig. 2.5 Un arbre : non orienté, connexe et acyclique

Les nœuds de degré 1 sont appelés feuilles; les nœuds de degré supérieur à 1 sont les nœuds internes.

Un graphe est dit complet quand tous ses nœuds sont reliés deux à deux. Un graphe complet à [ n ] nœuds est noté Kn (1)

K1 K2 K3 K4 K5

Partant de K1, on constate qu'en ajoutant un nœud on doit aussi ajouter une arête pour obtenir K2. En toute généralité, si on ajoute un nœud à Kn, il faut aussi ajouter n arêtes pour obtenir Kn+1. Le graphe complet Kn contient donc [ a ] arêtes avec

( )2

1nn)1n(...321a −⋅=−++++=

Ainsi, le graphe complet K6 compte 15 arêtes, soit 5 de plus que K5.

1 Par référence au mathématicien polonais Kazimierz Kuratowski (1896-1980).

Page 9: MATHS APPLIQUEES A L'INFORMATIQUE - …notesdecours.drivehq.com/courspdf/MaiGraphes.pdf · La théorie des graphes est un outil très puissant dans l'analyse des problèmes. De plus,

Introduction à la théorie des graphes 3 - Représentations

H. Schyns 3.1

3. Représentations

3.1. Position du problème

La manière la plus évidente de représenter un graphe est - qui l'eût cru - sous forme graphique.

C'est une représentation qui peut être rapidement appréhendée par l'œil et le cerveau humain ainsi qu'en témoigne l'expression "un petit dessin vaut mieux qu'un long discours".

De nombreux objets graphiques que nous voyons chaque jour ne sont pourtant pas perçus en tant que graphes au sens mathématique du terme : une carte routière, un arbre généalogique, des fontes typographiques, un flow sheet industriel ou l'organigramme d'une société sont des graphes ou, plus exactement, contiennent des graphes.

De manière similaire, bon nombre de concepts non-graphiques auxquels nous sommes confrontés peuvent aussi se mettre sous forme de graphe : une recette de cuisine, un mode d'emploi, une comptabilité, l'organisation d'un événement sont aussi des graphes.

Inversement, les graphes admettent aussi des représentations non-graphiques, plus difficilement compréhensibles pour l'être humain mais bien plus commodes pour le traitement informatique :

- représentation matricielle, - représentation base de données.

Dans ce chapitre, nous verrons comment mettre l'information sous forme de graphes et comment mettre les graphes sous une forme "computer friendly".

3.2. Représentation graphique

Au chapitre précédent, nous avons vu plusieurs définitions de graphes accompagnées d'exemples.

Pour être compréhensible, un graphe doit mettre clairement en évidence les nœuds ou sommets. Il doit surtout leur attribuer un nom.

Les arêtes matérialisent les relations entre les nœuds. Si cette relation est identique pour l'ensemble du graphe – cas de l'organigramme hiérarchique - il suffira de la spécifier dans la description générale. Il ne sera pas nécessaire de nommer chacune des arêtes; celles-ci étant définies par leurs extrémités.

q

t

s

m

r

n

CB

E

A

D

u

p q

t

s

m

r

n

CB

E

A

D

fig. 3.1 Graphes non orienté (g.) et orienté (dr.) élémentaires

Page 10: MATHS APPLIQUEES A L'INFORMATIQUE - …notesdecours.drivehq.com/courspdf/MaiGraphes.pdf · La théorie des graphes est un outil très puissant dans l'analyse des problèmes. De plus,

Introduction à la théorie des graphes 3 - Représentations

H. Schyns 3.2

Par contre, si chaque arête exprime une relation différente - cas d'un schéma de base de données – il faudra nommer chacune d'elles pour que le graphe soit compréhensible (fig. 3.1).

3.3. Représentation matricielle

Un graphe peut être représenté de manière abstraite par une matrice d'adjacence.

Une première idée consiste en un tableau à deux dimensions dans lequel les arêtes sont présentées en en-tête de colonnes et les nœuds en en-tête de ligne.

Arêtes m n q r s t

A 1 1 1 0 0 0 B 1 0 0 0 1 0 C 0 0 1 1 0 1 D 0 1 0 1 0 0 N

œud

s

E 0 0 0 0 1 1 tab. 3.1 Représentation matricielle du graphe de la fig. 3.1 (g.)

Chaque colonne – qui représente une arête - est remplie de zéros, sauf dans les deux cellules qui correspondent à ses extrémités. Ainsi, dans le tab. 3.1 qui est la version matricielle du graphe de la fig. 3.1 (g), la colonne relative à l'arête [ m ] est nulle partout sauf en regard des lignes [ A ] et [ B ] qui représentent ses extrémités.

Une telle représentation convient bien pour un graphe non-orienté qui ne contient pas de boucles.

La représentation peut être adaptée au cas des graphes orientés, à condition de prendre une convention supplémentaire; par exemple, noter –1 pour le nœud d'origine et +1 pour le nœud de destination. Mais ça ne résout pas le problème des boucles.

Une meilleure solution consiste en un tableau à deux dimensions dans lequel les lignes et colonnes représentent uniquement des nœuds. Les nœuds considérés comme origine sont présentés en en-tête de colonnes; ceux considérés comme extrémités, en en-tête de ligne.

Origine A B C D E

A 0 1 1 0 0 B 1 0 0 0 0 C 0 0 0 1 0 D 1 0 0 1 0

Des

tinat

ion

E 0 1 1 0 0 tab. 3.2 Représentation matricielle du graphe de la fig. 3.1 (dr.)

Dans ce tableau, chaque cellule représente une arête potentielle. Elle se trouve à l'intersection d'une colonne qui représente son nœud d'origine et une ligne qui représente son nœud d'extrémité. Cette cellule contient 1 ou 0 selon que l'arête correspondante existe ou non dans le graphe.

Ainsi, dans le tab. 3.2 qui est la version matricielle du graphe orienté de la fig. 3.1 (dr.), nous voyons que le nœud [ A ] est à l'origine de deux arêtes, l'une conduisant à [ B ] et l'autre à [ D ].

Les éléments de la diagonale correspondent aux arêtes pour lesquelles l'origine et la destination sont identiques, ce qui est le cas de la boucle [ D ][ D ].

Page 11: MATHS APPLIQUEES A L'INFORMATIQUE - …notesdecours.drivehq.com/courspdf/MaiGraphes.pdf · La théorie des graphes est un outil très puissant dans l'analyse des problèmes. De plus,

Introduction à la théorie des graphes 3 - Représentations

H. Schyns 3.3

Cette représentation est largement utilisée dans les traitements informatiques. Elle a l'inconvénient de consommer beaucoup d'espace mémoire alors que relativement peu de cellules contiennent des valeurs non nulles. Elle a l'avantage de pouvoir attribuer un poids autre que 0 ou 1 aux arêtes ainsi que nous le verrons plus loin. D'autre part, dans le cas d'un graphe non orienté, la matrice est symétrique (1). On peut donc se contenter de considérer une matrice triangulaire.

3.4. Représentation tabulaire

Puisqu'un graphe est composé de nœuds et d'arêtes, il suffit, pour le décrire, de faire la liste des nœuds et la liste des arêtes. Cette lapalissade est à la base de la représentation tabulaire ou base de données.

origine

destination

NoeudsI

ArêtesII

fig. 3.2 Schéma E-R de gestion des graphes

Chaque ARETE prend son origine en un et un seul NOEUD Chaque NOEUD est pris comme origine pour une ou plusieurs ARETES

Chaque ARETE prend sa destination en un et un seul NOEUD Chaque NOEUD est pris comme destination pour une ou plusieurs ARETES

Dans cette représentation, le graphe orienté de la fig. 3.1 se met sous la forme suivante

NOEUDS ARETES

IdN Libelle IdR IdNO IdND Libelle

A Noeud A m A B Arc AB B Noeud B n A D Arc AD C Noeud C p B A Arc BA D Noeud D q C A Arc CA E Noeud E r D C Arc DC s B E Arc BE

t C E Arc CE

u D D Boucle DD

Toutes les recherches d'information se font à l'aide de requêtes SQL. Par exemple, pour extraire la liste des nœuds qui sont origine d'au moins un arc nous aurons :

SELECT DISTINCT Aretes.IdNO, Noeuds.Libelle FROM Noeuds INNER JOIN Aretes ON Noeuds.IdN = Aretes.IdNO;

De même, pour extraire les nœuds qui ne sont jamais à l'origine d'une arête (2)

SELECT DISTINCT Noeuds.IdN, Noeuds.Libelle FROM Noeuds LEFT JOIN Aretes ON Noeuds.IdN = Aretes.IdNO WHERE (Aretes.IdNO Is Null);

1 Une matrice A est symétrique si la valeur de l'élément situé à l'intersection de la colonne [ P ] et de la ligne

[ Q ] est identique à celle de l'élément situé à l'intersection de la colonne [ Q ] et de la ligne [ P ] 2 Ces sommets sont donc des points de sortie du graphe comme on le verra plus loin.

Page 12: MATHS APPLIQUEES A L'INFORMATIQUE - …notesdecours.drivehq.com/courspdf/MaiGraphes.pdf · La théorie des graphes est un outil très puissant dans l'analyse des problèmes. De plus,

Introduction à la théorie des graphes 3 - Représentations

H. Schyns 3.4

Pour extraire les nœuds qui portent des boucles, nous écrirons :

SELECT Noeuds.Libelle FROM Noeuds INNER JOIN Aretes ON Noeuds.IdN = Aretes.IdNO WHERE Aretes.IdNO = Aretes.IdND;

La représentation tabulaire a l'avantage d'être très compacte puisqu'elle ne contient que les arêtes réellement présentes dans le graphe. Par contre, les traitements sont un peu plus ésotériques.

3.5. Quelques exemples

3.5.1. Carte routière

Une carte (fig. 3.3) contient énormément d'informations : réseau routier, relief, divisions administratives, etc.

fig. 3.3 Carte géographique (ancienne) de la Belgique

En particulier, le réseau autoroutier représenté est un graphe mathématique (fig. 3.4) dans lequel les villes sont les nœuds et les autoroutes, les arêtes.

Page 13: MATHS APPLIQUEES A L'INFORMATIQUE - …notesdecours.drivehq.com/courspdf/MaiGraphes.pdf · La théorie des graphes est un outil très puissant dans l'analyse des problèmes. De plus,

Introduction à la théorie des graphes 3 - Représentations

H. Schyns 3.5

Antwerpen

Hasselt

Liège

Namur

Arlon

CharleroiMons

BruxellesKortrijk

GentBrugge

Oostende

fig. 3.4 Graphe non orienté du réseau autoroutier belge (simplifié)

Ce graphe peut lui-même se mettre sous forme matricielle (tab. 3.3) :

Oos

tend

e

Brug

ge

Gen

t

Kortr

ijk

Antw

erpe

n

Brux

elle

s

Has

selt

Lièg

e

Nam

ur

Cha

rlero

i

Mon

s

Arlo

n

Oostende 1 Brugge 1 1 1 Gent 1 1 1 1

Kortrijk 1 1 Antwerpen 1 1 1 Bruxelles 1 1 1 1 1 1 Hasselt 1 1 1 Liège 1 1 1 1

Namur 1 1 1 1 Charleroi 1 1 1

Mons 1 Arlon 1 1

tab. 3.3 Matrice de connectivité du réseau auto-routier belge

Comme les autoroutes peuvent être parcourues dans les deux sens, il s'agit d'un graphe non orienté. La matrice qui le représente est symétrique : chaque ligne est identique à la colonne correspondante. Eventuellement, les éléments de la matrice pourraient contenir la longueur ou la durée du trajet entre les deux villes concernées à la place des 1 et 0.

3.5.2. Base de données

Tout informaticien sait que la conception d'une base de données passe par l'établissement d'un modèle entités-relations. La fig. 3.5 représente le graphe entités-relations d'un facturier.

Page 14: MATHS APPLIQUEES A L'INFORMATIQUE - …notesdecours.drivehq.com/courspdf/MaiGraphes.pdf · La théorie des graphes est un outil très puissant dans l'analyse des problèmes. De plus,

Introduction à la théorie des graphes 3 - Représentations

H. Schyns 3.6

Pays

CategorieTVA

Conditionspaiement

ModesPaiement

Comptesfinanciers

DéclarationsTVA

liste

facture

localise

reçoit

effectue

acquitte regroupe

liste

paie

reçoit

héberge

Paiements

Clients

Factures LignesFacturation

CodesPostaux

Produits

Remises

reprend

fig. 3.5 Une base de données de facturation classique

Du point de vue mathématique, il s'agit d'un graphe dans lequel les entités (tables) sont les nœuds et les relations sont les arêtes.

Comme il s'agit d'un graphe orienté, nous pouvons en donner une représentation tabulaire. Nous avons vu au point 3.3 qu'il nous faut une table des nœuds et une table des arêtes. Dans le cas présent, ceci se traduit par une table des tables et une table des relations.

Tout SGBD contient une méta-base de données qui gère (au moins) une table des tables et une table des relations (1).

TABLES RELATIONS IdT Libelle IdR IdT1 IdTn Libelle PA Pays 1 PA CP Héberge CP CodesPostaux 2 CP CL Localise CL Clients 3 CL FA Reçoit RE Remises 4 FA RE Liste PR Produits 5 PR LF Facture LF LignesFacturation 6 FA LF Liste FA Factures 7 CO FA Paie CO ConditionsPaiement 8 CT PR Regroupe CT CategorieTVA 9 FA PM Acquitte CF ComptesFinanciers 10 DT FA Reprend PM Paiements 11 CF PM Reçoit DT DeclarationsTVA 12 MP PM Effectue MP ModesPaiement

1 Il y a aussi toujours une table des attributs ou champs. Ce sont eux qui définissent les relations mais ça ne

change rien au raisonnement.

Page 15: MATHS APPLIQUEES A L'INFORMATIQUE - …notesdecours.drivehq.com/courspdf/MaiGraphes.pdf · La théorie des graphes est un outil très puissant dans l'analyse des problèmes. De plus,

Introduction à la théorie des graphes 3 - Représentations

H. Schyns 3.7

Certaines bases de données peuvent présenter des boucles. C'est notamment le cas lorsqu'il y a une relation hiérarchique entre deux objets appartenant à une même entité.

Prenons le cas d'une organisation quelconque qui utilise des employés pour accomplir des tâches. Les employés forment une hiérarchie et les tâches aussi.

La hiérarchie des employés est représentée par la boucle :

Chaque EMPLOYÉ commande un ou plusieurs (sous-) EMPLOYÉS Chaque EMPLOYÉ est commandé par un seul (super-) EMPLOYÉ

La hiérarchie des tâches est représentée par la boucle :

Chaque TÂCHE renferme une ou plusieurs (sous-) TÂCHES Chaque TÂCHE est renfermée dans une seule (super-) TÂCHE

Ce qui se traduit par le schéma suivant :

renfermecommande

déterminereçoitEmployés Attributions Tâches

fig. 3.6 Une base de données d'une organisation

Nous pouvons aussi le mettre sous forme de graphe ainsi que nous le verrons plus loin (4.3.4).

Employés TâchesAttributions

fig. 3.7 Graphe orienté d'une organisation

3.5.3. Automate à Etats Finis

La plupart des processus et des modes opératoires tels que algorithmes, recettes, peuvent être décrits par un automate à états finis (ang.: finite state automaton).

Un tel automate est défini par :

- un nombre fini d'états (1), - un certain nombre de transitions entre ces états, - un certain nombre d'actions qui activent ces transitions, - des équations logiques qui définissent les conditions dans lesquelles les actions

peuvent être déclenchées.

L'automate peut être représenté par un graphe dans lequel les nœuds correspondent aux états et les arêtes, aux transitions. Ce sont les arêtes qui supportent les conditions.

1 D'où le nom.

Page 16: MATHS APPLIQUEES A L'INFORMATIQUE - …notesdecours.drivehq.com/courspdf/MaiGraphes.pdf · La théorie des graphes est un outil très puissant dans l'analyse des problèmes. De plus,

Introduction à la théorie des graphes 3 - Représentations

H. Schyns 3.8

La fig. 3.8 représente le fonctionnement d'un système d'exploitation qui charge, exécute ou parque des processus.

10

9

Prêt

8

65

12

Actif

Bloqué

3

4

PermutéBloqué

PermutéPrêt

7

Nouveau

Terminé

fig. 3.8 Lancement et arrêt d'un processus par un système d'exploitation

Ce graphe orienté se met facilement sous forme matricielle (tab. 3.4) :

Origine

Conditions

Nou

veau

Prêt

Actif

Bloq

Perm

uté

bloq

Perm

uté

prêt

Term

iné

Nouveau Prêt 1 1 1 1 1 Actif 1 1

Bloqué 1 1 Permuté bloqué 1 1

Permuté prêt 1 1 1 Des

tinat

ion

Terminé 1

tab. 3.4 Matrice représentative d'un automate

On remarque que la diagonale n'est pas nulle : certaines transitions sont des boucles qui permettent au processus de rester dans le même état.

En réalité, les 1 ne sont pas statiques. Ils correspondent au résultat de l'équation logique qui conditionne le passage d'un état à l'autre. Ces équations sont réévaluées périodiquement pour tous les processus qui sont dans un état d'origine donné de manière à définir les états qu'ils peuvent atteindre.

Pour le débutant, la grosse difficulté consiste à ne pas confondre les états, les transitions et les conditions… ce n'est pas toujours évident !

3.5.4. Diagramme PERT

Le diagramme PERT (1) est un outil de planification dans lequel on visualise l'inter-dépendance des tâches et leur ordonnancement en étapes :

1 Project Evaluation and Review Technique

Page 17: MATHS APPLIQUEES A L'INFORMATIQUE - …notesdecours.drivehq.com/courspdf/MaiGraphes.pdf · La théorie des graphes est un outil très puissant dans l'analyse des problèmes. De plus,

Introduction à la théorie des graphes 3 - Représentations

H. Schyns 3.9

- chaque étape est représentée par un cercle - chaque tâche est représentée par une flèche qui conduit d'une étape à une

autre une autre étape.

Etape 1

Dmin Dmax5 25

Etape 3

Dmin Dmax20 40

Etape 0

Dmin Dmax0 0

Tâche 15

Etape 2

Dmin Dmax10 1 0

Etape 4

Dmin Dmax25 25

Etape 5

Dmin Dmax40 40

Tâche 315

Tâche 210

Tâche 415

Tâche 615

Transfert0

fig. 3.9 Diagramme PERT typique

Chaque tâche se voit attribuer une durée estimée.

Chaque étape se voit attribuer :

- une date au plus tôt (Dmin) qui résulte de l'addition des durées définies pour l'enchaînement des tâches qui y conduisent.

- une date au plus tard (Dmax) qui tient compte de la durée totale du projet et qui est déterminée en remontant dans le diagramme.

Une étape peut être le point de départ de plusieurs tâches mais les flèches ne doivent jamais se croiser.

Nous retrouvons sensiblement les mêmes concepts que dans l'automate à états finis, les étapes étant l'équivalent des états et les tâches, l'équivalent des transitions.

destin.

origineDétailsEtape

Etapes TâchesDétailsTâche

fig. 3.10 Diagramme E-R d'un PERT

3.5.5. Flow sheet industriel

Un flow sheet industriel (fig. 3.11) est un schéma dans lequel :

- les différents appareils (réservoirs, réacteurs…) et activateurs (pompes, vannes…) d'une installation industrielle (usine, atelier…) sont représentés par des symboles;

- les flux de matière et d'énergie entre ces appareils sont représentés par des lignes.

Un activateur est un dispositif qui autorise le passage d'un flux tandis qu'un appareil est un dispositif capable de stocker, de transformer ou de délivrer de la matière ou de l'énergie.

Page 18: MATHS APPLIQUEES A L'INFORMATIQUE - …notesdecours.drivehq.com/courspdf/MaiGraphes.pdf · La théorie des graphes est un outil très puissant dans l'analyse des problèmes. De plus,

Introduction à la théorie des graphes 3 - Représentations

H. Schyns 3.10

fig. 3.11 Flowsheet d'un procédé chimique typique

Du point de vue de la théorie des graphes :

- les appareils sont les nœuds, - les flux sont les arêtes. Chaque flux est pourvu d'un ou de plusieurs activateurs

(fig. 3.12).

fig. 3.12 Graphe des flux du procédé chimique

La représentation matricielle (tab. 3.5) est assez semblable à celle de l'automate à états finis. L'état ouvert ou fermé du ou des activateurs tient lieu de conditions.

Page 19: MATHS APPLIQUEES A L'INFORMATIQUE - …notesdecours.drivehq.com/courspdf/MaiGraphes.pdf · La théorie des graphes est un outil très puissant dans l'analyse des problèmes. De plus,

Introduction à la théorie des graphes 3 - Représentations

H. Schyns 3.11

ORIGINE TA TB TC EE W1 R TD S1 C W2 D TF TE

R VTA VTB VTC M VW1 R

TD VR

D VTD VS1 VCD

TE VTE

C VW2 1

TF VTF

TA

TB

TC

EE

W1

S1

DES

TIN

ATI

ON

W2

tab. 3.5 Représentation matricielle du même procédé

3.6. Conclusion

De nombreux problèmes peuvent se mettre sous la forme d'un graphe. Or, pour traiter un graphe de manière abstraite, il suffit de disposer :

- soit d'un objet "Matrice" dans un langage quelconque; - soit d'une base de données "Noeuds-Arêtes".

La suite n'est plus qu'une question d'algorithmes génériques… Ces algorithmes font l'objet du chapitre suivant.

Page 20: MATHS APPLIQUEES A L'INFORMATIQUE - …notesdecours.drivehq.com/courspdf/MaiGraphes.pdf · La théorie des graphes est un outil très puissant dans l'analyse des problèmes. De plus,

Introduction à la théorie des graphes 4 - Propriétés des graphes

H. Schyns 4.1

4. Propriétés des graphes

4.1. Connectivité

4.1.1. Position du problème

Un premier problème qui se pose est de savoir si un graphe (non orienté) est d'un seul tenant ou non; en d'autres mots, s'il est connexe ou non.

Le problème se pose notamment :

- en cartographie : est-il possible d'aller de Paris à Dublin par la route ? Y a-t-il un continuum habité entre Bruxelles et Liège (1) ?

- en informatique : est-il possible d'atteindre telle machine à partir de telle autre ? Jusqu'où un virus peut-il se propager dans un système ?

- en épidémiologie : une épidémie locale peut-elle se transformer en pandémie mondiale ? Quelle proportion de la population faut-il vacciner pour faire barrière à la maladie ?

- en animation 3D : les objets sont-ils attachés et se déplacent-ils ensemble ou non ?

Nous savons qu'un graphe non orienté est connexe s'il existe une chaîne reliant tout couple quelconque de sommets. Inversement, il suffit de trouver une seule paire de nœuds impossibles à relier pour que le graphe soit non connexe.

A B C D

HGFE

I J K L

fig. 4.1 Un graphe trivialement non-connexe

Si la (non-)connectivité d'un graphe simple tel que celui de la fig. 4.1 apparaît immédiatement à l'observateur humain, il en va tout autrement quand le graphe compte un grand nombre de nœuds et d'arêtes.

fig. 4.2 Les murs du labyrinthe sont-ils d'un seul tenant ?

1 On considère qu'il y a habitat continu tant que les maisons sont à une distance inférieure à maximum

donnée les unes des autres (p.ex 100m).

Page 21: MATHS APPLIQUEES A L'INFORMATIQUE - …notesdecours.drivehq.com/courspdf/MaiGraphes.pdf · La théorie des graphes est un outil très puissant dans l'analyse des problèmes. De plus,

Introduction à la théorie des graphes 4 - Propriétés des graphes

H. Schyns 4.2

Qui peut dire rapidement si les murs du labyrinthe de la fig. 4.2 sont d'un seul tenant ou non ? S'il contient des zones dont il est impossible de s'échapper ?

Dans de tels systèmes, le recours à l'informatique est indispensable. Encore faut-il disposer d'un algorithme performant.

4.1.2. Algorithme

Plusieurs algorithmes ont été proposés pour détecter la connexité d'un graphe. Les plus connus sont ceux du parcours en largeur et du parcours en profondeur.

L'algorithme présenté ci-dessous est très simple et basé sur un classement de nombres binaires (1).

Partons de la représentation matricielle du graphe simple de la fig. 4.1. Cette matrice est symétrique. Nous avons omis les zéros pour plus de clarté et, pour les besoins de l'algorithme, nous avons ajouté des 1 (qui représentent des boucles) sur la diagonale :

A B C D E F G H I J K L Degré ValBin A 1 1 1 3 3200 B 1 1 2 3072 C 1 1 1 3 784 D 1 1 1 3 784 E 1 1 1 1 1 5 2252 F 1 1 1 1 4 204 G 1 1 1 3 49 H 1 1 1 1 1 1 6 819 I 1 1 1 1 4 204 J 1 1 1 1 4 204 K 1 1 2 18 L 1 1 1 3 49

tab. 4.1 Matrice de connectivité

La suite 1 et de 0 de chaque ligne du tableau peut être interprétée comme un nombre binaire dont la valeur décimale est reprise dans la colonne de droite (ValBin).

Dans un premier temps, nous décidons de donner le plus gros poids binaire aux nœuds qui ont le degré le plus élevé. Nous trions donc les lignes et colonnes du tableau en ordre décroissant de degré. Ce n'est pas strictement nécessaire pour la suite, mais ça permet déjà d'y voir plus clair.

H E F I J A C D G L B K Degré ValBin H 1 1 1 1 1 1 6 2109 E 1 1 1 1 1 5 1984 F 1 1 1 1 4 1920 I 1 1 1 1 4 1920 J 1 1 1 1 4 1920 A 1 1 1 3 1090 C 1 1 1 3 2096 D 1 1 1 3 2096 G 1 1 1 3 2060 L 1 1 1 3 2060 B 1 1 2 66 K 1 1 2 2049

tab. 4.2 Matrice de connectivité

1 N'ayant pas trouvé cet algorithme, ou du moins, cette implémentation dans la littérature, je peux peut-être

en revendiquer la paternité. Son originalité consiste à remplir la diagonale avec des 1 et à interpréter les lignes comme des nombres binaires (on pourrait également les considérer comme des nombres décimaux ou des chaînes de caractères).

Page 22: MATHS APPLIQUEES A L'INFORMATIQUE - …notesdecours.drivehq.com/courspdf/MaiGraphes.pdf · La théorie des graphes est un outil très puissant dans l'analyse des problèmes. De plus,

Introduction à la théorie des graphes 4 - Propriétés des graphes

H. Schyns 4.3

L'algorithme consiste à classer ces nombres dans l'ordre décroissant (ou croissant) en permutant les lignes et les colonnes correspondantes (1).

N'importe quel algorithme de tri peut faire l'affaire mais pour des raisons didactiques nous illustrerons le cas d'un tri simple.

La ligne H étant déjà en bonne position, nous poursuivons le tri en permutant les lignes E et C ainsi que les colonnes E et C. Bien sûr, ce tri détruit l'ordre des degrés mais c'est sans importance :

H C F I J A E D G L B K Val H 1 1 1 1 1 1 3101 C 1 1 1 3088 F 1 1 1 1 928 I 1 1 1 1 928 J 1 1 1 1 928 A 1 1 1 98 E 1 1 1 1 1 992 D 1 1 1 3088 G 1 1 1 2060 L 1 1 1 2060 B 1 1 66 K 1 1 2049

tab. 4.3 Après la première permutation (E-C)

Nous remarquons que les valeurs binaires ont été modifiées dans l'opération mais sans que cela ait un impact sur l'ordre déjà établi (H et C).

Nous poursuivons le tri en permutant les lignes F et D ainsi que les colonnes F et D :

H C D I J A E F G L B K Val H 1 1 1 1 1 1 3597 C 1 1 1 3584 D 1 1 1 3584 I 1 1 1 1 432 J 1 1 1 1 432 A 1 1 1 98 E 1 1 1 1 1 496 F 1 1 1 1 432 G 1 1 1 2060 L 1 1 1 2060 B 1 1 66 K 1 1 2049

tab. 4.4 Après la deuxième permutation (F-D)

Même observation que ci-dessus : les valeurs binaires des lignes ont été modifiées mais cela n'a eu aucun impact sur les lignes déjà triées.

A présent, permutons I et G :

1 En réalité, il s'agit d'un simple tri lexicographique, semblable à un classement alphabétique inverse dans

lequel 1 vient avant 0.

Page 23: MATHS APPLIQUEES A L'INFORMATIQUE - …notesdecours.drivehq.com/courspdf/MaiGraphes.pdf · La théorie des graphes est un outil très puissant dans l'analyse des problèmes. De plus,

Introduction à la théorie des graphes 4 - Propriétés des graphes

H. Schyns 4.4

H C D G J A E F I L B K Val H 1 1 1 1 1 1 3845 C 1 1 1 3584 D 1 1 1 3584 G 1 1 1 2308 J 1 1 1 1 184 A 1 1 1 98 E 1 1 1 1 1 248 F 1 1 1 1 184 I 1 1 1 1 184 L 1 1 1 2308 B 1 1 66 K 1 1 2049

tab. 4.5 Après la troisième permutation (I-G)

Ensuite J et L :

H C D G L A E F I J B K Val H 1 1 1 1 1 1 3969 C 1 1 1 3584 D 1 1 1 3584 G 1 1 1 2432 L 1 1 1 2432 A 1 1 1 98 E 1 1 1 1 1 124 F 1 1 1 1 60 I 1 1 1 1 60 J 1 1 1 1 60 B 1 1 66 K 1 1 2049

tab. 4.6 Après la quatrième permutation (J-L)

Nous poursuivons avec A et K :

H C D G L K E F I J B A Val H 1 1 1 1 1 1 4032 C 1 1 1 3584 D 1 1 1 3584 G 1 1 1 2432 L 1 1 1 2432 K 1 1 2112 E 1 1 1 1 1 61 F 1 1 1 1 60 I 1 1 1 1 60 J 1 1 1 1 60 B 1 1 3 A 1 1 1 35

tab. 4.7 Après la cinquième permutation (A-K)

Et finalement avec B et A :

H C D G L K E F I J A B Val H 1 1 1 1 1 1 4032 C 1 1 1 3584 D 1 1 1 3584 G 1 1 1 2432 L 1 1 1 2432 K 1 1 2112 E 1 1 1 1 1 62 F 1 1 1 1 60 I 1 1 1 1 60 J 1 1 1 1 60 A 1 1 1 35 B 1 1 3

tab. 4.8 Matrice de connectivité triée

Page 24: MATHS APPLIQUEES A L'INFORMATIQUE - …notesdecours.drivehq.com/courspdf/MaiGraphes.pdf · La théorie des graphes est un outil très puissant dans l'analyse des problèmes. De plus,

Introduction à la théorie des graphes 4 - Propriétés des graphes

H. Schyns 4.5

Nous obtenons finalement un tableau bien trié dans lequel plusieurs îlots apparaissent le long de la diagonale. Il ne nous reste plus qu'à voir s'il est possible d'isoler des sous-tableaux indépendants.

Pour cela, partons du nœud [ H ] qui se trouve dans le coin supérieur gauche du tableau (tab. 4.9). Parcourons cette ligne en partant de son extrémité [ B ] et en revenant vers l'origine et arrêtons-nous juste avant la première arête rencontrée, c'est-à-dire dans la colonne [ E ]. Ceci signifie que [ E ] n'est pas connecté à [ H ] qui est pourtant le sommet de degré maximum.

Voyons si [ E ] est connecté à l'un des nœuds déjà traités. Déplaçons-nous verticalement dans la colonne [ E ] pour revenir à la diagonale, et arrêtons-nous au premier nœud rencontré avant d'atteindre la diagonale.

H C D G L K E F I J A B H 1 1 1 1 1 1 C 1 1 1 D 1 1 1 I 1 1 1 L 1 1 1 K 1 1 E 1 1 1 1 1 F 1 1 1 1 G 1 1 1 1 J 1 1 1 1 A 1 1 1 B 1 1

tab. 4.9 Recherche des sous-graphes indépendants

En fait, nous ne trouvons aucune arête avant d'atteindre la diagonale. [ E ] est donc un nœud qui ne se connecte à aucun des nœuds déjà examinés du graphe.

Il n'existe aucune arête liant les nœuds de l'ensemble {H, C, D, G, L, K} à ceux de l'ensemble {E, F, G, J, A, B} ainsi qu'en témoignent les deux rectangles vides du tableau. En effet, si c'était le cas (par exemple une arête [ A-G ] ), il y aurait un bit de poids fort en plus dans l'une des lignes inférieures du tableau et celle-ci serait remontée dans le classement pour se mêler aux lignes du premier bloc.

Par conséquent, ces deux ensembles sont disjoints et le graphe initial n'est pas connexe.

L'ensemble {H, C, D, G, L, K} que nous avons isolé constitue un sous-tableau indépendant et donc un graphe connexe distinct.

H C D G L K E F I J A B H 1 1 1 1 1 1 C 1 1 1 D 1 1 1 I 1 1 1 L 1 1 1 K 1 1 E 1 1 1 1 1 F 1 1 1 1 G 1 1 1 1 J 1 1 1 1 A 1 1 1 B 1 1

tab. 4.10 Recherche d'un autre îlot indépendant

Comme il pourrait y avoir plus de deux sous-graphes, nous reprenons la recherche avec l'élément suivant de la diagonale. L'examen de la ligne [ E ] nous conduit directement au nœud [ B ] qui est le dernier de la liste. En descendant dans la colonne [ B ], nous trouvons l'arête [ A-B ] avant de rencontrer la diagonale. [ B ] est donc lié aux nœuds déjà traités.

Page 25: MATHS APPLIQUEES A L'INFORMATIQUE - …notesdecours.drivehq.com/courspdf/MaiGraphes.pdf · La théorie des graphes est un outil très puissant dans l'analyse des problèmes. De plus,

Introduction à la théorie des graphes 4 - Propriétés des graphes

H. Schyns 4.6

Par conséquent, les nœuds de l'ensemble {E, F, I, J, A, B} forment un seul sous-graphe connexe indépendant du premier.

Nous pouvons à présent remettre la diagonale à zéro :

H C D G L K E F I J A B H 1 1 1 1 1 C 1 1 D 1 1 I 1 1 L 1 1 K 1 E 1 1 1 1 F 1 1 1 G 1 1 1 J 1 1 1 A 1 1 B 1

tab. 4.11 Deux sous-graphes connexes isolés

Nous vérifions sur le graphe initial que nous avons bien isolé les deux figures :

A B C D

HGFE

I J K L

fig. 4.3 Le graphe initial, décomposé en deux sous-graphes connexes

4.2. Nombre d'arêtes entre deux points

4.2.1. Position du problème

Dans un graphe connexe (non orienté), nous savons qu'il est toujours possible de trouver un chemin pour aller d'un sommet [ A ] à un autre sommet [ B ]. Par contre, nous ne savons pas quel est le nombre minimal d'arêtes qu'il faut parcourir ni le nombre minimal de sommets qu'il faut traverser pour nous rendre de [ A ] à [ B ].

Ce problème se pose notamment :

- en transports : quel trajet présente le nombre minimal de frontières à traverser pour se rendre de Belgique en Turquie ? Combien de véhicules faut-il prendre au minimum pour de rendre de Liège-centre à une plage aux Seychelles.

- en informatique : quel est le nombre minimal de routeurs qu'un paquet doit traverser pour passer d'une machine à une autre ?

- en automation : comment faire un minimum de mouvement à un bras robotisé pour prendre une pièce sur une bande transporteuse et la déposer correctement sur un banc de travail ?

- en généalogie : quel est le degré de parenté entre deux individus donnés ?

A nouveau, le problème peut sembler trivial dans des cas simples, il l'est nettement moins quand le graphe est dense et étendu comme celui de la fig. 4.4; quand il faut raisonner dans l'espace, comme dans le cas du polyèdre de la fig. 4.5 ou quand il faut expliquer ces choses à un ordinateur.

Page 26: MATHS APPLIQUEES A L'INFORMATIQUE - …notesdecours.drivehq.com/courspdf/MaiGraphes.pdf · La théorie des graphes est un outil très puissant dans l'analyse des problèmes. De plus,

Introduction à la théorie des graphes 4 - Propriétés des graphes

H. Schyns 4.7

fig. 4.4 Graphe de la relation "a une frontière terrestre avec" appliqué à l'Europe (1)

fig. 4.5 Icosidodécaèdre ditrigonal (2)

Une variante du problème consiste déterminer quels sont les sommets les plus éloignés l'un de l'autre dans un graphe; éloigné s'entend en termes de nombre d'arcs et de sommets.

4.2.2. Algorithme

Pour illustrer la démarche nous posons la question suivante : quel est le nombre minimum de pays qu'un transporteur routier danois doit traverser pour se rendre au Portugal ?

1 L'Espagne et l'Irlande ont une frontière terrestre avec le Royaume-Uni respectivement via Gibraltar et

l'Uster. La Pologne et la Lituanie en ont une avec la Russie via l'enclave de Kaliningrad. 2 Provenant du site http://www.mathcurve.com/polyedres/polyedres.shtml

Page 27: MATHS APPLIQUEES A L'INFORMATIQUE - …notesdecours.drivehq.com/courspdf/MaiGraphes.pdf · La théorie des graphes est un outil très puissant dans l'analyse des problèmes. De plus,

Introduction à la théorie des graphes 4 - Propriétés des graphes

H. Schyns 4.8

Partons du graphe "européen" de la fig. 4.4. quelque peu élagué pour ne pas encombrer la résolution et établissons la matrice de connectivité :

F D B L CH I E NL A DK P ValBin France 1 1 1 1 1 1 1 2032

Allemagne 1 1 1 1 1 1 1 1 1998 Belgique 1 1 1 1 1 1928

Luxembourg 1 1 1 1 1920 Suisse 1 1 1 1 1 1636 Italie 1 1 1 1 1124

Espagne 1 1 1 1041 Pays-Bas 1 1 1 776 Autriche 1 1 1 1 612

Danemark 1 1 514 Portugal 1 1 17

tab. 4.12 Connectivité des pays européens de l'Ouest

Les lignes et colonnes ont été classées selon la méthode décrite au point précédent de manière à vérifier si le graphe est connexe, ce qui est le cas.

L'absence de 1 à l'intersection de la ligne du Danemark et de la colonne du Portugal confirme que ces deux pays ne sont pas voisins (en rouge). Le transporteur devra forcément transiter par un pays tiers. Idem pour un transporteur venant des Pays-Bas qui désire se rendre en Autriche (en bleu).

L'algorithme consiste à calculer les puissances successives de la matrice de connectivité jusqu'à ce qu'une valeur non nulle apparaisse dans les cellules concernées.

En d'autres mots, pour en effectuant une première fois le produit matriciel de la matrice de connectivité par elle-même, nous déterminons les sommets qui sont séparés par un et un seul pays de transit.

F D B L CH I E NL A DK P France 7 5 4 4 4 3 2 2 3 1 1

Allemagne 5 8 5 4 4 3 1 3 3 2 Belgique 4 5 5 4 2 1 1 3 1 1

Luxembourg 4 4 4 4 2 1 1 2 1 1 Suisse 4 4 2 2 5 4 1 1 4 1 Italie 3 3 1 1 4 4 1 3

Espagne 2 1 1 1 1 1 3 2 Pays-Bas 2 3 3 2 1 3 1 1 Autriche 3 3 1 1 4 3 1 4 1

Danemark 1 2 1 1 1 1 1 2 Portugal 1 2 2

tab. 4.13 Pays situés à un pays de transit (au plus) d'un autre

La matrice résultante contient des valeurs qui ne sont plus seulement des 1 et des 0. Ces valeurs indiquent le nombre de chemins possibles pour se rendre à la destination choisie. Ainsi, un routier allemand qui veut se rendre en Italie dispose de trois possibilités : il peut choisir de traverser soit l'Autriche, soit la Suisse, soit la France (1).

Cette matrice nous montre que le routier néerlandais ne doit traverser qu'un seul pays de transit pour se rendre en Autriche mais qu'il n'a qu'une seule possibilité : via l'Allemagne. Le routier belge peut se rendre dans tous les autres pays (sauf au Portugal) au prix d'un seul transit mais il n'a pas trop le choix du parcours (sauf pour la Suisse). Le chauffeur français a plus de chance et plus de choix : il peut atteindre

1 Ca, c'est la carte qui le dit, pas la matrice de connectivité.

Page 28: MATHS APPLIQUEES A L'INFORMATIQUE - …notesdecours.drivehq.com/courspdf/MaiGraphes.pdf · La théorie des graphes est un outil très puissant dans l'analyse des problèmes. De plus,

Introduction à la théorie des graphes 4 - Propriétés des graphes

H. Schyns 4.9

tous les autres pays et dispose de plusieurs itinéraires. Par contre, le chauffeur danois n'est pas encore arrivé à Lisbonne.

En multipliant cette matrice par la matrice initiale nous définissons les trajets qui nécessitent la traversée de deux pays de transit :

F D B L CH I E NL A DK P France 29 3 22 2 22 17 1 11 15 6 3

Allemagne 3 34 25 22 23 15 6 16 18 1 1 Belgique 22 25 21 18 13 8 5 13 9 6 1

Luxembourg 2 22 18 16 12 8 5 1 8 5 1 Suisse 22 23 13 12 21 17 5 7 17 5 1 Italie 17 15 8 8 17 14 4 4 14 3 1

Espagne 1 6 5 5 5 4 7 2 3 1 5 Pays-Bas 11 16 13 1 7 4 2 9 5 4 Autriche 15 18 9 8 17 14 3 5 14 4

Danemark 6 1 6 5 5 3 1 4 4 4 Portugal 3 1 1 1 1 1 5 4

tab. 4.14 Pays situés à deux pays de transit (au plus) d'un autre

Nous voyons que tous les pays de la liste sont à une distance maximale de deux sommets (deux pays de transit) les uns des autres, à l'exception notable du Portugal.

Ainsi, le chauffeur italien qui doit se rendre aux Pays-Bas doit traverser deux pays (Autriche-Allemagne / Suisse-Allemagne / France-Allemagne / France-Belgique). Quant à notre pauvre chauffeur danois, il lui faudra encore traverser un pays avant d'atteindre le Portugal.

Nous poursuivons le raisonnement en multipliant cette matrice par la matrice initiale. Nous définissons ainsi les trajets qui nécessitent la traversée de trois pays de transit :

F D B L CH I E NL A DK P France 150 155 112 101 113 83 42 63 84 36 13

Allemagne 155 178 127 111 120 86 37 75 90 44 7 Belgique 112 127 99 86 77 52 28 59 55 31 6

Luxembourg 101 111 86 76 70 48 26 50 50 27 6 Suisse 113 120 77 70 100 77 28 43 78 28 6 Italie 83 86 52 48 77 62 22 27 60 18 5

Espagne 42 37 28 26 28 22 22 13 18 7 12 Pays-Bas 63 75 59 50 43 27 13 38 32 20 2 Autriche 84 90 55 50 78 60 18 32 63 22 3

Danemark 36 44 31 27 28 18 7 20 22 14 1 Portugal 13 7 6 6 6 5 12 2 3 1 9

tab. 4.15 Pays situés à trois pays de transit (au plus) d'un autre

Cette fois, tout le monde est interconnecté !

Une valeur non nulle est apparue à l'intersection de la ligne du Danemark et de la colonne du Portugal. Le chauffeur danois doit traverser trois pays (sommets) et donc parcourir quatre arêtes pour aller à Lisbonne. Il ne dispose que d'un seul itinéraire : via l'Allemagne, la France et l'Espagne.

La comparaison des deux dernières matrices nous montre que les plus grandes distances se situent entre :

- le Portugal et les Pays-Bas, - le Portugal et l'Autriche, - le Portugal et le Danemark.

Page 29: MATHS APPLIQUEES A L'INFORMATIQUE - …notesdecours.drivehq.com/courspdf/MaiGraphes.pdf · La théorie des graphes est un outil très puissant dans l'analyse des problèmes. De plus,

Introduction à la théorie des graphes 4 - Propriétés des graphes

H. Schyns 4.10

Le Portugal apparaît ainsi comme le pays le plus éloigné des autres (1).

Nous apprenons aussi qu'il suffit de parcourir un maximum de quatre arêtes pour se rendre d'un point du graphe à un autre.

Cette distance maximale (en fait mini-max) constitue le diamètre du graphe.

4.3. Origines et extrémités

4.3.1. Position du problème

Nous savons à présent définir si un graphe non orienté est connexe et quel est le nombre minimal d'arêtes qu'il faut parcourir pour aller de [ A ] à [ B ].

Dans le cas de graphes orientés, un problème supplémentaire se pose : où sont les sources ou origines (en d'autres mots, par où entre-t-on dans le graphe) ? Où sont les puits ou extrémités (en d'autres mots, par où en sort-on) ? Par quels sommets passe-t-on entre l'origine et l'extrémité ?

Ce problème se pose notamment :

- en gestion de projets : quels sont les pré-requis et les étapes pour réaliser un projet donné (méthode PERT) ?

- en organisation d'entreprise : quel est le chemin suivi par un document, une tâche dans une organisation ?

- en organisation de bases de données : dans quel ordre faut-il remplir les tables pour assurer l'intégrité référentielle de l'ensemble ?

- en électronique : par où entre-t-on dans le circuit ? Quels sont ses outputs ? - en jeux vidéo : comment le joueur entre-t-il dans le jeu ? Quel est l'objectif ?

Par quelles épreuves le joueur doit-il passer ?

Un cas particulièrement intéressant est celui de la réalisation de bases de données.

L'analyse entités-relations fournit un premier schéma d'organisation semblable à celui de la fig. 4.7 mais ne fournit guère d'indications sur l'ordre d'implémentation.

Nous allons voir comment la théorie des graphes permet de résoudre ce problème.

4.3.2. Approche intuitive

Quand un problème est complexe, il faut commencer par le simplifier (2). Commençons par le graphe élémentaire de la fig. 4.6.

A B C D

fig. 4.6 Origine (A) et destination (D) dans un graphe orienté

Il nous paraît évident que [ A ] est un point d'entrée dans le graphe tandis que [ D ] est un point de sortie. Mais comment ferons-nous avec un graphe beaucoup plus compliqué comptant des milliers de sommets ?

1 Dans le cadre des hypothèses formulées dans cet exemple. 2 En paraphrasant René Descartes, philosophe français du XVIIe s. (1596-1650); père de la démarche

analytique.

Page 30: MATHS APPLIQUEES A L'INFORMATIQUE - …notesdecours.drivehq.com/courspdf/MaiGraphes.pdf · La théorie des graphes est un outil très puissant dans l'analyse des problèmes. De plus,

Introduction à la théorie des graphes 4 - Propriétés des graphes

H. Schyns 4.11

En y regardant de plus près, nous notons que :

- une arête à [ A ] pour origine, mais aucune n'a [ A ] comme destination, - des arêtes ont [ B ] ou [ C ] pour origine et d'autres ont [ B ] ou [ C ] comme

destination, - une arête à [ D ] pour destination, mais aucune n'a [ D ] comme origine.

Nous pouvons en conclure que

- un nœud est un point d'entrée dans un graphe orienté si et seulement s'il n'apparaît jamais comme destination des arêtes du graphe

- un nœud est un point de sortie d'un graphe orienté si et seulement s'il n'apparaît jamais comme origine des arêtes du graphe

4.3.3. Algorithme

Représentons le graphe de la fig. 4.6 sous la forme matricielle habituelle. Cette fois, le graphe est orienté et nous devons préciser que les origines des arêtes sont les en-têtes de colonne et que les destinations sont les en-têtes de ligne :

Origine A B C D Σ

A 0

B 1 1 C 1 1

Des

tinat

ion

D 1 1

Σ 1 1 1 0

tab. 4.16 Représentation matricielle

Nous ajoutons une colonne et une ligne supplémentaires pour les totaux.

Le total de la ligne [ A ] nous indique immédiatement que [ A ] n'est jamais destination d'une arête. Par contre, le total de la colonne [ A ] nous indique que [ A ] est utilisé une fois comme origine. Il est donc possible de partir de [ A ] mais pas d'y arriver. Nous en déduisons que [ A ] est un point d'entrée dans le graphe.

De manière similaire, le total de la colonne [ D ] nous indique immédiatement que [ D ] n'est jamais comme origine d'une arête. Par contre, la ligne [ D ] nous indique que [ D ] est utilisé comme destination. Il est donc possible d'arriver à [ D ] mais pas d'en repartir. Nous en déduisons que [ D ] est un point de sortie du graphe.

Un sommet qui serait à la fois un point d'entrée et un point de sortie serait un point isolé.

Chacun sait que quand on coupe le bout d'une ficelle, on se retrouve avec un nouveau bout. De manière similaire, dans la matrice, nous pouvons supprimer le "bout" [ A ] : supprimons la colonne [ A ], ainsi nous supprimons les arêtes qui en partent; supprimons aussi la ligne [ A ] puisque ce sommet est retiré du graphe :

Origine B C D Σ

B 0

C 1 1

Des

t.

D 1 1

Σ 1 1 0

tab. 4.17 Représentation matricielle

Page 31: MATHS APPLIQUEES A L'INFORMATIQUE - …notesdecours.drivehq.com/courspdf/MaiGraphes.pdf · La théorie des graphes est un outil très puissant dans l'analyse des problèmes. De plus,

Introduction à la théorie des graphes 4 - Propriétés des graphes

H. Schyns 4.12

Cette fois, nous voyons que [ B ] n'est jamais destination d'une arête. Par contre, [ B ] est utilisé une fois comme origine. Nous en déduisons que [ B ] est un point de niveau 2 dans le graphe.

En continuant de la sorte, nous progressons dans un graphe, depuis les points d'entrée, vers les points de sortie. De manière similaire, nous pourrions remonter depuis les points de sortie vers les points d'entrée.

4.3.4. Application

Pour illustrer la démarche nous posons la question suivante : dans quel ordre faut-il implémenter les tables de la base de données dont le diagramme Entités-Relations est repris à la fig. 4.7 ?

Pays

CategorieTVA

Conditionspaiement

ModesPaiement

Comptesfinanciers

DéclarationsTVA

liste

facture

localise

reçoit

effectue

acquitte regroupe

liste

paie

reçoit

héberge

Paiements

Clients

Factures LignesFacturation

CodesPostaux

Produits

Remises

reprend

fig. 4.7 Diagramme Entités-Relations d'une chaîne de facturation

Avant d'attaquer le problème, il n'est pas inutile de rappeler le symbolisme :

fig. 4.8 Différents symboles qui représentent une relation un à plusieurs optionnelle

Rappelons aussi que, pour assurer l'intégrité référentielle, les enregistrements qui appartiennent à l'entité située du coté "un" doivent être encodés avant ceux de l'entité située du côté "plusieurs".

Le diagramme Entités-Relations est donc aussi un diagramme de précédence; l'entité "un" étant l'origine et l'entité "plusieurs" la destination de l'arête qui représente la relation.

C'est donc un graphe orienté que nous pouvons représenter comme à la fig. 4.9.

Page 32: MATHS APPLIQUEES A L'INFORMATIQUE - …notesdecours.drivehq.com/courspdf/MaiGraphes.pdf · La théorie des graphes est un outil très puissant dans l'analyse des problèmes. De plus,

Introduction à la théorie des graphes 4 - Propriétés des graphes

H. Schyns 4.13

PaysCodes

postauxClientsRemises

ProduitsLignes

facturationFacturesConditions

DéclarationsComptesfinanciers

Modespaiement

Paiements

fig. 4.9 Graphe orienté tiré du diagramme Entités-Relations

Le tab. 4.18 montre sa matrice de connectivité. Elle compte une large majorité de zéros :

Origine

Destination

Pays

Cod

es P

osta

ux

Clie

nts

Rem

ises

Prod

uits

Lign

es F

act.

Fact

ures

Con

d. P

aiem

ent

Cat

égor

ie T

VA

Com

ptes

Fin

.

Paie

men

ts

Déc

lara

tions

Mod

es P

aiem

t

Σ

Pays 0

Codes Postaux 1 1 Clients 1 1

Remises 1 1 Produits 1 1

Lignes Fact. 1 1 2 Factures 1 1 1 3

Cond. Paiement 0 Catégorie TVA 0 Comptes Fin. 0

Paiements 1 1 1 3 Déclarations 0

Modes Paiemt 0

Σ 1 1 1 0 1 0 3 1 1 1 0 1 1

tab. 4.18 Matrice de connectivité de la base de données

La matrice montre immédiatement qu'il y a six nœuds d'entrée dans la base de données. C'est par ces entités qu'il faut commencer l'implémentation. Nous les appellerons Entités de niveau I (1).

De même, nous repérons trois nœuds de sortie. Ces trois entités seront les dernières à être traitées mais il ne nous est pas encore possible de déterminer leur niveau.

Elaguons le graphe en supprimant les nœuds d'entrée, lignes et colonnes (sans toucher aux nœuds de sortie). Nous obtenons la sous-matrice du tab. 4.19.

1 En toute rigueur, il faudrait parler de sommet ou nœud de niveau I.

Page 33: MATHS APPLIQUEES A L'INFORMATIQUE - …notesdecours.drivehq.com/courspdf/MaiGraphes.pdf · La théorie des graphes est un outil très puissant dans l'analyse des problèmes. De plus,

Introduction à la théorie des graphes 4 - Propriétés des graphes

H. Schyns 4.14

Origine

Destination Cod

es P

osta

ux

Clie

nts

Rem

ises

Prod

uits

Lign

es F

act.

Fact

ures

Paie

men

ts

Σ

Codes Postaux 0

Clients 1 1 Remises 1 1 Produits 0

Lignes Fact. 1 1 2 Factures 1 1

Paiements 1 1

Σ 1 1 0 1 0 3 0

tab. 4.19 Entités de niveau II

Nous mettons en évidence deux nouveaux points d'entrée. Ces entités seront traitées en deuxième ligne. Nous les appellerons Entités de niveau II.

Nous poursuivons notre travail d'élagage et nous obtenons le tab. 4.20.

Origine

Destination

Clie

nts

Rem

ises

Lign

es F

act.

Fact

ures

Paie

men

ts

Σ

Clients 0

Remises 1 1 Lignes Fact. 1 1

Factures 1 1 Paiements 1 1

Σ 1 0 0 3 0

tab. 4.20 Entités de niveau III

Il nous montre que l'entité Client est une entité de niveau III.

Après avoir supprimé l'entité Client nous obtenons les entités de niveau IV de la tab. 4.21 :

Origine

Destination

Rem

ises

Lign

es F

act.

Fact

ures

Paie

men

ts

Σ

Remises 1 1 Lignes Fact. 1 1

Factures 0

Paiements 1 1

Σ 0 0 3 0

tab. 4.21 Entités de niveau IV

Enfin, nous arrivons aux points de sortie. Ces trois points de sortie sont des entités de niveau V. Elles seront traitées en dernier lieu.

Page 34: MATHS APPLIQUEES A L'INFORMATIQUE - …notesdecours.drivehq.com/courspdf/MaiGraphes.pdf · La théorie des graphes est un outil très puissant dans l'analyse des problèmes. De plus,

Introduction à la théorie des graphes 4 - Propriétés des graphes

H. Schyns 4.15

Origine

Destination

Rem

ises

Lign

es F

act.

Paie

men

ts

Σ

Remises 0 Lignes Fact. 0 Paiements 0

Σ 0 0 0

tab. 4.22 Entités de niveau V

A partir de cette hiérarchie, il est aisé de regrouper les entités en sous-groupes indépendants (fig. 4.10) mais ceci sort du cadre de ce cours (1).

Pays

I

CategorieTVA

I

Conditionspaiement

I

ModesPaiement

I

Comptesfinanciers

I

DéclarationsTVA

I

Paiements

V

Clients

III

Factures

IV

LignesFacturation

V

CodesPostaux

II

Produits

II

Remises

V

fig. 4.10 Hiérarchie des nœuds (entités) et regroupement en sous-graphes

Une version simplifiée du graphe orienté est présentée à la fig. 4.11.

Comme il est dit dans l'introduction, l'algorithme décrit dans ce chapitre peut s'appliquer à tous les problèmes organisationnels et dépasse le cadre de la réalisation de bases de données.

1 Le lecteur intéressé peut lire le document intitulé "Développer une application – Première partie : analyse et

principes" disponible dans la section "Access" du site www.notesdecours.info

Page 35: MATHS APPLIQUEES A L'INFORMATIQUE - …notesdecours.drivehq.com/courspdf/MaiGraphes.pdf · La théorie des graphes est un outil très puissant dans l'analyse des problèmes. De plus,

Introduction à la théorie des graphes 4 - Propriétés des graphes

H. Schyns 4.16

Clients

Produits

Factures Paiements

fig. 4.11 Graphe orienté des étapes de réalisation du facturier

4.4. Cycles simples et multiples

4.4.1. Position du problème

Grâce à la méthode décrite au paragraphe précédent nous sommes capables d'identifier les points d'entrée et de sortie d'un graphe orienté et de le traverser de part en part. Toutefois, les graphes se laissent rarement traverser sans problèmes : le plus souvent ils présentent des cycles.

Un cycle apparaît dans un graphe orienté lorsqu'une arête part d'un sommet donné pour aboutir à un sommet rencontré précédemment dans la hiérarchie (fig. 4.12).

A B C

D

E

fig. 4.12 Graphe orienté présentant un cycle simple

Ces cycles sont parfois souhaités, parfois indésirables. Dans tous les cas, il est important de pouvoir les identifier :

- en réseau : la configuration des routeurs peut engendrer des boucles de routage dans lesquelles les paquets vont se perdre sans espoir de sortie;

- en engineering : les schémas industriels présentent très fréquemment des boucles de recyclage, souvent imbriquées. Toute boucle doit être pourvue d'une purge afin d'éviter l'accumulation de composés indésirables.

Mélangeur SéparateurAlimentation

AProduction

BRéacteur

A → B

fig. 4.13 Boucle de recyclage dans un schéma industriel

- en économie : la structure financière des gros conglomérats industriels indique souvent des participations croisées qui compliquent leur évaluation.

- en gestion de projets : les besoins simultanés d'informations ou de ressources se traduisent par des boucles qui provoquent des blocages (méthode PERT).

- en organisation de bases de données : le schéma Entités-Relations d'une base de données bien conçue ne peut pas faire apparaître de boucles.

Page 36: MATHS APPLIQUEES A L'INFORMATIQUE - …notesdecours.drivehq.com/courspdf/MaiGraphes.pdf · La théorie des graphes est un outil très puissant dans l'analyse des problèmes. De plus,

Introduction à la théorie des graphes 4 - Propriétés des graphes

H. Schyns 4.17

4.4.2. Algorithme simple

L'algorithme de détection des points d'entrée et de sortie décrit au chapitre précédent sert également à la détection des cycles.

Définissons le graphe de la fig. 4.12 sous la forme matricielle habituelle :

Origine A B C D E Σ

A 0

B 1 1 2 C 1 1 D 1 1 D

estin

atio

n E 1 1

Σ 1 1 2 1 0

tab. 4.23 Représentation matricielle

Nous voyons immédiatement que [ A ] est le nœud d'entrée dans le graphe et que [ A ] et relié à [ B ] (tab. 4.23).

Poursuivons notre progression dans le graphe en supprimant la ligne et la colonne [ A ]. Surprise ! Plus aucune ligne n'est vide : la suppression du nœud d'entrée [ A ] ne provoque pas l'apparition d'une nouvelle entrée (tab. 4.24).

Origine B C D E Σ

B 1 1

C 1 1 D 1 1

Des

tinat

.

E 1 1

Σ 1 2 1 0

tab. 4.24 Entrée dans un cycle

Nous venons de buter sur un cycle dont [ B ] est l'entrée ou, plus exactement la source.

Puisque nous ne pouvons pas poursuivre dans cette direction, prenons le graphe par l'autre bout. La matrice révèle que [ E ] est l'extrémité du graphe, c'est-à-dire le puits. Or on arrive à [ E ] à partir de [ C ].

Nous supprimons l'extrémité [ E ] en retirant la ligne et la colonne [ E ]. Cette opération devrait faire apparaître une autre extrémité mais il n'en est rien : plus aucune colonne n'est vide !

Origine B C D Σ

B 1 1 C 1 1

Des

tin

D 1 1

Σ 1 1 1

tab. 4.25 Sortie du cycle

Nous en déduisons que nous venons de buter contre un cycle dont [ C ] est la sortie. Le cycle relie les sommets restants [ B ], [ C ] et [ D ]. On y entre par le sommet [ B ] et on en sort - si on y arrive - par le sommet [ C ] (fig. 4.14).

Page 37: MATHS APPLIQUEES A L'INFORMATIQUE - …notesdecours.drivehq.com/courspdf/MaiGraphes.pdf · La théorie des graphes est un outil très puissant dans l'analyse des problèmes. De plus,

Introduction à la théorie des graphes 4 - Propriétés des graphes

H. Schyns 4.18

A B C

D

E

fig. 4.14 Cycle simple isolé

Un schéma Entités-Relations ne peut jamais présenter de cycle.

La présence d'un cycle indique soit une relation incorrecte, soit une cardinalité incorrecte (plusieurs : un au lieu de un : plusieurs).

Dans le cas d'un diagramme PERT de suivi de projet, un cycle définit une situation de blocage.

[ B ] ne peut accomplir sa tâche tant que [ D ] n'a pas fini la sienne; [ D ] ne peut accomplir sa tâche tant que [ C ] n'a pas fini la sienne et [ C ] ne peut finir son travail tant que [ B ] ne lui a pas fourni le sien.

Une solution souvent utilisée consiste à enfermer [ B ], [ C ] et [ D ] dans un même lieu de travail jusqu'à ce qu'ils soient arrivés à une solution commune. C'est ce qui se passe lors de certaines négociations gouvernementales.

Dans un autre scénario, tous les intervenants font simultanément et indépendamment les un des autres un projet martyr basé sur ce qu'ils attendent de l'intervenant qui les précède. Par exemple, le projet de [ B ] aurait la forme "Si [ D ] faisait ceci, alors je ferais cela". Chacun passe ensuite son projet au suivant et rédige un nouveau projet dans lequel il corrige les hypothèses qu'il a faites en fonction de ce qu'il reçoit du précédent.

4.4.3. Algorithme complet

L'algorithme qui vient d'être décrit révèle rapidement si un graphe contient au moins un cycle; il ne précise pas s'il y a plusieurs cycles successifs ou imbriqués.

A B C

G

D E

H

F

I

fig. 4.15 Cycles successifs

Par exemple, dans le cas de la fig. 4.15, l'algorithme isole bien les sommets {B, C, D, E, G, H, I} comme étant impliqués dans des cycles mais n'isole pas les trois cycles successifs.

De même qu'un explorateur progresse dans une forêt équatoriale en taillant dans les lianes qui entravent son parcours, l'algorithme complet progresse dans le graphe en coupant les arêtes qui créent des cycles. Au terme du parcours, l'algorithme aura défini le niveau hiérarchique de chacun des sommets et déterminé le nombre de cycles rencontrés.

Pour illustrer la démarche, partons du graphe de la fig. 4.16.

Page 38: MATHS APPLIQUEES A L'INFORMATIQUE - …notesdecours.drivehq.com/courspdf/MaiGraphes.pdf · La théorie des graphes est un outil très puissant dans l'analyse des problèmes. De plus,

Introduction à la théorie des graphes 4 - Propriétés des graphes

H. Schyns 4.19

A B C

F

D E

G

fig. 4.16 Cycles successifs et imbriqués

Un examen visuel préliminaire révèle trois boucles :

- [ B-C-F-B ] - [ C-D-G-D ] - [ B-C-D-G-F-B ]

La matrice de connectivité du tab. 4.26 Entrée et sortie du graphe révèle immédiatement le point d'entrée en [ A ] et le point de sortie en [ E ] :

Origine A B C D E F G Σ

A 0

B 1 1 2 C 1 1 2 D 1 1 E 1 1 F 1 1 2

Des

tinat

ion

G 1 1

Σ 1 1 2 2 0 1 2

tab. 4.26 Entrée et sortie du graphe

Dans cet algorithme; nous progressons toujours de l'entrée vers la sortie, jamais en sens inverse. [ A ] est le sommet initial (niveau I) et une arête nous conduit à [ B ]. Nous pouvons à présent supprimer la ligne et la colonne [ A ] afin de mettre en évidence le niveau suivant. Plus aucune origine n'apparaît : nous nous heurtons à un premier cycle.

Origine B C D E F G Σ

B 1 1 C 1 1 2 D 1 1 E 1 1 F 1 1 2 D

estin

atio

n

G 1 1

Σ 1 2 2 0 1 2

tab. 4.27 Premier cycle et coupure

Toutefois, nous savons par l'étape précédente que [ A ] nous conduisait à [ B ].

Nous décidons de "couper" toutes les arêtes qui ont [ B ] pour destination.

Pour "couper" les liaisons, nous créons artificiellement une ligne vide [ B ] dans la matrice de connectivité. [ B ] devient donc un sommet de niveau II. Nous voyons par la même occasion qu'une arête relie [ B ] à [ C ].

Page 39: MATHS APPLIQUEES A L'INFORMATIQUE - …notesdecours.drivehq.com/courspdf/MaiGraphes.pdf · La théorie des graphes est un outil très puissant dans l'analyse des problèmes. De plus,

Introduction à la théorie des graphes 4 - Propriétés des graphes

H. Schyns 4.20

B C

F

D

G

AI II III

E

fig. 4.17 Coupure du premier cycle

Nous pouvons à présent supprimer la ligne et la colonne [ B ] afin de mettre en évidence le niveau suivant (tab. 4.28). A nouveau, aucune origine n'apparaît : nous nous heurtons à un deuxième cycle.

Origine C D E F G Σ

C 1 1 D 1 1 E 1 1 F 1 1 2 D

estin

atio

n

G 1 1

Σ 2 2 0 1 2

tab. 4.28 Deuxième cycle et coupure

Nous savons que [ B ] nous conduisait à [ C ]. Nous décidons donc de "couper" toutes les arêtes qui ont [ C ] pour destination.

Ceci crée une ligne vide [ C ] dans la matrice de connectivité et [ C ] devient un sommet de niveau III. Nous voyons par la même occasion qu'une arête relie [ C ] à [ D ] et [ F ] (fig. 4.18).

B C

F

D

G

I II IIIA E

IV V

VVI

fig. 4.18 Coupure du deuxième cycle

Nous pouvons à présent supprimer la ligne et la colonne [ C ] afin de mettre en évidence le niveau suivant (tab. 4.29). Cette fois, nous découvrons que [ D ] est une nouvelle origine "normale". C'est un sommet de niveau IV.

Origine D E F G Σ

D 0 E 1 1 F 1 1 D

estin

.

G 1 1

Σ 2 0 1 1

tab. 4.29 Sortie du cycle

La suite de la progression ne pose plus de problème. Après avoir supprimé la ligne et la colonne [ D ], nous identifions [ E ] et [ G ] comme étant des sommets de niveau V (tab. 4.30)

Page 40: MATHS APPLIQUEES A L'INFORMATIQUE - …notesdecours.drivehq.com/courspdf/MaiGraphes.pdf · La théorie des graphes est un outil très puissant dans l'analyse des problèmes. De plus,

Introduction à la théorie des graphes 4 - Propriétés des graphes

H. Schyns 4.21

Origine E F G Σ

E 0

F 1 1

Des

tin

G 0

Σ 0 0 1

tab. 4.30 Sommets de niveau V

Il ne reste finalement que [ F ] qui est un sommet de niveau VI et qui marque la fin de notre progression.

L'algorithme nous a permis :

- de traverser tout le graphe, - d'attribuer un niveau hiérarchique à tous les sommets, - d'identifier deux cycles, - d'identifier une arête de chaque cycle,

Pour identifier exactement tous les sommets et arêtes impliquées dans chaque cycle, il suffit de repartir de la matrice initiale dans laquelle nous supprimons toutes les arêtes coupées sauf la dernière (fig. 4.19) (1).

B C

F

D

G

I II IIIA E

IV V

VVI

fig. 4.19 Identification du dernier cycle

Nous appliquons ensuite l'algorithme simple vu au point 4.4.2. ce qui nous donne très rapidement le cycle [ C-D-G-C ].

Ces trois sommets peuvent être fusionnés en effectuant un OR logique entre les lignes puis entre les colonnes [ C ], [ D ] et [ G ]. Nous restaurons ensuite l'avant-dernière arête coupée (fig. 4.20) et nous reprenons le processus.

B C

F

DG

I II IIIA E

IV V

V

VI

fig. 4.20 Fusion des sommets et identification du cycle suivant

Nous identifions ainsi le cycle [ B-(CDG)-F-B ].

1 On peut aussi simplement repartir de la matrice obtenue avant la dernière coupure.

Page 41: MATHS APPLIQUEES A L'INFORMATIQUE - …notesdecours.drivehq.com/courspdf/MaiGraphes.pdf · La théorie des graphes est un outil très puissant dans l'analyse des problèmes. De plus,

Introduction à la théorie des graphes 4 - Propriétés des graphes

H. Schyns 4.22

4.5. Plus court chemin

4.5.1. Position du problème

Jusqu'à présent, nous avons traité de graphes simples constitués d'arêtes "binaires" :

- l'arête existe, elle est représentée par un 1 dans la matrice de connectivité; - l'arête n'existe pas, son absence est représentée par un 0 dans la matrice de

connectivité.

Dans les graphes pondérés, les arêtes sont affectées d'un poids quelconque, évidemment en rapport avec le problème traité (fig. 4.21) (1).

36 3

72

A

B

D

C

fig. 4.21 Exemple de graphe pondéré

Ce poids représente une caractéristique du parcours qui va de l'origine à la destination :

- une distance kilométrique - une durée - un coût - un nombre de personnes - etc.

Pour un même graphe, on peut avoir plusieurs jeux de poids. C'est notamment le cas des cartes routières dans lesquelles on représente numériquement les distances (parfois aussi le temps nécessaire) et qualitativement l'importance des routes.

Un graphe pondéré admet une représentation matricielle simple, semblable à celles que nous avons déjà rencontrées. Le poids attribué à chaque arête est inscrit dans la cellule correspondante (tab. 4.31).

Origine A B C D Σ

A 0 B 2 2 C 6 3 9 D

estin

.

D 7 3 10

Σ 8 10 3 0

tab. 4.31 Matrice de connectivité correspondant à la fig. 4.21

A partir du moment où les arêtes sont affectées d'un poids, nous allons naturellement nous poser la question de savoir quel est le parcours de poids minimum (maximum) pour aller d'un sommet du graphe à un autre.

Ce problème se pose notamment :

1 On pourrait aussi attribuer un poids aux nœuds mais l'expérience montre que ce poids peut généralement

être attribué aux arêtes entrantes ou sortantes.

Page 42: MATHS APPLIQUEES A L'INFORMATIQUE - …notesdecours.drivehq.com/courspdf/MaiGraphes.pdf · La théorie des graphes est un outil très puissant dans l'analyse des problèmes. De plus,

Introduction à la théorie des graphes 4 - Propriétés des graphes

H. Schyns 4.23

- en cartographie : quel est le trajet plus court (le plus rapide) entre deux villes ? - en informatique : dans un réseau de routeurs quel est le chemin le plus rapide

pour transmettre un paquet d'un serveur à un client ? - en organisation d'entreprise : quelle est la durée (le coût, la charge humaine)

minimale de réalisation d'un projet ?

4.5.2. Algorithme de Dijkstra

Plusieurs algorithmes ont été proposés pour résoudre le problème du plus court chemin dans un graphe ou, plus exactement, du chemin qui minimise la somme des poids des arêtes parcourues.

A ce jour, l'algorithme le plus efficace est dû à E. Dijkstra (1). Nous allons l'illustrer au moyen du graphe de la fig. 4.22 (2).

La matrice de connectivité (non représentée) révèle que [ C ] est un point d'entrée et [ I ] un point de sortie du graphe. Quel est le chemin optimal c'est-à-dire le chemin de moindre poids, qui permette de se rendre de [ C ] à [ I ] (3).

fig. 4.22 Application de l'algorithme de Dijkstra

Nous commençons par faire un tableau (4) qui compte autant de colonnes qu'il y a de sommets dans le graphe. Nous ajoutons une colonne supplémentaire pour mémoriser la meilleure solution trouvée (tab. 4.32).

Chaque élément contient deux caractéristiques :

- un coût ou poids, - le nœud à partir duquel on arrive à cet élément pour ce coût;

Pas Noeuds A B C D E F G H I J Min 0 Coût ∞ ∞ 0 ∞ ∞ ∞ ∞ ∞ ∞ ∞ 0 Via C

tab. 4.32 Initialisation du tableau

1 Edsger Dijkstra, mathématicien et informaticien néerlandais né à Rotterdam en 1930, mort à Nuenen 2002.

Sa contribution à l'informatique est considérable. On lui doit notamment le principe des sémaphores utilisés dans la conception des systèmes d'exploitation.

2 Cet exemple est repris de l'excellent site Aromath dirigé par Bernard Langer (voir sources). 3 Notons au passage qu'on peut choisir deux points quelconques mais dans ce cas, on aura recours à un

algorihme d'élaguage (voir exercices). 4 Du point de vue de la programmation, il s'agit plutôt d'un vecteur de structures ou d'objets.

Page 43: MATHS APPLIQUEES A L'INFORMATIQUE - …notesdecours.drivehq.com/courspdf/MaiGraphes.pdf · La théorie des graphes est un outil très puissant dans l'analyse des problèmes. De plus,

Introduction à la théorie des graphes 4 - Propriétés des graphes

H. Schyns 4.24

Partant de [ C ], nous ignorons encore le coût des trajets pour nous rendre aux autres points. Nous inscrivons que le coût est infini a priori. Par contre, le coût pour ce rendre en [ C ] est nul puisque c'est le point de départ.

Dans la cellule de droite, le résultat optimal indique un coût nul si on part de [ C ]

Nous ajoutons une ligne supplémentaire dans laquelle nous traitons les sommets directement accessibles à partir de [ C ] et le coût correspondant.

Pas Nœuds A B C D E F G H I J Min 0 Coût ∞ ∞ 0 ∞ ∞ ∞ ∞ ∞ ∞ ∞ 0 Via C

1 Coût 4 ∞ 10 16 ∞ ∞ ∞ ∞ ∞ 4 Via C C C A

tab. 4.33 Premier pas

De [ C ] nous pouvons nous rendre à [ A ](4), à [ D ](10) et à [ E ](16). Tous ces coûts sont inférieurs aux coûts infinis de l'étape précédente, donc ils les remplacent. Il est inutile de considérer un retour à [ C ], donc la colonne est barrée.

Le coût est minimum (4) quand on quitte [ C ] pour aller à [ A ].

Puisque le passage par [ A ] est la solution retenue à ce stade, nous ajoutons une nouvelle ligne dans laquelle nous traitons les sommets directement accessibles à partir de [ A ] et le coût correspondant.

Pas Nœuds A B C D E F G H I J Min 0 Coût ∞ ∞ 0 ∞ ∞ ∞ ∞ ∞ ∞ ∞ 0 Via C

1 Coût 4 ∞ 10 16 ∞ ∞ ∞ ∞ ∞ 4 Via C C C A

2 Coût 14 8 16 14 ∞ ∞ ∞ ∞ D Via A A C A 8

tab. 4.34 Deuxième pas

De [ A ] nous pouvons nous rendre à [ B ](10), à [ D ](4) et à [ F ](10). Toutefois, il ne faut pas oublier que nous avons déjà un coût de 4 unités pour aller de [ C ] jusqu'à [ A ]. Il faut donc ajouter ce coût antérieur aux coûts locaux.

Nous voyons que le trajet de [ C ] vers [ D ] en passant par [ A ] coûte moins cher (8) que le trajet direct (10). C'est d'ailleurs cette solution économique qui est retenue dans la dernière cellule.

Puisque le passage par [ D ] est la meilleure solution retenue à ce stade, nous ajoutons une nouvelle ligne dans laquelle nous traitons les sommets directement accessibles à partir de [ D ] et le coût correspondant (tab. 4.35).

Pas Nœuds A B C D E F G H I J Min 0 Coût ∞ ∞ 0 ∞ ∞ ∞ ∞ ∞ ∞ ∞ 0 Via C

1 Coût 4 ∞ 10 16 ∞ ∞ ∞ ∞ ∞ 4 Via C C C A

2 Coût 14 8 16 14 ∞ ∞ ∞ ∞ D Via A A C A 8

3 Coût 14 16 14 29 ∞ ∞ ∞ 14 Via A C A D B

tab. 4.35 Troisième pas

Page 44: MATHS APPLIQUEES A L'INFORMATIQUE - …notesdecours.drivehq.com/courspdf/MaiGraphes.pdf · La théorie des graphes est un outil très puissant dans l'analyse des problèmes. De plus,

Introduction à la théorie des graphes 4 - Propriétés des graphes

H. Schyns 4.25

[ D ] permet d'accéder à [ F ] pour un coût local de 12 unités, auxquels il faut ajouter les 8 unités dépensées jusqu'ici. Le total n'est pas meilleur que le trajet déjà indiqué qui, passant par [ A ], ne coûte que 14 unités. La colonne [ F ] reste donc inchangée.

[ D ] permet aussi d'accéder à [ G ](21) pour un coût total de 29 unités, meilleur que le coût infini noté jusqu'à présent.

Cette ligne présente deux minima, l'un passant par [ B ] et l'autre passant par [ F ]. Que nous sélectionnions l'un ou l'autre comme optimum est sans importance car nous verrons que l'autre sera traité au pas suivant. Nous décidons donc de prendre l'optimum que passe par [ B ] (et par [ A ])ce qui amène le coût total de notre chemin à 14 unités.

De [ B ], nous pouvons aller à [ E ](5), [ J ](10) et [ I ](17).

Les passages vers [ I ] et [ J ] n'étaient pas encore apparus; ils replacent avantageusement le coût infini noté jusqu'à présent (tab. 4.36).

Par contre, compte tenu du coût total de 14 unités déjà déboursé, le passage par [ B ] n'est pas la meilleure solution pour se rendre à [ E ]; le trajet direct venant de [ C ] est moins coûteux.

Pas Nœuds A B C D E F G H I J Min 0 Coût ∞ ∞ 0 ∞ ∞ ∞ ∞ ∞ ∞ ∞ 0 Via C

1 Coût 4 ∞ 10 16 ∞ ∞ ∞ ∞ ∞ 4 Via C C C A

2 Coût 14 8 16 14 ∞ ∞ ∞ ∞ D Via A A C A 8

3 Coût 14 16 14 29 ∞ ∞ ∞ 14 Via A C A D B

4 Coût 16 14 29 ∞ 31 24 14 Via C A D B B F

tab. 4.36 Quatrième pas

Nous voyons que la meilleure solution de cette ligne est le passage par [ F ], déjà apparu ex aequo à l'étape précédente.

Pas Nœuds A B C D E F G H I J Min 0 Coût ∞ ∞ 0 ∞ ∞ ∞ ∞ ∞ ∞ ∞ 0 Via C

1 Coût 4 ∞ 10 16 ∞ ∞ ∞ ∞ ∞ 4 Via C C C A

2 Coût 14 8 16 14 ∞ ∞ ∞ ∞ D Via A A C A 8

3 Coût 14 16 14 29 ∞ ∞ ∞ 14 Via A C A D B

4 Coût 16 14 29 ∞ 31 24 14 Via C A D B B F

5 Coût 16 29 17 31 24 16 Via C D F B B E

tab. 4.37 Cinquième pas

[ F ] nous permet uniquement de passer à [ H ] pour un coût local de 3 unités. Toutefois, le trajet de coût minimal est encore celui qui permet d'arriver à [ E ] en venant directement de [ C ].

Page 45: MATHS APPLIQUEES A L'INFORMATIQUE - …notesdecours.drivehq.com/courspdf/MaiGraphes.pdf · La théorie des graphes est un outil très puissant dans l'analyse des problèmes. De plus,

Introduction à la théorie des graphes 4 - Propriétés des graphes

H. Schyns 4.26

De [ E ], nous pouvons accéder à [ G ] pour un coût local de 4 unités

Pas Nœuds A B C D E F G H I J Min 0 Coût ∞ ∞ 0 ∞ ∞ ∞ ∞ ∞ ∞ ∞ 0 Via C

1 Coût 4 ∞ 10 16 ∞ ∞ ∞ ∞ ∞ 4 Via C C C A

2 Coût 14 8 16 14 ∞ ∞ ∞ ∞ D Via A A C A 8

3 Coût 14 16 14 29 ∞ ∞ ∞ 14 Via A C A D B

4 Coût 16 14 29 ∞ 31 24 14 Via C A D B B F

5 Coût 16 29 17 31 24 16 Via C D F B B E

6 Coût 20 17 31 24 17 Via E F B B H

tab. 4.38 Sixième pas

Si on tient compte des 16 unités dépensées jusqu'ici, c'est mieux que les 29 unités nécessaires à un passage par [ D ]. Toutefois, atteindre [ H ] en passant par [ F ] est encore le trajet le plus intéressant à ce stade (tab. 4.38).

Pas Nœuds A B C D E F G H I J Min 0 Coût ∞ ∞ 0 ∞ ∞ ∞ ∞ ∞ ∞ ∞ 0 Via C

1 Coût 4 ∞ 10 16 ∞ ∞ ∞ ∞ ∞ 4 Via C C C A

2 Coût 14 8 16 14 ∞ ∞ ∞ ∞ D Via A A C A 8

3 Coût 14 16 14 29 ∞ ∞ ∞ 14 Via A C A D B

4 Coût 16 14 29 ∞ 31 24 14 Via C A D B B F

5 Coût 16 29 17 31 24 16 Via C D F B B E

6 Coût 20 17 31 24 17 Via E F B B H

7 Coût 20 31 22 20 Coût E B H G

8 Via 31 22 22 Coût B H J

9 Via 30 30 Coût J I

tab. 4.39 Trois derniers pas

De [ H ] nous allons en [ G ](3) et en [ J ](5).

Le coût total du trajet pour atteindre en [ G ] n'est pas amélioré (20); nous décidons de le laisser inchangé car ce trajet déjà noté il implique moins d'étapes. Par contre, la situation est améliorée quand il s'agit d'atteindre [ J ]. Néanmoins, le trajet optimum à ce stade est celui qui permet d'atteindre [ G ] en passant par [ E ] (tab. 4.39, ligne 7).

Page 46: MATHS APPLIQUEES A L'INFORMATIQUE - …notesdecours.drivehq.com/courspdf/MaiGraphes.pdf · La théorie des graphes est un outil très puissant dans l'analyse des problèmes. De plus,

Introduction à la théorie des graphes 4 - Propriétés des graphes

H. Schyns 4.27

De [ G ] nous allons en [ J ](3). Mais, compte tenu des 20 unités déjà dépensées, cette solution est plus onéreuse que celle déjà notée. Le trajet optimum est celui qui permet d'atteindre [ J ] en passant par [ H ] (tab. 4.39, ligne 8)

De [ J ] nous atteignons notre destination [ I ] pour un coût local de 8 unités.

Avec les 22 unités déjà dépensées ce trajet coûte moins que celui qui passait par [ B ].

Nous atteignons donc [ I ] pour un coût total de 30 unités.

Il suffit de lire le bas des colonnes du tableau pour savoir le chemin parcouru :

- Nous arrivons à [ I ] à condition de passer par [ J ] (bas de la colonne [ I ]) - Nous arrivons à [ J ] à condition de passer par [ H ] (bas de la colonne [ J ]) - Nous arrivons à [ H ] à condition de passer par [ F ] (bas de la colonne [ H ]) - Nous arrivons à [ F ] à condition de passer par [ A ] (bas de la colonne [ F ]) - Nous arrivons à [ A ] à condition de passer par [ C ] (bas de la colonne [ A ])

La solution de coût minimum est donc :

[ C ]-( 4 )-[ A ]-( 10 )-[ F ]-( 3 )-[ H ]-( 5 )-[ J ]-( 8 )-[ I ]

soit 30 unités.

Cet algorithme est notamment utilisé dans tous les routeurs pour le routage optimum des paquets internet ainsi que par les sites tels que fr.mappy.com qui recherchent la meilleure route entre deux localités.

Page 47: MATHS APPLIQUEES A L'INFORMATIQUE - …notesdecours.drivehq.com/courspdf/MaiGraphes.pdf · La théorie des graphes est un outil très puissant dans l'analyse des problèmes. De plus,

Introduction à la théorie des graphes 5 - Autres propriétés

H. Schyns 5.1

5. Autres propriétés

5.1. Planéité

5.1.1. Illustration

Un graphe est planaire s'il existe au moins une façon de le dessiner dans le plan sans que deux arêtes se croisent. Un petit problème célèbre et amusant nous permettra d'illustrer cette propriété :

A B C

W

G

E

fig. 5.1 Le problème des trois maisons (A,B,C) et des trois fournisseurs (W,G,E)

Dans un lotissement, trois maisons A, B, C doivent être raccordées aux fournisseurs d'eau (W), de gaz (G) et d'électricité (E). Est-il possible de procéder aux raccordements en mettant tous les tuyaux et câbles dans le même plan sans que ceux-ci se croisent (il est permis de déplacer les maisons et les fournisseurs) ?

5.1.2. Raisonnement

Quelle que soit la disposition, on arrive très facilement à alimenter les trois maisons en eau et en gaz (ou électricité) sans que les conduites se croisent.

A B C

W

G

E

fig. 5.2 Solution impossible dans le plan

Le problème survient avec le troisième fournisseur :

- si le troisième fournisseur est à l'extérieur du périmètre défini par les conduites, il lui est impossible d'atteindre la maison centrale (B) sans couper l'une des conduites.

- s'il est à l'intérieur du périmètre, il se trouve fatalement dans l'une des zones limitées par les conduites des deux autres fournisseurs, auquel cas il lui est impossible d'atteindre la troisième maison.

Il n'y a donc pas de solution dans le plan. Par contre, dans l'espace, la solution est évidente.

Page 48: MATHS APPLIQUEES A L'INFORMATIQUE - …notesdecours.drivehq.com/courspdf/MaiGraphes.pdf · La théorie des graphes est un outil très puissant dans l'analyse des problèmes. De plus,

Introduction à la théorie des graphes 5 - Autres propriétés

H. Schyns 5.2

5.1.3. Critère mathématique

La planéité est une propriété est importante pour la réalisation de circuits imprimés mono couche. Dans la réalisation de bases de données, la non-planéité du diagramme Entités-Relation est souvent l'indice d'une mauvaise organisation des entités ou d'un manque d'abstraction dans l'analyse.

Existe-t-il un critère de planéité ?

Partons d'un graphe complet K3, Ce graphe est fatalement planaire puisque, par la géométrie euclidienne, nous savons que trois points définissent un plan et un triangle dans ce plan et que les côtés d'un triangle ne se croisent pas. Nous avons donc un graphe complet planaire de 3 sommets et 3 arêtes (fig. 5.3).

fig. 5.3 Graphe complet K3

Si nous ajoutons un nœud, combien d'arêtes pouvons-nous tracer sans que deux d'entre-elles se croisent ?

Deux cas sont à considérer :

- le nouveau nœud est à l'intérieur du triangle, auquel cas, on peut tracer trois arêtes vers les sommets existants (fig. 5.4);

- le nouveau nœud est à l'extérieur du triangle, auquel cas, on peut aussi tracer trois arêtes vers les sommets existants.

1 2

3

1 2

3

fig. 5.4 Ajout d'un quatrième nœud et ses arêtes

En fait, ces deux solutions sont identiques : trois sommets définissent un périmètre et le quatrième est à l'intérieur du périmètre. Nous avons maintenant un graphe complet de 4 nœuds et 6 arêtes.

Ajoutons un cinquième nœud et voyons combien d'arêtes nous pouvons ajouter sans provoquer de croisement :

- soit le cinquième nœud est à l'intérieur d'un des triangles internes et nous ne pouvons ajouter que trois arêtes pour le relier aux trois sommets du triangle en question (fig. 5.5);

- soit le cinquième nœud est à l'extérieur de la figure et nous ne pouvons ajouter que trois arêtes pour le relier aux trois sommets qui délimitent le périmètre.

Page 49: MATHS APPLIQUEES A L'INFORMATIQUE - …notesdecours.drivehq.com/courspdf/MaiGraphes.pdf · La théorie des graphes est un outil très puissant dans l'analyse des problèmes. De plus,

Introduction à la théorie des graphes 5 - Autres propriétés

H. Schyns 5.3

1 2

3

fig. 5.5 Ajout d'un cinquième nœud et ses arêtes

Ce faisant, nous définissons deux nouveaux triangles internes et mais le périmètre compte toujours trois sommets. Cette fois, le graphe n'est plus complet.

Nous voyons que nous pouvons répéter de raisonnement indéfiniment : chaque fois que nous ajouterons un sommet, nous ne pourrons jamais tracer que trois arêtes supplémentaires. Le raisonnement définit une progression arithmétique de raison 3.

Nœuds 3 4 5 6 … N Arêtes 3 6 9 12 … 3·n-6

Nous définissons un premier critère :

Un graphe simple (1) est planaire si a ≤ 3·n – 6

où [ a ] et le nombre d'arêtes et [ n ] est le nombre de nœuds.

Nous pouvons reprendre le raisonnement en imposant que le graphe ne présente aucun triangle (fig. 5.6). Tout périmètre doit compter quatre sommets au moins.

ð B C

D

A

E

ou B C

D

A

E

fig. 5.6 Graphe sans triangle

Nous définissons un second critère :

Un graphe simple sans triangles est planaire si a ≤ 2·n – 4

5.1.4. Application

On démontre facilement que

1 Par graphe simple, on entend un graphe qui ne contient pas de boucles ou, dans le cas présent, un

graphe dans lequel les boucles ne sont pas comptées comme arêtes.

Page 50: MATHS APPLIQUEES A L'INFORMATIQUE - …notesdecours.drivehq.com/courspdf/MaiGraphes.pdf · La théorie des graphes est un outil très puissant dans l'analyse des problèmes. De plus,

Introduction à la théorie des graphes 5 - Autres propriétés

H. Schyns 5.4

le schéma Entités-Relations d'une base de données ne peut jamais contenir de triangle.

travaille pour

utilise

définitIngénieurs Projets

Develop-peurs

emploie

emploie

Département Service

Employé

organise

fig. 5.7 Schémas E-R incorrects

En effet :

- soit les trois relations 1 : n se succèdent dans le même sens et forment un cycle inextricable (fig. 5.7 gauche). L'une des relations est certainement mal posée ou redondante;

- soit l'une des trois relations 1 : n est en sens inverse (fig. 5.7 droite) ce qui fournit deux chemins possibles d'une table à une autre. L'une des relations (le chemin direct) est redondante;

- soit il manque une table pivot dans le circuit.

On en conclut que, dans une base de données bien conçue, le nombre maximum de relations est déterminé par le nombre de tables selon le critère vu plus haut :

Relations ≤ 2·Tables – 4

Ceci dit, une base de données peut très bien fonctionner sans que ce critère soit vérifié mais il y a fort à parier que l'objectif de non-redondance de l'information sera violé dans certaines circonstances. D'autre part, ce n'est pas parce qu'un schéma entités-relation vérifie ce critère qu'il est correct.

5.2. Chemin et circuit eulérien

La notion de chemin eulérien est souvent présentée sous la forme d'un petit problème de réflexion. Par exemple, est-il possible de dessiner la fig. 5.8 en un seul trait de crayon, sans lever la pointe et sans passer deux fois par le même trait ?

fig. 5.8 Dessiner cette figure d'un seul trait de crayon

En termes plus mathématiques, on dit qu'un graphe non orienté admet un chemin eulérien s'il existe un chemin dans lequel chaque arête apparaît une et une seule fois. Si le chemin est fermé (retour au point de départ), on parle de cycle eulérien et le graphe est appelé graphe eulérien.

Page 51: MATHS APPLIQUEES A L'INFORMATIQUE - …notesdecours.drivehq.com/courspdf/MaiGraphes.pdf · La théorie des graphes est un outil très puissant dans l'analyse des problèmes. De plus,

Introduction à la théorie des graphes 5 - Autres propriétés

H. Schyns 5.5

La solution passe par l'examen des nœuds : pour ne pas être bloqué à un nœud, tout trait qui y arrive doit pouvoir en repartir. Il faut donc que chaque nœud soit le point de rencontre d'un nombre pair d'arêtes; en d'autres mots, que tous les nœuds soient de degré pair.

fig. 5.9 Deux sommets de degré impair : point de départ et d'arrivée

Toutefois, si on admet que le chemin puisse avoir un point de départ différent de son point d'arrivée, alors le graphe peut admettre deux et seulement deux sommets de degré impair (fig. 5.9). Le chemin partira obligatoirement de l'un pour aboutir obligatoirement à l'autre. Malgré cette contrainte, le problème admet plusieurs solutions (fig. 5.10) :

fig. 5.10 Deux solutions possibles parmi d'autres

Un graphe non orienté connexe possède un chemin eulérien si et seulement si tous ses nœuds sont de degré pair à l'exception d'au plus 2 d'entre eux.

Si tous les sommets sont de degré pair, alors il existe au moins un cycle dans lequel n'importe quel sommet peut être pris comme point de départ et d'arrivée :

fig. 5.11 Graphe eulérien et l'un des cycles possibles

L'histoire raconte qu'Euler s'est intéressé à cette question parce qu'on lui avait soumis le problème suivant : la ville de Königsberg (aujourd'hui Kaliningrad) est bâtie sur deux îles reliées par un pont. Trois ponts relient les îles à la rive droite du fleuve, trois autres les relient à la rive gauche du fleuve (fig. 5.12) .

fig. 5.12 Schéma de Kaliningrad

Page 52: MATHS APPLIQUEES A L'INFORMATIQUE - …notesdecours.drivehq.com/courspdf/MaiGraphes.pdf · La théorie des graphes est un outil très puissant dans l'analyse des problèmes. De plus,

Introduction à la théorie des graphes 5 - Autres propriétés

H. Schyns 5.6

Est-il possible d'imaginer un trajet qui, partant d'un point quelconque de la ville, permette de traverser une et une seule fois chacun des ponts et de revenir à son point de départ ?

Nous laisserons au lecteur le soin de répondre à cette question en se servant de ce qui a été vu dans ce chapitre.

5.3. Chemin et circuit hamiltonien

Le chemin hamiltonien peut être vu comme un raffinement du chemin eulérien. Il s'agit d'un parcours qui passe une et une seule fois par tous les nœuds d'un graphe en ne parcourant qu'une seule fois les arêtes utilisées (sans nécessairement parcourir toutes les arêtes). Si le chemin revient à son point de départ, on parle de cycle hamiltonien (fig. 5.13).

fig. 5.13 Chemin et cycle hamiltonien

Alors qu'il existe un critère simple pour définir si un graphe est eulérien ou non, il n'existe pas de critère simple - nécessaire et suffisant (1) – pour définir si un graphe est hamiltonien ou non. Par contre, on dispose d'un ensemble de critères divers :

1 - Il suffit qu'un graphe possède un nœud de degré 1 pour pouvoir affirmer qu'il ne contient pas de circuit hamiltonien. C'est évident puisqu'un circuit hamiltonien doit revenir à son point de départ en utilisant une autre arête que l'arête initiale. Toutefois, un tel graphe peut contenir un chemin hamiltonien (fig. 5.14).

fig. 5.14 Graphe non hamiltonien

2 - Si un graphe contient un nœud de degré 2, alors ses deux arêtes adjacentes doivent être incluses dans le circuit hamiltonien. C'est également évident par un raisonnement similaire à celui du point précédent.

3 - Si un circuit hamiltonien passe par un nœud de degré supérieur à 2, alors toutes les arêtes autres que celle par lesquelles le circuit arrive au nœud et en repart peuvent être éliminées du graphe pour la suite. C'est évident puisqu'un point ne peut apparaître qu'une seule fois dans le circuit; une fois qu'il a été visité, il est hors de question d'y arriver à nouveau par un autre chemin.

Cette propriété ouvre la voie à une recherche heuristique d'un circuit hamiltonien dans un graphe donné (cf. infra).

4 - Un circuit hamiltonien ne peut pas contenir un plus petit circuit hamiltonien. 5 - Tout graphe complet contenant au moins trois nœuds contient un circuit

hamiltonien. 1 "Tous les Hommes sont mortels". Il suffit de savoir que je suis un Homme pour savoir que je suis mortel

mais il n'est pas nécessaire d'être un Homme pour être mortel car un chat aussi est mortel. Réciproquement, il est nécessaire que je sois mortel pour être défini comme Homme, mais il ne suffit pas que je sois mortel car un chat est mortel sans pourtant être un Homme.

Page 53: MATHS APPLIQUEES A L'INFORMATIQUE - …notesdecours.drivehq.com/courspdf/MaiGraphes.pdf · La théorie des graphes est un outil très puissant dans l'analyse des problèmes. De plus,

Introduction à la théorie des graphes 5 - Autres propriétés

H. Schyns 5.7

C'est aussi évident puisque dans un graphe complet, chaque nœud est connecté à tous les autres. Il suffit donc de déplacer virtuellement les points vers la périphérie du graphe. Le périmètre de la figure ainsi générée est un cycle hamiltonien (fig. 5.15)

fig. 5.15 Circuit hamiltonien dans un graphe complet K5

Un graphe simple contenant au moins 3 nœuds contient un circuit hamiltonien si chaque nœud est connecté à plus de la moitié des autres nœuds du graphe.

En termes plus mathématiques, il faut que le degré de chaque nœud soit au moins égal à la moitié du nombre de nœuds du graphe.

Cette condition n'est cependant pas nécessaire (1) ainsi qu'en témoigne le problème posé originellement par Hamilton : dans le dodécaèdre régulier de la fig. 5.16 (2), est-il possible de trouver un circuit qui passe une et une seule fois par chacun des 20 sommets ?

fig. 5.16 Dodécaèdre régulier (3)

Le problème se simplifie quelque peu si on considère le dodécaèdre comme "écrasé" dans le plan, sans rien changer à l'organisation des arêtes (on parle d'isomorphisme)(fig. 5.17). Observons d'abord que tous les nœuds sont de degré 3.

fig. 5.17 Isomorphisme plan du dodécaèdre régulier

1 Il est parfois possible de trouver un chemin hamiltonien, même si cette condition n'est pas remplie. 2 Un dodécaèdre régulier est formé de 12 pentagones : un pentagone forme la base sur laquelle s'appuient

cinq autres pentagones formant les côtés d'une coupe. La coupe reçoit un "couvercle" formé de manière similaire.

3 Source : serge.mehl.free.fr/anx/dodeca_tp.html

Page 54: MATHS APPLIQUEES A L'INFORMATIQUE - …notesdecours.drivehq.com/courspdf/MaiGraphes.pdf · La théorie des graphes est un outil très puissant dans l'analyse des problèmes. De plus,

Introduction à la théorie des graphes 5 - Autres propriétés

H. Schyns 5.8

Commençons le chemin en parcourant le pentagone intérieur (fig. 5.18). Nous ne pouvons toutefois pas sélectionner tout le périmètre car nous aurions déjà un circuit fermé, ce qui serait en contradiction avec le critère 4 ci-dessus.

Ceci nous contraint à sélectionner les deux arêtes qui joignent les extrémités de notre chemin au pentagone médian (en rouge).

fig. 5.18 Première partie du chemin

Appliquons le critère 3 et éliminons les quatre arêtes excédentaires qui aboutissent aux nœuds internes du parcours déjà sélectionné (en gris).

Cette étape fait apparaître trois nœuds de degré 2 sur le pentagone médian. En vertu du critère 2, les deux arêtes qui aboutissent à chacun de ces nœuds doivent faire partie du parcours hamiltonien (fig. 5.19). Ceci nous amène à sélectionner trois côtés (six arêtes) du pentagone médian.

fig. 5.19 Deuxième partie du chemin

Appliquons le critère 3 et éliminons les deux arêtes qui aboutissent aux nœuds internes de cette partie du chemin.

Cette fois, nous faisons apparaître deux nœuds de degré 2 sur le pentagone externe. Les arêtes qui y conduisent doivent faire partie du circuit. Nous sélectionnons ainsi trois côtés du pentagone externe (fig. 5.20).

fig. 5.20 Troisième partie du chemin

Page 55: MATHS APPLIQUEES A L'INFORMATIQUE - …notesdecours.drivehq.com/courspdf/MaiGraphes.pdf · La théorie des graphes est un outil très puissant dans l'analyse des problèmes. De plus,

Introduction à la théorie des graphes 5 - Autres propriétés

H. Schyns 5.9

Il nous reste à relier les trois segments du circuit entre eux. Il suffit de sélectionner l'une quelconque des arêtes qui joint deux chemins pour que toutes les autres sélections soient imposées en vertu des critères 2 et 3. Par exemple, relions le chemin interne au chemin médian grâce à l'arête marquée d'une flèche. Dès lors, l'arête opposée est interdite, ce qui fait apparaître un point de degré 2 dont les deux arêtes doivent être incluses, etc. De proche en proche, nous arrivons à la solution de la fig. 5.21 :

fig. 5.21 Circuit hamiltonien du dodécaèdre

Le concept de circuit hamiltonien est présent dans le célèbre problème du voyageur de commerce : comment un voyageur de commerce doit-il agencer sa tournée pour ne passer qu'une et une seule fois dans les villes où se trouvent ses clients et revenir à son point de départ ?

Bien entendu, on peut compliquer le problème en donnant des poids différents aux arêtes et en imposant en plus que le voyageur de commerce fasse un nombre minimal de kilomètres, etc.

A ce jour, le problème n'a pas reçu de solution "simple" : il faut soit examiner tous les cas, ce qui consomme du temps de calcul exponentiel, soit utiliser des algorithmes heuristiques qui fournissent une solution "convenable" en un temps de calcul "convenable" sans garantir que cette solution sera la meilleure possible.

Page 56: MATHS APPLIQUEES A L'INFORMATIQUE - …notesdecours.drivehq.com/courspdf/MaiGraphes.pdf · La théorie des graphes est un outil très puissant dans l'analyse des problèmes. De plus,

Introduction à la théorie des graphes 6 - Exercices du chapitre

H. Schyns 6.1

6. Exercices du chapitre

6.1. Exercice 1

A

B C D

E F G H I J

K L M N

fig. 6.1 Une arborescence typique

A partir des différents algorithmes présentés dans ce cours, concevoir un algorithme qui permette de vérifier si un graphe est une arborescence.

On rappelle qu'une arborescence est un graphe orienté :

- connexe - acyclique - ayant un seul sommet d'entrée (source) - se terminant par des feuilles (qui ont un seul parent)

Comment mesurer la profondeur (diamètre) d'un arbre ou d'une arborescence ? L'algorithme valable pour les graphes non orientés est-il valable ici ?

6.2. Exercice 2

Etant donné le graphe de la fig. 6.2, en appliquant les méthodes exposées dans le cours :

- rechercher les éventuels sommets d'entrée (sources) et de sortie (puits), - rechercher et identifier la présence éventuelle de cycles, - déterminer le diamètre du graphe rendu non orienté (dans lequel toutes les

arêtes peuvent être parcourues dans les deux sens) - déterminer le plus court chemin pour aller de [ B ] à [ L ]

Page 57: MATHS APPLIQUEES A L'INFORMATIQUE - …notesdecours.drivehq.com/courspdf/MaiGraphes.pdf · La théorie des graphes est un outil très puissant dans l'analyse des problèmes. De plus,

Introduction à la théorie des graphes 6 - Exercices du chapitre

H. Schyns 6.2

E

G

K

L

A

B

I

D

HC

J

F

10

15

6

1213

6 9

10

4 10 3

9

817

4

5

6

5

43

5

5

fig. 6.2 Un graphe orienté à analyser

Représentation matricielle correspondante :

Origine

A B C D E F G H I J K L

A 6 1

B 0

C 5 4 2

D 4 1

E 12 6 2

F 15 3 8 3

G 10 5 2

H 10 9 2

I 9 17 2

J 4 1

K 13 10 5 3

Des

tinat

ion

L 6 5 3 3

3 3 2 2 2 2 2 1 2 2 1 0 22

6.3. Exercice 3

En prenant le graphe de la fig. 6.2, comme base de raisonnement, concevoir un algorithme qui permet d'élaguer le graphe pour ne conserver que les arêtes

- qui permettent d'aller de [ A ] à [ J ] - qui permettent d'aller de [ E ] à [ G ]

Page 58: MATHS APPLIQUEES A L'INFORMATIQUE - …notesdecours.drivehq.com/courspdf/MaiGraphes.pdf · La théorie des graphes est un outil très puissant dans l'analyse des problèmes. De plus,

Introduction à la théorie des graphes 6 - Exercices du chapitre

H. Schyns 6.3

6.4. Exercice 4

Le graphe de la fig. 6.3 est un schéma Entités-Relations d'une base de données de gestion d'hôpital.

gère

gère

possède

attribue

emploie

localise abrite

acquitte

engendre

permet

nécessite

remplitassure

héberge

localise

active

définit

Services

Soignants

CodePostaux

Pays

Actes

AptitudesCatégoriesPersonnel

Mutuelles Patients Inscriptions

Soins

Factures Paiements

Lits

Chambres

fig. 6.3 Un schéma Entités-Relations à analyser

- est-il correct du point de vue de la théorie des graphes (connexité, planéité). - déterminer le niveau hiérarchique de chacune des entités - implémentez le projet en définissant les sous-modules constitutifs et leur

enchaînement.

6.5. Exercice 5

Joindre les dix sommets de ce volume par un circuit hamiltonien. Est-ce possible ?

Astuce : rechercher d'abord un parcours hamiltonien dans un cube simple.

Page 59: MATHS APPLIQUEES A L'INFORMATIQUE - …notesdecours.drivehq.com/courspdf/MaiGraphes.pdf · La théorie des graphes est un outil très puissant dans l'analyse des problèmes. De plus,

Introduction à la théorie des graphes 7 - Sources

H. Schyns 7.1

7. Sources

- Discrete Mathematics and Its Applications Kenneth H. Rosen McGraw-Hill International Editions (4th edition) ISBN 0-07-116756-0

- Théorie des graphes et articles connexes Anonyme Wikipedia fr.wikipedia.org/wiki/Théorie_des_graphes

- Cours en Théorie des Graphes Didier Maquin Ecole Nationale Supérieure d'Electricité et de Mécanique (ENSEM – Nancy) cours.ensem.inpl-nancy.fr/cours-dm/graphes/graphe.html

- Organisation des tâches avec le graphique de PERT Cédric Dekeyser Blog cdekeyser.com/tag/gestion-de-projet/

- Algorithme de Dijkstra Bernard Langer Aromath : Le goût des mathématiques www.aromath.net/Page.php?IDP=624&IDD=0

- Parallel thinking Creativity step by step Edward de Bono Harper Perennial ISBN 0-06-090325-2