• Aucun résultat trouvé

Partie II : Couplage par les connaissances métier

6.2 Formalisation du processus de réutilisation de cas

6.2.1 Recueil et expression des exigences

Nous avons vu dans la section 5 comment formaliser les exigences système à partir de la notion de variables rattachées à des concepts. Il s’agit donc, pour cette tâche, de proposer, à partir des besoins du client et de connaissances conceptuelles issues de l’ontologie, un ensemble de variables

133 ( ), l’ensemble des domaines associés à ces variables ( ) et l’ensemble des contraintes portant sur ces variables ( ).

Nous rappelons qu’une contrainte est un ensemble de combinaisons de valeurs autorisées pour un ensemble de variables. Nous considérons dans notre proposition qu’il s’agit :

 de contraintes de compatibilités définissant les combinaisons de valeurs possibles dans le cas de variables discrètes numériques ou symboliques ou,

 de fonctions mathématiques dans le cas de variables continues.

Parallèlement à la formalisation de ces exigences, nous proposons de formaliser une méthode d’évaluation de leur degré de satisfaction. Ceci va permettre, lors de la phase de recherche d’alternatives compatibles, d’évaluer la compatibilité de solutions de la base de cas par rapport aux nouvelles exigences à satisfaire.

Nous décrivons cette méthode pour des contraintes unaires dans un premier temps et ensuite sur des contrainte n-aires.

6.2.1.1 Compatibilité dans le cas de contraintes unaires

Une contrainte unaire ne porte que sur une seule variable. Ce type de contraintes précise les valeurs autorisées pour les valeurs de cette variable.

Dans le cas d’une variable discrète, la contrainte prend la forme d’un ensemble de valeurs autorisées. Les deux exemples ci-dessous montrent deux contraintes et portant respectivement

sur les variables x et y où x est une variable discrète numérique et y une variable discrète symbolique. Leurs domaines sont respectivement et .

Dans le cas des variables continues, nous proposons de représenter la contrainte à l’aide d’une fonction mathématique continue bijective dont la valeur pour une valeur de la variable est comprise entre deux bornes. L’exemple ci-dessous montre une contrainte sur la variable continue réelle z

dont le domaine est .

À partir d’une contrainte unaire, nous proposons de définir une fonction de compatibilité de valeurs possibles pour la variable par rapport à la contrainte. Une fonction de compatibilité précise donc dans quelle mesure chaque valeur possible de la variable, c'est-à-dire chaque valeur appartenant au domaine associé à la variable, est compatible avec la contrainte, la compatibilité pouvant être partielle. Ceci s’apparente à une fonction d’appartenance à un sous ensemble flou des valeurs de variable acceptables tel que proposé par la logique floue [Zadeh, 1965]. Nous n’utilisons cependant pas ce formalisme dans notre proposition.

Nous proposons de définir ces fonctions de compatibilité en introduisant une forme de flexibilité. Cela signifie qu’à partir de l’expression d’une contrainte, nécessairement « stricte » au sens où elle est respectée ou ne l’est pas par rapport à une valeur de la variable, la fonction de compatibilité proposée indique avec quel degré la contrainte est satisfaite ou non.

134

Afin de construire une fonction de compatibilité à partir d’une contrainte stricte, nous proposons d’utiliser deux critères :

 les préférences du concepteur ou,

 la connaissance experte de la similarité entre deux valeurs de :

 la variable impliquée dans la contrainte dans le cas de variables discrètes,

 la fonction représentant la contrainte dans la mesure où cette similarité est évaluable (cas de variables numériques).

Le domaine d’une fonction de compatibilité est compris entre 0 et 1. Plus le résultat retourné par la fonction de compatibilité est proche de 1, plus la valeur de la variable est satisfaisante par rapport à la contrainte. Plus elle est proche de 0, moins la contrainte est satisfaite.

Domaine discret pour une variable numérique

Une contrainte stricte sur la variable discrète numérique x est définie par :

La contrainte définie par correspond à un ensemble de valeurs

