• Aucun résultat trouvé

CHAPITRE VI Conclusion et perspectives

Algorithme 2 Calcul de la précision relative d'un intervalle

GetRelativePrecision (I=[a,b] : un intervalle) début

Si a = b alors Retourner 0

Sinon si mid([a,b]) ≠ 0 alors

Retourner |a-b|/(2*mid([a,b])) Sinon

Retourner |a-b|/(2*|b|) Fin si

Fin

Ainsi, l'intervalle [0.001,0.002], peut être considéré comme précis en considérant la précision absolue (0.001), contrairement à la précision relative qui dans ce cas est égale à environ 33%. Inversement, l'intervalle [990,1010] est peu précis au regard de la précision absolue, alors que sa précision relative est de 1%. L'évaluation de l'ordre de grandeur d'un intervalle est délicat, lorsque ses bornes ne sont pas du même ordre de grandeur ou que le nombre zéro fait partie de l'intervalle. En effet, le milieu de l'intervalle n'est pas nécessairement représentatif de l'ordre de grandeur moyen de ses valeurs.

Chapitre IV – Concepts et apports en programmation par contraintes

De plus, les variables auxiliaires sont moins bien connues par le concepteur. Lorsque le cahier des charges ne leur définit pas de restrictions de domaine et de précisions pertinentes associées, le concepteur ne peut se fier qu'à sa propre expérience. La prise en compte de phénomènes physiques complexes rend difficile la bonne appréciation de ces variables par le concepteur. Il doit alors tenir compte du rôle de ces variables dans le modèle. En effet, il cherche principalement à définir des valeurs pour les variables de conception. L'exploration des variables auxiliaires ne permet que de valider physiquement, géométriquement, économiquement, etc. la réalité du produit. Nous pouvons conseiller au concepteur de se référer à l'ordre de grandeur représenté par les valeurs de ces variables pour définir une précision absolue, ou alors pour définir une précision relative en accord avec les hypothèses effectuées. Il est préférable que ces précisions soient plus larges, pour ne pas explorer trop intensivement ces variables, ce qui risque de nuire à l'efficacité du processus de résolution. De nombreuses solutions supplémentaires peuvent ainsi être calculées alors que les variables de conception ont atteint leur seuil de précision.

Les variables alias sont des intermédiaires de calculs introduites pour faciliter la compréhension du modèle par le concepteur. Le domaine de ces variables est, lui aussi, mal connu par le concepteur. Afin d'éviter des calculs inutiles, l'exploration de leur domaine doit être évitée, puisque, par nature, leurs valeurs sont calculées à partir d'autres variables grâce à la phase de propagation des contraintes. Le plus simple est alors de leur affecter une précision infinie. Elles sont alors perçues dans le processus de résolution comme non découpables, car elles ont atteint leur seuil de précision. Toutefois, certaines variables alias dont l'ordre de grandeur est connu par le concepteur peuvent être exploré pour aider le processus de résolution à réduire l'espace de recherche.

La définition de précisions pertinentes pour les variables est fondamentale pour une résolution efficace. En effet, ces précisions définissent la taille de l'espace de recherche à un instant donné. Cette taille correspond à la combinatoire qui existe entre toutes les valeurs intervalles des domaines. Le nombre de ces valeurs peut être évalué à l'aide de la précision absolue, ce qui permet de calculer la taille de cet espace de recherche :

, où w(di) calcule la taille de di.

Lorsque nous disposons d'une précision relative sur un domaine donné, il est possible de

76

taille(hX; D; Ci) = ¦n i=1

w(di)

Résolution par satisfaction de contraintes pour l'aide à la décision en conception architecturale

calculer facilement la précision absolue correspondante.

Pour conclure, nous pouvons considérer que le concepteur doit essayer de ne définir des précisions que sur les variables dont il pense qu'elles sont importantes au sein du modèle et dont il connaît avec suffisamment de discernement leur précision ou leur ordre de grandeur. Cela permet de réduire l'espace de recherche aux seules variables pertinentes d'un modèle pour éviter toute exploration inutile ou inefficace.

IV.2.2 – Heuristiques de recherche

Nous avons vu précédemment que seulement trois heuristiques étaient disponibles au sein de la librairie Elisa. En général, la stratégie de Round-Robin est utilisée, car elle est connue pour être plus robuste. Cependant, les problèmes de conception disposent de spécificités qui ne sont exploitées par aucune de ces trois heuristiques, ce qui rend le processus de résolution inefficace.

IV.2.2.1 – Variables de conception

Dans le chapitre III, nous avons montré l'importance des variables de conception pour le concepteur, lorsqu'il définit un modèle en conception architecturale. En effet, ces variables sont transverses au cycle de vie du produit. En conception architecturale, le concepteur construit son modèle autour de ces variables pour les relier à des critères de performance.

De plus, les incertitudes et les imprécisions liées à des décisions non encore prises ou à l'expression du comportement du produit induisent parfois le fait que certaines parties des modèles soient sous-contraintes (moins de contraintes que de variables) ou que certaines précisions sur les variables sont moins bien connues. Lorsqu'un problème est sous-contraint, beaucoup de solutions sont trouvées, la consistance des domaines étant souvent vérifiée. Ce n'est pas le cas des variables de conception qui sont directement définies en accord avec la connaissance issue du cahier des charges et de la phase de recherche de concepts.

Il nous semble alors important, dans le processus d'exploration de l'espace de recherche, de traduire cette importance des variables de conception. L'exploration précoce des variables de conception permet ainsi de définir au plus tôt une solution de conception, c'est-à- dire, une architecture produit représentée par les valeurs des variables de conception. La phase

Chapitre IV – Concepts et apports en programmation par contraintes

de propagation de contraintes permet de vérifier la cohérence des valeurs de ces variables entre elles et avec le reste du modèle. Certaines des variables de conception sont des variables discrètes (choix de caractéristiques : composants, matériaux, topologie), qui permettent de réduire rapidement le contexte d'exploitation des variables auxiliaires en réduisant les incertitudes liées au produit. Les domaines des variables auxiliaires sont alors réduits de manière à satisfaire les contraintes du modèle. Une fois une solution de conception définie, il ne reste plus qu'à vérifier sa faisabilité en explorant l'espace de recherche représenté par les domaines des variables auxiliaires. Nous ne discernons pas ici les variables de décision des variables auxiliaires, car elles ne définissent pas l'architecture du produit, leurs valeurs n'étant que des indicateurs de performance pour le concepteur.

Nous avons alors défini une nouvelle heuristique de recherche permettant de calculer une solution de conception avant d'explorer les domaines des variables auxiliaires (voir