• Aucun résultat trouvé

Actuellement, les propriétés sont utilisées après la génération de la scène, c’est-à-dire qu’elles sont utilisées en vérification a posteriori. Cependant, elles sont utilisables pour opti- miser la génération des solutions.

9.1. Propriétés élémentaires

Les propriétés élémentaires sont particulièrement utiles. Le principe d’optimisation à partir de celles-ci est simple. Il consiste à éviter de construire un objet sachant qu’il sera forcément rejeté. Une propriété élémentaire est représentée par un intervalle flou défini par une fonction LR. Toute valeur située à l’intérieur du support, et plus précisément à l’intérieur de l’intervalle défini par la S-coupe (S étant le seuil d’acceptation), est solution vis-à-vis de la propriété. Par conséquent, lorsque l’utilisateur propose une propriété élémentaire sur un con- cept générateur, il ne faut proposer que les valeurs appartenant à cet intervalle ([GAT96]). La Figure 108 illustre le cas où l’utilisateur demande une propriété P (par exemple « La hauteur

est faible »). La zone non-hachurée comprend toutes les valeurs vérifiant “au moins un peu” la

propriété, c’est-à-dire toutes les valeurs dont le degré d’appartenance est supérieur au seuil d’acceptation de la propriété (dans la figure le seuil est à 0,1).

0 1

0.1

P

Zone des valeurs vérifiant P

Figure 108. Zone du domaine où toutes les valeurs vérifient au moins un peu une propriété P

Les propriétés élémentaires sur un concept permettent donc de réduire l’ensemble de ses valeurs possibles. Par ailleurs, nous avons déjà défini dans le chapitre précédent trois domai- nes pour un concept : le domaine d’origine, le domaine de travail et le domaine courant. Les propriétés sont nécessairement définies sur le domaine de travail, c’est-à-dire sur le domaine fixé après l’application des contraintes d’initialisation. Nous introduisons donc à ce niveau un nouveau domaine : le domaine décrit.

Définition II.3.1 : Le domaine décrit est obtenu après réduction du domaine de travail par les propriétés.

Remarques :

• Cette optimisation a lieu aussi pour les concepts non-générateurs. En effet, nous suppo- sons que la validation d’une valeur est effective seulement lorsque les contraintes de mesure sont valides. Or, l’application de telles contraintes n’est valide que si la valeur calculée appartient au domaine courant du concept cible. Cela nous permet ainsi de re- jeter une valeur plus tôt.

• Nous pouvons imaginer que d’autres types de propriétés peuvent permettre de faire une telle optimisation.

Finalement, nous avons quatre domaines dont la gestion est illustrée par la Figure 109. Domaine courant Domaine de travail Domaine décrit Domaine courant Domaine courant Domaine décrit Contraintes d'initialisation Propriétés Contraintes d'optimisation Domaine de travail Domaine décrit Domaine d'origine

Figure 109. Contraintes, propriétés et domaines d’un concept

9.2. Génération de concepts terminaux

Les propriétés élémentaires, et plus généralement les ensembles flous associés à une pro- priété, permettent aussi d’optimiser les algorithmes de génération sur des concepts terminaux. Toutes les méthodes dites de « défuzzification » dans les modèles flous (présentées en conclu- sion de la première partie) sont intéressantes à ce niveau. Adaptées aux caractéristiques de la génération, elles permettent de faire une équivalence possibilité/probabilité ([Yag82] et [DPS93]) en classe aléatoire. En classe énumération, elles permettent de proposer d’abord les valeurs qui ont un degré d’appartenance maximal par rapport à l’ensemble des propriétés puis de continuer par degré décroissant. Comme la description est une conjonction de propriétés, celles portant sur un concept donné constituent une description qu’on peut appelée « locale ». Cette méthode permet d’essayer d’abord (ou le plus souvent) les meilleures valeurs du point de vue de la description locale mais il n’est pas garanti qu’elles sont les meilleures pour la solution générale. Enfin, notons que ces méthodes permettent difficilement un contrôle de la génération basé sur d’autres objectifs que le degré d’appartenance (ordre des mesures selon leur valeur…).

9.3. Concepts générateurs

Lorsqu’il y a plusieurs ensembles possibles de concepts générateurs, les propriétés de la description peuvent permettre d’en sélectionner un plus particulièrement parce qu’apparemment mieux adapté. En effet, il est préférable d’avoir des concepts générateurs faisant l’objet d’une description, notamment à cause de l’optimisation proposée ci-dessus. Leurs domaines sont ainsi réduits et, vis-à-vis de leurs propriétés respectives, ils ne produiront que des valeurs correctes. Prenons l’exemple de la génération de segments dans un plan. Nous pouvons définir au moins deux ensembles de concepts générateurs : {l’origine, l’extrémité} (1) ou {l’origine, la pente, la longueur} (2). Si l’utilisateur demande « Un segment long », il est préférable de prendre le second ensemble. Par contre, s’il demande « Un segment dont les

extrémités sont placées sur un cercle », le premier ensemble apparaît alors plus adapté. Dans

le cas où le choix n’est pas aussi trivial (plusieurs ensembles envisageables), il est possible d’utiliser quelques heuristiques. Une solution consiste alors à évaluer le nombre de combinai- sons possibles avec chacun des ensembles candidats et de prendre celui qui en a le moins (donc moins d’objets à construire). Mais d’autres solutions sont envisageables !

