• Aucun résultat trouvé

Partie II : Couplage par les connaissances métier

7.1 Définition des problèmes de satisfaction de contraintes et lien avec l’ontologie

Dans cette section, nous définissons, dans un premier temps, les problèmes de satisfaction de contraintes (CSP) ainsi que ses liens avec l’ontologie proposée dans la section 5. Puis, nous présentons les méthodes de traitement des CSP permettant l’aide à la décision : la résolution et le filtrage. Enfin, nous synthétisons les approches retenues dans le cadre de nos travaux de thèse.

7.1.1 Définition d’un CSP et lien avec l’ontologie

Un problème de satisfaction de contraintes est défini par un triplet (X, D, C) [Montanari, 1974] où :

 X est un ensemble fini de variables,

 D est un ensemble fini de domaines de définition des variables et,

 C est un ensemble fini de contraintes portant sur les variables où une contrainte décrit les combinaisons autorisées ou exclues des valeurs des variables.

Les variables peuvent prendre des valeurs soit numériques continues, soit numériques ou symboliques discrètes, soit des valeurs temporelles conformément à la classification proposée dans [Vareilles, 2005]. Nous parlons de CSP discret dès lors que l’ensemble des variables est discret, continu quand l’ensemble des variables est continu, temporel si toutes les variables ont des valeurs temporelles et mixte si les variables sont de différents types.

Les contraintes peuvent être :

 des contraintes de compatibilité qui permettent de définir les combinaisons de valeurs autorisées pour un ensemble de variables. Ces contraintes peuvent prendre la forme de

157 tables de compatibilité continues, mixtes ou discrètes, de formules mathématiques ou de formules logiques [Gelle, 1998]. Par exemple, C1 : est une

contrainte de compatibilité entre les deux variables continues m (masse totale de l’avion) et nb_pass (nombre de passagers que peut accueillir l’avion) ;

 des contraintes d’activations qui permettent de gérer de manière explicite la pertinence [Van Oudenhove de Saint Géry, 2006] des variables en autorisant ou en interdisant leur activation [Mittal et Falkenhainer, 1990]. Par exemple, prenons une variable continue ra (rayon d’action) initialement active et une variable discrète res_supp

(réservoir supplémentaire) initialement inactive, et la contrainte suivante C2 :

. Cette contrainte d’activation spécifie que si la valeur de ra est supérieure à 2000 (km) il faut un réservoir supplémentaire : la variable res_supp s’active et vient s’ajouter au problème courant. Ce type de contrainte ne sera pas abordé dans ce mémoire.

D’après la définition des concepts proposée dans la section 5.1, ces derniers disposent d’un triplet (X, D, C) que l’on peut apparenter à un CSP « mixte » c’est à dire possédant des variables continues et discrètes. En effet, dans les concepts spécialisés de « Système », les variables décrivant les concepts peuvent être continues (par exemple, le rayon d’action) ou discrètes (par exemple, le nombre de passagers). De même, dans les concepts « Projet » et « Tâche », les variables décrivant les concepts peuvent être continues (par exemple, la durée d’une tâche) ou discrète (par exemple, le type de ressource nécessaire à la réalisation d’une tâche).

Suite au choix d’un concept par le concepteur, ou le directeur de programme, le CSP mixte présent dans le concept est associé à l’entité à décrire. Son utilisation va permettre de réduire le domaine des variables de concept au fur et à mesure de la description des besoins, solutions, projets et tâches, et ainsi guider la conception et la planification.

7.1.2 Résolution et filtrage d’un CSP

Il existe deux types de traitement pour un CSP en fonction des attentes de l’utilisateur. Ce dernier peut vouloir :

 trouver une solution ou toutes les solutions (résolution) ou,

 réduire les domaines des variables en supprimant les valeurs ne menant pas à une solution (filtrage) ou,

 valider ses exigences par rapport aux connaissances du domaine (résolution ou filtrage).

7.1.2.1 Résolution d’un CSP

La résolution d’un CSP consiste à trouver une ou plusieurs solutions à un problème donné, c'est-à-dire une ou plusieurs instanciations de toutes les variables impliquées dans le CSP en respectant toutes les contraintes. Il s’agit, à partir de l’instanciation d’un ensemble de variables correspondant aux exigences, de fournir une ou plusieurs solutions respectant, d’une part, les contraintes du CSP, et d’autre part, ses exigences.

Il existe deux types de méthodes de résolution d’un CSP :

 les méthodes complètes qui explorent de manière systématique l’espace de recherche et sont capables de fournir toutes les solutions d’un problème comme la méthode de

