• Aucun résultat trouvé

Triangulation et construction automatique de réseaux GAI

2.2 Représentation des préférences par des réseaux GAI

2.2.2 Triangulation et construction automatique de réseaux GAI

Dans la remarque 8, nous avions évoqué le fait qu'obtenir une forêt de jonction à partir d'un ensemble de sous-fonctions d'utilité n'était pas tout le temps évident : nous avions une fonction d'utilité upx1, x2, x3, x4, x5q  u1px1, x2q u2px2, x3q u3px3, x4q u4px4, x5q u5px1, x5q. Si on crée un réseau ayant pour cliques X1X2, X2X3, X3X4, X4X5 et X1X5, il n'est pas possible de placer des séparateurs respectant à la fois la propriété d'intersection courante et l'acyclicité du réseau (pour que le réseau soit une forêt de jonction). Pourtant, nous avons vu qu'il existe une manière de réécrire la GAI-décomposition pour créer un réseau GAI représentant cette fonction d'utilité. Cette façon de faire peut être automatisée au moyen d'une structure de graphe intermédiaire (le graphe primal de l'hypergraphe, que nous appellerons graphe markovien, par analogie avec les réseaux bayésiens) et de deux algorithmes (la triangulation et la réduction). Dénition 55 (Graphe markovien) Soit Á une relation de préférence sur un en-semble X  ±n

i1Xi, représentable par une fonction d'utilité u, GAI-décomposable en @x P X upxq °q

j1ujpxCjq. Le graphe markovien GM de la GAI-décomposition est le graphe primal de l'hypergraphe GH  pV, Sq, avec V  tXiun

