Point d'ouverture "Similarity"
Le point d'ouverture Similarity permet de définir des mesures de similarité adaptées à un indice simple ou à un indice composé. Il permet de définir des mesures de similarité permettant de comparer les cas sources au cas cible.
La modélisation proposée repose sur une représentation structurée des similarités et permet une modification aisée de leur définition. La représentation des mesures de similarité doit être adaptée à la représentation des indices, c'est pourquoi on utilise de manière identique le patron de conception Composite permettant de définir des mesures structurées (cf. Figure 1). Une mesure (de classe Similarity ) peut donc être une mesure de similarité adaptée à un indice simple (classe SimpleIndiceSimilarity ) ou à un indice composé (classe CompoundIndiceSimilarity ). On applique également le patron de conception Stratégie pour la représentation des fonctions élémentaires de similarité et des fonctions d'agrégation. Ce patron permet la définition d'une famille de fonctions parmi lesquelles il est possible de sélectionner celle à utiliser. Ainsi, l'objet de similarité d'un indice simple délègue le calcul de la similarité à une fonction de similarité (classe ValueSimilarityFct ). De même, l'objet de similarité d'un indice composé délègue le calcul de l'agrégation des valeurs de similarité issues de la comparaison des sous-indices, à une fonction d'agrégation (classe AggregationFct ). Un vecteur de poids d'importance est également défini au niveau de chaque objet de similarité pour les indices composés. Enfin, les objets de similarité utilisent le patron de conception Prototype qui permet de créer une nouvelle similarité par clonage d'une similarité existante (méthode clone ).
Figure 1 : mesures de similarité structurées et modifiablesCette modélisation permet une modification aisée des mesures de similarité. Il est tout d'abord possible d'affecter dynamiquement de nouvelles fonctions élémentaires de similarité ou des fonctions d'agrégation sans modifier la structure de la mesure de similarité. D'autre part, le clonage des similarités permet de gérer des mesures qui ne diffèrent que par les modifications apportées. On peut ainsi constituer de manière simple une bibliothèque de mesures de similarité. Cette modélisation présente également une bonne répartition des responsabilités : les objets formant la structure de la mesure de similarité contrôlent le calcul, alors que les fonctions sont utilisables dans différentes mesures et sont issues de hiérarchies de classes pouvant être étendues de manière indépendante. Le calcul est effectué par un parcours récursif de la structure : les mesures de similarité d'un indice simple contrôlent l'appel de la fonction élémentaire de similarité, et les mesures de similarité d'un indice composé contrôlent l'appel récursif aux sous-similarités ainsi que l'agrégation des résultats intermédiaires. Le calcul de la similarité suppose que les deux ensembles d'indices à comparer et la représentation de la similarité aient une structure identique. Si deux cas de structures différentes doivent être comparés, la similarité peut être construite dynamiquement pour refléter la structure commune aux deux cas. On propose la prise en compte de deux types de paramètres lors du calcul de la similarité : les paramètres de construction et les paramètres d'évaluation :
|
Last modified: Wed Jul 25 15:58:55 MEST 2001