Exercices corrigés — Recherche opérationnelle & graphes
Analyse · 18 exercices-types du palier socle
Chaque exercice donne l'énoncé, des indices progressifs et la correction rédigée étape par étape. Ouvre les blocs seulement après avoir cherché.
Revoir le cours : Recherche opérationnelle & graphes Définitions, méthodes et exemples corrigés du chapitre.Les 18 exercices
- Degrés & lemme des poignées
- Parcours BFS et DFS
- Composantes connexes
- Ponts de Königsberg (Euler)
- Graphe biparti & cycle impair
- Tri topologique d'un DAG
- Algorithme de Dijkstra
- Bellman-Ford & poids négatifs
- Floyd-Warshall (toutes paires)
- Reconstruction du chemin
- Détection d'un cycle négatif
- Pourquoi Dijkstra échoue en négatif
- Arbre couvrant minimal (Kruskal)
- Prim vs Kruskal
- Arbre couvrant : nombre d'arêtes
- Ordonnancement PERT — durée du projet
- Marges et tâches critiques
- Piloter le délai d'un projet
Degrés & lemme des poignées
Soit le graphe non orienté de sommets
Indices (3)
La matrice d'adjacence
Le degré d'un sommet est la somme de sa ligne dans
Lemme des poignées :
Correction détaillée
Sommes des lignes :
Parcours BFS et DFS
Sur le graphe précédent (arêtes
Indices (3)
BFS : file d'attente, on visite tous les voisins avant d'aller plus loin.
DFS : pile (ou récursion), on plonge le plus loin possible.
Voisins de
Correction détaillée
File :
On part en
breadth_first_order/depth_first_order : Composantes connexes
Le graphe non orienté de sommets
Indices (3)
Une composante connexe est un groupe maximal de sommets reliés entre eux.
Lancer un parcours depuis un sommet : il découvre toute sa composante.
Recommencer depuis un sommet non encore visité.
Correction détaillée
connected_components : Ponts de Königsberg (Euler)
Le multigraphe des ponts de Königsberg a
Indices (3)
Critère d'Euler : un chemin eulérien existe ssi le graphe connexe a
Compter les sommets de degré impair de Königsberg.
Un circuit fermé exige
Correction détaillée
Les
Comme le nombre de sommets impairs (
Le cycle
Graphe biparti & cycle impair
Montrer que le cycle
Indices (3)
Biparti
Tenter une
Sur un cycle impair, l'alternance se contredit au bouclage.
Correction détaillée
Sommets
Cycle
Tri topologique d'un DAG
Pour le graphe orienté d'arcs
Indices (3)
Algorithme de Kahn : retirer un sommet de degré entrant nul, recommencer.
Degrés entrants :
Un cycle empêche tout sommet d'avoir un degré entrant nul à un moment.
Correction détaillée
Sommets sans prédécesseur :
On crée le cycle
Algorithme de Dijkstra
Graphe orienté pondéré :
Indices (3)
Dijkstra fixe à chaque étape le sommet non traité de plus petite distance, puis relâche ses arcs.
Initialiser
Relâcher
Correction détaillée
Fixe
En remontant les prédécesseurs :
dijkstra : Bellman-Ford & poids négatifs
Graphe orienté
Indices (3)
Dijkstra est exclu : il y a un poids négatif.
Bellman-Ford relâche toutes les arêtes
Comparer le chemin
Correction détaillée
L'arc
bellman_ford : Floyd-Warshall (toutes paires)
Sur le graphe de l'exercice B1, on veut les plus courtes distances entre toutes les paires. Quel algorithme et quelle est la distance de
Indices (3)
Floyd-Warshall calcule toutes les paires en
Pour
Les arcs utiles :
Correction détaillée
Floyd-Warshall :
Meilleur trajet
floyd_warshall : Reconstruction du chemin
On a exécuté Dijkstra depuis
Indices (3)
Le tableau des prédécesseurs donne, pour chaque sommet, par où on l'a atteint au mieux.
Partir de la destination et remonter de prédécesseur en prédécesseur.
Inverser la liste obtenue.
Correction détaillée
En inversant :
return_predecessors) : Détection d'un cycle négatif
Soit le graphe orienté
Indices (3)
Repérer le cycle entre
Si on peut tourner indéfiniment en diminuant le coût, la notion de plus court chemin s'effondre.
Bellman-Ford détecte une amélioration au
Correction détaillée
Le cycle
En le parcourant encore et encore, on diminue le coût sans borne : il n'existe pas de plus court chemin (coût
Une distance encore améliorée après
NegativeCycleError levée ✓)Pourquoi Dijkstra échoue en négatif
Expliquer pourquoi l'algorithme de Dijkstra peut donner un résultat faux sur un graphe à arcs de poids négatif.
Indices (3)
Dijkstra « fixe » définitivement un sommet dès qu'il a la plus petite distance provisoire.
Cette décision suppose qu'aucun chemin futur ne pourra faire mieux.
Un arc négatif viole cette hypothèse.
Correction détaillée
Quand Dijkstra fixe un sommet
Avec un arc négatif, un chemin plus long en arcs peut être moins cher et arriver après que
Arbre couvrant minimal (Kruskal)
Graphe non orienté pondéré, arêtes (poids) :
Indices (3)
Trier les arêtes par poids croissant.
Ajouter chaque arête si elle ne crée pas de cycle (union-find).
S'arrêter à
Correction détaillée
minimum_spanning_tree somme Prim vs Kruskal
Sur le graphe de E1, exécuter Prim depuis le sommet
Indices (3)
Prim fait croître un arbre depuis un sommet de départ.
À chaque étape, ajouter l'arête la moins chère sortant de l'arbre courant.
Continuer jusqu'à couvrir tous les sommets.
Correction détaillée
Arbre
Poids
prim=kruskalArbre couvrant : nombre d'arêtes
Pourquoi un arbre couvrant d'un graphe à
Indices (3)
Un arbre est connexe et sans cycle.
Un graphe connexe à
Ajouter une arête à un arbre crée un cycle.
Correction détaillée
Un arbre sur
Toute arête supplémentaire relie deux sommets déjà connectés par l'arbre
Ordonnancement PERT — durée du projet
Un projet a
Indices (3)
Les dépendances forment un DAG ; on calcule les dates de début au plus tôt.
Date au plus tôt d'une tâche
La durée du projet est le plus long chemin.
Correction détaillée
Le plus long chemin est
Marges et tâches critiques
Pour le projet de E4 (durée
Indices (3)
Calculer les dates de début au plus tard (rétro-planning depuis la fin
Marge
Une tâche est critique si sa marge est nulle.
Correction détaillée
En remontant :
Marge
Marge nulle :
pert_tard donne marges Piloter le délai d'un projet
Dans le projet de E4-E5, le chef de projet veut raccourcir la durée totale. Sur quelles tâches doit-il agir, et qu'apporte une accélération de
Indices (3)
Seules les tâches du chemin critique fixent la durée totale.
Accélérer une tâche à marge non nulle ne fait que consommer cette marge.
Le chemin critique est
Correction détaillée
Raccourcir
Pour gagner du temps, il faut raccourcir une tâche critique (
S'entraîner davantage sur recherche opérationnelle & graphes
18 exercices d'entraînement supplémentaires sur ce chapitre, plus le palier approfondissement, les quiz, le tuteur IA et les PDF à imprimer — dans l'app Maths Post-Bac.