autorisées ordonnées par ordre croissant.

Si le concepteur ne souhaite pas intégrer ses préférences et que nous ne disposons pas de mesures de similarité entre valeurs possibles de x, la fonction de compatibilité, notée , est définie par :

La figure 6.3 illustre la fonction de compatibilité ne faisant intervenir ni les préférences du concepteur, ni les fonctions de similarité. Il s’agit donc de l’évaluation de la satisfaction stricte de la contrainte .

Figure 6.3 : Exemple de fonction de compatibilité représentant une contrainte stricte

Si le concepteur souhaite intégrer ses préférences pour un ensemble de valeurs de variables tel que , alors la fonction de compatibilité est définie par :

135

avec :

: le degré de préférence ( ) donné par le concepteur pour la valeur ,

: la kème valeur préférée par le concepteur pour la variable x n’appartenant pas à l’ensemble des

valeurs autorisées par la contrainte.

Si le concepteur ne souhaite pas exprimer de préférence mais plutôt utiliser la connaissance a priori sur les similarités entre valeurs possibles pour la variable x, la fonction de compatibilité est définie, dans le cas d’une variable numérique, par :

avec :

: la valeur retournée par la fonction de similarité entre x et xi telle que .

Comme la variable x est à valeurs discrètes, l’ensemble des valeurs retournées par la fonction de similarité peut être calculé a priori et regroupé dans une matrice de similarités comme illustré sur la figure 6.4. La matrice de similarités contient les similarités entre les valeurs du domaine de la variable x (ici le domaine ). La similarité d’une valeur de la variable avec elle-même est totale ( ).

Figure 6.4 : Exemple de matrice de similarités

La figure 6.5 illustre une fonction de compatibilité pour une variable numérique discrète x. Les valeurs respectant totalement la contrainte stricte ont une compatibilité totale (voir la partie

centrale de la figure) ; les valeurs inférieures et supérieures aux bornes et ont une compatibilité qui dépend de leur similarité avec ces bornes.

Figure 6.5 : Exemple de fonction de compatibilité avec mesure de similarité aux bornes Domaine discret pour une variable symbolique

136

avec :

: le symbole i, : le domaine de x.

La contrainte définie par constitue l’ensemble des valeurs symboliques de la

variable x autorisées.

Similairement aux contraintes discrètes numériques, si le concepteur ne souhaite pas intégrer ses préférences et que nous ne disposons pas de mesures de similarités entre valeurs possibles de x, la fonction de compatibilité est définie par :

Si le concepteur souhaite exprimer ses préférences quant à un ensemble de symboles, la fonction de compatibilité est définie par :

avec :

: le degré de préférence ( ) exprimé par le concepteur pour la valeur ,

: la kème valeur préférée par le concepteur pour la variable x et n’appartenant pas à l’ensemble des

valeurs autorisées par la contrainte.

: l’ensemble des valeurs possibles de x sur lesquelles le concepteur a émis une préférence et tel que

.

Si le concepteur ne souhaite pas exprimer de préférence mais utiliser la connaissance a priori sur les similarités entre valeurs de la variable x, la fonction de compatibilité est définie, dans le cas d’une variable symbolique, par :

avec :

: la similarité entre les valeurs symboliques x et Si.

La fonction de compatibilité retourne la valeur maximale de 1 si la contrainte est respectée pour la valeur de x. Elle correspond à la plus grande similarité entre la valeur de x et les valeurs autorisées par la contrainte dans le cas contraire.

Similairement aux variables discrètes numériques, l’ensemble des valeurs retournées par la fonction de similarité pour les symboles possibles du domaine peut être regroupé dans une matrice de similarités selon la même démarche.

137

Domaine continu pour une variable numérique

Nous considérons dans ce cas que la contrainte portant sur une variable y de domaine est

représentée par une fonction mathématique encadrée par ses bornes inférieures et supérieures. La contrainte s’exprime alors ainsi :

