You are on page 1of 117

Thorie des graphes

Dessiner pour comprendre...


____________
Introduction.
CHERTIIGI-GI () Thorie des graphes May 3, 2012 0 / 0
-
*Les graphes modlisent de nombreuses situations concrtes o
interviennent des objets en interaction.
*Les interconnexions routire, ferrovire ou ariennes entre direntes
agglomrations,
*Les liens entre les composants dun circuit lectronique,
*Le plan dune ville et de ses rues en sens unique,...
___________
Utilit:
La thorie des graphes a notamment pour raison dtre, de rpondre
dirents problmes se formulant en termes dobjets et de liens entre
ceux-ci.
Ainsi, rpondre la question de savoir quel est le chemin le plus rapide
pour se rendre en train dune ville une autre nest possible quen
regardant de prs une carte susamment dtaille du rseau ferroviaire.
Ce rseau est une source dinformations sur des gares (objets) et sur les
lignes ferroviaires (liens) reliant ces gares. Un autre problme consisterait
rechercher le trajet le plus conomique.
De nombreux problmes relatifs ltude des rseaux pourront donc tre
CHERTIIGI-GI () Thorie des graphes May 3, 2012 0 / 0
rsolus par la thorie des graphes :
-rseaux ariens (entre aroports)
-rseaux ferroviaires (entre gares)
-rseaux routiers (entre villes)
-rseaux tlphoniques, informatiques, ...
Un des piliers de la thorie des graphes est ltude de lordonnancement
des tches. Quelles sont les contraintes conditionnant lavancement dun
projet ? Quelle tche doit tre nie avant que telle autre commence ?
Comment tenir compte des tches concurrentes ? (se modlise par graphe
et se traite par recherche du plus long chemin)
Dautres domaines pourront galement tre abords :
-analyse dun programme, dun algorithme
-laboration de cartes gographiques
-reprsentation de relations entre individus (familiales, professionnelles, ...)
-reprsentation dautomates dtats nis, de tables de dcisions, ...
________
Les graphes permettent de manipuler plus facilement des objets et
leurs relations avec une reprsentation graphique naturelle. Lensemble
des techniques et outils mathmatiques mis au point en Thorie des
CHERTIIGI-GI () Thorie des graphes May 3, 2012 0 / 0
Graphes permettent de dmontrer facilement des proprits, den
dduire des mthodes de rsolution, des algorithmes, ...
Quel est le plus court chemin (en distance ou en temps) pour se rendre
dune ville une autre?
Comment minimiser la longueur totale des connexions dun circuit?
Peut-on mettre une rue en sens unique sans rendre impossible la
circulation en ville?
_______________
Linteret de lutilisation des graphes rside dans:
*Facilit de manipulation et modlisation des situations.
*Representation facile des objets et les relations lies ces objets.
*Thorie des graphes donne des propriets puis des mthodes de rsolution
et algorithmes.
La thorie des graphes permet de transcrire donc concrtement des faits
en les modlisant laide dobjets mathmatiques, an de rsoudre des
problmes tels :
- Les problmes dordonnancement, qui ont pour but la recherche dun
ordre optimal des tches pour une ralisation complexe : il sagit de
CHERTIIGI-GI () Thorie des graphes May 3, 2012 0 / 0
trouver un ordre de ralisation des travaux, en minimisant le temps total et
le cot total et peut etre le personnel intervenant;
- Les emplois du temps et la rpartition des salles ou de locaux en gnral;
- Les problmes daectations (organiser des quipes de travail pour
quelles soient le plus ecaces possibles: minimiser le maximum de failles
dfaillances..) ;
Les problmes de maintenance (minimiser les stocks de pices de rechange,
ou les cots dus larrt des machines) ;
- Les problmes de comptition et de concurrence ;
- Les problmes de classication de produits, ou dindividus selon certains
critres prdnis.
-
Exemples de modlisation par des graphes :
reseau routier : les sommets sont les intersections des routes, les
aretes reprsentent les routes.
cheminement dans un reseau informatique.
Web modelis par un graphe. Les sommets sont les pages Web et les
aretes sont les liens hypertexte entre ces dierentes pages.

CHERTIIGI-GI () Thorie des graphes May 3, 2012 0 / 0


Exemple de GRAPHE:
Deux reprsentations identiques dun meme graphe:
Exemple de GRAPHE:
CHERTIIGI-GI () Thorie des graphes May 3, 2012 0 / 0
Remarque:La forme des arcs ainsi que la position des sommets sont
facultatifs.
Ce qui est important: Savoir comment sont lis les sommets entre
eux.
En eet, comparer avec celui ci:
CHERTIIGI-GI () Thorie des graphes May 3, 2012 0 / 0
On dit que ces deux graphes sont isomorphes.
On peut sintresser la recherche dun plus court chemin dans un
graphe G:
1 - entre deux sommets donns
2 - dun sommet tous les autres
3 - entre tous les couples de sommets
Le problme 2 nest pas plus dicile rsoudre que le problme 1 et le
problme 3 peut tre rsolu par application du problme 2 tous les
CHERTIIGI-GI () Thorie des graphes May 3, 2012 0 / 0
sommets.

La recherche du plus court chemin est analogue la recherche du


plus long chemin (la valuation terminale vise est alors la plus grande au
lieu de la plus petite).
_______________
Certaines Prcisions sur des questions pratiques:

Si on cherche le plus court chemin reel, on pense la distance. Mais un


chemin peut etre valu par autre paramtre: le temp par exemple. Ou bien
on peut considrer la distance & le temps selon la qualit physique du
chemin.
On peut chercher minimiser la longueur totale des connexions dun
circuit.
On peut creer des contraintes comme sens unique sur un arc puis voir son
inuence sur le mouvement global sur un graphe.
_______________
Dnition: Un graphe G est un ensemble ni de noueds ou sommets
relis entre eux par des aretes ou arcs.
CHERTIIGI-GI () Thorie des graphes May 3, 2012 0 / 0
On note: G = (S, U)
ou S = {noueds ou sommets} U = {aretes ou arcs}
un arc peut etre vu mathmatiquement comme un bipoint ou un
couple de points (a, b)sans parler de lorientation.
Les sommets a & b sont les extrmits de larete.

LOrdre dun graphe G = (S, U) est le nombre des sommets de ce graphe.


Cest le cardinal de S et est not |S| . Par exemple |S| = 9 pour le graphe
au dessous
CHERTIIGI-GI () Thorie des graphes May 3, 2012 0 / 0
Dans un graphe G dordre n
* Tout chemin lmentaire est de longueur au plus n 1.
* Le nombre de chemins lmentaires dans le graphe est ni.
Degr:
*Deux sommets s et r sont adjacents sil existe larete (s, r ) qui les joint.
Ils sont dits aussi voisins.(s est adjacent r et inversement)(s et r sont
adjacents larete et inversement).
*Une arete est incidente un sommet s si s est lune de ses extrmits.
*Le Degr dun sommet s de G est le nombre daretes incidentes s.
____________
Notation: d

(s) . Par exemple un sommet de Degr zro est dit isol.


CHERTIIGI-GI () Thorie des graphes May 3, 2012 0 / 0
Le demi-degr extrieur dun noeud est le nombre darcs adjacents qui en
partent.d
+
(s) .
Le demi-degr intrieur dun noeud est le nombre darcs adjacents qui y
arrivent.d

(s) .
Cest le cardinal de lensemble {u U/ u = (s, r ) ou r S}
d

(s) =d
+
(s) +d

(s) . (On peut aussi noter d


e
(s) et d
s
(s) degr
entrant et degr sortant respectivement)
Un graphe est rgulier si les degrs de tous ses sommets sont gaux.
Un graphe est complet si tous les noeuds sont adjacents deux deux.
Exemple de graphe complet:
Exemple de graphe non complet:
CHERTIIGI-GI () Thorie des graphes May 3, 2012 0 / 0
En eet, les sommets 2 & 3 ne sont pas adjacents, tout comme 3 & 4, 4
& 5 (pas darc existant de lien entre ces sommets) .
Thorme.
La somme des degrs des sommets dun graphe est gal au double du
nombre de ses aretes.
Examinons a sur les deux graphes prcdents:
En eet:
Pour le premier graphe complet, on compte:
-Pour le premier graphe on a 10 aretes et chaque noeud des cinq noeuds a
un degr quatre. Donc la somme des degrs des sommets est 20 qui est
bien le double du nombre de ses aretes.
CHERTIIGI-GI () Thorie des graphes May 3, 2012 0 / 0
-Pour le deuxime graphe on a six aretes et dierents degrs pour les
sommets dont la somme est 12 donc le double du nombre de ses aretes.
____________
Exemple de graphe sans orientations:
Lordre de ce graphe est 8. |S| = 8.
d

