• Aucun résultat trouvé

4.2 Stratégie de recherche hiérarchique

4.2.6 Implantation recursive de la stratégie hiérarchique

La stratégie de recherche hiérarchique est implantée selon un algorithme récursif afin de traiter tous les schémas de mise en correspondance, quel que soit leur nombre. Pour expliquer le fonctionnement de cet algorithme récursif, nous faisons appel à la notion d’arbre. Un arbre est un graphe constitué d’un ensemble de nœuds dont certaines paires sont connectées par des arcs orientés. Si un arc est orienté d’un nœud a vers un nœud b, on dit que le nœud a est le père du nœud b et que le nœud b est le fils du nœud a. Le nœud ne possédant pas de père constitue la racine de l’arbre. Un nœud n’ayant pas de fils constitue une feuille de l’arbre.

Dans notre cas, les nœuds de l’arbre sont les schémas de mise en correspondance. Le schéma de mise en correspondance du niveau de recherche 1 constitue la racine de l’arbre. A partir d’un nœud du niveau n, l’application du module d’appariement élémentaire (cf. Section 4.2.4) génère des nœuds fils au niveau n + 1. Un nœud de l’arbre peut être de type terminal, post-terminal ou normal. Un nœud est dit de type terminal, ou feuille, si le schéma qu’il représente vérifie la condition d’arrêt 1 (cf. Section 4.2.5.1). Un nœud est dit de type post-terminal si le schéma correspondant vérifie la condition d’arrêt 2 (cf. Section 4.2.5.2). Un nœud est dit de type normal s’il n’est ni de type terminal, ni de type

4.2. Stratégie de recherche hiérarchique 160

post-terminal.

4.2.6.1 Construction de l’arbre de recherche

La procédure de recherche hiérarchique consiste à développer les nœuds de l’arbre en utilisant une exploration en profondeur d’abord, c’est à dire en traitant les nœuds de niveaux supérieurs avant de traiter les nœuds de même niveau. Lorsque tous les nœuds d’un même niveau sont traités, on remonte au niveau inférieur pour examiner les nœuds restants à ce niveau. Ainsi, lorsqu’un nœud du niveau n génère plusieurs nœuds fils au niveau n + 1, l’algorithme étend la recherche au niveau n + 2. Pour cela, une priorité est toujours donnée au nœud fils le plus à gauche.

Considérons un nœud au niveau de recherche n. Un test d’arrêt à deux conditions est effectué pour déterminer le type de ce nœud (cf. Section 4.2.5). Comme nous l’avons indiqué plus haut, le nœud peut être de type terminal, post-terminal ou normal.

Si le nœud est de type terminal, alors il cesse d’engendrer de nouveaux nœuds au niveau n + 1. Notons qu’un nœud de type terminal est un nœud feuille.

Dans le cas où le nœud est de type post-terminal, le traitement consiste à appliquer le module d’appariement élémentaire sans sélection (cf. Section 4.2.4). Celui-ci effectue la procédure de mise en correspondance sur tous les points de contour associés au schéma de mise en correspondance représenté par le nœud. Si ce module fournit des couples de points de contour appariés, on génère au niveau n + 1 de nouveaux nœuds fils qui sont des nœuds feuille. Sinon, le nœud lui-même devient un nœud feuille.

Si le nœud est de type normal, on lance le module d’appariement élémentaire avec sélection. Celui-ci consiste à appliquer la procédure de mise en correspondance aux points de contour sélectionnés (cf. Section 4.2.4) à partir des listes des points de contour associées au schéma de mise en correspondance représenté par le nœud. Si ce module fournit des couples de points de contour appariés, on génère au niveau n + 1 de nouveaux nœuds fils à partir desquels le processus est relancé. Dans le cas contraire, on re-traite le même nœud au niveau n + 1.

Le procédé de construction de l’arbre de recherche est illustré sur l’exemple de la figure 4.4. Cet exemple traite le schéma de mise en correspondance de la figure 4.1. On

