MATH-H-404 : Mise à niveau en
algorithmique
Bernard Fortz
Nikita Veshchikov
Version 2011-2012
Table des matières
1 Les graphes 1
1.1 Introduction......................................... 1
1.2 Graphes,arcsetarêtes ................................... 3
1.3 Miseenœuvre........................................ 4
1.4 Accessibilité......................................... 7
1.4.1 Roy-Warshall.................................... 8
1.5 Parcoursdegraphes..................................... 9
2 Les plus courts chemins 17
2.1 Introduction......................................... 17
2.2 Plus courts chemins dans un digraphe . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
2.3 Tous les plus courts chemins . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
2.4 Plus courts chemins dans un DAG . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
2.5 Digraphes ayant des poids négatifs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
2.6 Dernièresremarques .................................... 29
Chapitre 1
Les graphes
1.1 Introduction
Informellement, un graphe se définit comme une structure composée de sommets et soit d’arcs, soit
d’arêtes. Nous pouvons, pour donner de l’intuition concernant ce concept, considérer que les sommets
représentent des objets et les arcs ou arêtes représentent les relations entre ces objets. Un exemple de
graphe est :
Un arc est une relation dirigée entre deux sommets, il s’agit donc d’une relation non symétrique :
Une arête est une relation non dirigée entre deux sommets, il s’agit ainsi d’une relation symétrique :
Nous pouvons ainsi considérer qu’une arête entre deux sommets est comparable à avoir deux arcs de
Chapitre 1 : Les graphes 2
sens opposés entre ces deux sommets. Cela nous donne par exemple :
Usuellement, un graphe est composé soit uniquement d’arcs, soit uniquement d’arêtes.
Les graphes représentent un outil fort pratique permettant de modéliser de nombreux systèmes d’infor-
mations. Les listes, tableaux, arbres . . . peuvent être vus comme des cas particuliers de graphes. Nous
pouvons donc voir la notion de graphe comme une structure abstraite d’information (ADT).
Formellement un graphe est défini comme une structure formée de deux ensembles :
un ensemble Sde sommets ({a, b, c, d}, par exemple) ;
un ensemble Ade couples de sommets ({(a, b),(b, c),(c, b),(d, d)}, par exemple).
Si l’ordre dans lequel un couple de sommets est exprimé importe on parle alors d’arcs et on considère
que la relation est dirigée depuis le premier sommet du couple vers le second sommet du couple. Le
graphe résultant est alors dit être dirigé ou orienté. Si l’ordre dans lequel les sommets sont exprimés
n’importe pas, on parle alors d’arête et on considère que la relation est non dirigée (dans ce cas (a, b)
est équivalent à (b, a)). Le graphe résultant est lui appelé graphe non dirigé.
En outre, les arcs ou les arêtes peuvent posséder une étiquette symbolisant un poids, une valeur, une
pondération, etc. Cette étiquette peut être définie à l’aide d’une information additionnelle associée à
chaque couple de sommets de l’ensemble A.
Voyons à présent quelques définitions en relation avec les graphes :
l’ordre d’un graphe est le nombre de sommets qu’il contient ;
un prédécesseur ou père d’un sommet iest un sommet jtel qu’il existe un arc ou une arête du sommet
jvers le sommet i;
un successeur ou fils 1d’un sommet iest un sommet jtel qu’il existe un arc ou une arête du sommet
ivers le sommet j;
deux sommets iet jqui sont des fils d’un même sommet k, sont dits frères ;
le degré entrant d’un sommet est le nombre de ses prédécesseurs ;
1. Remarquons que dans le cas d’un graphe non dirigé, deux sommets reliés par une arête sont chacun père et fils l’un de
l’autre.
Chapitre 1 : Les graphes 3
le degré sortant d’un sommet est le nombre de ses successeurs ;
deux sommets d’un graphe sont adjacents s’ils sont distincts et s’il existe un arc ou une arête entre les
deux sommets ;
un sommet d’un graphe est isolé s’il n’est adjacent à aucun autre sommet ;
deux arcs ou arêtes sont adjacents s’ils sont distincts et ont au moins une extrémité commune ;
lorsque le graphe est tel qu’au plus marcs ou arêtes vont d’un sommet à un autre sommet, alors le
graphe est aussi appelé un m-graphe ;
une chaîne est une succession non vide d’arêtes contiguës ;
un chemin est une succession orientée et non vide d’arcs contigus 2;
la longueur d’un chemin ou d’une chaîne est égale au nombre d’arcs ou d’arêtes qui le composent ;
un chemin où n’apparaît pas deux fois le même arc est appelé un chemin simple ;
un chemin qui ne passe pas plus d’une fois par chacun de ses sommets est appelé un chemin élémentaire ;
un cycle, dans un graphe non dirigé, est une chaîne d’un sommet ajusqu’à ce même sommet aqui ne
contient pas deux fois le même sommet (autre que a) :
un cycle dans un graphe dirigé, appelé aussi un circuit, est un chemin d’un sommet ajusqu’à ce même
sommet aqui ne contient pas deux fois le même sommet (autre que a) ;
un chemin d’un sommet ajusqu’à ce même sommet aoù chaque arc du graphe n’apparaît qu’une
seule fois est appelé un cycle Eulerien ;
un circuit qui comprend tous les sommets du graphe est appelé un cycle Hamiltonien ;
un graphe qui ne contient aucun chemin qui part et arrive à un même sommet est appelé un graphe
acyclique ;
un graphe non dirigé qui contient une arête entre chaque paire de sommets est appelé un graphe
complet.
1.2 Graphes, arcs et arêtes
Il peut être utile de se rendre compte du nombre de graphes différents que l’on peut construire à partir
d’un nombre fixé de sommets. Pour évaluer cela, nous allons déterminer le nombre maximum d’arcs et
d’arêtes différents que l’on peut placer dans un graphe de nsommets.
Le nombre maximum d’arêtes que peut contenir un graphe non dirigé de nsommets est n(n+1)
2. En effet,
un graphe non dirigé, ne contenant qu’un seul sommet, contient au plus une seule arête (de l’unique
sommet vers lui-même). De même, un graphe de isommets, contient au maximum le même nombre
d’arêtes qu’un graphe de i1sommets auquel s’ajoute une arête entre le ime sommet et chacun des
i1autres sommets, ainsi que l’arête du ime sommet vers lui-même. Ainsi, si on note Cile nombre
maximum d’arêtes dans un graphe de isommets, alors
Ci=Ci1+ (i1) + 1 = Ci1+i
ce qui revient à écrire :
Ci=
i
X
j=1
j=i(i+ 1)
2
Le nombre maximum d’arcs d’un graphe dirigé de nsommets est n2. En effet, un graphe dirigé de
nsommets contient un arc aller et un arc retour correspondant à chaque arête du graphe non dirigé
équivalent, à l’exception des arcs d’un sommet vers lui-même qui n’apparaissent qu’une seule fois. Nous
savons qu’un graphe non dirigé de nsommets possède au plus n(n+1)
2arêtes. Nous devons retrancher de
2. Dans la littérature, il arrive qu’une chaîne soit appelée un chemin (ou path en anglais) et un chemin composé d’arcs est
alors appelé chemin dirigé (ou directed path en anglais).
1 / 31 100%