• Aucun résultat trouvé

Chapitre 2: Etat de l'art

2.4 Branch and Bound

2.4.1 Description de l'algorithme Branch and Bound

L’algorithme Branch& Bound (BB) a été présenté pour la première fois en 1977 par Narendra et Fukunaga [46]. BB est un algorithme "descendant" avec marche arrière qui garantit de trouver le sous-ensemble optimal si l'estimation de J est parfaite. Il est basé sur l'hypothèse que le critère de sélection adopté est monotone par rapport au nombre d'attributs [47] [48].

𝐽(𝐴) ≥ 𝐽(𝐵) si 𝐵 ⊂ 𝐴

Soit 𝐴̅𝑗 l'ensemble des attributs obtenus par la suppression de j attributs à partir de l'ensemble A de tous les p attributs. La condition de monotonie suppose que pour des sous-ensembles 𝐴̅1, 𝐴̅2, ..., 𝐴̅𝑗 tels que

𝐴̅1𝐴̅2 ⊃ ⋯ ⊃𝐴̅𝑗

la fonction de critère J vérifie 𝐽(𝐴̅1) ≥ 𝐽(𝐴̅2) ≥ ⋯ ≥ 𝐽(𝐴̅𝑗). Par une application directe de cette propriété de nombreuses évaluations de sous-ensembles d'attributs peuvent être évitées.

35

Soit m le nombre d'attributs que l'on souhaite garder, l'algorithme de base BB sélectionne p − m attributs à rejeter. La Figure 2.1 illustre un arbre de solutions correspondant à la sélection des meilleurs m = 2 attributs parmi 5.

Il comporte autant de niveaux que d'attributs à supprimer (trois dans notre exemple) un attribut étant supprimé à chaque niveau de l'arbre.

La racine de l'arbre (sommet) [49] correspond à l'ensemble d'origine des attributs A, et les feuilles au bas de l'arbre correspondent à l'ensemble des sous-ensembles possibles de m attributs [50]. Le problème est de trouver la meilleure feuille, celle qui maximise J, en limitant au plus le nombre de calculs de J.

L'algorithme BB commence la recherche au sommet de l'arbre (niveau 0), et tous les nœuds au niveau 1 sont analysés. Les nœuds successeurs (tous les nœuds dessous) du nœud avec le plus grand J sont explorées, et la recherche continue jusqu’aux feuilles de l'arbre (niveau 3 dans notre exemple).

Le meilleur sous-ensemble actuel (feuille) est trouvé avec une borne initiale B.

L'algorithme revient en arrière alors à tous les nœuds inexplorés au niveau 2, puis les nœuds inexplorés au niveau 1.

 Si J(𝐴̅𝑖) > B pour un nœud , ses nœuds successeurs sont explorées tant que les valeurs de J restent plus grands que B).

 Si J(𝐴̅𝑖) < B pour un nœud, ses nœuds successeurs (feuilles) au bas de l'arbre sont coupés, l'évaluation de J ne peut qu'être plus petite que B en raison de la propriété de monotonie de J. Ils ne peuvent pas être le sous-ensemble optimal.

Si une nouvelle feuille avec un J>B est trouvée, la borne B est mise à jour avec la nouvelle valeur plus grande J.

La recherche et retour en arrière se poursuit jusqu'à ce que toutes les feuilles de l'arbre soient explorées ou coupées ainsi, l'algorithme BB donne la solution optimale.

36

Figure 2.1 L'arbre solution de l'algorithme BB lorsque m=2 et p=5.

2.4.2 Avantages de l’algorithme Branch and Bound

L'avantage de l'algorithme BB [47] sur une recherche exhaustive découle de la capacité de supprimer la construction de certaines branches de l’arbre de recherche.

Considérons une situation où l'algorithme atteint le nœud * dans la figure ci-dessous (Figure 2.2). La borne a été mise à jour récemment selon le sous-ensemble cible contenant les attributs a1, a2. Il y a une chance que la valeur du critère calculée pour l'ensemble actuel (a1, a3, a4, a5) soit inférieure à la borne actuelle. Dans ce cas, en raison de la condition de monotonie aucun sous-ensemble issu du nœud * ne peut produire une meilleure valeur du critère J que la borne B. Par conséquent, la construction du sous-arbre est inutile (le sous-arbre serait coupé), économisant ainsi du temps.

37

Figure 2.2 Exemple de l'avantage de l'algorithme BB.

2.4.3 Inconvénients de l’algorithme Branch and Bound

L'algorithme BB présente plusieurs inconvénients [47]. Prenons l'utilisation de l’algorithme BB avec des fonctions de critère dont la complexité de calcul est élevée.

La faible performance de BB dans certaines situations peut résulter de simples faits que plus près de la racine :

