• Aucun résultat trouvé

Détermination du choix optimal

2.3 Exploitation des réseaux GAI pour la résolution de problèmes décisionnels

2.3.1 Détermination du choix optimal

Le problème du choix optimal consiste à déterminer l'alternative préférée d'un dé-cideur (voir dénition 65). Comme nous nous plaçons dans le cadre des modèles GAI, nous pouvons garantir que cette alternative préférée existe (propriété 20). Dans ce forma-lisme, cette recherche consiste à déterminer l'alternative maximisant la fonction d'utilité (propriété 21).

Dénition 65 (Alternative préférée) Soit X un espace d'alternatives, Á une rela-tion de préférence sur X , et ¡ la relarela-tion de préférence stricte issue de Á. On dit que l'alternative xP X est une alternative préférée de Á si, et seulement si, Ex P X vériant x¡ x.

Propriété 20 (Condition susante d'existence) Soit X un espace d'alternatives ni et Á une relation de préférence sur X . Si Á est représentable par une fonction d'utilité, alors il existe une alternative x P X , préférée au sens de Á.

2. Décision avec le modèle GAI 59 Propriété 21 Soit X un espace d'alternatives ni, Á une relation de préférence sur X , représentable par une fonction d'utilité u : X Ñ R, et xP X . On a :

xalternative préférée de Áô x arg max

xPX upxq

Remarque 13 Cette alternative préférée existe mais n'est pas forcément unique : plu-sieurs alternatives peuvent partager la même valeur d'utilité maximale. Le problème du choix optimal ne traite dans ce cas que la détermination d'une des alternatives préférées, mais on peut obtenir l'ensemble des alternatives préférées en utilisant l'algorithme de rangement qui sera présenté ensuite.

Une première approche simple consiste à énumérer toutes les alternatives de X et à conserver celle d'utilité maximale, mais nous avons vu que la taille de X augmentait de façon exponentielle selon le nombre d'attributs. Il n'est donc pas raisonnable d'envisager cette approche dès que le nombre d'attributs devient grand. Dans (Gonzales et Perny, 2004), un algorithme a été proposé pour réduire les calculs nécessaires à la résolution de ce problème en exploitant la structure du réseau GAI (et donc les indépendances entre attributs du décideur). Cette approche est une application directe de la programmation dynamique non sérielle (Bertele et Brioschi, 1972), axiomatisée dans Shafer et Shenoy (1990); Shenoy et Shafer (1990). Nous allons dans un premier temps utiliser un exemple pour présenter cet algorithme, puis nous le formaliserons avant d'étudier ses limites.

X1X2 X2 X2 X2X3 X2X4 X3 X3X5

(a) Forêt de jonction

X1 X2 x11 x12 x21 5 7 x22 3 10 x23 15 4 (b) u1px1, x2q X2 X4 x21 x22 x23 x41 8 1 2 x42 10 12 3 (c) u2px2, x4q X2 X3 x21 x22 x23 x31 6 5 10 x32 8 8 14 (d) u3px2, x3q X3 X5 x31 x32 x51 1 8 x52 10 11 x53 5 2 (e) u4px3, x5q Figure 2.10  Réseau GAI de l'exemple 23

Exemple 23 Considérons l'espace d'alternatives X  X1  X2  X3 X4 X5 et la fonction GAI-décomposable upx1, x2, x3, x4, x5q  u1px1, x2q u2px2, x4q u3px2, x3q u4px3, x5q représentée par le réseau GAI de la gure 2.10. La détermination de l'alterna-tive préférée revient à déterminer x P X tel que upxq  maxxPX upxq, ce qui corres-pond donc à déterminer maxx1PX1maxx2PX2maxx3PX3maxx4PX4maxx5PX5 u1px1, x2q u2px2, x4q u3px2, x3q u4px3, x5q. Or, en utilisant les propriétés de commutativité et d'associativité de l'addition, et le fait que les sous-fonctions d'utilité ne sont pas dénies

sur l'intégralité des attributs du problème, il est possible de réécrire la formule de la façon suivante : upxq  max x5PX5 max x3PX3 u4px3, x5q max x2PX2  u3px2, x3q max x1PX1 u1px1, x2q max x4PX4 u2px2, x4q En introduisant des fonctions φi,j et ψi pour montrer la décomposition des calculs, cette expression s'écrit de façon plus lisible :

$ ' ' ' ' ' ' ' ' ' ' & ' ' ' ' ' ' ' ' ' ' % ψ2px2, x4q  u2px2, x4q φ2,3px2q  maxx4PX4 ψ2px2, x4q ψ1px1, x2q  u1px1, x2q φ1,3px2q  maxx1PX1 ψ1px1, x2q ψ3px2, x3q  u3px2, x3q φ1,3px2q φ2,3px2q φ3,4px3q  maxx2PX2 ψ3px2, x3q ψ4px3, x5q  u4px3, x5q φ3,4px3q upxq  maxx5PX5maxx3PX3 ψ4px3, x5q

En utilisant ces notations, les ψi sont des fonctions utilisées pour représenter une sous-fonction d'utilité et pour réaliser certaines sommes de l'expression, tandis que les φi,j sont des réductions des ψi sur un sous-ensemble d'attributs en utilisant la maximisation. On peut faire trois constatations :

 Les fonctions ψi sont exactement dénies sur les attributs de la clique contenant l'utilité ui.

 Les fonctions φi,jsont exactement dénies sur les attributs du séparateur connectant la clique Ci à la clique Cj.

 Ce séquençage de calculs suit un certain ordre le long du graphe.

On peut représenter ce séquençage comme une série d'envois de messages le long des séparateurs de la forêt de jonction jusqu'à atteindre la clique X3X5 (voir la gure 2.11). On nommera cette façon de procéder la  phase de collecte .

X1X2 X2 X2 X2X3 X2X4 X3 X3X5 ψ4px3, x5q ψ3px2, x3q ψ2px2, x4q ψ1px1, x2q φ2,3px2q φ1,3px2q φ3,4px3q

Figure 2.11  Phase de collecte Posons maintenant x  px

1, x 2, x

3, x 4, x

5q. Le dernier calcul de la phase de col-lecte pour déterminer upxq consiste à maximiser complètement ψ4px3, x5q. Lors de cette maximisation, on peut déterminer (en eectuant un arg max) les instanciations x

3 et x

5 composant l'alternative x, ce qui ne résoud pas complètement notre problème. Si on reprend la manière dont nous avons déni les diérentes fonctions, on peut se rendre compte que ψ4px 3, x 5q  u4px 3, x 5q φ3,4px 3q  u4px 3, x 5q maxx2PX2 ψ3px2, x 3q, donc x 2  arg maxx2PX2 ψ3px2, x

sys-2. Décision avec le modèle GAI 61 tème suivant : $ ' ' & ' ' % px 3, x 5q  arg maxpx3,x5qPX3X5ψ4px3, x5q x 2  arg maxx2PX2ψ3px2, x 3q x 1  arg maxx1PX1ψ1px1, x 2q x 4  arg maxx4PX4ψ2px 2, x4q X1X2 X2 X2 X2X3 X2X4 X3 X3X5 x3 x2 x2

Figure 2.12  Phase de diusion

De la même façon que pour la phase de collecte, une telle opération peut s'interpré-ter de manière graphique (voir la gure 2.12) : la dernière clique de la phase de collecte permet d'obtenir une instanciation partielle de x. Il sut ensuite de remonter les mes-sages de la phase de collecte en sens inverse, en transmettant à chaque fois la projection de l'instanciation partielle sur le séparateur parcouru. Avec le message transitant et la fonction ψi calculée pendant la phase de collecte, il est possible de reconstituer au fur et à mesure l'intégralité de l'alternative optimale x. Cette seconde phase se nomme la  phase de diusion .

En eectuant les calculs des fonctions intermédiaires (voir gure 2.13), on aura px

3, x

5q  px32, x52q (puisque 42 maximise toutes les autres valeurs de ψ4), or φ3,4px 3q  31  ψ3px 2, x 3q, donc x 2  x23. De la même façon φ1,3px 2q  15  ψ1px 1, x 2q et φ2,3px 2q  3  ψ1px 2, x 4q, donc x 1  x11 et x

4  x42. On en déduit donc que l'alterna-tive optimale est x px11, x23, x32, x42, x52q.

X2 x21 7 x22 10 x23 15 (a) φ1,3px2q X2 x21 10 x22 12 x23 3 (b) φ2,3px2q X2 X3 x21 x22 x23 x31 23 27 27 x32 25 30 31 (c) ψ3px2, x3q X3 x31 27 x32 31 (d) φ3,4px3q X3 X5 x31 x32 x51 28 39 x52 37 42 x53 32 33 (e) ψ4px3, x5q Figure 2.13  Calcul des fonctions intermédiaires

Cet exemple nous a permis de montrer qu'un raisonnement purement algébrique pou-vait s'interpréter sur la structure du réseau GAI. Une telle approche est démontrable en appliquant l'axiomatique de la programmation dynamique non sérielle (voir (Shenoy et Shafer, 1990)) sur ces sous-fonctions d'utilité avec les opérateurs de maximisation et d'addition appropriés.

Pour formaliser les techniques utilisées dans l'exemple, il est nécessaire de dénir une clique au sein de l'arbre de jonction, que l'on nommera la clique racine. Le rôle de cette clique est de faire le pont entre la phase de collecte et la phase de diusion, tous les messages de la phase de collecte seront orientés vers cette clique, et elle sera à l'origine du premier message de la phase de diusion (le réseau ayant une structure d'arbre, il

existe une unique chaîne reliant une clique quelconque à cette clique. Dans l'exemple 23, il s'agissait de la clique X3X5). L'indice de cette clique est transmise dans les deux arguments de l'algorithme de collecte (voir algorithme 5).

La seule diérence entre l'éxécution sur l'exemple et cet algorithme est la création à la ligne 10 de la fonction ArgMaxT abact,succ. Son unique but est d'optimiser les cal-culs durant la phase de diusion, ainsi il n'y a plus besoin de parcourir deux fois les hypermatrices (une fois pour calculer un max, l'autre pour un arg max) : toutes les in-formations auront déjà été calculées pendant la phase de collecte, et on aura donc d'une part une fonction φ qui, à une instanciation de séparateur, renverra la maximisation de la sous-utilité, et d'autre part une fonction ArgMaxT ab qui, à une instanciation de sé-parateur, renverra l'instanciation n'appartenant pas au séparateur ayant servi à obtenir cette valeur.

Remarque 14 Pour faciliter la lecture des algorithmes présentés dans cette thèse, nous utiliserons des opérateurs directement sur les hypermatrices.

Ainsi, étant donnée une fonction ψ : XD Ñ R et une fonction φ : XE Ñ R, la valeur de retour de ψ φ est une fonction f : XDYE Ñ R vériant @x P XDYE fpxq  ψpxDq φpxEq.

De la même façon, pour des opérateurs unaires, étant donnée une fonction ψ : XE Ñ R, maxXEψ correspond à la valeur maximale contenue dans la table représentant ψ (on maximise sur tout le domaine de dénition). Tandis que, pour S € E, l'expres-sion maxXSψ s'évalue en une fonction f, dénie sur XEzS (les attributs n'ayant pas été pris en compte par la maximisation), et vériant @x P XEzS fpxq  maxyPXSψpx, yq. Il en est de même pour l'expression arg maxXSψ, elle s'évalue en une fonction g dénie sur XEzS et vériant @x P XEzS gpxq  arg maxyPXSψpx, yq.

Par exemple, étant donnée une fonction u : X1 X2 Ñ R avec X1  tx11, x12u et X2  tx21, x22u et vériant upx11, x21q  27, upx12, x21q  1664, upx11, x22q  51 et upx12, x22q  33. Si v  maxX1u, alors on aura vpx21q  maxt27, 1664u  1664 et vpx22q  maxt51, 33u  51. Si v  maxX1X2u, comme u est dénie sur X1 X2, v est un scalaire et on aura v  maxt27, 1664, 51, 33u  1664.

Considérons une fonction ψ dénie sur X1  X2 (avec X1  tx11, x12u et X2  tx21, x22u) et telle que ψpx11, x21q  3, ψpx11, x22q  2, ψpx12, x21q  1 et ψpx12, x22q  4. Notons ArgMaxT ab  arg maxX1ψ, alors ArgMaxT ab sera déni sur X2 et on aura ArgM axT abpx21q  x11(étant donné que ψpx11, x21q ¡ ψpx12, x21q) et ArgMaxT abpx22q  x12 (étant donné que ψpx12, x22q ¡ ψpx11, x22q).

Exemple 24 En appliquant le pseudo-code à l'exemple précédent (les cliques Ci sont les cliques contenant la sous-fonction d'utilité ui), et en supposant que la boucle Pour par-court les voisins dans l'ordre croissant des indices des cliques, on obtiendra la séquence de calculs suivante : Appel à Collecte(4, 4) Créer ψ4Ð u4 Appel à Collecte(3, 4) Créer ψ3 Ð u3 Appel à Collecte(1, 3) Créer ψ1 Ð u1

2. Décision avec le modèle GAI 63 Algorithme 5 : Collecte

Entrées :

act : indice d'une clique, succ : indice d'une clique Créer ψact Ð uact;

1

pour chaque clique Cj voisine de Cact faire

2

si j  succ alors

3

Collecte(j, act);

4

ψactÐ ψact φj,act;

5

n

6

n

7

si act  succ alors

8

Créer φact,succÐ maxCactzSact,succψact;

9

Créer ArgMaxT abact,succÐ arg maxCactzSact,succψact;

10

n

11

Créer φ1,3Ð maxX1ψ1

Créer ArgMaxT ab1,3Ð arg maxX1ψ1 Retour dans Collecte(3, 4)

ψ3 Ð ψ3 φ1,3

Appel à Collecte(2, 3) Créer ψ2 Ð u2

Créer φ2,3Ð maxX4ψ2

Créer ArgMaxT ab2,3Ð arg maxX4ψ2 Retour dans Collecte(3, 4)

ψ3 Ð ψ3 φ2,3

Créer φ3,4 Ð maxX2ψ3

Créer ArgMaxT ab3,4 Ð arg maxX2ψ3 Retour dans Collecte(4, 4)

ψ4 Ð ψ4 φ3,4

Il est à noter que l'algorithme de collecte dénie une hiérarchie sur les cliques d'un arbre de jonction : l'ordre de collecte. De cet ordre, on peut déduire deux notions im-portantes sur les cliques : les prédecesseurs et le successeur (dénition 66). Ces notions seront exploitées par la suite dans d'autres algorithmes que nous présenterons.

Dénition 66 (Successeur, prédecesseurs) Étant donné un algorithme de collecte sur un arbre de jonction, on dénit le successeur d'une clique Ci comme étant la clique Cj reçevant un message φi,j (on note Succpiq  j, et on pose, si Croot est la clique racine, Succprootq  root). De la même façon, les prédecesseurs d'une clique Cj sont les cliques Ci ayant engendré un message φi,j vers Cj (on note P redpjq la fonction renvoyant l'ensemble des indices des cliques ayant produit ces messages).

La phase de diusion utilise les ArgMaxT ab calculés dans la phase de collecte. Sa structure est la même que l'algorithme de collecte : l'indice de la clique racine est passé

en double argument de la fonction, et les appels récursifs correspondent à un parcours en profondeur de graphe (voir algorithme 6).

Algorithme 6 : Diusion Entrées :

act : indice d'une clique, succ : indice d'une clique,

x : instanciation des attributs du réseau si act  succ alors

1

Instancier partiellement x avec arg maxXCactψact;

2

sinon

3

Instancier partiellement x avec ArgMaxT abact,succpx

Sact,succq;

4

n

5

pour chaque clique Cj voisine de Cact faire

6 si j  succ alors 7 Diffusion(j, act, x); 8 n 9 n 10

Le problème du choix optimal est donc résolu par un algorithme en deux phases. Il est intéressant de constater que la phase de collecte eectue les calculs coûteux en temps, tandis que la phase de diusion réexploite ces calculs mais est bien plus rapide (voir propriété 22).

Propriété 22 (Complexité temporelle de l'algorithme) La phase de collecte s'exé-cute en un temps de l'ordre de Ωp°CjPC±XiPCj|Xi|q et Op|C| maxCiPC±

XiPCj|Xi|). La phase de diusion s'éxécute en un temps de l'ordre de Op|C| maxCiPC|Ci|q (Dechter, 2003).

Preuve. Pour la phase de collecte, l'ordre de grandeur en Ω se démontre trivialement en observant que chaque valeur contenue dans une sous-utilité doit être parcourue au moins une fois dans l'algorithme. Pour la complexité en O, posons K  maxCiPC±

XiPCj|Xi|, alors les opérations des lignes 05, 09 et 10 sont en OpKq. À chaque appel récursif, elles doivent être éxécutées OpdpCactqq fois (avec dpCactq le nombre de voisins de la clique Cact). Donc une récursion a un coût en OpdpCactqKq. Comme on eectue une récursion pour chaque clique, et que le réseau a une structure d'arbre, on aura donc Op°CiPCdpCiqKq  Op|C|Kq.

Pour la phase de diusion, chaque appel récursif instanciera OpCactq „ OpmaxCiPC|Ci|q attributs. On eectue un appel récursif par cliques, on aura donc Op|C| maxCiPC|Ci|q.  Supposons maintenant que le réseau GAI ait une structure de forêt de jonction. Ses composantes connexes sont donc des arbres de jonction, et deux attributs contenus dans deux arbres diérents sont donc totalement indépendants. L'algorithme de choix optimal se généralise donc facilement : il sut d'éxécuter l'algorithme indépendamment sur chaque arbre du réseau, puis de recomposer chaque sous-alternative obtenue en une alternative globale.

2. Décision avec le modèle GAI 65