2. §Graphe : c'est un ensemble de sommets et d'arêtes noté: G=(X,U)
§Arc(orienté)/Arête(non-orienté) : un couple/une paire de {x,y} tel
que x,y ∈ X
§Chaîne/Chemin : une séquence alternée de sommets et
d'arêtes/arcs de la forme { S0U1S1 , . . ., Sq-1UqSq }
§Cycle/Circuit: c’est une chaîne/circuit fermé.
§"
+
$ est l’ensemble des descendants de x.
§"
−
($) est l’ensemble des prédécesseurs de x.
§Deux entités sont dans le même ensemble: adjacence
§Deux entités sont dans des ensembles différents : incidence.
1
3. TH1: ∑)*
+
$ = ∑)*
−
$ = |-|
Démonstration:
Tout arc a exactement une extrémité initiale
Tout : aucun ne sera pas compté
Exactement : aucun arc ne peut être compté deux fois
Corollaire 1: ∑$∈. )*($) = /|-|
Démonstration : ∑$∈. )*($) = ∑)*
+
$ + ∑)*
−
$
= |U| + |U| = 2|U|
Corollaire 2: Card(x∈X / dg(x)=impair) = pair
Démonstration : ∑$∈. )*($) = 2|U| ⇔ ∑4567 )*($) + ∑684567 )*($)= pair
⇔ ∑684567 )*($)= pair
⇔ Card(x∈X / dg(x)=impair) = pair 3
4. Définition 7:
Sous-graphe engendré par =∁. : restriction sur les sommets
Graphe partiel engendré par ?∁- : restriction sur les arêtes
Sous-graphe partiel engendré par =∁. et ?∁- : restriction sur les
sommets + arêtes
§ Chaîne simple : Pas de répétition des arêtes
Simple + Traverse toutes les arêtes = Chaîne Eulérienne
§ Chaîne élémentaire : Pas de répétition des sommets
Elémentaire + Traverse tous les sommets = Chaîne Hamiltonienne
§ Chaîne élémentaire ⟹ chaîne simple
4
5. Connexité:
On définit une composante connexe dans un graphe G=(X,U) :
§ Tout sommet isolé
§ Tout sous-graphe G’=(A,U) tel que: ∀$, C ∈ = ∃ une chaine entre x et y.
§ Nombre de connexité p = Card(composantes connexes) [1≤p≤Card(X)].
§ Graphe connexe ⇔ p=1
§ h-connexité/h-arc connexité: la suppression de (h-1) sommets/arcs
n’affecte pas la connexité du graphe
§ La connectivité = Max(h) tel que G=(X,U) est h-connexe/h-arc connexe.
5
6. Forte Connexité ( Graphe orienté):
On définit une composante fortement connexe dans un graphe orienté
G=(X,U) :
§ Tout sommet isolé
§ Tout sous-graphe G’=(A,U) tel que: ∀$, C ∈ =, ∃ un chemin de x à y et un
chemin de y à x.
§ Les sommets d'un circuit appartiennent à la même composante fortement
connexe.
§ Dans un graphe réduit on ne représente que p sommets chacun représente
une composante fortement connexe et les accès qu'on a .
6
7. E
⋯
E
⋮
⋱
⋮
E ⋯ E
Adjacence (non-orienté):I
$ = J K6 LMN 577êP N$6KPN NM 6 NP Q
$ = R K6MSM
1 . . . . j . . . . n
i
E
⋯
E
⋮
⋱
⋮
E ⋯ E
Incidence:T
$ = J K6 UN Q − è8N 57W KS7P )L KS88NP 6
$ = −J K6 UN Q − è8N 57W 5776XN 5L KS88NP 6
$ = R 5LP7N8NMP
1 . . . . j . . . . n
i
E
⋯
E
⋮
⋱
⋮
E ⋯ E
Adjacence (orienté):I
$ = J K6 LM 57W N$6KPN )N 6 à Q
$ = R K6MSM
1 . . . . j . . . . n
i
7
8. § Algèbre de boule:
1 ⊕1=1 1 × 1=1
1 ⊕0=0 ⊕1=1 1 ×0=0 ×1=0
0 ⊕ 0=0 0 ×0=0
§ .4 = $6Q
4: I
$ = J K6 LMN Wg5îMN N$5WPN8NMP )N USM*NL7 4 N$6KPN NMMP7N 6 NP Q
$ = R K6MSM
§ [j = . ⊕ ./ ⊕ ⋯ ⊕ .M − J]Si j6Q = J alors une chaîne entre i et j existe.
E
⋯
E
⋮
⋱
⋮
E ⋯ E
Matrice Associée M=[mi
j] (orienté): mi
j=Card({u∈U/ xi=I(u), xj=T(u)}
1 . . . . j . . . . n
i
8
9. § L' arbre est une notion non-orientée.
§ Un arbre est un graphe connexe sans cycle
§ On appelle forêt un graphe dont chaque composante connexe est un
arbre
Remarque importante préliminaire :
Soit un graphe G=(X,U) avec Card(X) = n et p composantes connexes:
Si on rajoute une arête:
§ Dans une composante connexe: p restera le même + formation d’un
nouveau cycle .
§ Entre deux composantes connexes: p se décrémente de 1 + pas de
formation d’un nouveau cycle.
Théorème 1:
§ G est connexe donne |U|≥ n-1
§ G est sans cycle donne |U|≤ n-1
9
10. 10
Démonstration Th1:
§ G est connexe ⟹|U|≥ n-1
Soit G=(X,U) un graphe connexe qui contient n sommets. Si on enlève toutes
les arrêts du graphe, nous auront n composantes connexes (p=n).
On sait que si on remet une arrêt entre 2 composantes connexes, p
décrémente de 1. On remet les arrêts une par une.
Pour que le graphe soit connexe, nous avons besoin au minimum de n-1
itérations. Ce qui veux dire que |U|≥ n-1.
§ G est sans cycle ⟹|U|≤ n-1
Soit G=(X,U) un graphe non connexe (p=k≥2) sans cycle qui contient n
sommets . Si on enlève toutes les arrêts du graphe, nous auront n
composantes connexes (p=n).
D’après la remarque préliminaire, pour que le graphe soit sans cycle, nous
avons besoin de n-k itérations au plus car sinon on va créer des cycles.
Ce qui veux dire que |U|≤ n-k ≤ n-1.
11. Théorème 2:
§Soit G = ( X, U ) un graphe tel que Card(X)=n ≥ 2. Les
propriétés suivantes sont équivalentes et caractérisent un
arbre :
va) G est connexe et sans cycle .
vb) G est sans cycle et comporte (n - 1) arrêts.
vc) G est connexe et comporte (n - 1) arrêts.
vd) G est sans cycle et maximal pour cette propriété
(si on ajoute un arc à G, on crée un cycle )
ve) G est connexe et minimal pour cette propriété
(si on supprime un arc de G, il n'est plus connexe )
vf) Tout couple de sommets de G est relié par une chaine
élémentaire unique.
11
12. 12
Démonstration Th2: Soit G=(X,U) un graphe de n sommets.
§ 5 ⟹ }) d’après le théorème 1 nous avons:
G est connexe donc |U|≥ n-1, et G est sans cycle donc |U|≤ n-1
D’où |U|=n-1. Donc G est sans cycle et comporte (n-1) arrêts.
§ } ⟹ W) Par absurde. On suppose que G est sans cycle, comporte n-1 arrêts
et non connexe.
Donc p ≥ 2. D’où si on rajoute un arc entre 2 composantes connexe, on a
toujours G sans cycle avec n arrêt. Absurde selon théorème 1.
§ W ⟹ )) Par absurde. On suppose que G est connexe, maximal, comporte n-1
arrêts et possède un cycle.
Donc si on supprime une arrêt du cycle, on a toujours G connexe avec n-2
arrêts. Absurde selon théorème 1.
§ ) ⟹ N) Par absurde. On suppose que G est sans cycle, maximal, non
connexe et minimal.
Donc p ≥ 2. D’où si on rajoute un arc entre 2 composantes connexe, on a
toujours G sans cycle. Absurde avec G maximal.
13. 13
§ N ⟹ ~) Par absurde. On suppose que G est connexe Et minimal.
On suppose que entre n’importe quel 2 sommets de G il existe au moins 2
chaînes élémentaires.
Sois xp le premier sommets où les 2 chaînes élémentaires se séparent. Sois xq
le premier sommet où les 2 chaînes élémentaires se rejoignent.
Donc nous avons un cycle élémentaire dans G. d’où si on supprime une arrêt
de ce cycle le graphe reste connexe. Absurde avec G minimal.
§ ~ ⟹ 5) On suppose que entre n’importe quel 2 sommets de G il existe au
moins 2 chaînes élémentaires.
Puisque entre n’importe quel 2 sommets de G il existe une chaine donc G est
connexe.
Puisque il existe une seule et unique chaine élémentaire. Donc il n’y a pas de
cycle. D’où G est sans cycle
14. Théorème 3:
Soit G = ( X , A ) un arbre, G admet au moins 2 sommets pendant
§ Démonstration: K={k ∈ N/ ∃ une chaîne simple entre x et y de longueur k } avec (x,y) ∈
X
K ≠ Ø et K ⊂ N car G arbre, donc il admet un plus grand élément L. Soit C la chaîne de
longueur L alors qui lie x et y.
On affirme que x et y sont pendants , car sinon il y a une autre arrêt adjacente à y ou à x :
Soit elle est vers un autre sommet ce qui contredit le fait que C est la plus longue .
Soit elle est vers un sommet déjà visité = existence d'un cycle, ce qui contredit le fait que
G est un arbre.
Donc on a exactement 2 sommets pendants .
R 3 : Une forêt à p composantes connexes possède ( n – p) arcs .
Théorème 4 :
Soit G = ( X , A ) un arbre, si on ajoute à A un arc u , le graphe
G' = ( X , A∪ {u } ) contient un cycle et un seul. Ce cycle est appelé cycle fondamental
relativement à G. 14
15. 15
Interprétation :
On a un arbre est un graphe sans cycles maximal. Donc si on ajoute une arête,
le graphe G' contiendra un cycle et un seul car d'après la caractérisatin e)
entre deux sommets d'un arbre il y a une unique chaine élémentaire
Démonstration Th4:
On a G un arbre. Donc entre n’importe quel 2 sommets, il existe une seule et
unique chaîne élémentaire.
Donc si on ajoute une arrêt, on va former juste un cycle car sinon il existe une
autre chaîne élémentaire entre ces 2 sommets ce qui est faux.
§ Une racine s ⟺ ∀‚ ∈ =, ∃ un chemin de s à z
§ Une arborescence = arbre + racine + orientation
16. vLe poids d’un graphe G est égale à la somme des poids des arcs qui
constituent ce graphe.
vLe problème de l'arbre de poids minimum du graphe G consiste sur la
recherche d'un graphe partiel qui soit un arbre et pour lequel la somme
des poids des arcs est minimum.
v De tout graphe simple on peut extraire un arbre
vLe nombre d'arbres qu'on peut extraire d'un graphe est inférieur ou
égal à Cn
m.
Nous dépendons sur 2 algorithmes différents pour résoudre ce problème
et qui sont:
KRUSKAL: Principe de fonctionnement + démonstration
PRIM: Principe de fonctionnement + démonstration 16
17. 17
vKRUSKAL: soit G(X,U) un graphe de n sommets
1) On enlève toutes les arrêts du graphe et on les tri dans le sens croissant
selon leurs poids
2) On remets les arrêt dans l’ordre croissant de façon à ne pas former de cycle
et on arrête une fois que nous avons remit n-1 arrêt
Démonstration: Soit T0 l’arbre théorique de poids minimal et T l’arbre obtenue
par l’algorithme de KRUSKAL.
Notons T: e1,e2,…..,en-1 (solon l’ordre d’entrée à T)
Si T≡T0 c’est terminé
Sinon soit ei le 1er arrêt de T tel que N6 ∉ …R
Rajoutons ei à T0 d’où la création d’un cycle C dans T0
∃N ∈ † P‡ N ∈ …R NP N ∉ …. On prends donc T’=…R ∪ {N6} ∕ {N}
Puisque KRUSKAL n’a pas pris e donc sûrement p(ei)≤p(e)
Or on ne peut pas avoir p(ei)<p(e) car sinon p(T’)<p(T0) absurde avec T0 arbre de
poids minimal.
D’où p(ei)=p(e) ⟹ p(T’)=p(T0) .
18. 18
vPRIM: soit G(X,U) un graphe de n sommets
1) On choisit un sommets quelconque du graphe, on choisis l’arrêt de
poids minimal entre les arrêts incident à ce sommet.
2) On contracte le graphe selon cette arrêt
3) On refait cette démarche jusqu’à avoir un seul sommet dans le
graphe
Démonstration: Soit T0 l’arbre théorique de poids minimal et T l’arbre
obtenue par l’algorithme de PRIM.
Si Ux∈T0 c’est terminé (Ux une arrêt de T)
Rajoutons Ux à T0 d’où la création d’un cycle C dans T0
∃X ∈ † P‡ X ∈ …R NP X ∉ …. On prends donc T’=…R ∪ {-$} ∕ {X}
Puisque PRIM n’a pas pris Ux donc sûrement p(Ux)≤p(v)
Or on ne peut pas avoir p(Ux)<p(v) car sinon p(T’)<p(T0) absurde avec T0
arbre de poids minimal.
D’où p(Ux)=p(v) ⟹ p(T’)=p(T0) .
19. vLe problème du plus court chemin entre deux sommets s et z
consiste sur la recherche d’un chemin dont la longueur soit
minimum.
R1: Plus cours chemin dans (X,U,d) ⇔ plus long chemin dans (X,U,-d)
§ La longueur d’un chemin C égale à la somme des longueurs des arcs
qui constituent le chemin. Soit l( C )
§ Convention : Un chemin C qui ne comporte aucun arc verifie l( C )=0
§ Un circuit absorbant: un circuit C dont l( C )< 0.
Théorème 1: existence du plus court chemin de s à z dans (X,U,d) est
équivanlente à:
i-Y={"
+
K ∩ "
−
(‚)} ≠ Ø
ii- (Y,U,d) ne contient pas de circuit absorbant.
19
20. 20
Démonstration Th1:
§ ⟹) Supposons qu’on a un plus court chemin entre i et j
donc j’ai un chemin entre i et j d’où i-
ii- est un résultat evident (condition nécessaire d’un plus court chemin)
§ ⟸) Supposons qu’on a i- et ii-
En particulier i- donc il existe un chemin de i à j
Soit C0 un chemin élémentaire de longueur minimum
Si C0 est un plus court chemin de i à j c’est terminé
Sinon soit C’ un chemin de i à j parmi ceux ayant une longueur l(C’) < l(C0) et ayant le plus
grand nombre d’arcs
donc C’ est non élémentaire ⟹ il existe au moins un sommet qui se répète
soit Z0 le premier sommet qui se répète quand je parcours C’ de i à j
Soit alors le chemin C”= (C’1-Z0-C’2) de i à j
Donc C” à moins d’arcs que C’ . donc l(C”) ≥ l(C0) > l(C’)
C’=C” ∪ µ donc l(C’)-l(C”)=l(µ) < 0 Absurde avec ii-
21. Théorème 2: toute portion C’ d'un plus court chemin C est elle même un
plus court chemin.
Démonstration Th2: Par absurde. Soit C un plus court chemin entre s et z et
on suppose que la portion C’ liant x et y n’est pas un plus court chemin
Donc ∃†/ un plus court chemin entre x et y
Soit U1 la portion de C lian s à x
Soit U2 la portion de C liant y à z
Donc l(C)= l(U1-C’-U2)
= l(U1)+l(C’)+l(U2)
≥ l(U1)+ l(†/)+l(U2)
≥ l(K) (avec K=U1- †/-U2)
Absurde avec C plus court chemin entre s et z
21
22. 22
Théorème 3: (X,U,d) de racine s et sans circuit absorbant. On a
i- Œ K = R
ii- ∀L ∈ -, Œ …(L) − Œ • L ≤ )(L)
Les potentiels Œ sont la borne inferieur au longueurs des plus courts
chemin de s à x (∀$ ∈ .)
Démonstration Th3:
§ ⟹) Soit c le plus court chemin de s à I(u)+{u}.
Et on prend le plus court chemin de s à T(u) donc l(c)≥π(T(u))
π(I(u)) + d(u) ≥ π(T(u))
π(T(u)) - π(I(u)) ≤ d(u)
§ ⟸) soit un sommet z du système et C n’importe quel chemin de s à z
on a l(C)=∑d(Ui) ≥ ∑ [ π(T(Ui)) - π(I(Ui)) ] ( télescopage)
donc l(C) ≥ π(z) - π(s) d’où: l(C) ≥ π(z)
23. 23
Théorème 4: (X,U,d) sans circuit absorbant et de racine s. ∀$ ∈ =, une
condition nécessaire et suffisante pour que • représente le plus court chemin
de s aux autres sommets est:
i- • K = R
ii- ∀L ∈ -, • …(L) − • • L ≤ )(L)
iii- U’={L ∈ -/ • … L − • • L = )(L)} admet le sommet s comme racine
Démonstration:
§ ⟹) Il suffit de montrer qu’un plus court chemin C de s à z est totalement
dans U’
Par absurd. Soit z un sommet et C un plus cours chemin de s à z.
On a π(T(u)) - π(I(u)) ≤ d(u) et u appartient à U (d’après théorème 3)
On suppose alors que ∃L ∈C tq L ∉ U’. Donc:
π(T(u)) - π(I(u)) < d(u) donc π(T(u)) < d(u) + π(I(U))
Absurde avec C le plus court chemin de s à z. (d’après théorème 3)
§ ⟸) ∀‚ ∈ ., ∃ un chemin C totalement dans U’
l(C) = ∑d(Ui) = ∑ [ π(T(u)) - π(I(u))] ( télescopage)
l(C) = π(z) - π(s) d’où: l(C) = π(z).
24. Pour la résolution du problème du plus court chemin, nous nous
appuyons sur 3 algorithmes qui sont:
1) BELLMAN: Conditions +Principe de fonctionnement
2) DIJIKSTRA: Conditions + Principe de fonctionnement
3) DIJIKSTRA GÉNÉRALISÉ: Conditions + Principe de
fonctionnement
24
25. 25
vBELLMAN: Appliqué sur un réseau G=(X,U,d) sans circuit et de
racine s tq "
−
K = ∅. Soit ‘ l’ensemble des sommets dont on a
calculé les plus courtes distances. On initialise notre
algorithme par • ’ = R, 46XSP = K et ‘ = K
1) On actualise tout les • $ tel que ($ = … L NP • L = 46XSP) par
la relation • $ = • • 46XSP + )(L)
2) On choisis un nouveau sommet x comme pivot à condition
que "
−
$ ⊂ ‘ et $ ∉ ‘. Donc 46XSP = $ et ‘ = ‘ ∪ {$}
3) On boucle notre algorithme jusqu’à ce que ‘ = .
26. 26
vDIJIKSTRA: Appliqué sur un réseau G=(X,U,d) de racine s
vérifiant ) L ≥ R (∀L ∈ -). Soit ‘ l’ensemble des pivots. On
initialise notre algorithme par • ’ = R, • $ = +∞ (∀$ ∈ .),
46XSP = K et ‘ = K
1) On actualise tout les • $ tel que ($ = … L NP • L = 46XSP) par
la relation • $ = • • 46XSP + )(L)
2) On choisis un nouveau sommet x comme pivot à condition
que • $ =min • ‚ /‚ ∈ •. Donc 46XSP = $ et ‘ = ‘ ∪ {$}
3) On boucle notre algorithme jusqu’à ce que ‘ = .
27. 27
vDIJIKSTRA GÉNÉRALISÉ: Appliqué sur un réseau G=(X,U,d)
quelconque de racine s. Soit ‘ l’ensemble des pivots. On
initialise notre algorithme par • ’ = R, • $ = +∞ (∀$ ∈ .),
46XSP = K et ‘ = K
1) On applique DIJIKSTRA normal
2) On cherche une arrêt u dans l’arborescence obtenue par
DIJIKSTRA qui ne vérifie pas • …(L) − • • L ≤ )(L). Si elle forme un
circuit c’est surement un circuit absorbant donc on arrête.
Sinon on la met à la place de l’arrêt déjà prise qui ramène à
T(u) .
3) On actualise les • $ des descendants du sommet qui est le
T(u).
4) On boucle notre algorithme jusqu’à ce que ‘ = .
28. § Le nombre chromatique – est le nombre minimum pour lequel le
graphe G est coloriable
§ Le nombre chromatique d'un graphe G vérifie – — ≤ 7 + J où r est le
plus grand degré de ses sommets .
§ On ne peut colorer que des graphes sans boucle (mais s'il y en a, on
ne les considère pas).
§ Avec n sommets isolés on peut utiliser une seule couleur .
§ Les arbres peuvent être colorés par 2 couleurs.
§ On appelle k-coloration d'un graphe non-orienté sans boucle
G=(X,U) une partition de ses sommets sur k-sous-ensembles. Il n’y a
pas d'arêtes liant deux sommets du même sous-ensembles.
R1: Si on arrive à colorer un graphe avec k couleurs alors – — ≤ ˜.
28
29. vTrier les sommets dans l'ordre décroissant de leurs
degrés
vDonner au premier une couleur C1 et donner C1 à tous
les sommets qui peuvent la recevoir.
vPartir au sommet suivant selon l’ordre qui n’a pas de
couleur et lui donner une couleurs C2 et ainsi de suite
29