4.2. Stratégie de recherche hiérarchique 161

commence par appliquer le module d’appariement élémentaire avec sélection au nœud racine M1

1(1) = [CR10(0), CR10(1)], avec CR01(0) = (0, 0) et CR10(1) = (Np− 1, Np− 1). A

l’issue du traitement de ce nœud, on obtient 4 couples de points de contour appariés. On constitue alors la liste des couples de référence CR1

1 : CR1 1 = © CR1 1(0) = CR01(0), CR11(1), CR11(2), CR11(3), CR11(4), CR11(5) = CR10(1) ª .

A partir de cette liste, on crée 5 nouveaux nœuds fils au niveau de recherche 2 :

M1

2(1) = [CR11(0), CR11(1)], M21(2) = [CR11(1), CR11(2)], M21(3) = [CR11(2), CR11(3)],

M1

2(4) = [CR11(3), CR11(4)], M21(5) = [CR11(4), CR11(5)]. Comme l’arbre est exploré en

profondeur d’abord, on traite alors les nœuds M1

2(1), M21(2) puis M21(3). Les nœuds M21(1)

et M1

2(2), de type terminal, cessent d’engendrer de nouveaux nœuds. Le nœud M21(3), de

type post-terminal, est traité par le module d’appariement élémentaire sans sélection. A partir des 4 couples de points de contour appariés, on constitue la liste des couples de référence CR3 2 : CR3 2 = © CR3 2(0) = CR11(2), CR32(1), CR32(2), CR32(3), CR23(4), CR32(5) = CR11(3) ª .

Cinq nouveaux nœuds fils sont alors générés au niveau de recherche 3 : M3

3(1), M33(2),

M3

3(3), M33(4), M33(5) au niveau de recherche 3. Comme le nœud père est de type post-

terminal, ces nœuds fils sont automatiquement des feuilles. Le processus continue de la même manière avec les nœuds M1

2(4) puis M21(5). De type terminal, ces deux nœuds

cessent d’engendrer de nouveaux nœuds.

4.2.6.2 Extraction des couples appariés

Lorsque le processus cesse d’engendrer de nouveaux nœuds dans l’arbre, les couples de points de contour appariés se trouvent associés aux nœuds feuilles. Pour cela, il faut parcourir l’arbre de recherche construit pour atteindre les nœuds feuilles. Une autre ma- nière, plus pratique, consiste à mémoriser les couples des points de contour appariés au fur et à mesure de la construction de l’arbre de recherche. Un appariement est établi dès qu’on

4.2. Stratégie de recherche hiérarchique 162

construit un nœud feuille dans l’arbre. Il suffit alors de conserver la paire correspondant au deuxième couple de référence qui définit le schéma de mise en correspondance associée au nœud feuille. Il faut toutefois ignorer le dernier nœud feuille de l’arbre, car le deuxième couple de référence (NP − 1, NP − 1) du schéma associé à ce nœud feuille ne constitue

pas un couple de points de contour. Il a été utilisé avec le couple (0, 0) uniquement pour définir le schéma de mise en correspondance au niveau de recherche 1.

Dans le cas de l’exemple de la figure 4.4, après avoir traité le nœud racine M1 1(1)

au niveau de recherche 1, on construit au niveau 2 les feuilles M1

2(1) puis M21(2). On mé-

morise alors successivement les couples CR1

1(1) et CR11(2). On génère ensuite, à partir du

noeud post-terminal M1

2(3), les feuilles M33(1), M33(2), M33(3), M33(4), M33(5) au niveau 3,

puis on récupère successivement les couples CR3

2(1), CR23(2), CR32(3), CR32(4), CR32(5).

Finalement, on construit la feuille M1

2(4) et on mémorise alors le couple CR11(4). Pour

la dernière feuille M1

2(5), le couple CR11(5) est ignoré puisqu’il ne correspond pas à un

couple de points de contour.