Académique Documents
Professionnel Documents
Culture Documents
Définitions :
Un graphe est un ensemble de sommets (ou nœuds) et d’arcs reliant ces sommets. Un graphe est
représenté formellement par G = (S, A) ou
S = {s1, s2,…, sn} est un ensemble de sommets (nœuds) et
A = {a1, a2, …., am} un ensemble d'arêtes (arcs).
Un sommet est une représentation abstraite d'un objet.
Une arrête représente une relation binaire entre deux objets
Les graphes peuvent être utilisés pour modéliser :
Les réseaux sociaux : Liste des amis sur facebook
Les réseaux : routiers, ferroviaire, téléphoniques, informatique, … etc.
Le web : chaque page est un sommet du graphe, chaque lien hypertexte est une arête entre deux
sommets
Graphe non orienté : Un graphe non orienté G est un couple (S,A) de deux ensembles finis, où les
éléments de S sont les sommets de G et les éléments de A sont des couples d’éléments de S appelés
arêtes. Une arête dont l’origine et la fin sont confondus est appelée boucle.
Exemple
S = {1; 2; 3; 4}
A = {{1; 2}; {1; 3}; {1; 4}; {2; 4}; {3; 4}}
Graphe orienté : Un graphe orienté G est un graphe où les éléments de A sont des couples d’éléments
de S appelés arcs.
Exemple
S = {1; 2; 3; 4}
A = {{1; 2}; {1; 3}; {1; 4}; {2; 4}; {3; 4}}
Graphe valué : C’est un triplet (S,A,f) où G=(S,A) est un graphe et f est une fonction à arguments dans
A qui à tout arc a (arête) de A associe une valeur f(a)( distance entre deux villes, temps du trajet,...).
Chemin : Un chemin reliant deux sommets i et j est une suite d’arcs commençant en i et se terminant
en j, La longueur d’un chemin est le nombre d’arcs qui le
constituent.
1
Représentation physique d’un graphe :
Représentation par dictionnaire : Représentation matricielle :Matrice d’adjacence
D = dict()
B
D[A] = [B,E,F] C a
a b c d b
D[B]=[A,C,E]
A
E a 0 1 1 1
D[C] = [B,D,E]
D c
b 1 0 0 1 d
D[D] = [C,G] F
G
D[E] = [A,B,C,F,G] c 1 0 0 0
D[F] = [A,E,G] d 1 1 0 0
D[G] = [D,E,F]
L'algorithme
1. Choisissez n'importe quel nœud. S'il n'est pas visité, marquez-le comme visité et répétez-le sur
tous ses nœuds adjacents.
2. Répétez jusqu'à ce que tous les nœuds soient visités.
2
Programmation python du parcours
Représentation de la structure de graphe.
On utilisera un dictionnaire python pour la structure de graphe.
Le graphe G ci-dessous
g = dict() graph = {
g['A'] = ['B','C'] 'A' : ['B','C'],
g['B']= ['D', 'E'] 'B' : ['D', 'E'],
g['C'] = ['F'] 'C' : ['F'],
g['D'] = [] 'D' : [],
g['E']=['F'] 'E' : ['F'],
g['F']= [] 'F' : []
}
Appel : DFS(G,’a’,[‘a’])