(a) = 1, d

(h) = 5, d

(e) = 3.
Les aretes incidentes e sont:
(e, f ) , (e, h) , (e, d) .
Remarque: ce graphe nest pas complet.
(Les noeuds g & a nont pas darc).
__________
Dnitions:
CHERTIIGI-GI () Thorie des graphes May 3, 2012 0 / 0
*Un graphe est dit simple sil est sans boucles et il ny a pas plus
dune arete entre deux sommets quelconques.
*Un sous-graphe de G est une partie de ce graphe forme de certains
sommets et les aretes qui les lient.
*Un graphe partiel de G est une partie de ce graphe dnie par
certaines aretes et leurs extremits.
CHERTIIGI-GI () Thorie des graphes May 3, 2012 0 / 0
Pour un graphe symtrique dun graphe:
CHERTIIGI-GI () Thorie des graphes May 3, 2012 0 / 0
on a: y
1
(x)(y prdecesseur de x) x (y) (x successeur
de y).
Un graphe G = (S, U) est antisymtrique si
x, y S, (x (y) & y (x))= y = x.
CHERTIIGI-GI () Thorie des graphes May 3, 2012 0 / 0
On peut associer un graphe orient un graphe non orient.
CHERTIIGI-GI () Thorie des graphes May 3, 2012 0 / 0
*Une chaine est une suite daretes telles que la suivante a un sommet
en commun avec la prcdente.
Autrement dit: Une chaine est une squence nie et altrne de
sommets et daretes, dbutant et nissant par des sommets, telle que
chaque arete est incidente avec les sommets qui lencadrent dans la
squence. Une arete ne doit pas intervenir plusieurs fois dans la
squence contrairement un sommet.
____________
Le premier et le dernier sommet sont appels sommets extrmits
de la chaine.
La longueur de la chaine est gale au nombre daretes qui la
composent.
Si aucun des sommets composant la squence napparait plus dune
fois, la chaine est dite chaine el lmentaire.

Si aucune des aretes composant la squence napparait plus dune


fois, la chaine est dite chaine simple.

Un cycle est une chaine dont les extrmits coincident.


CHERTIIGI-GI () Thorie des graphes May 3, 2012 0 / 0
Pour une arete si les deux extrimits coincident on dit que cest une
boucle.
Un cycle lmentaire (tel que lon ne rencontre pas deux fois le meme
sommet en le parcourant) est un cycle minimal pour linclusion, cest-
a-dire ne contenant strictement aucun autre cycle.
-
*Un chemin est une liste de sommets telle quil existe dans le graphe
une arete entre chaque paire de sommets successifs (il y a le sens qui
est pris en considration sans le noter sur le graphe) cest
(f , g, h, e, d, b).
**Un cycle est un chemin nissant son point de dpart.
CHERTIIGI-GI () Thorie des graphes May 3, 2012 0 / 0
*La longueur simple du chemin est le nombre daretes parcourues.
*Une autre manire de parler de longueur est possible en considrant
des aretes values.
*Un chemin est une squence nie et alterne de sommets et darcs,
dbutant et nissant par des sommets, telle que chaque arc est
sortant dun sommet et incident au sommet suivant dans la squence
(cest la notion de chaine oriente).
Exemple de chemin simple et cycle:
CHERTIIGI-GI () Thorie des graphes May 3, 2012 0 / 0
Les chemins (f , g, d, b) et (f , g, d, h, e, d, b) sont simples. Le chemin
(f , g, d, h, e, d, h, e, d, b) ne lest pas : le cycle
(d, h, e, d) est emprunt 2 fois.
Si aucun des sommets composant la squence napparait plus dune
fois, le chemin est dit chemin lmentaire.
Si aucune des aretes composant la squence napparait plus dune
fois, le chemin est dit chemin simple.
Un circuit est un chemin dont les extrmits coincident.

En parcourant un circuit lmentaire, on ne rencontre pas deux fois le


CHERTIIGI-GI () Thorie des graphes May 3, 2012 0 / 0
meme sommet.
*Un chemin C (a
1
, a
2
, ..., a
n
) est lmentaire si chacun des sommets
du parcours est visit une seule fois.
*Un chemin lmentaire est un chemin simple et sans cycle.
*Un chemin est connexe si et seulement si il existe au moins une
chaine entre chaque paire de sommets.
Remarque:Un graphe complet est connexe par construction.
En terme dexploration graphique, un graphe est connexe si on peut
atteindre nimporte quel sommet partir dun sommet quelconque en
parcourant direntes aretes.
Un arbre est un graphe connexe sans cycles.
Prcision: Les termes de chemin et de circuit semploient en propre
pour les graphes orients. Pour les graphes non orients, on parle de
chaine et de cycle.
*Un graphe orient est dit fortement connexe sil existe un chemin
joignant deux sommets
quelconques.
La relation :
CHERTIIGI-GI () Thorie des graphes May 3, 2012 0 / 0
s
i
Rs
j

_
_
_
soit s
i
= s
j
soit il existe la fois un chemin joignant s
i
s
j
et un chemin joignant s
j
s
i
est une relation d quivalence (elle est rexive symtrique et
transitive) et les classes d quivalence induites sur S par cette
relation forment
une partition de S en S
1
, S
2
, ..., S
q
. Les sous-graphes G1; G2; ....; Gq
engendrs par les sous ensembles
S
1
, S
2
, ..., S
q
sont appels les composantes fortement connexes du
graphe.
Par exemple: Soit le graphe orient suivant:
CHERTIIGI-GI () Thorie des graphes May 3, 2012 0 / 0
Il a pour composantes fortement connexes:
C
1
= {1, 2, 3, 4, 5} ; C
2
= {6, 7} ; C
3
= {8}
Donc le graphe prcdent a pour graphe rduit:
La Dnition:
On appelle graphe rduit G
r
le quotient du graphe G par la relation
de forte connexit G
r
= G/R; Les sommets de G
r
sont donc les
composantes fortement connexes et il existe un arc entre C
i
et C
j
si et seulement sil existe au moins un arc entre un sommet de C
i
et
un sommet de C
j
dans le graphe G. On vrie que le graphe G
r
est
sans circuit.
Exemple de graphe trois composantes connexes:
CHERTIIGI-GI () Thorie des graphes May 3, 2012 0 / 0
Remarques:
1) Un graphe ne possdant quune seule composante connexe est
simplement un
graphe connexe.
2) Un sommet isol (de degr 0) constitue toujours une composante
connexe lui
seul.
3) La relation sur les sommets "il existe un chemin entre ..." est une
relation
dquivalence (rexive, symtrique et transitive). Les composantes
connexes
dun graphe correspondent aux classes dquivalences de cette
relation.
4) Existe-t-il une relation entre le nombre dartes dun graphe et sa
CHERTIIGI-GI () Thorie des graphes May 3, 2012 0 / 0
connexit? On sent que pour connecter un graphe il faut quun
minimum dartes soient prsentes pour quexistent susamment de
chemins. En fait, pour quun graphe G = (S, U) soit connexe, il faut
quil ait au moins |S| 1 artes.
5) Connexit/aretes:
Un graphe G dordre n connexe comporte au moins n 1 artes.
ZONE DAPPLICATION :
. .
La recherche des composantes fortement connexes et la
dtermination du graphe rduit revetent une grande importance
pour lanalyse structurale dun systme.
-
Dans le graphe prcdent le chemin
C (g, f , h, b) est lmentaire.
Mais le chemin C (g, f , h, e, d, h, b) nest pas lmentaire car le
sommet h est visit deux fois.
Exemple de chaine et chemin:
CHERTIIGI-GI () Thorie des graphes May 3, 2012 0 / 0
Quand on est sur quil existe un chemin entre deux sommets dun
graphe, on veut connaitre ce chemin. Mieux encore, on est intress
par la recherche du plus court chemin possible entre ces deux
sommets.
Si le nombre de sommets est grand, il faut avoir une mthode
algorithmique rapide de recherche de ce plus court chemin entre deux
sommets.
Il faut dabord noter quun plus court chemin est lmentaire.
Dnition: chemin eulrien:
Un chemin dans un graphe orient est dit eulrien sil passe
exactement une fois par chaque arete.
CHERTIIGI-GI () Thorie des graphes May 3, 2012 0 / 0
Un graphe orient est dit eulrien sil admet un circuit eulrien.
-Une chaine eulrienne est une chaine qui contient une fois et une
seule toutes les aretes du graphe.
-Si cette chaine est un cycle, on a un cycle eulrien.
Lorigine de cette dnition:
Tout le monde saccorde considrer que la thorie des graphes est
ne en 1736 avec la communication dEuler (1707-1783) dans laquelle
il proposait une solution au clbre problme des ponts de Konigsberg
(Kaliningrad, capitale de la prusse de lest)(Euler, 1736). Le problme
pos tait le suivant. Deux iles A et D sur une rivire taient relies
entre elles ainsi quaux rivages B et C laide de sept ponts (dsigns
par des lettres minuscules)
CHERTIIGI-GI () Thorie des graphes May 3, 2012 0 / 0
Le problme pos consistait, a partir dune terre quelconque A, B, C,
ou D, a traverser chacun
des ponts une fois et une seule et a revenir a son point de dpart en
utilisant les ponts. Comme modalisation par graphe, Euler reprsenta
cette situation a laide dun dessin ou les sommets reprsentent les
terres et les aretes, les ponts. Le graphe a la reprsentation suivante:
ou encore:
CHERTIIGI-GI () Thorie des graphes May 3, 2012 0 / 0
Ce problme est identique a celui consistant a tracer une gure
gomtrique sans lever le crayon et sans repasser plusieurs fois sur un
meme trait. Cela savere impossible.
Explication:
Ce phnomne est li au fait que le nombre des arcs touchants un
sommet soit pair (entrant sortant autant de passages spars dans ce
noeud) sauf deux noeuds (dpart et arrive).
Thorme dEuler:
Un graphe non orient admet une chaine eulrienne si et seulement si
il est connexe et admet zros ou deux sommets impairs.
Si tous les sommets sont pairs, il sagit de cycle eulrien.
Ce thorme est utile dans la recherche de chemin dans un graphe.
Pour le problme des ponts pos au dessus,
il y a quatre sommets de degrs impairs donc il n y aura ni chemin
CHERTIIGI-GI () Thorie des graphes May 3, 2012 0 / 0
eulrien, ni cycle eulrien.
Si on ajoute une arete entre B et C et une autre entre B et A, on a
alors deux sommets de degr pair (A et C) et deux sommets de degr
impair (B et D).
Ce nouveau graphe (graphe corrig)admet donc une chaine eulrienne
qui part de D et arrive B
(D-A-B-C-D-B-A-C-D-B) ou encore de B D
(B-A-B-C-A-D-B-D-C-D).
Pour obtenir un cycle eulrien, il faudrait que tous les sommets
soient de degr pair; il sut donc de relier entre eux les deux
sommets de degr impair du graphe corrig: dans la ralit cest un
nouveau pont qui est construit qui correspond une nouvelle arete
entre B et D.
CHERTIIGI-GI () Thorie des graphes May 3, 2012 0 / 0
Ou encore on peut supprimer une arete entre B et D ce qui rend tous
les sommets pairs et ainsi on a encore un cycle eulrien.
Gnralits sur les graphes non orients
Un graphe est constitu de sommets, dont certains sont relis par des
artes.
Deux sommets relis par une arte sont adjacents.
Le nombre de sommets prsents dans un graphe est lordre du graphe.
Le degr dun sommet est le nombre dartes dont ce sommet est une
extrmit.