Remarque : Pour chaque concept, l’utilisateur peut décrire une tâche de génération privilé- giée. Une idée serait plutôt de proposer les tâches les plus adaptées en fonction des ensembles de concepts générateurs choisis. Ainsi, non seulement l’ensemble choisi sera celui générant le moins de solutions mais, en plus, la tâche de génération sera optimisée. Inversement, le type de tâche de génération pour un ensemble peut être un critère de sélection.

9.4. Relations

Les relations permettent aussi de mettre en place des optimisations. Il est notamment sou- vent possible de leur associer des contraintes spécifiques. Par exemple, avec les propriétés de comparaison, nous pouvons associer deux contraintes pour réduire le domaine courant d’un concept connaissant l’autre. Plus précisément, elles permettent, connaissant la mesure d’un des deux concepts et l’intervalle de différence (ou de proportion) utilisé, de réduire le do-

maine de l’autre concept. Par exemple, si deux concepts A dans [BmA, BMA] et B dans

[BmB,BMB] sont tels que leur différence doit être dans [i,j] (support de l’intervalle flou) alors,

connaissant mB, nous avons « nécessairement » mA dans [mB+i, mB+j]%[mB-j, mB-i] (et inver-

sement, connaissant mA, on obtient mB dans [mA+i, mA+j]%[mA-j, mA-i]). 9.5. Propriétés élémentaires quantifiées

Les propriétés élémentaires quantifiées permettent de mettre en place des optimisations. Par exemple, lorsque le quantificateur utilisé est « Pour tout » (&), par définition, tous les concepts doivent vérifier la propriété sur laquelle il porte. Dans ce cas, il est intéressant d’ajouter réellement cette propriété dans la description pour chacun des concepts. Ainsi, les optimisations liées à cette propriété peuvent être mises en place. Par exemple, si la description est « La longueur de tous les segments est importante », l’optimisation liée à la propriété élé- mentaire « La longueur du segment est importante » peut être utilisée afin de réduire tous les domaines liés à la longueur. D’autres méthodes d’optimisation existent au cours de la généra- tion. En particulier, lorsqu’une propriété ne pourra plus être vérifiée compte-tenu des actions restant à effectuer, la génération devra explorer une nouvelle configuration.

9.6. Propriétés modificatrices

Les propriétés modificatrices permettent, aussi, de mettre en place des optimisations. En effet, l’intervalle flou calculé à partir de ce type de propriété contient des valeurs que

l’utilisateur préfère (pour le moment !). L’idée est donc de réduire l’intervalle du domaine associé à ce concept. Lorsque l’utilisateur demande une modification, le système ajoute une contrainte d’optimisation permettant de réduire le domaine de la même façon qu’avec les pro- priétés élémentaires.

10. Conclusion

Nous venons d’exposer l’implémentation et l’utilisation des propriétés que le noyau de CordiFormes doit proposer. Nous avons montré aussi que la structure de ce noyau accepte tous les types de propriétés. De plus, celles-ci permettent d’effectuer un certain nombre d’optimisations pour la génération.

Cependant, nous avons vu au chapitre I.5 que la formalisation des propriétés autres qu’élémentaires n’est pas toujours satisfaisante. Il faudra donc tenir compte de l’évolution de ce formalisme au niveau du noyau (en particulier au niveau des propriétés quantifiées et des relations binaires mais aussi n-aires). Nous avons cependant montré que le formalisme actuel permet de gérer un bon nombre de situations.

Au cours de ce travail, nous avons fait l’hypothèse que la description est composée d’une conjonction élémentaire (opérateur “.”) de propriétés. Il sera important d’étudier l’utilisation des autres opérateurs et, en particulier, de la disjonction (aussi bien au niveau des propriétés que des objets).

Dans tout ce que nous avons exposé ici, nous n’avons pas abordé les optimisations liées au comportement des propriétés lors de la génération ([Col90], [Des95a] et surtout [DeM97a] qui propose une extension de ces études aux propriétés de notre formalisme, c’est-à-dire aux pro- priétés définies à l’aide des ensembles flous comme les propriétés élémentaires). Il serait inté- ressant d’appliquer toutes les optimisations ayant rapport à la stabilité, la périodicité et autres comportements que peut avoir une propriété et la valeur d’un domaine pendant la construction d’un concept non-terminal ou de la scène. Il faudrait aussi étudier l’influence des contraintes dans ces caractéristiques.

Nous allons maintenant étudier d’autres éléments du noyau permettant de gérer tout ce que nous venons de traiter dans ces deux chapitres.

C

HAPITRE

II.4 : N

OYAUX ET MODULES DÉCLARATIFS

1. Introduction

Dans les chapitres précédents, nous avons décrit les principaux éléments du noyau, c’est-à- dire les fonctionnements et la structure des concepts, des tâches de génération et des proprié- tés de la description. Un modeleur déclaratif (et donc le noyau) est constitué de trois modules principaux :

• le module de gestion de la description (section 2) ;

• le module de génération, appelé aussi module de calcul(section 3) ; • le module de prise de connaissance (section 5).

Leur rôle est d’aider la manipulation des structures du noyau et de proposer des opérations de haut niveau en effectuant un certain nombre des opérations de bas niveau. Nous revien- drons aussi sur le problème de la négation linguistique et nous verrons à quel moment et dans quel module, elle est gérée (section 4). Nous terminerons notre description des éléments du noyau de CordiFormes en détaillant la base de connaissances (section 5).