Si le concepteur ne souhaite pas intégrer ses préférences et que nous ne disposons pas de mesures de similarité entre valeurs possibles de f(y), la fonction de compatibilité est définie par :

La figure 6.6 illustre la fonction de compatibilité de la valeur de par rapport à la contrainte en ne faisant intervenir ni les préférences du concepteur, ni les fonctions de similarité.

Figure 6.6 : Exemple de représentation d’une fonction de compatibilité d'une contrainte stricte dans le domaine continu

Si le concepteur souhaite intégrer ses préférences quant aux valeurs de qu’il juge acceptables par rapport aux bornes et mais ne respectant pas la contrainte , la fonction de

compatibilité est définie par :

avec :

: une fonction de préférence appliquée à la fonction f de la contrainte ,

: la borne inférieure en dessous de laquelle, le concepteur exprime dans ses préférences que les

valeurs de ne sont plus compatibles,

: la borne supérieure au-delà de laquelle, le concepteur exprime dans ses préférences que les

valeurs de ne sont plus compatibles.

On peut trouver différentes manières pour formaliser des similarités ou des préférences. Par exemple, il est possible d’utiliser des fonctions seuil, des fonctions linéaires, des fonctions sigmoïdes, des fonctions exponentielles [Bergmann, 2002].

Nous proposons d’utiliser la fonction de préférence linéaire suivante, illustrée sur la figure 6.7 :

138

Figure 6.7 : Exemple de fonction de préférences aux bornes d’une contrainte

Dans le cas où le concepteur souhaite utiliser la connaissance a priori sur les similarités entre et les bornes et , nous proposons d’utiliser une fonction de similarité entre une valeur

de la fonction et une borne de la contrainte (borne inférieure ou borne supérieure ).

Ceci est possible dans deux situations :

 f(y) = y : dans ce cas, la fonction de similarité entre valeurs de la variable y est utilisée,

 autres cas : soit un expert est capable d’exprimer la similarité entre valeurs de la fonction, soit il est impossible d’utiliser les similarités.

Un exemple de fonction de similarité dans le cas de bornes inférieure et supérieure et est illustrée sur la figure 6.8.

Figure 6.8 : Exemple de fonction de similarité pour une valeur de la fonction et les bornes et Dans le cas où le concepteur souhaite utiliser la connaissance sur les similarités, la fonction de compatibilité est alors définie par :

139

6.2.1.2 Compatibilité dans le cas de contraintes n-aires

Une contrainte n-aire porte sur plusieurs variables. Une telle contrainte est formalisée par un ensemble de valeurs autorisées pour un ensemble de variables.

Domaine discret pour des variables symboliques ou numériques

Dans le cas des variables discrètes, nous considérons que la contrainte précise les combinaisons de valeurs de variables autorisées. Une contrainte faisant intervenir un ensemble de

variables est donc définie en extension par :

Nous notons l’ensemble des n-uplets autorisés. La fonction de compatibilité de la

contrainte stricte est donc définie par :

Afin d’exprimer ses préférences, le concepteur peut proposer une liste de n-uplets tel que avec sa préférence pour chacun. La fonction de compatibilité de l’ensemble de variables X, issue de la contrainte et des préférences du concepteur, est donc définie par :

Si le concepteur ne souhaite pas exprimer ses préférences mais qu’il souhaite utiliser la connaissance a priori sur les similarités entre les valeurs des variables X, nous proposons, pour tout n- uplet autorisé , de mesurer la similarité locale entre chacune des valeurs des variables de X avec la valeur de la variable correspondante du n-uplet autorisé . Ensuite, nous proposons d’agréger ces similarités afin de calculer une similarité globale entre X et Xj. Enfin, nous ne retenons

que la similarité maximale obtenue pour l’ensemble des n-uplets autorisés. La fonction de compatibilité est donc définie par :

avec :

: la fonction de similarité globale entre le n-uplet X et le n-uplet Xj autorisé par la

contrainte définie par :

avec :

140

n : le nombre de n-uplets autorisés,

: la ième valeur du n-uplet autorisé Xj,