i. Le calcul de la valeur de critère est généralement plus lent (sous-ensembles d'attributs évalués sont plus grands),

ii. Les sous-arbres à couper sont moins fréquents près de la racine (valeurs critères plus élevées peuvent être attendues pour les grands sous-ensembles, ce qui réduit le risque pour la valeur du critère d'être inférieur à la meilleure valeur courante).

L'algorithme BB passe habituellement la plupart de son temps à évaluer le critère aux nœuds d'arbre les moins prometteurs près de la racine. Cet effet est particulièrement important lorsque m << p.

38 2.4.4 Améliorations de l’algorithme BB

Plusieurs améliorations ont été apportées à l'algorithme de base BB [49]. a) L’algorithme Ordered BB ( OBB ) :

Les nœuds sont ordonnés dans l'arbre lors de la conception de l'arbre de solution tels que le nœud successeur le plus à gauche d'un nœud donné a une valeur du critère J inférieure à celle du nœud successeur à droite de ce nœud. L'objectif est d'augmenter les chances de couper les nœuds successeurs les plus à gauche, qui ont plus de branches que tous les autres nœuds.( cf. Figure 2.2)

b) L’algorithme Fast BB ( FBB ):

Cet algorithme met en œuvre un mécanisme de prédiction statistique pour estimer J plutôt que de calculer sa vraie valeur pour chaque nœud, réduisant ainsi l'effort de calcul nécessaire puisque le calcul du critère est la partie la plus complexe de la recherche. Le calcul de l'estimation de J est beaucoup plus rapide que le calcul de la vraie fonction de critère J. Lorsque J, estimé pour un nœud, est inférieur à la borne B actuelle, la véritable valeur du critère J pour ce nœud est calculée, et si ce nœud est coupé il le sera en se basant sur la véritable valeur du critère J et la valeur actuelle de B. Par conséquent, l'algorithme FBB sélectionne bien la solution optimale, étant donné que les nœuds ne sont jamais coupés sur la base de l'estimation de J. Mais on réduit significativement le nombre d'évaluations de J.

c) L’algorithme Adaptive BB ( ABB ) :

Cet algorithme améliore les algorithmes BB précédents dans quatre grands aspects [51]. Tout d'abord, l'algorithme ABB utilise la technique ( SFFS cf. 2.2.3) pour sélectionner une grande valeur initiale de la borne B. Une grande borne initiale permet à la recherche de couper rapidement de nombreuses branches aux niveaux proches de la racine de l'arbre. Ensuite, un simple ordonnancement des attributs est utilisé pour ordonner les nœuds de l'arbre. En troisième lieu, le niveau de recherche de départ dans l'arbre n'est pas le niveau 1. La technique d’ordonnancement des nœuds et la borne initiale B sont utilisées pour

39

trouver ce niveau de départ. Quatrièmement, ABB modélise la fonction de critère J par une équation déterministe simple :

Ĵ(A\ψk) = J(A) × (1 − (k/p)β)

où Ĵ(A\ψk) est la valeur de la fonction de critère prédite à un nœud au niveau k lorsque l'ensemble ψk de k attributs est supprimé de l'ensemble A de tous les p attributs ; J(A) est la valeur exacte de la fonction de critère au sommet de l'arbre avec l'ensemble A de tous les p attributs et β (> 1) est une variable unique pour chaque nœud de l'arbre de solutions. [51] vérifie que Ĵ est une bonne estimation de toute fonction de critère J et l'utilise avec la valeur de J du nœud actuel et la borne actuelle B pour passer aux nœuds suivants. Il a été montré que l'algorithme ABB est exécuté plus rapidement que d'autres algorithmes BB quand m << p.

2.4.5 Look-ahead Search Strategy for Suboptimal Solutions

Cette stratégie est utilisée pour augmenter la vitesse de recherche de l'algorithme BB [49].

Si nous renonçons à l'optimalité de l'algorithme BB, nous pouvons éliminer beaucoup plus de nœuds successeurs. Ceci est fait en utilisant la plus grande borne actuelle bk+ r trouvé jusqu'à présent au niveau k + r, plutôt que le B lié au niveau p - m, pour couper les nœuds, où k est le niveau de l'arbre du nœud étant actuellement recherché et r est un paramètre d'anticipation fixé par l'utilisateur.

Autrement dit, la valeur de J du nœud actuel au niveau k est comparée à la meilleure borne bk + r à r niveaux plus bas de l'arbre. Si k + r est supérieur à p - m (le niveau de la feuille), on prend B au lieu de bk + r. Puisque bk+ r est toujours supérieure ou égale à la borne B, beaucoup plus de branches peuvent être coupées plus tôt. Ce schéma d'anticipation a été incorporé dans l'algorithme de base BB et a montré une réduction significative du volume de calcul de J. Cependant, il n'existe aucune garantie que la solution obtenue soit optimale parce que la borne B du nœud feuille n'est pas la borne utilisée pour couper les nœuds de l’arbre.

40

Dans [49] Nakariyakul a étudié l'effet de "Look-ahead Search Strategy" sur quatre algorithmes BB différents. Il l'a testé sur deux ensembles de données réels. Il a trouvé que les solutions fournies par les algorithmes OBB, FBB et ABB sont optimisés même lorsque le paramètre r est petit. D'autre part, le coût de calcul requis par chaque algorithme BB est réduit de manière significative avec "Look-ahead Search Strategy". Pour le problème de la sélection de m attributs à partir d'un grand nombre d'attributs (p ≥ 50), Nakariyakul suggère que cette stratégie soit incorporée dans l'algorithme FBB ou ABB pour accélérer la recherche. L'utilisation de l'algorithme BB basique n'est pas recommandée pour une base de données à grande dimension.

Documents relatifs