Graphe biparti, biparti-complet:


Un graphe est biparti si lensemble de ses sommets peut tre
partitionn en deux classes S
1
et S
2
de sorte que deux sommets de la
CHERTIIGI-GI () Thorie des graphes May 3, 2012 0 / 0
mme classe ne soient jamais voisins.
Soit un graphe biparti, si pour tout s
1
S
1
et pour tout s
2
S
2
, on a
le nombre darc ayant une extrimit en s
1
et lautre exrimit en s
2
est
suprieur ou gal un, alors le graphe est biparti complet (ie tout est
li).
Notation:
Un graphe biparti peut tre not:
G = (S
1
, S
2
, U)
Un graphe simple biparti-complet avec
|S
1
| = p & |S
2
| = q et est not G
p,q
.
Par exemple graphe biparti complet G
3,3
Graphe et PageRank:
CHERTIIGI-GI () Thorie des graphes May 3, 2012 0 / 0
Classement des pages Web utilis par les moteurs de recherches. Le
web est modlis laide dun graphe orient dont les sommets j
reprsentent les pages du Web et les arcs j i les hyperliens.
Chaque page du web possde un score (PageRank) indiquant son
importance. Le principe est le suivant : une page i est importante
(score lev) si beaucoup de pages importantes pointent vers i .
Exemple de pages Web et leurs PageRank:
CHERTIIGI-GI () Thorie des graphes May 3, 2012 0 / 0
Le score de la page i est dni par la valeur

i
=

j i
1
l
j

j
ou l
j
dsigne le nombre de liens partant de la page j . Le problme de
la dtermination des PageRank se ramne un problme aux valeurs
propres de la forme = A ou est le vecteur de tous les PageRank
des pages web recenses (environ 20 milliards....)
Thorme:
Un graphe orient connexe admet un chemin eulrien (mais pas de
circuit eulrien)
si, et seulement si, pour tout sommet sauf deux (s et t), le degr
entrant est egal au
degr sortant et
d
e
(s) = d
s
(s) 1 et d
e
(t) = d
s
(t) + 1 (pour avoir une sortie de
dpart de s et une entre larrive t)
Un graphe orient connexe admet un circuit eulrien si, et seulement
si, pour tout
sommet, le degr entrant est egal au degr sortant.
CHERTIIGI-GI () Thorie des graphes May 3, 2012 0 / 0
Proprit :
La somme des degrs dun graphe non orient est gale deux fois le
nombre dartes du graphe.
(Cest donc un nombre pair).
On gnralise la notion du plus court chemin dans le cas du graphe
valu, ou chaque arete est associe une valeur(poids). La valuation
des aretes peut representer des couts de transit, des distances en
kilomtres, du temps de parcours des aretes.
Exemple:
Sur un rseau de chemin de fer, on est tent de chercher le plus court
chemin (en prenant comme valuation darete le temps passer dans
le train pour la portion de chemin correspondante). Il faut ajouter la
contrainte de minimiser les changements de train (cest spcial ce
genre de problme).

Des reprsentations utiles pour un graphe:


