Documente Academic
Documente Profesional
Documente Cultură
Un peu dhistoire
Universit Mohamed Bachir El Ibrahimi pertinentis
Bordj Bou Arreridj
2eme anne Informatique
1852 En 1857
quatre couleurs suffisent-elles colorier une carte de Hamilton invente un jeu, The icosian
gographie de faon ce que deux pays limitrophes ne game, quil commercialise en 1859.
soient pas coloris de la mme couleur ? Le jeu est constitu dun dodcadre
dont les 20 sommets portent le nom
dune grande ville dans le monde.
Le but du jeu consistait trouver un
chemin sur les artes du dodcadre Hamilton (1805-1865)
permettant de visiter chaque ville
une fois et une fois seulement, en
Augustus de Morgan
(1806-1871) revenant la ville de dpart.
Mercure
Vnus
Nous sommes en 3002. Il existe un transport interplantaire entre
les neuf plantes du systme solaire. Des navires spatiaux assurent Pluton
Saturne
Uranus
le chou. Comment sy prend-il ?
Une personne
LL
LCC Chou
C Chou /// rien
Chou rien
rien Dans une runion de 5 personnes, combien de poignes de
mains sont changes ? On suppose que tout le monde salue
tout le monde Une poigne de
mains
Mme question avec 35 personnes.
LL
LCC /// Chou
C Chou
Chou LL
L Chou
Chou /// C
Chou C
C C
C Chou
C Chou /// L
Chou L
L
LL
L /// C
C Chou
C Chou
Chou C
C /// LL
C L Chou
Chou
Chou Chou
Chou /// L
Chou LC
L C
C
rien /// LL
rien
rien LCC Chou
C Chou
Chou Comptons donc les artes de ce graphe
Et les coups de pieds aux fesses ? Vocabulaire de base : Graphes, sommets, artes
Dfinition: Un graphe G (non orient) est constitu dun ensemble
Albert
S = {s1, s2, ..., sn} de points, appels sommets, et dun ensemble A
Edouard Bernar
Cest un graphe orient
Chap I = {a1, a2, ..., am} dartes, tels qu chaque arte ai sont associs
deux lments de S, appels ses extrmits, et que nous noterons
[sj , sk]i
sj et sk sont dits adjacents
nombre de coups de pieds donns = nombre de coups de pieds reus Dfinition: Un graphe est dit simple si deux sommets distincts sont
joints par au plus une arte et sil est sans boucle.
= nombre dartes (orientes)
23
Deux artes sont dites parallles lorsquelles ont mmes extrmits
24
Exemple : Considrons le graphe G1 dordre 4 dfini par : Exemple : Considrons le graphe G1 dordre 4 dfini par : Exemple : Considrons le graphe G1 dordre 4 dfini par :
S = {s1, s2, s3, s4} et A = {a, b, c, d, e} S = {s1, s2, s3, s4} et A = {a, b, c, d, e} S = {s1, s2, s3, s4} et A = {a, b, c, d, e}
tel quaux artes a, b, c, d, e soient respectivement tel quaux artes a, b, c, d, e soient respectivement tel quaux artes a, b, c, d, e soient respectivement
associs [s1, s1], [s1, s2], [s1, s2], [s1, s3], [s2, s3]. associs [s1, s1], [s1, s2], [s1, s2], [s1, s3], [s2, s3]. associs [s1, s1], [s1, s2], [s1, s2], [s1, s3], [s2, s3].
Une reprsentation possible de ce graphe est : Une reprsentation possible de ce graphe est : Une reprsentation possible de ce graphe est :
larte a est une boucle Le point s4 est un point isol ,
b et c sont des artes ayant mmes
extrmits, [s1, s2] est une arte multiple,
reprsentent aussi
le mme graphe
28 29 30
d ( x) 2 * A
x X
Cest un nombre pair
Edouard Bernar
Chaque arte du graphe incrmente de deux la somme des rgulier. Si le degr commun est k, alors on dit que le graphe
degrs. D'o le rsultat. est k-rgulier.
34 35 36
Chanes et cycles
Donner des exemples de: Graphe Connexe:
Une chane est une suite alterne de sommets et d'artes. Un graphe est connexe s'il existe pour chaque paire de sommet
Chane
La longueur dune chane est le nombre dartes qui la une chane reliant chacun des deux sommets.
composent. Longueur
Graphe non connexe
Un cycle est une chane dont les artes sont distinctes et dont Cycle V = { 1, 2, 3, 4, 5, 6 }
l'origine et l'extrmit sont confondues. Chane lmentaire E = { (1,3), (1,4), (2,3), (3,4), (5,6) }
Une chane est lmentaire si chaque sommet y apparat au plus
Chane simple
une fois. Cest un graphe 2 composantes connexes
Une chane est simple si chaque arte apparat au plus une fois.
37 38 39
(G) = m n + p 0
Soit le graphe G = (V, E) Graphe partiel de G
V' = V Soit le graphe G = (V, E)
De plus, (G) = 0 si et seulement si G est sans cycles. V = {v1, v2, v3, v4, v5}
E = {e1=(v1,v2), E' = {e1, e4, e5} V = {v1, v2, v3, v4, v5} Sous-graphe de G
(G) est appel le nombre cyclomatique. e2=(v2,v3), e3=(v1,v3), E = {e1=(v1,v2), V' = {v1, v3, v4, v5}
e4=(v3,v4), e5=(v3,v5)} e2=(v2,v3), e3=(v1,v3), E' = {e3, e4, e5}
Prononcer nu de G . e4=(v3,v4), e5=(v3,v5)}
H=(Y, B) est un graphe partiel de G= (V, E) ssi Y = V et B E
40 41
H = ( Y, B ) est un Sous graphe de G= ( V, E ) si Y V et B E 42
Soit le graphe G = (V, E) Soit le graphe G = (V, E) Une clique de G Soit le graphe G = (V, E)
V = {v1, v2, v3, v4, v5} V = {v1, v2, v3, v4, v5} V' = {v1, v2, v3} V = {v1, v2, v3, v4, v5} Un stable de G
Sous-graphe partiel de G E' = {e1, e2, e3} V' = {v1, v4, v5}
E = {e1=(v1,v2), V' = {v1, v2, v3, v4} E = {e1=(v1,v2), E = {e1=(v1,v2), E' = {}
e2=(v2,v3), e3=(v1,v3), E' = {e1, e4} e2=(v2,v3), e3=(v1,v3), clique un sous-graphe complet de G. e2=(v2,v3), e3=(v1,v3),
e4=(v3,v4), e5=(v3,v5)} e4=(v3,v4), e5=(v3,v5)} e4=(v3,v4), e5=(v3,v5)}
43 44 45
Matrices dincidence sommet-arc Matrices dincidence sommet-arte
Cest une matrice A, de taille n m. la matrice dincidence dun graphe non orient A est dfinie
On associe les sommets aux lignes, et les arcs aux colonnes. par:
Lcriture de cette matrice ncessite la numrotation des 1
arcs; 2
0
la matrice dincidence dun graphe orient A est dfinie par:
On a calcul ci-dessous les matrices M2 et M3. On a calcul ci-dessous les matrices M2 et M3.
Pour chacune de ces matrices, quoi correspondent les nombres Pour chacune de ces matrices, quoi correspondent les nombres Exercice:
obtenus? obtenus? Dcrivez les graphes ci-dessous par:
des matrices dincidences,
des matrices d'adjacences
et des listes d'adjacences.
M2 = M3 =
Thorme
Le coefficient gnral de Mk est le nombre de chemins (ou
chanes) de longueur k entre i et j.
52 53 54
Quelques types de graphes Graphe d'intervalles et graphe triangul 5. Graphes eulriens
Graphe biparti Un graphe est un graphe triangul si tout cycle de On dit qu'un graphe est eulrien s'il est possible de trouver
V = {1, 2, 3, 4, 5} longueur > 3 admet une corde, c'est dire une arte un cycle passant une et une seule fois par toutes les artes.
E = {(1,2), (1,4), (2,3), (2,5), (3,4), (4,5)} reliant deux sommets non conscutifs.
On dit qu'un graphe est semi-eulrien s'il est possible de
Soit une famille de segments (d'intervalles) d'une mme
droite du plan euclidien. trouver une chane passant une et une seule fois par toutes
les artes.
Proprit : le crayon (et sans passer deux fois sur le mme trait).
55
un graphe reprsentatif d'intervalles est triangul 56 57
Thorme
Un graphe non orient connexe possde une chane eulrienne
si et seulement si le nombre de sommets de degr impair est
Donner le graphe du problme des ponts de Knigsberg,
gal 0 ou 2.
Il admet un cycle eulrien si et seulement si tous ses sommets
ont un degr pair.
58 59
Graphes orients (digraphes) Soit un graphe orient G(X, E). Listes d'adjacences
On appelle cocycle d'un sommet l'ensemble des sommets qui
Un digraphe est fortement connexe, si toute paire lui sont adjacents ou l'ensemble des arcs qui lui sont incidents.
ordonne (a, b) de sommets distincts du graphe est On note:
relie par au moins un chemin. En d'autres termes,
tout sommet est atteignable depuis tous les autres
sommets par au moins un chemin.
On appelle composante fortement connexe tout Les cocycles sont des cocycles de sommets.
sous-graphe induit maximal fortement connexe Les cocycles sont des cocycles d'arcs.
Les deuximes se rvlent beaucoup plus utiles.
(maximal signifie qu'il n'y a pas de sous-graphe induit
Pour un 1-graphe, G peut tre parfaitement dtermin par (X,
connexe plus grand contenant les sommets de la ) , notation la base dune reprsentation informatique trs
composante). 67
utilise, les listes dadjacence 68 69
70 71 72
Parcours en largeur Exemple:
Parcours de graphes
1. partir d'un sommet donn, parcourir le graphe en largeur en
2. visiter tous les sommets successeurs. partant du sommet 1.
Les parcours peuvent se faire de deux sortes,
3. On rpte l'opration tant qu'il existe des sommets Le parcours en largeur de ce graphe
parcours en largeur non visits. donnerait la liste suivante :
1 2 3 4 6 5 7 8.
parcours en profondeur. Les informations prendre en compte :
Une autre solution serait la suivante:
Les graphes peuvent contenir des cycles. Un sommet dj visit ne doit pas tre revisit.
1 3 2 6 4 5 8 7.
On explore les sommets successeurs directs.
Elles sont toutes les deux valables.
Une file peut maintenir jour la liste des sommets
visiter.
73 74 75
On part du sommet 1, On recommence par le sommet 2, Pour identifier les sommets parcourus, on utilise le
On liste tous les sommets le seul successeur est le sommet 4, coloriage.
successeurs, On l'affiche et on le marque comme Gnralement, un sommet est blanc s'il n'a pas t
tant parcouru. parcouru et est noir dans le cas contraire.
Il s'agit donc des sommets
2 et 3. On passe au sommet 3, Initialisation:
Marquons les d'une couleur Son successeur est le sommet 6 Pour tous les sommets S du graphe faire
diffrente On l'affiche et on le marque S.couleur = blanc;
Le sommet 4 a deux successeurs,
le sommet 5 et le sommet 6.
On ajoutera seulement le sommet 5
la file des sommets parcourir.
76 77 78
. . .
82 83 84
Composantes connexes
Exercice: utiliser les algorithmes de parcours pour dterminer
Composantes-Connexes
Drouler lalgorithme pour les les composantes connexes d'un graphe.
exemples suivants: Partir d'un sommet
Rappel : les composantes connexes d'un graphe sont
les ensembles de sommets accessibles les uns depuis S'il nest pas colori alors
les autres. choisir une couleur
on utilise l'algorithme de parcours en profondeur appliquer parcours en profondeur en
d'abord et on colorie les sommets rencontrs avec marquant les sommets avec la couleur
une couleur correspondant la composante connexe
courante.
Refaire le mme algorithme sans rcursions;
85 86 87
Les arbres
Un arbre (non orient) !
C h a p II
Fin Chap I
Les arbres
Une arborescence (oriente) !
88 89 90
Les arbres Quelques dfinitions des arbres
Thorme
Dfinitions :
Un arbre est un graphe non orient dans lequel il existe une
Les dfinitions suivantes sont quivalentes: pour tout
Dfinition 6:
et une seule chaine entre toute paire de sommets. graphe G = (V, E) n sommets.
Un graphe est connexe minimal sil est connexe et na pas
Cette chaine sera donc simple, la plus courte, . . . 1. G est un arbre, plus dartes quaucun autre graphe connexe !
2. G est connexe et sans cycles, Lide: si nous enlevons une arte de la chaine unique,
Une arborescence est un graphe orient quasi-fortement
connexe tel quil existe un et un seul chemin orient de la 3. G est connexe et comporte n-1 artes, nous cassons la connexit!
racine vers tout autre sommet.
4. G est sans cycles et comporte n-1 artes, Dfinition 7:
Dabord, il ny a quune seule racine ! 5. chaque paire {u, v} de sommets distincts est relie par Un graphe est connexe minimal sil est connexe et
une seule chane simple (et le graphe est sans boucles). comporte n-1 artes.
On na pas de chemins multiples, ni de circuits !
Dfinition 8:
Un graphe est sans cycles, maximal sil est sans cycles et na
Les arbres dalgorithmique
pas moins dartes quaucun autre graphe sans cycles !
sont des arborescences ! 91 92 93
Tous les sommets sauf un ont un degr entrant unitaire. Nous aurons (n-1) artes. et qui a la proprit dtre un arbre.
Tout arbre peut tre transform en une arborescence en Nous navons pas de cycles !
95
94 96
Proprits :
Proprits : Proprits :
Nous prservons la connexit !
Nous prservons la connexit ! Nous prservons la connexit !
Nous navons pas de cycles !
Nous navons pas de cycles ! Nous navons pas de cycles !
Nous avons un nombre minimal dartes !
Nous avons un nombre minimal dartes ! Nous avons un nombre minimal dartes !
Le choix de lAR nest pas unique en gnral !
Le choix de lAR nest pas unique en gnral !
Un arbre de Un arbre de
Un autre arbre recouvrement ! recouvrement !
de recouvrement !
Un autre arbre
97 98
de recouvrement ! 99
Arbre de poids minimal ou arbre de recouvrement minimal Algorithme de Kruskal Algorithme de Kruskal
Problme : 1. Trier les arcs en ordre croissant de poids ;
1. Trier les arcs
Tracer larbre le plus court qui touche 2. Construire un arbre en slectionnant les arcs
tous les nuds, c--d. minimiser la selon lordre tabli ltape 1. { (3,4), (2,4), (4,5), (2,3), (1,3), (3,5), (1,2),
longueur totale des arcs contenus dans (5,6),(4,6) }
larbre.
1. Algorithme de Kruskal;
2. Algorithme de Prim
Thorme sur les coupes Thorme sur les coupes Thorme sur les coupes
Un arbre T* est un arbre de poids minimal, si
et seulement si il satisfait la condition Ici on a (i, j) = (2,4) et Poids de T* = (24 + 4)
(k, l) {(2,4), (3,4), (3,5)}
doptimalit suivante sur les coupes : (24 + 6) units
(24 + 7) units
(i, j) T* , ci,j ck,l pour chaque (k, l)
appartenant la coupe obtenue de llimination
de larc (i, j) de T*.
Thorme sur les coupes Thorme sur les coupes Thorme sur les chemins
Un arbre T* est un arbre de poids minimal, si et
seulement si il satisfait la condition doptimalit
suivante sur les chemins :
(k, l) G(V,E) tel que (k, l) T* , on a ci,j
ck,l pour chaque (i, j) appartenant au chemin sur
larbre T* reliant k et l.
3 8 3 8
5 5 a b S={s,a,b, c, d }
a b a b
3 S={s,a,b, c, d } 3 S={s,a,b, c, d }
0 5 0 Q={ d }
Q={ b, c, d } 5 Q={ b , d } s
s 1 1 s 1 1 d = {0, 3 , 8 , 4 , 9 }
1 3 d = {0, 3, 8 , 4 , } 1 3
5 5 d = {0, 3 , 8 , 4 , 9} = {nil , s , a , a , c }
c
5
d = {nil , s , a , a , nil } 5 = {nil , s , a , a , c} c d
c d
3 4 148 3 4 9 149 puis Q = 150
tape 2 relaxation de tous les arcs dans lordre : tape 1 relaxation de tous les arcs dans lordre : tape 2 relaxation de tous les arcs dans lordre :
(s,a) (s,c) (a,b) (a,c) (b,d) (c,a) (c,b) (c,d) (d,b) (d,s) (s,a) (s,c) (a,b) (a,c) (b,d) (c,a) (c,b) (c,d) (d,b) (d,s) (s,a) (s,c) (a,b) (a,c) (b,d) (c,a) (c,b) (c,d) (d,b) (d,s)
Examen de d inutile
Le Cardinal (Nombre d'lments) commun de toutes les bases Un cocycle c'est donc l'ensemble des arcs qui relient A aux
de cycles sera appel nombre cyclomatique et not . autres sommets du graphe; si on enlve les arcs du cocycle
on "dconnecte" A.
Cycle et cocycle sont des notions duales.
Dfinition : Un cocycle sera dit Le Cardinal (Nombre d'lments) commun de toutes les bases
lmentaire quand il est compos de cocycles sera appel nombre cocyclomatique et not
d'arcs reliant deux sous-ensembles
Soit un graphe G d'ordre n (n sommets) avec p composantes
de sommets connexes qui partitionnent
connexes: (G) = n - p.
une composante connexe du graphe
(donc tous les sommets en cas de
Et 3!
graphe connexe). Exercice:
1) Dterminer tous les cycles lmentaires
Le cocycle donn dans l'exemple n'est pas lmentaire parce 2) Extrayez-en une base
qu'il est compos d'arcs reliant {b, e} {a, c, d, f}
3) Dterminer tous les cocycles
{b,e} est connexe, lmentaires
ce n'est pas le cas de {a, c, d, f}. 4) Extrayez-en une base
Une coupe est une partition de l'ensemble des sommets en 2 Proprit : La deuxime proprit est donc que le flot net traversant une
parties disjointes, l'une contenant la source et l'autre le puit: Le flux de E F dans un flot f est : f (E, F ) f (u )
uExF coupe ne dpend pas de la coupe.
EF=A, EF= ; sE, tF et le flux orient de la coupe (E , F) ou ( flot net traversant la coupe )
est: Tout flot a pour valeur Vf = f( {s}, X\{s} ) = ( {s}, X\{s} ).
| f | ( E , F ) f ( E , F ) f ( F , E )
Lemme: Plus gnralement Vf = ( E, F) pour toute coupe.
La capacit C(E, F) d'une coupe est la somme des capacits des C(E, F) = 12+14 = 26
arcs de E a F. | f | est infrieur la capacit de n'importe quelle coupe.
f(E, F) = 12+11 = 23
(E, F) = | f | = (12+11) - 4 = 19
Le flot maximum et la coupe minimum pour chaque arc a = uv, f(a) c(a), on peut augmenter le flot Le graphe orient avec ces capacits est le rseau rsiduel.
Il existe toujours un flot possible qui est le flot nul. de c(a) - f(a), et on peut le diminuer de f(a), donc faire passer
On cherche un chemin de s t dans le rseau rsiduel.
un flot f(a) sur un arc -a = vu. Si cet arc existe dj avec une
Problme : comment trouver un flot qui a la valeur maximum ?
capacit c(-a), celle-ci s'ajoute f(a). Il correspond une possibilit d'amlioration du flot en modifiant
Recherche d'un chemin amliorant.
de la valeur du minimum des capacits rsiduelles sur le chemin.
Dterminer le rseau rsiduel :
Le flot
Un flot est satur si sur tout chemin de s a t il existe un arc a
tel que f(a) = c(a).
Remarque :
Dans ce rseau, il n'y a pas de chemin de s t, donc pas de
La condition 3. implique que | f | est la valeur minimum des
chemin amliorant. capacits des coupes du rseau, puisqu'on sait dj que | f | est
infrieur la capacit de n'importe quelle coupe.
Le flot aprs amlioration
Valeur du flot maximal = Capacit de la coupe minimale.
190 191 192
o On fabrique le rseau rsiduel ; On peut dans ce cas rajouter une "super-source" et un "super-
puits" relis respectivement aux sources et aux puits par des arcs
o On cherche un chemin amliorant ;
de capacit infinie.
o On itre jusqu' ce qu'on ne trouve plus de tel chemin.
Adjonction d'une
super-source et d'un
super-puits
Flot maximum?
196