Académique Documents
Professionnel Documents
Culture Documents
Matěj Stehlík
17/9/2021
1
Équipe pédagogique
2
Volumes horaires
3
Évaluation
4
Objectifs
• algorithmes d’exploration
• parcours en largeur
• parcours en profondeur
• algorithmes d’optimisation
• arbre couvrant de poids minimum
• plus cours chemin
• couplage maximum
• flot maximum
• coloration. . .
5
Exemple d’un graphe
6
Graphes
• Soit X un ensemble.
On note X2 l’ensemble des parties à deux éléments de X.
•
• En général, on notera uv la partie {u, v}.
• L’ordre et les répétitions ne sont pas pris en compte : 12 = 21.
Exemple
X
Si X = {1, 2, 3}, alors 2 = {12, 13, 23}.
Définition
• Un graphe est un couple G = (V, E) formé par un ensemble fini V et un
sous-ensemble E de X2 .
8
Quelques applications des graphes
9
Quelques exemples de graphes
10
Représentation graphique
1
• On représente chaque sommet par un disque :
2 5
• Pour représenter une arête uv, on trace un trait
entre les disques correspondants à u et à v.
3 4
Remarques
• La forme des « disques » et des « traits » n’a aucune importance (sauf
pour la lisibilité de la figure).
• Ce qui compte, c’est de traduire graphiquement s’il y a une arête entre
deux sommets ou non.
11
Adjacence et incidence
Définition
Soient G un graphe, u et v deux sommets de G et e une arête de G.
12
Exemple
1
• 1 et 2 sont adjacents
• 4 est voisin de 2
2 5
• N (2) = {1, 3, 4}
• N (5) = ∅ (5 est isolé)
• l’arête 12 est incidente à 2
3 4
13
Sous-graphes
Définition
Soient G = (V, E) et H = (W, F ) deux graphes.
• H est un sous-graphe de G si W ⊆ V et F ⊆ E.
• H est un sous-graphe couvrant de G si W = V et F ⊆ E.
• H est un sous-graphe induit de G si W ⊆ V et F contient toutes les
arêtes uv ∈ E où u, v ∈ W . On le note G[W ].
14
Illustration des différents types de sous-graphe
1 1
2 5 2
3 4 3 4
G sous-graphe de G
1 1
2 5 2
3 4 4
sous-graphe couvrant de G sous-graphe induit de G
15
Isomorphismes
16
Illustration
f g
1 2
3 4 e h
b c
5 6
7 8 a d
Remarque
Il n’est pas toujours facile, à partir de représentations graphiques, de
décider si deux graphes sont isomorphes.
17
Graphe complémentaire
Définition
Soit G = (V, E) un graphe. Le graphe complémentaire G est défini comme
G = (V, V2 \ E).
1 1
2 5 2 5
3 4 3 4
G G
18
Représentation matricielle et par listes
19
Matrices d’adjacence
Définition
1
• Soit G un graphe à n sommets.
2 5
• On numérote les sommets
V (G) = {v1 , . . . , vn }.
• La matrice d’adjacence de G (pour la 3 4
numérotation choisie) est la matrice M
carrée n × n sur {0, 1} définie par :
0 1 1 0 0
Mij = 1 si et seulement si vi vj ∈ E(G). 1 0 1 1 0
M =
1 1 0 0 0
0 1 0 0 0
Remarque
0 0 0 0 0
• M est symétrique et nulle sur la diagonale.
20
Matrices d’incidence
Définition
1
• Soit G un graphe à n sommets et m arêtes.
2 5
• On numérote les sommets
V (G) = {v1 , . . . , vn } et les arêtes
E(G) = {e1 , . . . , em }. 3 4
• La matrice d’incidence de G est la matrice N
sur {0, 1} de taille n × m définie par :
1 1 0 0
Nij = 1 si et seulement si vi ∈ ej . 1 0 1 1
N =
0 1 1 0
0 0 0 1
Remarque
0 0 0 0
• La somme de chaque colonne vaut 2.
21
Listes d’adjacence
2 5
Définition
• Soit G un graphe. 3 4
• Une représentation en liste d’adjacence de G 1 : [2, 3]
est la donnée, pour chaque sommet v de G, 2 : [1, 3, 4]
de la liste des voisins de v.
3 : [1, 2]
4 : [2]
5 : []
22
Degrés
1
Définition
• Soient G un graphe et v un sommet de G. 2 5
23
La somme des degrés
Théorème
P
Soit G un graphe, alors v∈V (G) dG (v) = 2|E(G)|.
Démonstration
• Soit S la somme de tous les éléments de la matrice d’incidence de G.
• La somme de chaque ligne est égale au degré du sommet
P
correspondant, donc S = v∈V (G) dG (v).
• La somme de chaque colonne est égale à deux, et on a |E(G)| colonnes,
donc S = 2|E(G)|.
24
Illustration
1
1 1 0 0
2 5 1 0 1 1
N =
0 1 1 0
0 0 0 1
3 4
0 0 0 0
X
S= d(v) = 2 + 3 + 2 + 1 + 0 = 8
v∈V (G)
S = 2|E(G)| = 2 · 4 = 8
25
Une conséquence
Corollaire
P
• Soit G un graphe. La somme v∈V (G) dG (v) est paire.
• Autrement dit, le nombre de sommets de degré impair est pair.
Exemple
Sept personnes participent à une fête. Est-il possible que chacun d’entre
eux serre la main de trois autres personnes exactement ?
26
Graphes complets
Définition
• Soit n ≥ 1 un entier.
{1,...,n}
• Le graphe complet à n sommets est le graphe ({1, . . . , n}, 2 ).
• Il est noté Kn .
K1 K2 K3 K4 K5
27
Variants des graphes
Définition
Une opération élémentaire est une opération qui s’effectue en temps
constant sur tous les calculateurs usuels.
• Affectation ;
• Comparaisons ;
• Opérations arithmétiques et logiques ;
• Accès à une case d’un tableau ;
• Appel d’une sous-routine ;
• ...
29
Complexité temporelle
Définition
La complexité temporelle (dans le pire cas) d’un algorithme A, noté T (n),
est le nombre d’opérations élémentaires maximum que puisse effectuer A
avant d’arriver à un résultat, étant donné une entrée de taille n.
30
Remarques sur la complexité temporelle
31
Exemple
Retourner (somme_degre/n) ;
32
La notation grand O
Définition
• Soient f (n) et g(n) des fonctions de R vers R.
• On écrit f ∈ O(g) (ou plus souvent f = O(g)) s’il existe une constante
c > 0 telle que |f (x)| ≤ c · g(x) pour tout x ∈ R suffisamment grand.
Remarques
• f ∈ O(g) veut dire que f n’augmente pas plus vite que g.
• f ∈ O(g) est moins fort que f ≤ g.
• La différence vient de la constante c ; par exemple, 100n ∈ O(n).
• Cette constante nous permet d’ignorer ce qui se passe pour des petites
valeurs de n.
33
La notation grand O : exemple
35
La notation Ω et Θ
Définition
De la même manière que O(·) est un analogue de ≤, nous pouvons aussi
définir des analogues de ≥ et de = comme suit :
36
Règles pour simplifier les fonctions dans O(·)
37