158

 les méthodes incomplètes qui n’explorent pas de façon systématique l’espace de recherche et ne fournissent donc qu’un sous-ensemble des solutions d’un problème comme la méthode de recherche tabou [Glover et Laguna, 1993] ou le recuit simulé [Kirkpatrick et al., 1984].

À l’issue de la résolution complète ou incomplète d’un CSP, nous obtenons un ensemble de solutions cohérentes avec les contraintes et les exigences. L’avantage de la résolution d’un CSP réside principalement dans l’exactitude des solutions proposées si elles existent. En effet, toutes les solutions proposées répondent parfaitement aux contraintes inhérentes au CSP et aux exigences émises par l’utilisateur. En revanche, le temps de calcul de ces solutions peut être important si le CSP est de taille importante (complexité exponentielle) ou possède des variables continues.

Par exemple, prenons un CSP défini par :

 trois variables : Nb_Pass (le nombre de passagers), RA (le rayon d’action) et Mot le type de moteur,

 les domaines de définition : dNb_Pass = {20, 50, 100}, dRA = {1000, 2000, 5000} et

dMot = {‘M1’, ‘M2’}, il existe donc a priori 3x3x2= 18 solutions possibles,

 trois contraintes de compatibilité réduisant le nombre de solutions autorisées à 9 : C1 : Nb_Pass RA 20 1000 50 ≤ 2000 100 ≤ 5000 C2 : Mot RA M1 ≤ 2000 M2 ≤ 5000 C3 : Mot Nb_Pass M1 ≤ 50 M2 ≤ 100

L’utilisateur pose comme exigences : Nb_Pass = 50 et RA = 2000. L’algorithme de résolution va alors évaluer chaque combinaison et établir si chacune respecte les contraintes inhérentes au CSP et

aux exigences émises par l’utilisateur. Ici, il existe deux solutions : S1 (50, 2000, M1) et S2 (50, 2000, M2).

7.1.2.2 Filtrage d’un CSP

Dans les méthodes de résolution présentées ci-dessus, les contraintes sont utilisées de manière passives, c'est-à-dire qu’elles sont uniquement exploitées pour tester la cohérence des affectations partielles et complètes. Au contraire, les méthodes de filtrage utilisent les contraintes de manière active pour effectuer des déductions sur le problème. L’objectif des méthodes de filtrage est la détection d’affectations localement ou globalement incohérentes. La technique la plus fréquemment utilisée est la cohérence d’arc qui vérifie que toutes les valeurs d’une variable sont compatibles avec chaque contrainte prise séparément. La cohérence d’arc se décline suivant le type de CSP à traiter, nous pouvons citer, entre autres, [Montanari, 1974] pour les CSP discrets ou [Lhomme, 1993] pour les CSP continus.

Les méthodes de filtrage permettent de répercuter les choix de l’utilisateur sur le problème courant. Les contraintes étant non orientées, le filtrage permet, en modifiant le domaine de définition d’une variable donnée, de réduire les domaines de définition des autres variables impliquées dans la contrainte et ce quelle que soit la variable d’entrée. La recherche de solution est alors interactive : c’est la séquence de choix cohérents qui conduit à une ou plusieurs solutions.

À l’issue du filtrage d’un CSP, les solutions non cohérentes avec les contraintes et les exigences proposées par l’utilisateur sont écartées. Nous obtenons donc un espace réduit de solutions

159 possibles. L’avantage du filtrage d’un CSP est que toutes les solutions sont conservées. Cependant, des non-solutions peuvent également être conservées selon le degré de filtrage utilisé (arc, chemin, k,.. consistance).

Reprenons l’exemple de la section précédente. Dans le cas du filtrage, l’utilisateur va renseigner ses exigences une par une et filtrer à chaque fois. La première exigence est Nb_Pass = 50. Le filtrage va donc permettre d’éliminer toutes les valeurs de chaque variable incompatibles. L’état des domaines des variables sera le suivant : dNb_Pass = {50}, dRA = {1000, 2000} et dMot = {‘M1’, ‘M2’}.

La seconde exigence est RA = 2000. Similairement, le filtrage va éliminer les valeurs de chaque variable qui sont incompatibles : dNb_Pass = {50}, dRA = {2000} et dMot = {‘M1’, ‘M2’}.

Il est également possible d’utiliser les méthodes de filtrage afin d’améliorer les algorithmes de résolution. Il s’agit ici de réduire l’espace de solutions avant d’appliquer l’algorithme de résolution. Par exemple, le Forward checking [Haralick et Elliot, 1980] combine le filtrage par arc-cohérence avec un algorithme de retour arrière.

Dans la mesure où nous souhaitons fournir aux utilisateurs une aide à la décision interactive au niveau de la conception, de la planification et de leur couplage, nous utiliserons donc les méthodes de filtrage de CSP.