: la ième variable du n-uplet X,

: la fonction de similarité locale entre la valeur de et la valeur .

La fonction d’agrégation basée sur la fonction de Minkowski (voir par exemple [Bergmann,

2002] [Núñez et al., 2004] [Avramenko et Kraslawski, 2006]) est utilisée pour calculer la similarité

globale entre X et Xj à partir des mesures de similarités locales entre valeurs de variables

(connaissance a priori). Il existe plusieurs fonctions d’agrégation usuelles comme, par exemple, [Bergmann, 2002] : les fonctions produit, minimum, maximum, moyenne ou encore la fonction de Minkovski.

Les fonctions minimum et produit proposent une vision pessimiste de l’agrégation. En effet, si un des attributs à agréger est nul, le résultat de l’agrégation est nul. A contrario, la fonction maximum propose une vision optimiste de l’agrégation puisque si un seul attribut est égal à 1, le résultat de l’agrégation est égal à 1. La fonction moyenne est la fonction la plus courante où chacun des attributs contribue au résultat de manière pondérée. La fonction de Minkowski est une généralisation de la moyenne pondérée dans laquelle, plus la valeur de est grande, plus l’influence des attributs possédant des similarités locales élevées est importante.

Domaine continu pour des variables numériques

Nous considérons dans ce cas qu’une contrainte fait intervenir un ensemble de variables

continues . Chaque variable a pour domaine . Nous considérons que la contrainte est représentée par une fonction mathématique continue bijective encadrée

par ses bornes inférieure ( ) et supérieure ( ). La contrainte s’exprime alors ainsi :

Si le concepteur ne souhaite pas intégrer ses préférences et que nous ne disposons pas de mesures de similarité entre les valeurs possibles de y, la fonction de compatibilité est définie par :

La figure 6.9 illustre la fonction de compatibilité des valeurs de pour la contrainte ne faisant intervenir ni les préférences du concepteur, ni les fonctions de similarité.

Figure 6.9 : Exemple de représentation d’une fonction de compatibilité d'une contrainte n-aire stricte dans le domaine continu

141 Si le concepteur souhaite intégrer ses préférences quant aux valeurs de qu’il juge acceptables par rapport aux bornes et mais ne respectent pas la contrainte , la fonction

de compatibilité est définie par :

avec :

: fonction de préférence appliquée à la fonction f de la contrainte ,

: la borne inférieure en dessous de laquelle, le concepteur exprime dans ses préférences que les

valeurs de ne sont plus compatibles,

: la borne supérieure au-delà de laquelle, le concepteur exprime dans ses préférences que les

valeurs de ne sont plus compatibles.

Nous proposons la fonction de préférence suivante (illustrée sur la figure 6.10) :

Figure 6.10 : Exemple de fonction de préférences aux bornes d’une contrainte

Dans le cas où le concepteur souhaite utiliser la connaissance a priori sur les similarités entre et les bornes et , nous proposons d’utiliser une fonction de similarité entre une valeur

de la fonction et une borne de la contrainte (borne inférieure ou borne supérieure ).

Ceci n’est possible que dans le cas où un expert est en mesure d’évaluer la similarité entre les valeurs de la fonction .

Un exemple de fonction de similarité dans le cas des bornes inférieure et supérieure et est proposée sur la figure 6.11.

142

Figure 6.11 : Exemple de fonction de similarité pour une valeur de la fonction et les bornes et La fonction de compatibilité est alors définie par :

Nous venons d’aborder comment exprimer des fonctions de compatibilité à partir de contraintes pouvant être unaires ou n-aires, symboliques ou numériques et discrètes ou continues. Les fonctions de compatibilité que nous décrivons permettent de modéliser des contraintes de manière stricte et d’y intégrer une forme de flexibilité à partir de l’expression de préférences du concepteur ou bien de connaissances expertes sur les similarités entre valeurs. Cette flexibilité permet d’élargir le spectre de la recherche d’alternatives système compatibles dans l’étape suivante.