i1, et S  tXCjuq j1. Le graphe markovien se construit donc très simplement : Il sut de créer un sommet par attribut composant X , et de générer un sous-graphe complet pour chaque ensemble d'attributs composant une sous-fonction d'utilité. L'étude d'un graphe markovien per-met de construire la forêt de jonction nécessaire pour dénir le réseau GAI de la GAI-décomposition d'une fonction d'utilité. Cette construction se nomme triangulation, et le théorème 1 (adapté de Gavril (1974)) permet de caractériser les forêts de jonction dans lesquelles chaque clique correspond exactement aux attributs d'une fonction d'utilité. Théorème 1 (Caractérisation d'une triangulation parfaite) Soit GM le graphe mar-kovien d'une décomposition. Il existe une forêt de jonction F réprésentant la GAI-décomposition telle que toute clique de F corresponde à une clique maximale de GM si, et seulement si, GM est cordal.

La reconnaissance d'un graphe markovien cordal est un problème polynômial qui peut être résolu avec des algorithmes simples et ecaces (Rose et al., 1976; Ohtsuki, 1976; Tarjan et Yannakakis, 1984). Ce type d'algorithme permet aussi de contruire ce que l'on nomme une forêt d'élimination. Une forêt d'élimination est une forêt de jonction dont les cliques ne correspondent pas nécessairement à des cliques maximales du graphe markovien. Dans le cas des graphes non cordaux, un algorithme de triangulation doit ajouter des arêtes au graphe markovien pour le rendre cordal. Ces arêtes sont nommées  ll-ins , et le graphe résultat sera le graphe triangulé, ou la triangulation du graphe markovien.

Dénition 56 (Graphe triangulé, ll-ins) Soit GM  pVM, EMq un graphe non orienté. On dit que le graphe non orienté GT  pVM, ETq est une triangulation du graphe GM

(ou encore que GT est un graphe triangulé de GM) , si et seulement si, ET  EM Y EF

Algorithme 2 : Triangulation

Entrée : GM  pVM, EMq un graphe markovien Sorties :

GT : graphe triangulé, GA : forêt d'élimination,

σ : ordre d'élimination des sommets

créer le graphe GA pVA, EAq avec VA H et EA H;

1

créer le graphe GT  pVT, ETq avec VT  VM et ET  H;

2

créer le graphe Temp  pV, Eq avec V  VM et E  EM;

3

pour i variant de 1 à |VM| faire

4

choisir un sommet Xσpiq de V (σ : permutation de t1, . . . , nu);

5

créer Voisins Ð Ensemble des sommets voisins de Xσpiq dans Temp ;

6

créer Ci Ð Voisins YtXσpiqu;

7

créer Clique Ð ttXσpiq, Xku{XkP Voisins u Y ttXk, Xlu{Xk, XlP Voisins u;

8 ET Ð ETY Clique ; 9 VAÐ VAY tCiu; 10 E Ð EY Clique ; 11 E Ð E  ttXσpiq, Xku P Eu; 12 V Ð V  tXσpiqu; 13 n 14

pour i variant de 1 à |VM| faire

15

soit k  minXσpjqPCitj{j  iu;

16 si k existe alors 17 EAÐ EAY ttCi, Ckuu; 18 n 19 n 20 retourner pGT, GA, σq; 21

2. Décision avec le modèle GAI 49 Rose (1970) a montré que trianguler un graphe revient à eectuer l'algorithme géné-rique 2 (dans cet algorithme, nous construirons conjointement le graphe triangulé et la forêt d'élimination)

Dans cet algorithme, le graphe GAva correspondre à la forêt d'élimination créée par la triangulation, et GT au graphe triangulé. Temp est un graphe temporaire qui est exploité uniquement pendant la première boucle. Les lignes 01 à 03 initialisent ces trois graphes : GA sera un graphe vide, GT un graphe sans arêtes et contenant tous les attributs en tant que sommets, et Temp une copie de GM qui sera réduite au fur et à mesure (sans impact pour GM). La première boucle Pour détermine (à chaque itération i) à la ligne 05 un sommet de Temp Xσpiq, crée deux variables locales : Voisins à la ligne 06 qui contient l'ensemble des sommets voisins de Xσpiq dans Temp, et Clique qui contiendra l'ensemble des arêtes possibles entre Xσpiq et ses voisins. La variable Ci correspond juste aux attributs de Voisins et Xσpiq, puis les trois graphes sont modiés :

 La forêt d'élimination GA : on ajoute un sommet correspondant à Ci. Celui-ci devient une clique de la forêt de jonction (ligne 10).

 Le graphe triangulé GT : on forme une clique entre Xσpiq et ses voisins existant encore dans Temp (ligne 09).

 Le graphe temporaire Temp : Après modication sur les deux autres graphes de la boucle, on forme une clique entre Xσpiq et ses voisins existant encore (ligne 11), puis on supprime Xσpiq et toutes ses arêtes adjacentes (lignes 12 et 13).

A la n de la première boucle Pour (ligne 14), le graphe GT correspond à une trian-gulation du graphe markovien GM, et la forêt d'élimination GAcontient un ensemble de cliques, mais aucune arête. La seconde boucle Pour (ligne 15) va créer les arêtes de GA

en choisissant (si c'est possible) de lier la clique Ci à la première clique ayant été créée après Ci par l'élimination d'un attribut de Ci (lignes 16 et 17). A la n de cette boucle (ligne 18), on peut garantir que GA est une forêt de jonction. L'ensemble des ll-ins du graphe triangulé est donc l'ensemble des arêtes qu'il est nécessaire d'ajouter pour former une clique entre Xσpiq et ses voisins à la ligne 08 (donc la variable locale Clique contient des arêtes existant déjà dans E et des ll-ins).

Il est à noter que la forêt d'élimination générée et le graphe triangulé ne sont pas forcément uniques. Il est possible d'eectuer un autre choix de sommets (représenté par la fonction σ) pour obtenir une triangulation diérente. Cette succession de choix de sommets sera nommée  séquence d'élimination .

Dénition 57 (Séquence d'élimination) Soit GM  pVM, EMq un graphe markovien tel que VM  tX1, . . . , Xnu. La séquence d'élimination de l'application de l'algorithme générique de triangulation sur GM est une bijection σ : t1, . . . , nu Ñ t1, . . . , nu telle que @i P t1, . . . , nu Xσpiq est le sommet de VM choisi à la i-ième itération de l'algorithme (ligne 05).

Remarque 10 Lorsque nous avions présenté les forêts de jonction, on pouvait s'inter-roger sur le choix d'appeler chaque sommet  une clique , alors que ce nom existait déjà en théorie des graphe pour symboliser un sous-graphe complet maximal. Cette dénomina-tion est liée à la trianguladénomina-tion, car chaque clique de la forêt d'éliminadénomina-tion GA représente un sous-graphe complet du graphe triangulé GT, et donc GA n'est qu'une représentation factorisée de GT respectant les propriétés de forêt et d'intersection courante.

Il est aussi à noter que nous avons choisi de présenter les algorithmes de triangulation sous la forme d'une élimination de sommets. Cette approche n'est pas unique (Para et Scheer, 1997), mais sera celle qui est utilisée en pratique dans nos expérimentations.

X3 X2 X1 X7 X4 X5 X6

Figure 2.5  La graphe markovien à trianguler

X3 X2 X1 X7 X4 X5 X6

(a) Le graphe cordal obtenu (les ll-ins sont les arêtes en pointillés)

X1X2X3 X4X6X7 X6X7 X6X7 X6X7 X5X6X7 X3X6X7 X1X3X7 X3X7 X6X7 X1X3 X6 X6

(b) La forêt d'élimination obtenue Figure 2.6  Graphes produits par l'algorithme de triangulation

Exemple 20 Considérons le graphe markovien représenté dans la gure 2.5, éxécutons la procédure de triangulation avec la séquence d'élimination pX2, X1, X3, X5, X4, X7, X6q et observons le déroulement en fonction des diérents graphes intervenant dans l'algo-rithme :

 Temp (voir gures 2.7) est initialisé comme une copie du graphe markovien donné en argument. A la première itération, X2 ayant pour voisin X1 et X3, le ll-in tX1, X3u sera créé, puis le sommet X2 sera supprimé (avec ses arêtes incidentes). A la n de la première itération, on obtiendra donc le graphe de la gure 2.7(a). De la même façon sur le graphe résultant, l'élimination de X1 engendrera le ll-in tX3, X7u (gure 2.7(b)), l'élimination de X3 ajoutera le ll-in tX6, X7u

(-2. Décision avec le modèle GAI 51 gure 2.7(c)). Le graphe étant devenu une clique, toutes les autres éliminations n'ajouterons pas de ll-ins (gures 2.7(d), 2.7(e) et 2.7(f)).

 GT est une copie des sommets du graphe markovien sans arêtes. A chaque itération, on ajoute au graphe des arêtes appartenant au graphe markovien initial et des ll-ins. Il en résulte qu'à la n de la triangulation, GT correspondra au graphe markovien et aux ll-ins ajoutés (représenté dans la gure 2.6(a)).

 GAest l'arbre d'élimination, ses cliques sont X1X2X3(élimination de X2), X1X3X7 (élimination de X1), X3X6X7 (élimination de X3), X5X6X7 (élimination de X5), X4X6X7(élimination de X4), X6X7 (élimination de X6)et X7(élimination de X7). La seconde boucle crée les séparateurs de cet arbre d'élimination, le premier som-met éliminé de X1X2X3 diérent de X2 est X1, X1X2X3 sera donc lié à X1X3X7. En suivant un raisonnement identique pour toutes les autres cliques, on obtient nalement le graphe de la gure 2.6(b).

X3 X1 X7 X4 X5 X6 (a) Elimination de X2 X3 X7 X4 X5 X6 (b) Elimination de X1 X7 X4 X5 X6 (c) Elimination de X3 X7 X4 X6 (d) Elimination de X5 X7 X6 (e) Elimination de X4 X6 (f) Elimination de X7

Figure 2.7  Exemple de triangulation

Nous avons vu comment obtenir un graphe triangulé et une forêt d'élimination à partir d'un graphe markovien. Toutefois (comme le montre l'exemple 20) cette forêt n'est pas obligatoirement compacte (certaines cliques peuvent être entièrement contenues dans d'autres cliques). Obtenir une forêt de jonction compacte est le but d'un algorithme de réduction comme présenté dans l'algorithme 3.

Algorithme 3 : Réduction

Entrée : GA pVA, EAq une forêt d'élimination Sortie : GA une forêt de jonction

tant que DtCi, Cju P EA avec Ci€ Cj faire

1 créer Voisins Ð tCk{tCi, Cku P EAu; 2 Voisins Ð Voisins ztCju; 3 EAÐ EAzttCi, Cku{tCi, Cku P EAu; 4 VAÐ VAztCiu; 5

pour tous les CkP Voisins faire

6 EAÐ EAY ttCj, Ckuu; 7 n 8 n 9

Le principe de fonctionnement de cet algorithme est d'identier deux cliques voisines dont l'une (Ci) est complètement incluse dans l'autre (Cj) à la ligne 01 (on présente cette recherche sous forme d'arêtes grâce à la propriété d'intersection courante). Si de telles cliques existent, on stocke l'ensemble des cliques voisines de Ci dans la variable locale Voisins (ligne 02), à l'exception de Cj (ligne 03), puis on supprime toutes les arêtes adjacentes à Ci(ligne 04) pour nalement supprimer Cidu graphe (ligne 05) et réassigner toutes les anciennes cliques voisines de Ci comme de nouvelles voisines de Cj (ligne 06 à 09). Ainsi les propriétés de forêt et d'intersection courante sont conservées.

X1X2X3 X3X6X7 X1X3X7 X3X7 X1X3 X6X7 X5X6X7 X6X7 X4X6X7

Figure 2.8  La forêt de jonction après réduction

Exemple 21 Considérons la procédure de réduction appliquée à la forêt d'élimination de l'exemple 20. La clique X6 est complètement contenue dans la clique voisine X6X7. Elle n'a pas d'autres voisins. On peut donc supprimer X6 et l'arête reliant X6 à X6X7. X6X7 est complètement contenue dans la clique voisine X3X6X7 et possède d'autres voisins (X4X6X7 et X5X6X7). Il est donc nécessaire de créer deux arêtes reliant X4X6X7 et X5X6X7 à X3X6X7 avant de supprimer X6X7. Après cette opération, aucune autre itération n'est possible. On a donc obtenu la forêt de jonction de la gure 2.8.

Nous disposons donc de deux procédures : la triangulation permet la génération d'une forêt d'élimination à partir du graphe markovien d'une GAI-décomposition via une tri-angulation, et la réduction permet de compacter la forêt d'élimination en une forêt de jonction qui correspondra à la structure du réseau GAI. Pour construire automatique-ment un réseau GAI à partir d'une GAI-décomposition, il sut donc d'assigner à chaque

2. Décision avec le modèle GAI 53 clique de la forêt de jonction une hypermatrice correspondant à une sous-fonction d'uti-lité. L'ensemble des attributs du domaine de dénition de chaque sous-fonction d'utilité est intégralement contenu dans une clique de la forêt de jonction. Si deux sous-fonctions d'utilité doivent être assignées à une même clique, il sut de les additionner.