Télécharger la présentation
La présentation est en train de télécharger. S'il vous plaît, attendez
Publié parGaspard Abadie Modifié depuis plus de 9 années
1
GRAPHES EN INFORMATIQUE
2
INTRODUCTION Les objets mathématiques appelés graphes apparaissent dans de nombreux domaines comme les mathématiques, la biologie, la sociologie, pour modéliser entre autres les relations binaires entre éléments d’un ensemble fini (on dispose d’une population et on souhaite savoir qui est en relation avec qui, par exemple). Géométriquement un graphe se présente comme un ensemble fini de points (les sommets) qui peuvent être éventuellement reliés par des segments (les arêtes )
3
EXEMPLE Les sommets sont numérotés de 1 à 8: 1 et 2 sont en relation, mais pas 1 et 4 1 2 4 5 3 8 6 7
4
EXEMPLE: GRAPHE PONDÉRÉ Il est possible d’affecter un poids aux arêtes (ex: les sommets représentent des villes et le poids de l’arrête joignant 2 sommets représente le distance entre les villes correspondantes.) 1 2 4 5 3 8 6 7 15 27 18 59 123 62 39 78 48
5
DÉFINITION ABSTRAITE D’UN GRAPHE La représentation des graphes par des schémas similaires aux précédents doit être précisée ; en effet il est clair que modifier la longueur des arêtes ou faire légérement pivoter une arête n ’a aucune incidence sur le type du graphe. Le point essentiel dans la définition est le nombre de sommets et les relations qui existent entre ces sommets. D’où la définition abstraite suivante: Définition: Définition: On appelle graphe abstrait (non orienté) la donnée d’un couple (S,A) où S est un ensemble fini et A est une partie de l’ensemble des paires de sommet {{s,t} | s et t S} ( notons bien que contrairement à un couple une paire n’est pas ordonnée ). L’ensemble S est appelé ensemble des sommets et A ensemble des arêtes. On dira que deux sommets s et t sont reliés si la paire {s,t} est dans A. En remplaçant paire par couple ( un couple est ordonné ) on obtient la notion d’arc orienté.
6
EXEMPLE D’ARC ORIENTÉ: Graphiquement l’arête (s,t) est représentée avec une flèche orientée de s vers t: Par exemple (4,7) est dans A mais pas (7,4) Par contre (4,2) et (2,4) sont toutes deux dans A 1 2 4 5 3 8 6 7
7
VOCABULAIRE RELATIF AUX GRAPHES
8
EXEMPLE DE SOUS-GRAPHE Sous graphe (S’,A’) avec: S’={2,3,8,5} A’={{2,3},{3,8},{8,5}} 1 2 4 5 3 8 6 7
9
REPRÉSENTATION INFORMATIQUE D’UN GRAPHE…
10
REPRÉSENTATION D’UN GRAPHE
11
PROBLÈME DU PLUS COURT CHEMIN
12
EXEMPLE TEST: On va déterminer un plus court chemin de a (=0) vers g (=6) pour le graphe suivant: b c ef g h i d a 1 7 5 3 2 1 2 2 8 4 1 2 3 7 6 2 2 3
13
PRINCIPE DE L’ALGORITHME:
14
ALGORITHME
15
ETAPE 1: b c ef g h i d a 1 7 5 3 2 1 2 2 8 4 1 2 3 7 6 2 2 3 abcdefghiT 0(7,a) (3,a) (4,a) a,e
16
ETAPE 2 b c e f g h i d a 1 7 5 3 2 1 2 2 8 4 1 2 3 7 6 2 2 3 abcdefghiT 0 (5,e) (3,a) (11,e) (4,a)(6,e) a,e,h
17
ETAPE 3 b c ef g h i d a 1 7 5 3 2 1 2 2 8 4 1 2 3 7 6 2 2 3 abcdefghiT 0 (5,e) (3,a) (11,e) (4,a)(6,e) a,e,h, b
18
ETAPE 4: b c ef g h i d a 1 7 5 3 2 1 2 2 8 4 1 2 3 7 6 2 2 3 abcdefghiT 0 (5,e)(6,b) (3,a) (11,e) (4,a)(6,e) a,e,h, b,c
19
ETAPE 5: b c ef g h i d a 1 7 5 3 2 1 2 2 8 4 1 2 3 7 6 2 2 3 abcdefghiT 0 (5,e)(6,b) (3,a) (8,c)(11,e)(4,a)(6,e) a,e,h, b,c,d
20
ETAPE 6: b c ef g h i d a 1 7 5 3 2 1 2 2 8 4 1 2 3 7 6 2 2 3 abcdefghiT 0 (5,e)(6,b) (3,a) (8,c)(11,e)(4,a)(6,e) a,e,h, b,c,d,i
21
ETAPE 7: b c ef g h i d a 1 7 5 3 2 1 2 2 8 4 1 2 3 7 6 2 2 3 abcdefghiT 0 (5,e)(6,b) (3,a) (8,c)(11,e)(4,a)(6,e) a,e,h,b, c,d,i,f
22
ETAPE 8: b c ef g h i d a 1 7 5 3 2 1 2 2 8 4 1 2 3 7 6 2 2 3 abcdefghiT 0 (5,e)(6,b) (3,a) (8,c)(8,e)(4,a)(6,e) a,e,h,b, c,d,i,f,g
23
PREUVE DE L’ALGORITHME
24
IMPLÉMENTATION On codera les graphes par leur matrice de poids On créera une liste père indexée par les sommets et initialisée avec tous les éléments égaux au sommet de départ (a sur notre exemple). On initialisera par n’importe quoi qui n’est pas un sommet. On créera une liste pi indexée par les sommets qui contiendra les valeurs des pi(s) (on l’initialisera avec des valeurs « infinies ») On utilisera la fonctions successeurMat(M,i) du TD On utilisera la classe set de python pour l’ensemble T( rappel : on peut créer un ensemble S en partant de la liste l de ses éléments puis en posant S=set(l) )
Présentations similaires
© 2024 SlidePlayer.fr Inc.
All rights reserved.