Professional Documents
Culture Documents
Partie2-Graph and Optimization
Partie2-Graph and Optimization
Motivation
Problème des sept ponts de Königsberg
A priori le premier problème resolu par la théorie des graphes (en
1736). Euler demontra qu’il était impossible de traverser chacun des
sept ponts de la ville russe de Konigsberg une fois exactement et de
revenir au point de depart. Les ponts enjambent les bras de la Pregel
qui coulent de part et d’autre de l’ı̂le de Kneiphof.
Motivation
Motivation
Définitions
un graphe est défini par un couple G = (V , E ) tel que:
V est un ensemble fini de n sommets(Vertices en anglais),
E est un ensemble de m couples de sommets(vi , vj ) ∈ V 2 ,
appelés arêtes (Edges en anglais).
1 2
4 3
G = (V , E ) avec V = 1, 2, 3, 4,E = (1, 2), (2, 4), (3, 4), (3, 3).
Notions élémentaires
Degré
Degré d’un sommet
On appelle degré du sommet v , et on note d(v ), le nombre d’arêtes
incidentes à ce sommet.
Attention ! Une boucle sur un sommet compte double.
Dans le multigraphe ci-contre, on a les degrés :
Theorem
La somme des degrés des sommets d’un graphe est égale à deux fois
le nombre d’arêtes.
Partie2-Graphes et algorithmes December 15, 2021 9 / 62
Graphe non orienté Notions élémentaires
Degré
Degré d’un graphe
Le degré d’un graphe est le degré maximum de tous ses sommets.
Un graphe est dit régulier si tous les sommets ont le même degré.
Si le degré commun est k , alors on dit que le graphe est k-régulier.
Partie2-Graphes et algorithmes December 15, 2021 10 / 62
Graphe non orienté Chaı̂nes et cycles
Chaı̂nes
Chaı̂nes
Cycles
Une chaı̂ne fermée simple est appelée cycle si seul le sommet de
départ apparaı̂t deux fois dans la chaı̂ne.
Une boucle est un cycle de longueur 1.
Un cycle élémentaire est un cycle dont les sommets sont
distincts
Theorem
Un graphe est biparti si et seulement s’il ne contient aucun cycle de
longueur impaire.
Partie2-Graphes et algorithmes December 15, 2021 13 / 62
Graphe non orienté Graphe simple
Graphe simple
Définition
Un graphe est simple s’il ne contient ni boucles ni arrêtes
multiples.
Si G est un graphe simple, le nombre d’arêtes incidentes à un
sommet v de G est appelé degré de v dans G , noté dG (v ) ou
d(u), avec 0 <= d(v ) <= n − 1.
Graphe complet
Définition
Le graphe G est dit un graphe complet à n sommets noté Kn si
toutes les paires de sommets sont directement reliées par une arête.
On appelle clique un sous-graphe complet de G.
Graphe connexe
Définition
Un graphe est simplement connexe s’il existe une chaı̂ne reliant une
paire de sommets quelconques c.à.d à partir de n’importe quel
sommet, il est possible de rejoindre tous les autres en suivant les
arêtes.
Remarque
Un graphe non connexe se décompose en composantes connexes.
Graphe partiel
Un graphe G ′ = (V , E ′) est un graphe partiel de G (V , E ), si
obtient G ′ en enlevant une ou plusieurs arêtes au graphe G .
Sous-graphe
Un graphe G ′ = (A, E (A)) est un sous-graphe de G , si A est un
sous-ensemble de sommets de V et E (A) est formé de toutes les
arêtes de G ayant leurs deux extrémités dans A.
Graphes eulériens
Définition
On dit qu’un graphe est eulérien s’il est possible de trouver un
cycle passant une et une seule fois par toutes les arêtes.
On dit qu’un graphe est semi-eulérien s’il est possible de
trouver une chaı̂ne passant une et une seule fois par toutes les
arêtes.
Plus simplement, on peut dire qu’un graphe est eulérien (ou
semi-eulérien) s’il est possible de dessiner le graphe sans lever
le crayon (et sans passer deux fois sur le même trait!).
Graphes eulériens
Theorem
Un graphe connexe G admet un cycle eulérien si et seulement si tous
ses sommets sont de degré pair.
Theorem
Un graphe connexe G admet une chaı̂ne eulérienne distincte d’un
cycle si et seulement si le nombre de sommets de G de degré
impair est égal à 2. Dans ce cas, si u et v sont les deux sommets
de G de degré impair, alors le graphe G admet une chaı̂ne eulérienne
d’extrémités u et v .
Graphes hamiltoniens
Définition
On dit qu’un graphe est hamiltonien s’il est possible de trouver
un cycle passant une et une seule fois par tous les sommets.
On dit qu’un graphe est semi-hamiltonien s’il est possible de
trouver une chaı̂ne passant une et une seule fois par tous les
sommets.
Un graphe possédant un sommet de degré 1 ne peut être
hamiltonien.
Si un sommet dans un graphe est de degré 2, alors les deux
arêtes incidentes à ce sommet doivent faire partie du cycle
hamiltonien.
Les graphes complets Kn sont hamiltoniens.
Graphes hamiltoniens
Stable
Coloration du graphe
Coloration du graphe
Theorem
χ(G ) <= r + 1, où r est le plus grand degré de ses sommets.
χ(G ) <= r + 1 − α(G ), avec α(G ) la cardinalité d’un stable S.
Theorem
Le nombre chromatique d’un graphe est supérieur ou égal à celui de
chacun de ses sous graphes.
χ(G ) >= ω(G ) : le nombre chromatique du graphe sera supérieur ou
égal à l’ordre de sa plus grande clique.
La matrice d’adjacence
La matrice d’adjacence est une matrice en deux dimensions. Chacune
des dimensions est indexée par les sommets du graphe. A
l’intersection de chaque ligne et colonne on trouve un nombre: il vaut
1 si une arête relie les deux sommets indexés par les coordonnées de
la case, et 0 sinon.
Listes d’adjacences
Arbres
Définition
On appelle arbre tout graphe connexe sans cycle.
Un graphe sans cycle mais non connexe est appelé une forêt.
Arbre
Theorem
Les affirmations suivantes sont équivalentes pour tout graphe G à n
sommets:
G est un arbre
G est sans cycle et connexe
G est sans cycle et comporte n − 1 arêtes
G est connexe et comporte n − 1 arêtes chaque paire u, v de
sommets distincts est reliée par une seule chaı̂ne simple (et le
graphe est sans boucle).
1 2
4 3
G = (V , E ) avec V = 1, 2, 3, 4, E = (1, 2), (2, 1), (2, 4), (3, 4), (3, 3)
Partie2-Graphes et algorithmes December 15, 2021 30 / 62
Graphe orienté
Degré
Soit v un sommet d’un graphe orienté.
On note d + (v ) le degré extérieur du sommet v , c’est-à-dire le
nombre d’arcs ayant v comme extrémité initiale.
On note d − (v ) le degré intérieur du sommet v, c’est-à-dire le
nombre d’arcs ayant v comme extrémité finale.
d(v ) = d + (v ) − d − (v )
3 6
4 5
Partie2-Graphes et algorithmes December 15, 2021 31 / 62
Graphe orienté
Chemins et circuits
v1 v2
v3
2 1
3 6
4 5
Listes d’adjacences
On peut aussi représenter un digraphe en donnant pour chacun de ses
sommets la liste des sommets qu’on peut atteindre directement en
suivant un arc (dans le sens de la flèche).
2 1
3 6
4 5
Cheminement
Cheminement
Algorithme de Dijkstra
Algorithme de Dijkstra
Exemple
Exemple
Exemple
Exemple
Exemple
Exemple
Exemple
Exemple
Exemple
Exemple
Exemple
Exemple
Exemple
Exemple
Exemple
Exemple
Exemple
Exemple
Exemple
Exemple
Complexité de l’algorithme
Lorsque la structure de données utilisée est une liste d’adjacence, la
complexité de l’algorithme est:
L’initialisation se fait en O(N),
Pour chacune des N itérations, la recherche du sommet x de
plus petite étiquette (lignes 6 à 10) se fait en O(N) et le
parcours des successeurs en O(d + (x)) .
La complexité globale de l’algorithme est donc O(N 2 ) .
Il est important de noter que la structure de données utilisée peut
être très importante sur la complexité des algorithmes.