CHERTIIGI-GI () Thorie des graphes May 3, 2012 0 / 0
1)Les Dictionnaires Suivants/Prcdents:
Sur un graphe orient, un sommet s
i
est un suivant du sommet s
j
si
la liaison oriente s
j
s
i
a lieu. s
j
est alors un prcdent de s
i
.
Remarque: on peut faire chaque tabeau part.
CHERTIIGI-GI () Thorie des graphes May 3, 2012 0 / 0
2) Matrice dadjacence:
pour coder un graphe. Cest la matrice associe ce graphe
On se donne un graphe G = (S, U) n sommets. La matrice
dadjacence de G est gale la matrice A
d
= (a
ij
) de dimension
n n telle que:
a
ij
=
_
1 si l arete (i , j ) existe
0 si larete (i , j ) nexiste pas
Attention: le sens (i , j ) est pris en considration.
Ce type de matrice fait partie des matrices boolenne.
Notons bien que le terme a
ij
de la ime ligne et jme colonne est gal
au nombre daretes reliant les sommets i et j .
Un graphe orient quelconque a une matrice dadjacence quelconque
(nest pas symtrique)(examiner a
12
& a
21
), alors quun graphe non
orient possde une matrice dadjacence symtrique. Labsence
de boucle se traduit par une diagonale nulle.
La matrice dadjacence de G du graphe au dessus est
CHERTIIGI-GI () Thorie des graphes May 3, 2012 0 / 0
A
d
= (a
ij
) =
_
_
_
_
_
_
_
_
0 1 0 0 0 0
0 0 0 1 0 1
1 1 0 0 1 1
0 0 0 0 0 0
0 1 0 1 0 0
0 0 0 0 1 0
_
_
_
_
_
_
_
_
Exemples:
1)
CHERTIIGI-GI () Thorie des graphes May 3, 2012 0 / 0
Le graphe G1 est dordre 6 ; les sommets
1 et 2 sont adjacents, puisque relis par une arte. Ce nest pas le cas
des sommets 5 et 2. Le degr du sommet 5 est gal 3.
CHERTIIGI-GI () Thorie des graphes May 3, 2012 0 / 0
2)
Prcisons quelques proprits de ces matrices:
*La somme des lments de la ime ligne est gale au degr sortant
du sommet correspondant.
*La somme des lments de la jme colonne est gale au degr
entrant du sommet correspondant.
La matrice dadjacence est symtrique si et seulement si, le graphe est
symtrique.
*La longueur dune chaine est le nombre daretes composant cette
chaine.
CHERTIIGI-GI () Thorie des graphes May 3, 2012 0 / 0
Thorme dapplication:
Soit A la matrice associe (matrice dadjacence) un graphe dordre
m de sommets s
1
, s
2
, s
3
, ...., s
m
. Alors le terme a
ij
de A
n
est gal au
nombre de chaines de longueur n reliant s
i
et s
j
.
Sur exemple:
Soit le graphe suivant. Toutes les aretes sont de meme longueur a.
Hypothse: Le sommet dentre est s1 et le sommet de sortie est s4.
On se met daccord sur le fait que tout chemin (ici dans le sens
chaine: cest dire on ne prends pas lorientation des arcs en
considration) commence s1 et se termine en s4.Combien a t on de
chemins dirents de longueur commune 3a ?
CHERTIIGI-GI () Thorie des graphes May 3, 2012 0 / 0
Le nombre de longueur 3a entre s1 & s4 est gal au nombre de
chemins de longueur 3 (en prenant a comme unit). On vise donc la
matrice associe au graphe la puissance 3 & son coecient a
3
14
(premire ligne quatrime colonne).
La matrice associe au graphe est:
A
d
=
_
_
_
_
0 1 0 1
0 0 0 1
0 1 0 1
0 1 1 0
_
_
_
_
dou
CHERTIIGI-GI () Thorie des graphes May 3, 2012 0 / 0
A
2
d
=
_
_
_
_
0 1 1 1
0 1 1 0
0 1 1 1
0 1 0 2
_
_
_
_
Et par suite:
A
3
d
=
_
_
_
_
0 2 1 2
0 1 0 2
0 2 1 2
0 2 2 1
_
_
_
_
Le coecient a
3
14
est le nombre de chemins du sommet S1 au sommet
S4. Cest deux: S1,S4,S2,S4 & S1,S4,S3,S4 (lorientation est prise
en considration dans les possibilits daccs aux arcs.
Fermeture transitive dun graphe orient:
Description:
Pour dcrire la Fermeture transitive dun graphe orient, on a besoin
deux graphes.
CHERTIIGI-GI () Thorie des graphes May 3, 2012 0 / 0
Etant donn un graphe orient G, la fermeture transitive de G est un
graphe orient G tel que:
-G a les mmes sommets que G
-Sil y a un chemin dans G de s t (s = t), alors il y a une arte
dans G de s t La fermeture transitive dun graphe contient
linformation sur les sommets accessibles du graphe.
Pratique:
Calcul de fermeture transitive avec les matrices:sur graphe
exemple
le graphe pour lequel on se propose de calculer la fermeture transitive
en calculant les puissances successives des matrices est le suivant:
CHERTIIGI-GI () Thorie des graphes May 3, 2012 0 / 0
la matrice dadjacence associe ce graphe
CHERTIIGI-GI () Thorie des graphes May 3, 2012 0 / 0
on calcule successivement les matrices M
2
M
3
M
4

M
5
(il y a six
sommets)
Les chemins de longueur 2 que lon ajoute comme aretes sont (1,6),
(3,3), (3,4), (5,2), (5,5), (5,6).
CHERTIIGI-GI () Thorie des graphes May 3, 2012 0 / 0
Le chemin de longueur 3 que lon ajoute comme arete est (3,6), les
aretes (3,2), (3,5), (5,3), (5,4) sont dj dans le graphe.
On najoute aucun chemin de longueur 4 comme arete, les aretes
CHERTIIGI-GI () Thorie des graphes May 3, 2012 0 / 0
(3,3), (3,4), (5,2), (5,5), (5,6) sont dj dans le graphe.
On najoute aucun chemin de longueur 5 comme arete, les aretes
(3, 2), (3, 5), (3, 6)(5, 3), (5, 4) sont dja dans le graphe.
La disjonction de ces matrices, qui reprsente la matrice de la
fermeture transitive, est :
CHERTIIGI-GI () Thorie des graphes May 3, 2012 0 / 0
Le graphe obtenu par fermeture est alors le suivant :
CHERTIIGI-GI () Thorie des graphes May 3, 2012 0 / 0
3) Matrice dincidence sommet-arete:
Cest une faon de reprsentation matricielle dun graphe (sans
boucles: cest dire sans arete (i , i ) )utilisant la relation dincidence
entre aretes et sommets:
Pour un graphe orient sans boucles G = (S, U) n sommets
s
1
, ..., s
n
et m aretes a
1
, ..., a
m
. La matrice dincidence (aux arcs) de
G est la matrice M = (m
ij
) de dimension n m telle que:
m
ij
=
_
_
_
1 si s
i
est lextrmit initiale de a
j
1 si s
i
est lextrmit terminale de a
j
0 si s
i
nest pas une extrmit de a
j
Remarque: Si le graphe nest pas orient, le 1, de lextrmit
terminale est remplac par 1 tout simplement.
Reprenons le graphe au dessus orient avec les notations suivantes:
Les sommets: {s
1
, s
2
, s
3
, s
4
, s
5
, s
5
} .
Les aretes:{a
1
, a
2
, a
3
, a
4
, a
5
, a
6
, a
7
, a
8
, a
9
, a
10
} .
CHERTIIGI-GI () Thorie des graphes May 3, 2012 0 / 0
Donc la Matrice dincidence sera 6 lignes et 10 colonnes (car 6
sommets et 10 aretes):
( Notons bien que chaque arete correspond une colonne de la
matrice & chaque somme correspond une ligne de la matrice).
CHERTIIGI-GI () Thorie des graphes May 3, 2012 0 / 0
M = (m
ij
) =
_
_
_
_
_
_
_
_
1 0 1 0 0 0 0 0 0 0
1 1 0 1 1 0 0 0 1 0
0 0 1 1 0 0 1 1 0 0
0 1 0 0 0 1 0 0 0 0
0 0 0 0 1 1 1 0 0 1
0 0 0 0 0 0 0 1 1 1
_
_
_
_
_
_
_
_
Exemple de graphe orient:
CHERTIIGI-GI () Thorie des graphes May 3, 2012 0 / 0
Exemple de graphe non orient:
CHERTIIGI-GI () Thorie des graphes May 3, 2012 0 / 0
Des reprsentations pour un graphe:
Diagramme cartsien, tableaux, diagramme sagittal.
CHERTIIGI-GI () Thorie des graphes May 3, 2012 0 / 0
CHERTIIGI-GI () Thorie des graphes May 3, 2012 0 / 0
CHERTIIGI-GI () Thorie des graphes May 3, 2012 0 / 0

Exploration dun graphe:


Lide est la suivante: Il sagit de visiter les sommets dun graphe
partir dun sommet donn. Cela se fait par lintermdiaire dun
algorithme.
CHERTIIGI-GI () Thorie des graphes May 3, 2012 0 / 0
Lalgorithme:
-sommet de dpart donn s1.
-initialiser E
M
ensemble de sommets marquer par s1
- tant que E
M
= faire
debut
retirer un lement s
i
de E
M
et le marquer:
(lui associer S
u
(s
i
) ensemble de ses successeurs)
pour tout s
j
de S
u
(s
i
) faire
debut
si s
j
non marqu ajouter s
j
E
M
.
n
n
n
-
Etapes dexploration du graphe: Mise au point:
Travailler noeud par noeud.
Pour un noeud donn, traiter tous les arcs sortants.
Ds quun noeud est atteint, on lajoute la liste.
Ds quun noeud est trait, on le supprime de la liste.
CHERTIIGI-GI () Thorie des graphes May 3, 2012 0 / 0
On arrte lorsque la liste est vide.
Exploration Sur exemple (Parcours de graphes):
Sommet de dpart s1
Initialiser E
M
(les sommets marquer) par s1 : E
M
= {s1}
retirer s1 de E
M
et le marquer (cest dire lui associer les successeurs
de s1.)
CHERTIIGI-GI () Thorie des graphes May 3, 2012 0 / 0
S
u
(s1) = {s2, s3}
s2, s3 ne sont pas marqus: on les ajoute E
M
= {s2, s3}
retirer s2 de E
M
pour le marquer: S
u
(s2) = {s4, s6}
s4 et s6 ne sont pas marqus: on les ajoute E
M
= {s3, s4, s6}
retirer s3 de E
M
pour le marquer: S
u
(s3) = {s2, s5, s6} .
s5 nest pas marqu: on l ajoute E
M
= {s4, s5, s6}
retirer s4 de E
M
pour le marquer: S
u
(s4) = .
n (on ne peut plus explorer)
Lordre du graphe est 7 :
Six sommets, parmi les sept, peuvent etre atteints partir du sommet
s1.
Commentaire: Certains sommets peuvent etre atteints partir de
plusieurs sommets, on marque ceux qui sont dja visits pour ne pas
les visiter de nouveau.
Question: Quel sommet retirer pour le marquer ?
Pourquoi lun et pas lautre?
Ceci est du au fait que le choix, du sommet retirer de la liste pour le
marquer, repose sur une stratgie prise au pralable. En gnral, on a
deux orientations de stratgies:
CHERTIIGI-GI () Thorie des graphes May 3, 2012 0 / 0
Une orientation: LIFO:Last in rst out: il sagit de retirer le dernier
lment arriv dans la liste E
M
. Cest une exploration en profondeur.
(penser une pile de livres ou dassiettes)
Autre orientation: FIFO: First in First out: Cette fois, on retire le
plus ancien des sommets dans la liste E
M
.Cest une exploration en
largeur (penser la le dattente).

