0% ont trouvé ce document utile (0 vote)
0 vues5 pages

TP

Ce document présente une fiche de travaux pratiques sur la théorie des graphes utilisant Python, destinée aux étudiants de deuxième année en informatique de gestion. Les objectifs incluent la représentation de graphes, les parcours DFS et BFS, l'utilisation de la bibliothèque NetworkX, et la résolution de problèmes de plus court chemin. Plusieurs exercices pratiques sont proposés, allant de la modélisation de graphes à des applications concrètes dans un réseau informatique et un réseau social.

Transféré par

ridouanemoustapha949
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
0 vues5 pages

TP

Ce document présente une fiche de travaux pratiques sur la théorie des graphes utilisant Python, destinée aux étudiants de deuxième année en informatique de gestion. Les objectifs incluent la représentation de graphes, les parcours DFS et BFS, l'utilisation de la bibliothèque NetworkX, et la résolution de problèmes de plus court chemin. Plusieurs exercices pratiques sont proposés, allant de la modélisation de graphes à des applications concrètes dans un réseau informatique et un réseau social.

Transféré par

ridouanemoustapha949
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

TP Python Théorie des graphes

UNIVERSITÉ DE DOSSO

Institut Universitaire de Technologie (IUT)


Filière : Informatique de Gestion  Deuxième Année

FICHE DE TRAVAUX PRATIQUES


Théorie des Graphes avec Python

Durée : 10 heures Année académique : 20252026

Ob jectifs

À l'issue de cette séance de travaux pratiques, l'étudiant devra être capable de :


 Représenter un graphe en Python ;
 Manipuler les sommets et les arêtes d'un graphe ;
 Mettre en ÷uvre les parcours en profondeur (DFS) et en largeur (BFS) ;
 Déterminer certaines propriétés d'un graphe ;
 Utiliser la bibliothèque NetworkX pour la modélisation et la visualisation des graphes ;
 Résoudre un problème de plus court chemin.

Rappel théorique

Un graphe est un couple :

G = (V, E)
où :
 V est l'ensemble des sommets ;
 E est l'ensemble des arêtes reliant certains sommets.
Considérons le graphe :

V = {A, B, C, D, E}

E = {(A, B), (A, C), (B, D), (C, D), (D, E)}.

Exercice 1 : Représentation d'un graphe

On considère le graphe déni ci-dessus.

1
TP Python Théorie des graphes

Travail demandé
1. Représenter ce graphe sous forme de liste d'adjacence en Python ;
2. Acher les voisins du sommet D ;
3. Calculer le degré de chaque sommet ;
4. Déterminer le sommet de degré maximal.

Indication
1 graphe = {
2 'A ' :[ 'B ','C '] ,
3 'B ' :[ 'A ','D '] ,
4 'C ' :[ 'A ','D '] ,
5 'D ' :[ 'B ','C ', 'E '],
6 'E ' :[ 'D ']
7 }

Exercice 2 : Parcours en profondeur (DFS)

Le parcours en profondeur (Depth First Search ) consiste à explorer un graphe en


visitant récursivement les sommets adjacents.

Travail demandé
1. Écrire une fonction Python réalisant un parcours DFS à partir du sommet A ;
2. Acher l'ordre de visite des sommets ;
3. Vérier si le graphe est connexe.

Prototype suggéré
1 def dfs ( graphe , sommet , visites ) :
2 pass

Exercice 3 : Parcours en largeur (BFS)

Le parcours en largeur (Breadth First Search ) explore les sommets niveau par niveau.

Travail demandé
1. Écrire un programme Python réalisant le parcours BFS ;
2. Acher l'ordre de visite des sommets ;
3. Comparer le résultat obtenu avec celui du DFS.

2
TP Python Théorie des graphes

Indication
1 from collections import deque

Exercice 4 : Visualisation d'un graphe avec NetworkX

Installer au préalable les bibliothèques nécessaires :


1 pip install networkx matplotlib

Puis exécuter le programme suivant :


1 import networkx as nx
2 import matplotlib . pyplot as plt
3
4 G = nx . Graph ()
5
6 G. add_edges_from ([
7 ( 'A ','B ') ,
8 ( 'A ','C ') ,
9 ( 'B ','D ') ,
10 ( 'C ','D ') ,
11 ( 'D ','E ')
12 ])
13
14 nx . draw (G , with_labels = True )
15
16 plt . show ()

Travail demandé
1. Acher graphiquement le graphe ;
2. Déterminer le nombre de sommets ;
3. Déterminer le nombre d'arêtes ;
4. Calculer le degré de chaque sommet ;
5. Vérier si le graphe est connexe.

Exercice 5 : Plus court chemin

On considère le graphe pondéré suivant :

E = {(A, B, 4), (A, C, 2), (B, D, 5), (C, D, 1), (D, E, 3)} .

Travail demandé
1. Construire le graphe pondéré avec NetworkX ;
2. Déterminer le plus court chemin entre A et E ;

3
TP Python Théorie des graphes

3. Calculer la distance minimale entre ces deux sommets ;


4. Vérier le résultat à l'aide de l'algorithme de Dijkstra.

Exercice 6 : Application à un réseau informatique

On considère le réseau suivant :


 Le routeur R1 est connecté à R2 et R3 ;
 Le routeur R2 est connecté à R4 ;
 Le routeur R3 est connecté à R4 ;
 Le routeur R4 est connecté à R5 .

Travail demandé
1. Modéliser ce réseau par un graphe ;
2. Représenter graphiquement le graphe ;
3. Déterminer le nombre de sommets ;
4. Déterminer le nombre d'arêtes ;
5. Calculer le degré de chaque sommet ;
6. Déterminer un chemin reliant R1 à R5 .

Exercice 7 : Mini-pro jet

On souhaite modéliser le réseau social d'une promotion comportant les étudiants :

{A, B, C, D, E, F, G}.
Les relations d'amitié sont :

(A, B), (A, C), (B, D), (B, E), (C, F ), (E, G), (F, G).

Travail demandé
1. Construire le graphe correspondant ;
2. Représenter graphiquement le réseau ;
3. Déterminer les degrés des sommets ;
4. Identier les étudiants les plus connectés ;
5. Déterminer un chemin entre A et G ;
6. Interpréter les résultats obtenus.

4
TP Python Théorie des graphes

Compte rendu

Le compte rendu devra comporter :


 Les programmes Python réalisés ;
 Les captures d'écran des résultats ;
 Les graphes obtenus ;
 Une conclusion de quelques lignes sur les applications de la théorie des graphes en
informatique de gestion.

Fin de la séance de Travaux Pratiques

Vous aimerez peut-être aussi