Graphes: modélisation et algorithmes
Notes de cours
21 février 2016
Table des matières
1 Notions élémentaires sur les graphes 3
1.1 Quelques problèmes formalisables par des graphes . . . . . . . . . . 3
1.1.1 Choix d’un itinéraire . . . . . . . . . . . . . . . . . . . . . . 3
1.1.2 Organisation d’une session d’examen . . . . . . . . . . . . . 3
1.1.3 Problème d’ordonnancement de tâches . . . . . . . . . . . . 4
1.1.4 Routage dans les réseaux de télécommunications . . . . . . . 5
1.2 Définitions et concepts de base . . . . . . . . . . . . . . . . . . . . . 5
1.2.1 Graphe orienté . . . . . . . . . . . . . . . . . . . . . . . . . 5
1.2.2 Graphe non orienté . . . . . . . . . . . . . . . . . . . . . . . 6
1.2.3 Définitions complémentaires . . . . . . . . . . . . . . . . . . 6
1.3 Connexité . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
1.3.1 Chemin et circuit (graphes oriéntés) . . . . . . . . . . . . . . 7
1.3.2 Chaîne et cycle . . . . . . . . . . . . . . . . . . . . . . . . . 7
1.3.3 Graphe connexe et composantes connexes . . . . . . . . . . . 8
1.3.4 Graphe fortement connexe et composantes fortement connexes 8
1.4 Quelques graphes particuliers . . . . . . . . . . . . . . . . . . . . . . 9
1.4.1 Graphe complet, clique, stable . . . . . . . . . . . . . . . . . 9
1.4.2 Arbre et forêt . . . . . . . . . . . . . . . . . . . . . . . . . . 9
1.4.3 Arborescence . . . . . . . . . . . . . . . . . . . . . . . . . . 10
1.4.4 Graphe biparti . . . . . . . . . . . . . . . . . . . . . . . . . 11
1.5 Représentation des graphes . . . . . . . . . . . . . . . . . . . . . . . 11
1.5.1 Matrices d’adjacence et d’incidence . . . . . . . . . . . . . . 11
2 Parcours de graphes et problèmes de connexité 13
2.1 Parcours en profondeur d’un graphe orienté (Depth First Search) . . . 13
2.2 Parcours en profondeur d’un graphe non orienté (DFSno) et détermi-
nation des composantes connexes . . . . . . . . . . . . . . . . . . . . 15
2.2.1 DFS pour les graphes non orientés . . . . . . . . . . . . . . . 15
2.2.2 Détermination des composantes connexes . . . . . . . . . . . 15
2.3 Détermination des composantes fortement connexes . . . . . . . . . . 16
2.3.1 Numérotation préfixe et suffixe . . . . . . . . . . . . . . . . . 16
2.3.2 Algorithme de Kosaraju (1978) . . . . . . . . . . . . . . . . 17
2.4 Tri topologique dans un graphe orienté sans circuit . . . . . . . . . . 18
2.5 Fermeture transitive d’un graphe . . . . . . . . . . . . . . . . . . . . 19
3 Cheminement dans les graphes 21
3.1 Plus courts chemins d’origine fixée dans un graphe sans circuit avec
longueurs quelconques : algorithme de Bellman . . . . . . . . . . . . 22
3.2 Plus courts chemins d’origine fixée dans un graphe avec longueurs non
négatives : algorithme de Dijkstra . . . . . . . . . . . . . . . . . . . 23
2
3.3 Plus courts chemins d’origine fixée dans un graphe avec longueurs
quelconques : algorithme de Ford . . . . . . . . . . . . . . . . . . . . 25
3.4 Plus courts chemins entre toutes les paires de sommets : algorithme de
Floyd . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
4 Arbre couvrant de poids minimum 28
4.1 Formulation du problème . . . . . . . . . . . . . . . . . . . . . . . . 28
4.2 Algorithme de Kruskal . . . . . . . . . . . . . . . . . . . . . . . . . 28
4.3 Algorithme de Prim . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
5 Flots dans les graphes 33
5.1 Définitions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
5.2 Propriétés fondamentales . . . . . . . . . . . . . . . . . . . . . . . . 34
5.2.1 Flot maximum et coupe minimum . . . . . . . . . . . . . . . 34
5.2.2 Graphe d’écart et chemin augmentant . . . . . . . . . . . . . 35
5.3 Recherche d’un flot maximum : algorithme de Ford-Fulkerson . . . . 36
5.3.1 Algorithme générique . . . . . . . . . . . . . . . . . . . . . 36
5.3.2 Algorithme de Ford-Fulkerson . . . . . . . . . . . . . . . . . 37
5.3.3 Une application du problème du flot maximum : le couplage
dans un graphe biparti . . . . . . . . . . . . . . . . . . . . . 39
5.4 Recherche d’un flot maximum à coût minimal . . . . . . . . . . . . . 40
5.4.1 Condition d’optimalité . . . . . . . . . . . . . . . . . . . . . 40
5.4.2 Un algorithme de détermination du flot maximum à coût minimal 40
3
1 Notions élémentaires sur les graphes
La théorie des graphes est un outil privilégié de modélisation et de résolution de pro-
blèmes dans un grand nombre de domaines allant de la science fondamentale aux appli-
cations technologiques concrètes. Par exemple, les graphes déterministes et aléatoires
sont utilisés en chimie (modélisation de structure), en sciences sociales (pour représen-
ter des relations entre groupes d’individus), en mathématiques combinatoires, en in-
formatique (structures de données et algorithmique). Concernant les applications, elles
sont très nombreuses : réseaux électriques et transport d’énergie, routage du trafic dans
les réseaux de télécommunications et les réseaux d’ordinateurs, routage de véhicules
et organisation de tournées, problèmes de localisation (localisation d’entrepôts dans
les réseaux de distribution de marchandises, d’antennes ...), problèmes d’ordonnance-
ments de tâches et d’affectation de ressources (problèmes de rotation d’équipages dans
les compagnies aériennes)...
1.1 Quelques problèmes formalisables par des graphes
1.1.1 Choix d’un itinéraire
Comment faire pour aller le plus rapidement possible de Bordeaux à Grenoble sachant
que :
Bordeaux Nantes 4h
Bordeaux Marseille 9h
Bordeaux Lyon 12h
Nantes Paris-Montparnasse 2h
Nantes Lyon 7h
Paris-Montparnasse Paris-Lyon 1h
Paris-Lyon Grenoble 4h30
Marseille Lyon 2h30
Marseille Grenoble 4h30
Lyon Grenoble 1h15
Ce problème est facile à représenter par un graphe dont les arcs sont valuées par les
durées des trajets. Il s’agit alors de déterminer un plus court chemin entre Bordeaux et
Grenoble.
1.1.2 Organisation d’une session d’examen
8 groupes d’étudiants (numérotés de G1 à G8) doivent passer des examens dans diffé-
rentes disciplines, chaque examen occupant une demi-journée :
4
chimie G1 et G2
Electronique G3 et G4
Informatique G3, G5, G6 et G7
Mathématiques G1, G5, G6 et G8
Physique G2, G6, G7 et G8
On cherche à organiser la session d’examen la plus courte possible.
On peut représenter chacune des disciplines par un sommet et relier par des arêtes
les sommets correspondant aux examens ne pouvant se dérouler simultanément. Le
problème est alors de colorier tous les sommets du graphe en utilisant le moins de cou-
leurs possible sachant que deux sommets reliés par une arête doivent être de couleurs
distinctes.
1.1.3 Problème d’ordonnancement de tâches
La mise en exploitation d’un nouveau gisement minier demande l’exécution d’un cer-
tain nombre de tâches :
Codes Tâches Durées Tâches an-
térieures
1 Obtention d’un permis d’exploitation 120 -
2 Etablissement d’une piste de 6 km 180 1
3 Transport et installation de 2 sondeuses 3 2
4 Création de bâtiments provisoires pour le bu-
reau des plans et le logement des ouvriers
30 2
5 Goudronnage de la piste 60 2
6 Adduction d’eau 90 4
7 Campagne de sondage 240 3, 4
8 Forage et équipement de 3 puits 180 5, 6, 7
9 Transport et installation du matériel d’exploita-
tion
30 10, 8
10 Construction de bureaux et de logements défi-
nitifs ouvriers et ingénieurs
240 6, 5, 7
11 Traçage et aménagement du fond 360 10, 8
Résoudre un problème d’ordonnancement consiste à déterminer le temps minimum de
réalisation de l’ensemble, ainsi que l’intervalle de temps dans lequel on doit débuter
chacune des tâches pour réaliser l’ensemble dans le temps minimum. Pour cela, on doit
rechercher un plus long chemin dans un graphe, appelé graphe potentiels-tâches, dont
les sommets représentent les tâches à réaliser et les arcs les contraintes d’antériorité
entre les tâches : un arc (i, j)représente la necéssité de réaliser la tâche iavant la tâche
jet l’arc (i, j)est valué par la durée d’exécution de i.
5
1 / 42 100%
La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans linterface ou les textes ? Ou savez-vous comment améliorer linterface utilisateur de StudyLib ? Nhésitez pas à envoyer vos suggestions. Cest très important pour nous !