Algorithmes de graphes : cours et exercices

Comprendre les réseaux, exécuter les algorithmes et vérifier les réponses : dix chapitres détaillés, quarante exercices de cours et trente exercices de TD, tous corrigés.

Cours de graphes : réseau pondéré, arbre couvrant, dix chapitres et exercices corrigés.
Avant de commencer. Un graphe décrit des objets et leurs relations. Un algorithme est une suite d’étapes pour résoudre une question sur ces données. Il suffit de connaître les tableaux, les boucles et les comparaisons. Le pseudo-code évite de dépendre d’un langage particulier.

Une progression du modèle au certificat

Un petit réseau de livraison fictif permet de comparer les méthodes. Les coûts sont abstraits : ce ne sont pas des distances entre villes réelles. D’autres exemples ciblés montrent les poids négatifs, les dépendances et les capacités. Les tableaux et les schémas proviennent de calculs exécutés sur les mêmes données.

Chapitre 1 sur 10Comprendre et modéliser un grapheSommets, arêtes, arcs, poids, degrés, chemins, cycles et connexité : apprendre à formuler précisément un problème de réseau.4 exercices corrigésChapitre 2 sur 10Représenter un graphe en machineMatrices d’adjacence, listes de voisins et incidence : construire les représentations, comparer leurs coûts et préserver les poids nuls.4 exercices corrigésChapitre 3 sur 10BFS : le parcours en largeurExplorer un réseau par couches avec une file, calculer le minimum de liaisons et reconstruire les chemins grâce aux parents.4 exercices corrigésChapitre 4 sur 10DFS, cycles et tri topologiqueSuivre les découvertes et fins de DFS, détecter les cycles et ordonner les dépendances sans confondre les composantes orientées.4 exercices corrigésChapitre 5 sur 10Les plus courts chemins avec DijkstraDistances provisoires, relaxation, finalisation et file de priorité : calculer les coûts minimaux avec des poids non négatifs.4 exercices corrigésChapitre 6 sur 10Bellman-Ford et les cycles négatifsAccepter les poids négatifs, lire les passages synchrones et distinguer distances finies, sommets inaccessibles et coûts non bornés.4 exercices corrigésChapitre 7 sur 10Floyd-Warshall : toutes les pairesConstruire les distances entre tous les couples, autoriser les intermédiaires progressivement et interpréter les cycles négatifs.4 exercices corrigésChapitre 8 sur 10Arbres couvrants : Kruskal, Prim et union-findRelier tous les sommets au moindre coût, comparer Kruskal et Prim, comprendre union-find et justifier les choix par les coupes.4 exercices corrigésChapitre 9 sur 10Flot maximal et coupe minimaleCapacités, conservation, chemins augmentants et arcs inverses : calculer un flot puis prouver son optimalité avec une coupe.4 exercices corrigésChapitre 10 sur 10Choisir et vérifier un algorithmePartir de l’objectif, vérifier les hypothèses, comparer temps et mémoire et contrôler chaque résultat avec un certificat adapté.4 exercices corrigés

Comment travailler

  1. Lire la situation et la définition encadrée avant la notation.
  2. Reproduire les étapes et comparer les états intermédiaires.
  3. Chercher les exercices avant d’ouvrir les corrigés.
  4. Vérifier les hypothèses, les ressources et les limites.
Des objectifs différents. BFS minimise les étapes ; Dijkstra les coûts non négatifs. Un arbre couvrant minimise une installation ; un flot maximise un transport soumis à des capacités. Le dernier chapitre aide à choisir.

Travaux dirigés

Faire les 30 exercices corrigés

Revoir la complexité · Voir les fiches de graphes

Références

Le vocabulaire a été confronté aux supports de Pierre Bornsztein et de Didier Müller fournis pour ce cours. La rédaction, les réseaux et les illustrations sont originaux. Pour approfondir : algorithmes de graphes de Sedgewick et Wayne, Princeton et plus courts chemins toutes paires, MIT.

Voir le programme complet · Faire les 30 exercices du TD

Questions / Réponses

Aucune question. Soyez le premier à poser une question.
★ ★ ★ ★ ★
2 votes. Moyenne 5 sur 5.

Ajouter un commentaire

Anti-spam