---
title: "Méthode de séparation et évaluation"
source: "https://systems-analysis.info/int/M%C3%A9thode_de_s%C3%A9paration_et_%C3%A9valuation"
wiki: "systems-analysis.info/int"
article: "Méthode_de_séparation_et_évaluation"
language: "fr"
categories:
  - "Category:French"
  - "Category:Operations research"
revision_id: 4804
wiki_created_at: 2026-09-06T23:40:09Z
wiki_modified_at: 2026-09-06T23:40:09Z
downloaded_at: 2026-09-07T23:04:43Z
---

# Méthode de séparation et évaluation

La **méthode de séparation et évaluation** (en anglais *Branch and Bound*, abrégé en **B&B** ou **BnB**) est un paradigme général pour la construction d'algorithmes exacts destinés à résoudre des problèmes d'optimisation discrète et combinatoire, en particulier des problèmes NP-difficiles<sup>[\[1\]](https://systems-analysis.info/int/M%C3%A9thode_de_s%C3%A9paration_et_%C3%A9valuation#cite_note-en-wiki-bnb-1)</sup>. La méthode consiste en une stratégie d'énumération implicite dans laquelle l'ensemble des solutions réalisables est divisé de manière séquentielle en sous-ensembles (**séparation**), et pour chacun d'eux, des bornes (**évaluation**) de la valeur de la fonction objectif sont calculées. Ces bornes permettent d'écarter (élaguer) les sous-ensembles qui ne peuvent manifestement pas contenir de solutions optimales, ce qui réduit considérablement l'espace de recherche<sup>[\[2\]](https://systems-analysis.info/int/M%C3%A9thode_de_s%C3%A9paration_et_%C3%A9valuation#cite_note-ru-wiki-bnb-2)</sup>.

La méthode a été proposée pour la première fois par A. H. Land et A. G. Doig en 1960 pour résoudre des problèmes de [programmation en nombres entiers](https://systems-analysis.info/int/Programmation_en_nombres_entiers "Programmation en nombres entiers")<sup>[\[3\]](https://systems-analysis.info/int/M%C3%A9thode_de_s%C3%A9paration_et_%C3%A9valuation#cite_note-land-doig-1960-3)</sup>. Depuis, elle est devenue l'une des approches les plus fondamentales en [recherche opérationnelle](https://systems-analysis.info/int/Recherche_op%C3%A9rationnelle "Recherche opérationnelle") et en informatique. La caractéristique clé de la méthode est sa flexibilité : ce n'est pas un algorithme spécifique, mais plutôt un schéma stratégique de haut niveau (un framework) adaptable à la structure du problème à résoudre.

## Composants clés de la méthode

La méthode repose sur trois opérations fondamentales appliquées aux sous-ensembles de l'espace des solutions, organisés sous la forme d'un arbre de recherche.

- **Séparation** (en anglais *Branching*) — C'est le processus de division récursive de l'ensemble actuel des solutions réalisables $S_{i}$ en plusieurs sous-ensembles plus petits, généralement disjoints, $S_{i1},S_{i2},\ldots,S_{ik}$. Chaque sous-ensemble correspond à un nouveau sous-problème et est représenté par un nœud enfant dans l'arbre de recherche. Par exemple, dans les problèmes de programmation en nombres entiers, la séparation est souvent effectuée sur une variable ayant une valeur fractionnaire dans la solution de la relaxation linéaire (PL).

<!-- -->

- **Évaluation** (en anglais *Bounding*) — Pour chaque nœud de l'arbre de recherche (c'est-à-dire pour chaque sous-problème), une borne de la valeur de la fonction objectif est calculée. Pour un problème de minimisation, il s'agit d'une **borne inférieure** (*lower bound*), qui est une estimation garantie par le bas pour toute solution dans ce sous-ensemble. Le plus souvent, cette borne est obtenue en résolvant une *relaxation* du sous-problème original, une version simplifiée dans laquelle certaines contraintes complexes (comme la contrainte d'intégrité) sont temporairement ignorées. La relaxation la plus courante est la relaxation linéaire (PL).

<!-- -->

- **Élagage** (en anglais *Pruning*) — C'est le processus consistant à éliminer de la recherche les nœuds (et les sous-arbres entiers qui leur correspondent) qui ne peuvent manifestement pas contenir de solution optimale. Un nœud est élagué dans l'un des cas suivants :

1.  **Élagage par borne** : La borne inférieure du nœud courant n'est pas meilleure (c'est-à-dire supérieure ou égale pour un problème de minimisation) que la valeur de la meilleure solution réalisable trouvée jusqu'à présent, appelée l***incumbent**.*
2.  **Élagage par faisabilité** : La solution de la relaxation du nœud est réalisable pour le problème original (par exemple, toutes les variables sont entières). Cette solution est comparée à l'incumbent actuel et, si elle est meilleure, l'incumbent est mis à jour. Aucune séparation supplémentaire n'est nécessaire à partir de ce nœud.
3.  **Élagage par infaisabilité** : Le sous-problème correspondant au nœud n'a pas de solutions réalisables.

## Algorithme général

L'algorithme général de la méthode de séparation et évaluation pour un problème de minimisation peut être décrit par les étapes suivantes :

1.  **Initialisation :** Trouver une solution réalisable initiale (par exemple, à l'aide d'une heuristique) et définir sa valeur comme borne supérieure initiale (incumbent) $U$. Créer une liste de nœuds actifs $Q$ contenant le nœud racine (le problème initial).
2.  **Boucle principale :** Tant que la liste $Q$ n'est pas vide :
    - Sélectionner un nœud de $Q$ selon une stratégie de recherche (par exemple, recherche en profondeur d'abord ou recherche du meilleur d'abord).
    - Résoudre la relaxation pour ce nœud afin d'obtenir une borne inférieure $L$.
    - **Élaguer** le nœud si $L \geq U$.
    - Si la solution de la relaxation est réalisable pour le problème original, mettre à jour l'incumbent : $U\leftarrow L$.
    - Si le nœud n'est pas élagué et que la solution n'est pas réalisable, effectuer une **séparation** en le divisant en nœuds enfants, et les ajouter à la liste $Q$.
3.  **Terminaison :** Lorsque la liste $Q$ est vide, l'algorithme se termine. La solution correspondant à l'incumbent $U$ est l'optimum global.

## Propriétés clés et théorèmes

- **Correction et convergence :** L'algorithme garantit de trouver une solution optimale globale en un nombre fini d'étapes, si l'ensemble des solutions réalisables est fini et si la procédure de séparation est convergente (c'est-à-dire que, par divisions récursives, les sous-ensembles se « contractent » vers des points uniques)<sup>[\[4\]](https://systems-analysis.info/int/M%C3%A9thode_de_s%C3%A9paration_et_%C3%A9valuation#cite_note-conitzer-duke-4)</sup>.
- **Stratégie de recherche :** L'efficacité de l'algorithme dépend fortement de la stratégie de sélection du prochain nœud à explorer (par exemple, recherche en profondeur d'abord, en largeur d'abord, ou du meilleur d'abord) et du choix de la variable de séparation. Les solveurs modernes utilisent souvent des stratégies hybrides<sup>[\[5\]](https://systems-analysis.info/int/M%C3%A9thode_de_s%C3%A9paration_et_%C3%A9valuation#cite_note-maudet-danoy-2024-5)</sup>.

## Exemples

- **[Programmation en nombres entiers](https://systems-analysis.info/int/Programmation_en_nombres_entiers "Programmation en nombres entiers")** : Une application classique de la méthode. La [programmation linéaire](https://systems-analysis.info/int/Programmation_lin%C3%A9aire "Programmation linéaire") est utilisée comme relaxation. La séparation est effectuée sur une variable fractionnaire $x_{j}$, créant deux sous-problèmes avec les contraintes supplémentaires $x_{j} \leq \lfloor x_{j}^{\ast}\rfloor$ et $x_{j} \geq \lceil x_{j}^{\ast}\rceil$.
- **Problème du voyageur de commerce** : L'espace des solutions est l'ensemble de tous les cycles hamiltoniens possibles dans un graphe. La séparation peut être effectuée sur les arêtes (inclure/exclure une arête du chemin). Les bornes inférieures peuvent être obtenues en résolvant des problèmes plus simples, comme le problème d'affectation ou la construction d'un arbre couvrant de poids minimum<sup>[\[6\]](https://systems-analysis.info/int/M%C3%A9thode_de_s%C3%A9paration_et_%C3%A9valuation#cite_note-little-1963-6)</sup>.

## Concepts et applications connexes

- **Méthode de séparation et coupe** (*Branch-and-Cut*) : Une méthode hybride qui combine la séparation et évaluation avec la méthode des plans sécants. À chaque nœud de l'arbre de recherche, en plus de résoudre la relaxation, des inégalités supplémentaires (les coupes) sont générées pour renforcer la borne inférieure, ce qui conduit à un élagage plus efficace des branches.
- **Retour sur trace** (*Backtracking*) : La méthode de séparation et évaluation peut être considérée comme une généralisation de cet algorithme pour les problèmes d'optimisation.
- **Élagage alpha-bêta** : Une analogie conceptuelle utilisée dans les arbres de jeu pour élaguer les branches manifestement perdantes.

## Voir aussi

- [Programmation en nombres entiers](https://systems-analysis.info/int/Programmation_en_nombres_entiers "Programmation en nombres entiers")
- Optimisation combinatoire
- Problème du voyageur de commerce
- Problème NP-difficile
- Algorithme du simplexe

## Références

1.  <span id="cite_note-en-wiki-bnb-1">[↑](https://systems-analysis.info/int/M%C3%A9thode_de_s%C3%A9paration_et_%C3%A9valuation#cite_ref-en-wiki-bnb_1-0) Wikipedia contributors. (2025). Branch and bound. In *Wikipedia, The Free Encyclopedia*. Retrieved 2025-10-26, from <a href="https://en.wikipedia.org/wiki/Branch_and_bound" class="external free" rel="nofollow">https://en.wikipedia.org/wiki/Branch_and_bound</a></span>
2.  <span id="cite_note-ru-wiki-bnb-2">[↑](https://systems-analysis.info/int/M%C3%A9thode_de_s%C3%A9paration_et_%C3%A9valuation#cite_ref-ru-wiki-bnb_2-0) Wikipedia contributors. (2023). Метод ветвей и границ. In *Русская Википедия*. Retrieved 2025-10-26, from <a href="https://ru.wikipedia.org/wiki/Метод_ветвей_и_границ" class="external free" rel="nofollow">https://ru.wikipedia.org/wiki/Метод_ветвей_и_границ</a></span>
3.  <span id="cite_note-land-doig-1960-3">[↑](https://systems-analysis.info/int/M%C3%A9thode_de_s%C3%A9paration_et_%C3%A9valuation#cite_ref-land-doig-1960_3-0) Land, A. H.; Doig, A. G. (1960). An automatic method of solving discrete programming problems. *Econometrica*, 28(3), 497–520. DOI: 10.2307/1910129. URL: <a href="https://www.jstor.org/stable/1910129" class="external free" rel="nofollow">https://www.jstor.org/stable/1910129</a></span>
4.  <span id="cite_note-conitzer-duke-4">[↑](https://systems-analysis.info/int/M%C3%A9thode_de_s%C3%A9paration_et_%C3%A9valuation#cite_ref-conitzer-duke_4-0) Conitzer, V. (2008). *Solving (mixed) integer programs using branch and bound*. Duke University, Department of Computer Science. URL: <a href="https://courses.cs.duke.edu/spring08/cps296.2/branch_and_bound.pdf" class="external free" rel="nofollow">https://courses.cs.duke.edu/spring08/cps296.2/branch_and_bound.pdf</a></span>
5.  <span id="cite_note-maudet-danoy-2024-5">[↑](https://systems-analysis.info/int/M%C3%A9thode_de_s%C3%A9paration_et_%C3%A9valuation#cite_ref-maudet-danoy-2024_5-0) Maudet, G.; Danoy, G. (2024). Search Strategy Generation for Branch and Bound Using Genetic Programming. *arXiv preprint arXiv:2412.09444*. DOI: 10.48550/arXiv.2412.09444. URL: <a href="https://arxiv.org/abs/2412.09444" class="external free" rel="nofollow">https://arxiv.org/abs/2412.09444</a></span>
6.  <span id="cite_note-little-1963-6">[↑](https://systems-analysis.info/int/M%C3%A9thode_de_s%C3%A9paration_et_%C3%A9valuation#cite_ref-little-1963_6-0) Little, J. D. C.; Murty, K. G.; Sweeney, D. W.; Karel, C. (1963). An Algorithm for the Traveling Salesman Problem. *Operations Research*, 11(6), 972–989. DOI: 10.1287/opre.11.6.972. URL: <a href="https://dspace.mit.edu/bitstream/handle/1721.1/46907/branchboundmetho00litt.pdf" class="external free" rel="nofollow">https://dspace.mit.edu/bitstream/handle/1721.1/46907/branchboundmetho00litt.pdf</a></span>