Parcours de graphes (autre formulation)


Un algorithme de parcours dans un graphe peut se formaliser laide
de
deux ensembles de sommets OUVERTS (pas encore visits)et
FERMES,
le premier contenant les sommets explorer et le deuxime les
sommets dj explors. Lexploration dun sommet consistant
examiner tous les voisins dun sommet : visite de tous les arcs
sortants du sommet.
ParcoursGnrique(G, x
0
)
Donnes: un graphe orient G = (S, U), un sommet s
0
S
Rsultat: une arborescence de chemins issus de s
0
CHERTIIGI-GI () Thorie des graphes May 3, 2012 0 / 0
OUVERTS {x
0
}
FERMES
Parent(x
0
) NuL
y = x
0
, Parent(x
0
) y
tant que OUVERTS= faire
z Choix(OUVERTS)
Ajout(z, FERMES)
Explorer(z)
Retrait(z,OUVERTS)
Explorer(z)
pour Tous les voisins y de z faire
si y FERMES alors
Ne rien faire
si y OUVERTS alors
Ne rien faire
sinon
Ajout(y,OUVERTS)
Parent(y) z

CHERTIIGI-GI () Thorie des graphes May 3, 2012 0 / 0


Des fonctions dexploration dun graphe:
fonction INITIALISE_EXPLORATION()
{
pour chaque sommet t faire explore[t] = 0;
}
fonction EXPLORATION(sommet s)
{
si (explore[s] = 0) alors
{
explore[s] = 1;
pour chaque successeur t de s faire EXPLORATION(t);
}
}
fonction PROFONDEUR(sommet s)
{
INITIALISE_EXPLORATION();
EXPLORATION(s);

Exploration du graphe orient valu:


CHERTIIGI-GI () Thorie des graphes May 3, 2012 0 / 0
Notons V la liste des noeuds traiter pour un graphe orient valu
G = (S, U, ).
Lalgorithme est alors:
Initialisation:
- Liste de noeuds: V = {1} .
-Etiquettes: d
1
= 0, d
i
= +, pour tout i = 1.
Itrations:
tant que V = :
-choisir i dans V.
-V = V\ {i }.
- Pour chaque arc (i , j ) U
- si d
j
> d
i
+a
ij
.
- d
j
= d
i
+a
ij
-V = V {j }

Exemple:
CHERTIIGI-GI () Thorie des graphes May 3, 2012 0 / 0
CHERTIIGI-GI () Thorie des graphes May 3, 2012 0 / 0
CHERTIIGI-GI () Thorie des graphes May 3, 2012 0 / 0
CHERTIIGI-GI () Thorie des graphes May 3, 2012 0 / 0
CHERTIIGI-GI () Thorie des graphes May 3, 2012 0 / 0
CHERTIIGI-GI () Thorie des graphes May 3, 2012 0 / 0
CHERTIIGI-GI () Thorie des graphes May 3, 2012 0 / 0
CHERTIIGI-GI () Thorie des graphes May 3, 2012 0 / 0
CHERTIIGI-GI () Thorie des graphes May 3, 2012 0 / 0
Proprits la n de chaque itration:
Si d
i
< , alors d
i
est la longueur dun chemin reliant 1 i .
Si i / V , alors
soit d
i
= (le noeud na pas encore t atteint),
soit d
j
d
i
+a
ij
, j tel que (i , j ) U (les arcs sortant ont t
traits).

Proprits si lalgorithme se termine:


Pour tout noeud j tel que d
j
< ,
d
1
= 0;
dj est la longueur du plus court chemin entre 1 et j ;
Equation de Bellman :
d
j
= min
(i ,j )U
d
i
+a
ij
si j = 1
d
j
= si et seulement sil ny a pas de chemin reliant 1 et j .
Dans ce cas, le graphe nest pas connexe.
Lalgorithme se termine si et seulement sil ny a aucun chemin
commenant en 1 et contenant un circuit cot ngatif.
CHERTIIGI-GI () Thorie des graphes May 3, 2012 0 / 0

Algorithme de coloration dun graphe:

Ordonner les sommets dans lordre dcroissant de leurs degrs.


Tant quil reste des sommets colorer, procder ainsi :
- choisir une nouvelle couleur appele couleur dusage;
- chercher dans la liste des sommets le premier sommet non color et
le colorer avec la couleur dusage (lui associer une couleur );
- examiner tour tour, dans lordre de la liste, tous les sommets non
colors et, pour chacun dentre eux, le
colorer lorsquil nest adjacent aucun sommet dj color.
Remarque: deux sommets adjacents nont pas la meme couleur.
CHERTIIGI-GI () Thorie des graphes May 3, 2012 0 / 0
CHERTIIGI-GI () Thorie des graphes May 3, 2012 0 / 0
Coloration des graphes.
Dnitions:
Colorer un graphe consiste aecter une couleur a chacun des sommets
de
sorte que deux sommets adjacents ne portent pas la meme
couleur.
On appelle nombre chromatique dun graphe le plus petit nombre
de couleurs
permettant de le colorer.
Proprit:
Encadrement du nombre chromatique :
CHERTIIGI-GI () Thorie des graphes May 3, 2012 0 / 0
-Si le graphe est complet, son nombre chromatique est egal a son
degr
(nombre total de sommets).
-Dans le cas contraire :
*On cherche le sous-graphe complet dont le nombre de sommets N
est le plus
grand.
*On dtermine , le plus haut degr des sommets de graphe.
* On a alors : N nombre chromatique +1.
* Remarque : si on est capable de colorier pratiquement le graphe
avec les N
couleurs, le nombre chromatique est alors egal a N.
Encore des Rsultats connaitre:
Dnition.
-Un sous-graphe dun graphe G est un graphe compos de sommets
de G et de certaines aretes qui relient ces sommets.
-Un sous-graphe est dit stable lorsquil ne comporte aucune arete,
autrement dit si deux sommets quelconques ne sont pas adjacents.
Dnition.
CHERTIIGI-GI () Thorie des graphes May 3, 2012 0 / 0
Colorier les sommets dun graphe G non orient, cest leur attribuer
une couleur de faon ce que deux sommets adjacents ne soient pas
coloris de la meme couleur.
Biensur, le nombre minimal de couleurs ncessaires est le nombre
chroma-
tique du graphe, not (G).
Thorme.
(i) Le nombre chromatique dun graphe complet est egal a lordre du
graphe.
(ii) Soit D le degr maximal des sommets dun graphe G, alors:
(G) 1 +D
(iii) Soit p lordre dun sous-graphe complet dordre maximal contenu
dans un graphe, alors:
p (G)
Exemple:
CHERTIIGI-GI () Thorie des graphes May 3, 2012 0 / 0
Pour ce graphe, (B;C;E; F) est un sous-graphe complet dordre p = 4
(il est maximal).
De plus, voici les degrs des sommets (cits respectivement):
sommets: A B C D E F G
degrs: 4 3 4 2 5 6 4
Ainsi, le plus haut degr est D = 6. On sait donc que
4 (G) 6 + 1 = 7
Simple exemple:
CHERTIIGI-GI () Thorie des graphes May 3, 2012 0 / 0
Lordre de G1 est egal a 4.
Le degr du sommet 3 est egal a 4.
Les sommets 1 et 2 sont adjacents, ce qui nest pas le cas des
sommets 1 et 4.
Les sommets 2 et 3 sont relis par des aretes multiples.
La matrice associe (dadjacence) a ce graphe est:
Proprit:
CHERTIIGI-GI () Thorie des graphes May 3, 2012 0 / 0
La somme des degrs dun graphe non orient est egal deux fois le
nombre total
daretes.
Pour le graphe G1 : la somme des degrs est egale a 2+3+4+1=10 et
le nombre daretes est egal a 5.
On a = 4 (4 aretes issues du sommet 3) et le sous-graphe complet le
<<plus
grand>> est celui compos des sommets 1, 2 et 3 (voir ci-dessus).
On a donc N = 3
et 3 nombre chromatique 5.
Algorithme de coloration : (encore une fois)
-On classe dans un tableau les sommets dans lordre dcroissant de
leurs
degrs.
-On attribue une nouvelle couleur (avec les lettres A,B,... par
exemple) au premier sommet non encore color du tableau et la
meme couleur a chaque sommet non adjacent a un sommet de cette
couleur (dans lordre du tableau).
-On recommence l tape prcdente jusqu a ce que tous les sommets
CHERTIIGI-GI () Thorie des graphes May 3, 2012 0 / 0
soient
colors.
Exemple dtaill avec le graphe suivant :
Etape 1 : on a classe les sommets dans lordre dcroissant de leurs
degrs et on a attribu la couleur A au 1er sommet 2 et au sommet 5
qui ne lui est pas adjacent. On na pas pu attribu la couleur A a un
autre des sommets car ils sont tous relis a 2 ou a 5.
CHERTIIGI-GI () Thorie des graphes May 3, 2012 0 / 0
Etape 2 : on a attribue la couleur B au sommet 3 (1er sommet libre)
et aux sommets 6, 1 et 8 qui ne lui sont pas adjacents. On na pas pu
attribu la couleur B a un autre des sommets libres car ils sont tous
relis a 3, 6, 1 ou 8.
Etape3 : on a attribu la couleur C au sommet 4 (1er sommet libre)
et au sommet
7 qui ne lui est pas adjacent.
Remarque : Cette mthode ne permet pas en gnral dobtenir une
coloration minimale.
Ici, N = 2 et une coloration a la main aurait permis de nutiliser que
deux couleurs
CHERTIIGI-GI () Thorie des graphes May 3, 2012 0 / 0
(le nombre chromatique est egal a 2).

Graphes valus:
Dnition:
Un graphe (orient ou non) G = (S, U) est valu ( valeurs, poids)
si il est muni dune application
v : U R
(x, y) v(x, y) appele valuation.
On peut tendre la valuation en une fonction S S R {+} en
posant v(x, y) = + si (x, y) / U.
Exemple de graphe valu (ou pondrs cest dire poids):
CHERTIIGI-GI () Thorie des graphes May 3, 2012 0 / 0
Recherche de plus courts chemins (rappel)
De nombreux problmes concrets peuvent se modliser comme des
recherches de plus courts chemins dans des graphes valus.
Par exemple :
recherche de litinraire le plus rapide en voiture entre deux villes, ou
en mtro entre deux stations
routage dans des rseaux de tlcommunications
Certains problmes dordonnancement font aussi appel des
recherches de
CHERTIIGI-GI () Thorie des graphes May 3, 2012 0 / 0
plus longs chemins.
On tudiera principalement des algorithmes qui rsolvent le problme
suivant :
tant donn un sommet x, dterminer pour chaque sommet y la
distance et un plus court chemin de x y.
Remarques
-Dans un graphe non orient, on a toujours d(x, y) = d(y, x), et
toute
plus courte chaine de x y parcourue lenvers est une plus courte
chaine de y x.
-Etant donns deux sommets x et y, plusieurs cas se prsentent :
1) il ny a pas de chemins / chaines de x y
2) il existe un ou plusieurs plus courts chemins / chaines de x y
3) il existe des chemins / chanes de x y mais pas de plus court.
Exemple:
CHERTIIGI-GI () Thorie des graphes May 3, 2012 0 / 0
De A B : il existe un unique plus court chemin (A, K, B).
De A G : il existe deux plus courts chemins (A, K, G) et (A, G).
De E A : il nexiste pas de chemins, donc pas de plus courts
chemins.
Exemple:
CHERTIIGI-GI () Thorie des graphes May 3, 2012 0 / 0
De A E : il existe une innit de plus courts chemins : (A,K, B,D,
E),
(A,K, B,D, E, C,D, E), (A,K, B,D, E, C,D, E, . . . , C,D, E),. . .
De A J : il existe des chemins mais pas de plus court : les chemins
(A, G,H, F, I ,H, F, I , . . . ,H, F, I , J) sont arbitrairement courts.
Circuit absorbant:
Dnition:
Un circuit absorbant est un circuit de valuation ngative.
CHERTIIGI-GI () Thorie des graphes May 3, 2012 0 / 0
Si un graphe possde un circuit absorbant, alors il nexiste pas de plus
courts chemins entre certains de ces sommets.
Thorme:
Soit G un graphe orient valu nayant pas de circuits absorbants, et
x et
y deux sommets de G. Si il existe un chemin allant de x y, alors la
distance d(x, y) est bien dnie et il existe au moins un plus court
chemin
de x y.
Dans la suite, les graphes seront donc sans circuits absorbants.
On dnit de la meme manire un cycle absorbant dans un graphe non
orient. Le thoreme reste vrai en remplacant chemin par chaine.
Reprsentation matricielle:
Par analogie avec la matrice dadjacence, on peut reprsenter un
graphe
valu par une matrice carre, dont les coecients correspondent la
valuation des arcs.
Dnition:
Soit G = (S, U, v) un graphe valu dont on a numrot les sommets
CHERTIIGI-GI () Thorie des graphes May 3, 2012 0 / 0
de 1 n. La matrice de valuation de G est la matrice carre
M = (m
ij
), de
taillen n, dnie par
m
ij
=
_
v(i , j ) si(i , j ) U
+ sinon
Exemple: Matrice de valuation du graphe du premier exemple de
graphe valu au dessus:
CHERTIIGI-GI () Thorie des graphes May 3, 2012 0 / 0
Valuation dun chemin:
Dnition:
Soit G = (S, U, v) un graphe valu. La valuation ou longueur dun
chemin (ou dune chaine) est la somme des valuations de chacun des
arcs qui le composent.
Exemple:
La valuation de la chaine (A, F, C, E,D), dans le graphe prcdent, est
5 + 15 + 3 3 = 20.
Distance et plus court chemin:
Dnition:
Soit G = (S, U, v) un graphe valu et soient x, y deux sommets de G.
CHERTIIGI-GI () Thorie des graphes May 3, 2012 0 / 0
On appelle distance de x y et on note (par dfaut de
notation)d(x, y) le minimum des valuations des chemins / chaines
allant de x y.
On appelle plus court chemin / plus courte chaine de x y tout
chemin / chaine dont la valuation est gale d(x, y).
Distance et plus court chemin sur lexemple suivant:
ici on met laccent sur les valuations des arcs tout en laissant les
noueds sans valeurs.
CHERTIIGI-GI () Thorie des graphes May 3, 2012 0 / 0
-Distance de A E : d(A, E) = 5...Plus court(s) chemin(s)
:(A, C, B, E)
-Distance de A D : d(A, D) = 4...Plus court(s) chemin(s) : (A, D)
et (A, C, D)
-Distance de E A : non dni.....Plus court(s) chemin(s) : inexistant
RECHERCHE DU PLUS COURT CHEMIN
Le problme de la recherche du plus court chemin dans un graphe se
rencontre dans de nombreuses applications.
Cest en rponse certaines problmatiques concrtes aprs modlisation
par
des graphes.
En eet, de nombreux problmes concrets peuvent se modliser comme
des
recherches de plus courts chemins dans des graphes valus. Par
exemple :
- recherche de litinraire le plus rapide en voiture entre deux villes, ou
en bus entre deux stations dans une meme ville.
- routage dans des rseaux de tlcommunications Certains problmes
dordonnancement font aussi appel des recherches de plus longs chemins
CHERTIIGI-GI () Thorie des graphes May 3, 2012 0 / 0
(pour englober les taches et leurs retard dexecution.
- les problmes de tournes (Postier, Livreur dun produit,
Distributeur de commerce,...)
- certains problmes dinvestissement et de gestion de stocks,
-problmes avec prise de dcision selon arboressance dtude des cas.
- les problmes de programmation dynamique tats discrets et temps
discret,
On tudiera principalement des algorithmes qui rsolvent le problme
suivant :
tant donn un sommet x, dterminer pour chaque sommet y la
distance et un plus court chemin de x y.
Types de problmes du plus court chemin(Rappel)
-le problme de la dtermination dun plus court chemin
entre deux sommets,
-le problme de la dtermination des plus courts chemins dun sommet
vers lensemble des autres sommets du graphe,
-le calcul du plus court chemin pour lensemble des couples de sommets du
graphe.
CHERTIIGI-GI () Thorie des graphes May 3, 2012 0 / 0
Les contraintes ou conditions:
si les longueurs sont toutes positives ou nulles
si les longueurs sont toutes gales lunit
si le graphe et les longueurs sont quelconques
si le graphe est sans circuit
si le graphe est connexe ou fortement connexe (graphe orient)
Proprits des plus courts chemins:
Proprit1:
Tout sous-chemin dun plus court chemin est un plus court chemin.
Preuve.
Soit C
0
= (x
0
, x
1
, x
2
, ..., x
n
) un plus court chemin entre x
0
et x
n
.
Soit C = (x
p
, x
p+1
, ..., x
q1
, x
q
) un sous-chemin de C
0
, avec
0 p q n.
Si C nest pas un plus court chemin entre x
p
et x
q
, alors il existe un
autre chemin C = (x
p
, x

1
, x

2
, ..., x

r 1
, x

r
, x
q
) entre x
p
et x
q
, et dont
la longueur est strictement plus petite que celle de C.
Le chemin C
1
= (x
0
, x
1
, ..., x
p1
, x
p
, x

1
, x

2
, ..., x

r
, x
q
, x
q+1
, ..., x
n
),
obtenu en remplacant C par C

dans C
0
, est alors strictement plus
CHERTIIGI-GI () Thorie des graphes May 3, 2012 0 / 0
court que C
0
, ce qui est absurde.
Proprit2:
S il existe un plus court chemin entre deux sommets x et y, alors il existe
un plus court chemin lmentaire entre x et y.
Preuve:
Soit C
0
= (x
0
, x
1
, x
2
, ..., x
n1
, x
n
) un plus court chemin entre x = x
0
et y = x
n
. Si C
0
nest pas lmentaire, il existe deux indices p et q,
0 p < q n, tels quex
p
= x
q
.
Le sous-chemin C
1
= (x
p
, x
p+1
, ..., x
q1
, x
q
) est alors un circuit, et
cest aussi un plus court chemin daprs la proprit prcedente. Il est
donc au moins aussi court que le chemin trivial (x
p
), de valuation 0.
Si la valuation de C
1
est strictement ngative, alors C
1
est un circuit
absorbant, et il nexiste pas de plus court chemin entre x = x
0
et
y = x
n
, ce qui est absurde.
C

0
= (x
0
, x
1
, ..., x
p1
, x
p
, x
q+1
, x
q+2
, ..., x
n1
, x
n
)
Si la valuation de C
1
est nulle, le chemin
C

0
= (x
0
, x
1
, ..., x
p1
, x
p
, x
q+1
, x
q+2
, ..., x
n1
, x
n
) a la meme
longueur que C
0
, cest donc encore un plus court chemin. On construit
CHERTIIGI-GI () Thorie des graphes May 3, 2012 0 / 0
ainsi un plus court chemin lmentaire entre x = x
0
et y = x
n
.
Distance en nombre darcs:
Cest un cas particulier de calcul de distance, dans le cas ou tous les arcs
sont de valuation 1.
Etant donn un sommet initial x, on cherche dterminer d(x, y) pour
tout sommet y.
Principe :
Un sommet y est distance n de x si :
1- il existe un chemin de longueur n de x y
2- il nexiste pas de chemin de longueur strictement infrieure n de x
y.
Ces deux conditions peuvent se recrire :
1- y est le successeur dun sommet distance n 1 de x.
2- la distance de x y nest pas plus petite que n.
Distance en nombre darcs : algorithme:
Lalgorithme est similaire lexploration en largeur dun graphe.
On construit deux familles densemble de sommets :
Si : ensemble des sommets distance i de x
CHERTIIGI-GI () Thorie des graphes May 3, 2012 0 / 0
Ri : ensemble des sommets distance plus grande que i de x.

Initialisation :
S
0
= {x}
R
0
= S\{x}
i = 0
rpter
S
i +1
= G(S
i
) R
i
R
i +1
= R
i
\S
i +1
i i + 1
jusqua ce que S
i +1
= ou R
i +1
=
On utilise la notation
G(S
i
) =
sS
i
G (s) = {successeurs des lments de S
i
}
Exemple:
CHERTIIGI-GI () Thorie des graphes May 3, 2012 0 / 0
S
0
= {A}, R
0
= {B, C, D, E, F, G, H}
S
1
= {B, G}, R
1
= {C, D, E, F, H}
S
2
= {F, H}, R
2
= {C, D, E}
S
3
= {C, D}, R
3
= {E}
S
4
= {E}, R
4
=
d(A, B) = 1, d(A, C) = 3, d(A, D) = 3, d(A, E) = 4,
d(A, F) = 2,
d(A, G) = 1, d(A, H) = 2
Plus court chemin en nombre darcs:
Une fois connues les distance de x s pour tout sommet s, on peut
CHERTIIGI-GI () Thorie des graphes May 3, 2012 0 / 0
dterminer les plus courts chemins.
Pour trouver un plus court chemin de x y, on part de la n :
on cherche un prdcesseur p de y tel que
d(x, y) = d(x, p) + 1
(ou tous les prdcesseurs vriant cette condition si on cherche tous les
plus courts chemins)
on recommence en partant de p
Remarque : Si la distance de x y est bien dnie, on a toujours
d(x, y) d(x, p) + 1
pour tout prdcesseur p de y, et il existe au moins
un prdcesseur pour lequel il y a galit.
Exemple:
CHERTIIGI-GI () Thorie des graphes May 3, 2012 0 / 0
d(A, B) = 1, d(A, C) = 3,
d(A, D) = 3, d(A, E) = 4,
d(A, F) = 2, d(A, G) = 1,
d(A, H) = 2
Un plus court chemin de A E est :A B F C E.
Principe des algorithmes dans le cas gnral:
Etant donns un graphe valu G = (S, U, v) et un sommet x
0
, on veut
dterminer pour chaque sommet s la distance et un plus court chemin de
x
0
s.
Les algorithmes de recherche de distance et de plus court chemin dans un
CHERTIIGI-GI () Thorie des graphes May 3, 2012 0 / 0
graphe valu fonctionnent de la faon suivante.
On calcule les distances d(x
0
, s) par approximations successives. A un
stade donn de lalgorithme on dispose destimations d(s)
(ventuellement gales +) pour ces distances, et de la donne
dun prdcesseur P(s) pour les plus courts chemins.
A chaque tape, on considre un sommet x et un successeur y de x.
On compare la valeur d(y) celle que lon obtiendrait en passant par
x, cest--dire d(x) +v(x, y).
Si cette deuxime valeur est plus petite que d(y), on remplace
lestimation d(y) par d(x) +v(x, y) et le pre P(y) par x.

CHERTIIGI-GI () Thorie des graphes May 3, 2012 0 / 0


Plus courts chemins partir dun sommet

Relaxation
Relaxation de larc x, y
Si valeursommet[y] > valeursommet[x] +l (x, y)
Alors
valeursommet[y] = valeursommet[x] +l (x, y)
Pr edecesseur [y] = x
Pr-algorithme de Dijistra:
Les distances sont supposes positives
Un ensemble CS (controle des sommets) initialis S(tous les sommets)
les valeurs de valeursommet[s] sont initialises sauf
:valeursommet[Origine] = 0 .
Tant que CS non vide :
Soit r llment de CS ayant un valeursommet[r ] minimal
Pour tout arc a = (r , .) dorigine r Faire
Relaxation(a)
Supprimer r de CS.
CHERTIIGI-GI () Thorie des graphes May 3, 2012 0 / 0
-
Remarques:
lorsquun sommet s quitte CS on ne peut pas trouver un chemin plus
court entre Origine
et s par la suite.
Si le chemin le plus court entre Origine et s passe par r , alors il est
compos dun chemin le plus court entre Origine et r et dun plus court r
et s.

Lalgorithme de Dijkstra trouve son utilit dans le calcul des itinraires


routiers.
Le poids des arcs pouvant tre la distance (pour le trajet le plus court), le
temps estim (pour le trajet le plus rapide), le plus conomique (avec la
consommation de carburant et le prix des pages).
Une application des plus courantes de lalgorithme de Dijkstra est le
protocole open shortest path rst qui permet un routage internet trs
ecace des informations en cherchant le parcours le plus ecace.
Les routeurs IS-IS utilisent galement lalgorithme.
CHERTIIGI-GI () Thorie des graphes May 3, 2012 0 / 0
-
Algorithme (version simple)
Notations dabord:
Pour un graphe orient G (S, U) , trouver les plus courts chemins
partir dun sommet de dpart s S vers tous les autres sommets.
ST :ensemble des sommets traits.
l (r ) , r S : longeur du plus court chemin de s r qui ne passe pas
par des sommets de ST.
A chaque itration
-on choisit le sommet non-trait le plus proche de ST
-on lajoute ST
-on met jour les l de ses voisins
Lalgorithme:
ST
Pour r S Faire
l (r )
nPour
l (s) 0
CHERTIIGI-GI () Thorie des graphes May 3, 2012 0 / 0
Tant que (ST = S)
r argmin{l (v) : v / ST}
ST ST {r }
Pour w voisins(r ) Faire
l (w) min{l (w) , l (r ) +valuation
rw
}
nPour
nTantQue
les problmes doptimisation de rseaux
(routiers, tlcommunications),
certaines mthodes de traitement numrique du signal, de codage et
de dcodage de linformation,
les problmes de labyrinthe.
...etc....
La formulation du problme Etant donn un graphe orient G = (X, A),
on associe chaque arc a A (ensemble des arcs)
un nombre l (a) R
appel longueur de larc. On dit alors que G est valu par les
longueurs l (a). Si a = (i , j ), on utilisera galement la notation l
ij
pour la
longueur de larc a.
CHERTIIGI-GI () Thorie des graphes May 3, 2012 0 / 0
Le problme du plus court chemin entre deux sommets i et j sera de
trouver un chemin
(i , j ) de i et j dont la longueur totale
l () =

a(i ,j )
l (a) a (i , j ) l (a) soit minimum.
l (a) peut etre un cout de transport sur larc a, ou
les dpenses de construction de larc
a, comme le temps ncessaire pour parcourir larc a, etc...
Rsolution dans le cas o toutes les longueurs seraient positives.
Lalgorithme prsent est le trs clbre algorithme de Moore-Dijkstra.
Algorithme de MOORE-DIJKSTRA :
Les donnes:
-un graphe dont les arcs sont valus par des nombres positifs,
- un sommet s racine du graphe partir duquel on veut dterminer les
plus courts chemins aux autres sommets,
- pour chaque sommet x deX, lensemble succ(x) de ses successeurs.
Posons X = {1, 2, ..., n}. Soit l
ij
la longueur de larc (i , j ) si (i , j ) A.
Dnissons pi

(i )comme la longueur minimum des chemins


du sommet 1 au sommet i ;
CHERTIIGI-GI () Thorie des graphes May 3, 2012 0 / 0
en particulier pi

(1) = 0.
Lalgorithme procde en n 1 itrations. Au dbut de chacune des
itrations, lensemble des sommets est partitionn en deux
sous-ensembles S et S = X\S.
Le sous-ensemble S (initialis {1})
contient les sommets dnitivement marqus, cest--dire les sommets
pour lesquels la marque pi (i ) reprsente eectivement la longueur du
plus court chemin entre le sommet 1 et le sommet i .
Le complmentaire S contient tous les sommets ayant une marque
provisoire dnie
par :k S : pi (k) = min
kS
1
k
(pi (i ) +l
ik
).
Algorithme (Moore-Dijkstra)
Lalgorithme de Dijkstra-Moore utilise une stratgie gloutonne lorsquil
choisit le sommet le moins couteux chaque tape. On dmontre que
dans le cas de cet algorithme, cette stratgie conduit un rsultat global
optimal.
Recherche du plus court chemin entre deux sommets dans un graphe
longueurs positives.
CHERTIIGI-GI () Thorie des graphes May 3, 2012 0 / 0
Algorithme Moore Dijistra:
Recherche du plus court chemin entre deux sommets dans un graphe
a longueurs positives.
Etape 1: Initialisations
S = {2, 3, 4, ..., n}
pi (1) = 0
pi (i ) =
_
l
1i
si i Succ (1)
+ sinon
Etape2: Selection du min:
pi (j ) = min
kS
(pi (k))
faire S S/ {j } (retirer j )
si S = alors arret.
Etape3: Entre du court chemin:
Faire pour tout i S Succ(j )
pi (i ) min (pi (i ); pi (j ) +l
ji
)
Retourner ltape 2
Exemple: Soit le graphe orient suivant:
CHERTIIGI-GI () Thorie des graphes May 3, 2012 0 / 0
Les itrations de lalgorithme prcdent sont les suivantes :
On indique chaque fois et au dpart entre parenthses ltape utilise:
(Etape1)S = {2, 3, 4, 5, 6},
Traitement du sommet 1:
pi (1) = 0,
pi (2) = 7,
pi (3) = 1,(sommet 3 suivant de 1 dans le plus court chemin)
pi (4) = pi (5) = pi (6) =
CHERTIIGI-GI () Thorie des graphes May 3, 2012 0 / 0
Traitement du sommet 3:
(Etape2) j = 3, S = {2, 4, 5, 6}
(Etape3)S (3) = {2, 5, 6},
pi (2) = min(7, 1 + 5) = 6,
pi (5) = min(, 1 + 2) = 3,(sommet 5 suivant de 3 dans le plus court
chemin)
pi (6) = min(, 1 + 7) = 8
Traitement du sommet 5:
(Etape2) j = 5, S = {2, 4, 6}
(Etape3) S (5) = {2, 4},
pi (2) = min(6, 3 + 2) = 5,(sommet 2 suivant de 5 dans le plus court
chemin)
pi (4) = min(, 3 + 5) = 8
Traitement du sommet 2:
(Etape2) j = 2, S = {4, 6}
(Etape3) S (2) = {4, 6},
pi (4) = min(8, 5 + 4) = 8,
pi (6) = min(8, 5 + 1) = 6(sommet 6 suivant de 2 dans le plus court
chemin)
CHERTIIGI-GI () Thorie des graphes May 3, 2012 0 / 0
Traitement du sommet 6:
(Etape2) j = 6, S = {4}
(Etape3) S (6) =
(Etape2) j = 4, S =
Les longueurs des plus courts chemins seront donc :
pi (1) = 0,
pi (2) = 5,
pi (3) = 1,
pi (4) = 8,
pi (5) = 3
et pi (6) = 6.
On rappele que pi (s) dsigne le plus court chemin en valeur du
sommet racine 1 au sommet s.
Pour connaitre litinraire du plus cours chemin, il faut mmoriser les
sommets de ce parcours.
Dans notre exemple, le chemin selection est form des sommets:
(1) , (3) , (5) , (2) , (6) .
Remarque:
-Le chemin le plus court depends de lorientation des arcs et de leurs
valuations.
CHERTIIGI-GI () Thorie des graphes May 3, 2012 0 / 0
-Le noeud suivant traiter est celui correspondant la plus petite
tiquette.
Exemple2:

Pour la dtermination des plus courts chemins entre toutes les


paires de sommets (on se place toujours dans la situation ou les
valuations sont toutes positives).
On peut,utiliser lalgorithme prcdent, mais il est faible devant ce
genre de problme. On utilise de prfrence un algorithme li aux
mthodes matricielles: Lalgorithme de Floyd.
Notons L = (l
ij
) la matrice n n dont le terme (i , j ) est gal la
longueur de larc (i , j ) si
(i , j ) A et+ sinon (pour les termes diagonaux, on pose l
ii
= 0).
Pour 1 k n, notons L
(k)
= (l
(k)
ij
) la matrice dont le terme (i , j )
reprsente la longueur minimale dun chemin dorigine i et dextrmit
j , et astreint la condition que tous les sommets intermdiaires
appartiennent au sous-ensemble {1, 2, ..., k}.
Pour k = 0, on a L
(0)
= L, puisque l
ij
est la longueur du chemin direct
(unique) entre i et j (sans sommet intermdiaire). On remarque alors
que les matrices L
(k)
sont lies par la relation de rcurrence :
l
(k)
ij
=min(l
(k1)
ij
, l
(k1)
ik
+l
(k1)
kj
)
CHERTIIGI-GI () Thorie des graphes May 3, 2012 0 / 0
En eet, deux situations peuvent se produire suivant que le plus court
chemin de i j sommets intermdiaires dans {1, 2, ..., k} emprunte le
sommet k ou non.
Dans le premier cas, ce chemin est form dun sous-chemin entre i et
k, suivi dun sous-chemin entre k et j , chacun ne pouvant utiliser
comme sommets intermdiaires que des sommets de {1, 2, ..., k 1} et
devant etre de longueur minimale. On doit donc avoir
l
(k)
ij
= l
(k1)
ik
+l
(k1)
kj
.
Dans le second cas, on doit videmment avoir l
(k)
ij
= l
(k1)
ij
.
La matrice L
(n)
, donnant lensemble des valeurs des plus courts
chemins dans le graphe, pourra donc etre determine en n tapes de
rcurrence partir de la relation prcdente.
Algorithme:(FLOYD):
Recherche de la matrice des plus courts chemins dans un graphe
longueurs positives.
Pour Pour k de 1 n
Pour tout i et j de 1 n faire
l
ij
= min(l
ij
, l
ik
+l
kj
)
Remarque: Comme pour lalgorithme prcdent, si lon souhaite, en
plus de la longueur des chemins, exhiber explicitement le chemin, on
CHERTIIGI-GI () Thorie des graphes May 3, 2012 0 / 0
mettra jour, au fur et mesure de lintroduction dun
nouveau sommet k, une matrice de prdcesseurs.

Les programmes en matlab et C:


EN TP

CHERTIIGI-GI () Thorie des graphes May 3, 2012 0 / 0

You might also like