Représentation et approximation de fonctions booléennes : Application à la génération de requêtes

Dimension: px
Commencer à balayer dès la page:

Download "Représentation et approximation de fonctions booléennes : Application à la génération de requêtes"

Transcription

1 INSTITUT DE RECHERCHE EN INFORMATIQUE DE NANTES Représentation et approximation de fonctions booléennes : Application à la génération de requêtes LEBLET Jimmy encadré par QUAFAFOU Mohamed Institut de Recherche en Informatique de Nantes 2, rue de la Houssinière B.P F NANTES CEDEX 3 RAPPORT DE STAGE DE DEA Mars 2004 IRIN, Faculté des Sciences & Techniques de Nantes 2, rue de la Houssinière B.P F NANTES CEDEX 3

2 LEBLET Jimmy (encadré par QUAFAFOU Mohamed) Représentation et approximation de fonctions booléennes : Application à la génération de requêtes c Mars 2004 par LEBLET Jimmy rapport.tex Représentation et approximation de fonctions booléennes : Application à la génération de requêtes 8/3/ :41

3 Représentation et approximation de fonctions booléennes : Application à la génération de requêtes LEBLET Jimmy (encadré par QUAFAFOU Mohamed)

4

5 Introduction L algèbre de Boole et le binaire sont au coeur de l informatique. Ces domaines ont été étudiés bien avant la naissance des premiers ordinateurs, mais l apparition de l informatique a permis un regain d intérêt pour ce domaine. L informatique a, par la suite donné naissance à une mine d information et de connaissances : Internet et le Web. On a donc un contraste entre l émergence récente de l Internet et la relative vieillesse de l algèbre de Boole. Dans ce mémoire, on réalise une symbiose entre les deux. En effet, on va se servir des formules booléennes, objets connus depuis de nombreuses années, afin d extraire des informations du Web. Dans ce but, on étudie dans le chapitre 1 une nouvelle représentation des fonctions booléennes. Celle-ci a été introduite en 1992 par Bryant. Cette représentation permet de transformer les fonctions booléennes (ou fonctions logiques) en graphe (ROBDD). A partir de ces graphes, on peut alors réaliser une approximation de cette fonction, c est un moyen simple et rapide de réaliser une approximation d une fonction booléenne. Cette méthode sera mise à contribution dans le chapitre 3. Dans ce chapitre, on décrit un algorithme et une méthode de génération de nouvelles requêtes à partir d un fichier contenant des requêtes déjà soumises. Ceci permet de générer de manière automatique des requêtes nouvelles qui peuvent améliorer la recherche réalisée au travers des précédentes requêtes. Dans le chapitre 4, on relie cette méthode à un programme de création automatique de corpus dans une langue minoritaire : CorpusBuiler. Il permet de récupérer sur le Web des documents dans une langue cible peu répandue. On essaiera d améliorer ce programme au moyen de la méthode décrite dans le chapitre 3. Ceci permet de valider la méthode proposée pour la génération automatique de requête au moyen des ROBDD. 3

6 Chapitre 1 Etude d une représentation particulière des fonctions booléennes : les ROBDD Le coeur de l informatique est basé sur le binaire et donc sur l algèbre de Boole. L étude des fonctions booléennes s est ainsi très développée depuis l origine de l informatique. De nombreuses recherches ont donc été réalisées sur le sujet. L étude des fonctions booléennes est un domaine vaste et difficile ; historiquement, l un des premiers problèmes qui a été démontré comme étant NP-Complet est un problème de satisfiabilité des fonctions booléennes. Cette difficulté provient du fait que ces fonctions sont simples mais en grand nombre : si l on a n variables, il existe alors 2 n fonctions booléennes différentes sur ces variables. Il faut alors pouvoir représenter de manières différentes toutes ces fonctions, tout en sachant que deux fonctions booléennes peuvent différer très peu l une de l autre. Le moyen de représenter ces fonctions influe donc grandement sur l efficacité avec laquelle on peut les utiliser par la suite. Nous allons introduire ici une représentation récente (voir [Bryant, 1992]) des fonctions booléennes. Cette représentation est avantageuse comparativement à d autres. De plus, ce système permet plus facilement de réaliser une approximation des fonctions booléennes, et ainsi on peut appliquer des opérateurs d approximation sur l espace des fonctions booléennes, ce qui permet de nombreuses applications, notamment en datamining et extraction de connaissances. Nous allons appliquer ceci à une étude de requêtes d utilisateurs à un moteur de recherche. On récupère une liste de requêtes soumises à un moteur de recherche (par un générateur automatique, un utilisateur ou un groupe d utilisateurs). Il s agit d étudier ces requêtes pour en générer de nouvelles. 1.1 Représentation des fonctions booléennes Les fonctions booléennes étant étudiées depuis de nombreuses années et dans différents domaines, il existe donc de nombreuses manières différentes de les représenter.nous rappelerons les notions fondamentales sur les fonctions booléennes. Ensuite, nous verrons différentes représentations existantes avec leurs avantages et inconvénients respectifs. Enfin, nous introduirons les ROBDD, qui est un nouveau moyen de les représenter Algèbre de Boole On note B l ensemble des valeurs de vérité, c est à dire l ensemble {0,1} où 0 représente la valeur faux et 1 la valeur vraie. Munis des opérateurs logiques et ( ), ou ( ) et non ( ), B devient une algèbre 4

7 5 de Boole. Pour un n donné, on peut définir une fonction f de B n B. On note l ensemble L(B n, B), l ensemble {f : B n B}. Cet ensemble, toujours muni des mêmes opérateurs que B, est aussi une algèbre de Boole. Définition 1 (Fonctions booléennes). L algèbre des fonctions booléennes, pour un n fixé est l ensemble L(B n, B) = {f : B n B} muni des opérateurs, et. Un élément de cette algèbre est une fonction booléenne à n variables à valeur dans B. Remarque. Voici quelques remarques concernant les fonctions booléennes et l algèbre qui leur est associée. On a L(B n, B) = 2 n. Ceci est le nombre de fonctions booléennes à n variables. Ce nombre est exponentiel par rapport au nombre de variables : si l on ajoute une variable, le nombre de fonctions booléennes est multiplié par deux! Si l on a f : B n B, on notera en général f comme f(x 1,,x n ), i.e. on notera x i la i-ème variable f. On peut définir des fonctions de B n B m, avec m 1. Pour étudier ce type de fonctions, on étudiera les restrictions sur chaque coordonnée, i.e., on verra g : B n B m comme : g(x 1,,x n ) = (g 1 (x 1,,x n ),,g m (x 1,,x n )) avec g i : B n B. On étudiera alors les g i indépendamment les unes des autres. La composition de fonctions booléennes est définie de manière triviale. Si l on a f 1 : B n B m, f 2 : B m B k, on a alors f = f 2 f 1 : B n B k, qui sera la fonction composée de f 1 et f 2. Définition 2 (Restriction de fonctions booléennes). Soit f une fonction booléenne à n variables (n 1). On peut alors plonger f dans L(B n 1, B). Pour cela, on choisit une variable x i avec i {1,,n}, et une valeur c pour cette variable (i.e. c B). On note alors, f xi =c, la fonction booléenne de B n 1 B qui est la restriction de f à x i = c Quelques représentations des fonctions booléennes Pour pouvoir travailler sur les fonctions booléennes, il faut pouvoir les représenter. Il en existe différentes représentations. Elles peuvent être très différentes les une des autres ou très proches. Chacune possède des inconvénients d utilisations et des avantages. Celles que nous allons voir sont celles le plus souvent utilisées. Formules booléennes Ceci est la représentation la plus souvent utilisée. Elle est aussi la plus connue et la plus répandue. Définition 3 (Formule booléenne de B n ). Une formule booléenne est un terme construit par induction sur les constantes booléennes 0 et 1, sur les variables x i de B n et les connecteurs logiques et ( ), ou ( ) et non ( ). La définition exacte de l ensemble des formules booléennes est : l ensemble des formules booléennes de B n est le plus petit ensemble de formules F B n tel que : 0,1 sont des formules. Les variables de B n sont des formules. Si g et f sont des formules, alors f g, f g et f sont des formules de B n. Exemple. Si l on note X = {x,y,z} l ensemble des variables deb 3, alors f = (x (y z)) ( y (x z)) est une formule booléenne de B 3.

8 6 Quel est l intérêt des formules booléennes? Les formules booléennes sont intéressantes pour plusieurs raisons. En effet, elles permettent facilement de pouvoir travailler avec les fonctions booléennes. Les formules booléennes sont des formules logiques, on peut donc aisément raisonner dessus. Leur grande expressivité leur permet d être comprise rapidement et par tout le monde. De plus, n importe quelle fonction booléenne f de B n peut être représentée par une formule booléenne. Réciproquement, chaque formule booléenne représente bien une fonction booléenne. Ainsi, l espace des formules booléennes décrit bien l espace des fonctions booléennes. Il se pose alors une question : Quelle est la différence entre les formules booléennes et les fonctions booléennes? On fait souvent l amalgame entre formules booléennes et fonctions booléennes. Or les formules booléennes sont justes un moyen de représenter les fonctions booléennes. De plus, il existe une grande différence entre formules et fonctions booléennes : Théorème. Soit f une fonction booléenne, alors f peut être représentée sous forme de formules booléennes. De même, chaque formule booléenne représente bien une fonction booléenne. Mais il n y a pas bijection entre formules booléennes et fonctions booléennes. En effet, deux formules booléennes différentes peuvent représenter la même fonction booléennes. Il n y a pas unicité de la représentation d une fonction booléenne par une formule booléenne, par contre deux formules booléennes égales représentent bien la même fonction booléenne. Ainsi, il n existe pas de bijection entre les deux espaces mais une surjection des formules booléennes sur les fonctions booléennes. Exemple. Voici f et g deux formules booléennes différentes : f = (a (b c)) ( a (b c)) et g = (a b) (a b c) ( a b c). Il est encore facile de voir que ces deux formules représentent la même fonction booléenne. Mais imaginons que l on ait 50 variables et non 3, alors le problème devient beaucoup plus difficile. Voici pourquoi les gens ne doivent pas identifier formules booléennes et fonctions booléennes. De nombreux problèmes apparaissent lorsqu on travaille avec les formules booléennes, car il faut pouvoir savoir si deux formules booléennes différentes sont bien égales comme fonctions booléennes. Or trouver (ou non) cette égalité est un problème très difficile. Tables de vérité Une fonction booléenne f est une application de B n vers B. Le moyen le plus simple de représenter cette fonction est tout simplement de faire la liste des valeurs possibles des variables booléennes et d indiquer la valeur de la fonction pour chaque assignement. Ceci peut être représenté dans une table où on liste toutes les entrées possibles (soit 2 n possibilités). En correspondance avec ces entrées, on indique l image de la fonction pour les valeurs des variables. Exemple. Voici une formule booléenne f d une fonction booléenne : f = (a b) ( b c). La table de vérité associée est :

9 7 a b c f L intérêt des tables de vérité est qu une fonction booléenne possède une unique représentation sous la forme de table de vérité. Par contre, elle utilise un tableau à 2 n entrées et est peu lisible. L ensemble des tables de vérité est en bijection avec l ensemble des fonctions booléennes, ceci explique l unicité de la représentation mais explique aussi sa difficulté d utilisation. Diagramme de Karnaugh Les diagrammes de Karnaugh sont semblables aux tables de vérité. La seule différence est que les variables booléennes sont représentées dans un tableau à deux dimensions au lieu d une seule pour les tables de vérité. Exemple. Pour la même formule booléenne que dans l exemple précédent (f = (a b) ( b c)), le diagramme de Karnaugh est : Formules booléennes sous forme cnf a ā b b c c c On a vu qu une fonction booléenne possède plusieurs représentations en formules booléennes. Pour essayer de palier à ce problème, on introduit une autre forme de formules booléennes : les formules en forme conjonctive normale (cnf). Définition 4 (Forme normale conjonctive). Une formule booléenne f sur X est dite en forme conjonctive normale si elle est de la forme : f = m i=1 f i avec f i = n i j=1 x ij et chaque x ij X X où X représente l ensemble des négations des variables de X. Le problème est qu une formule booléenne a encore plusieurs représentations en forme cnf : Exemple. La formule booléenne f = (a b) (a c) (a b c) représente la même fonction booléenne que g = (a b) (a c). Par contre, cela permet une normalisation des formules booléennes. On utilise parfois les formes k-cnf où 2 k N : on contraint f i tel que f i k (dans la définition, cela donne n i k). On utilise aussi les formes exact-k-cnf : f i = k. On peut représenter n importe quelle fonction booléenne sous la forme d une cnf (cnf, k-cnf ou exact-k-cnf selon notre choix).

10 8 Formules booléennes sous forme dnf Bien sûr, il existe la même chose pour les formules en formes normales disjonctives (dnf, k-dnf et exact-k-dnf) : Définition 5 (Forme normale disjonctive). Une formule booléenne f est dite en forme normale disjonctive si elle est de la forme : f = m i=1 f i avec f i = n i j=1 x ij et chaque x ij X X. Il est aisé de passer formellement d une forme à l autre : il suffit de développer les termes dans les parenthèses. Par contre, en calcul, la complexité est assez élevée Différents problèmes liés aux fonctions booléennes Voyons les principaux (et les plus connus) problèmes et opérations liés aux fonctions booléennes. Ces problèmes dépendent souvent de la représentation choisie pour la fonction booléenne. Application d un opérateur logique Soit f et g deux fonctions booléennes représentées par F et G. Soit un opérateur logique binaire (,,,...). Le problème est : Quelle est la représentation H de la fonction h telle que h = f g? Exemple. Si l on pose H = f g avec f = a b et g = a b, alors H = b ou H = (a b) ( a b). Cet exemple est simple, mais la question est plus difficile pour certaines représentations des fonctions booléennes. Il est plus difficile de réaliser cette opération si les fonctions sont représentées sous la forme de table de vérité ou sous la forme conjonctive normale. Le ou de deux formes conjonctives normales n est pas une forme conjonctive normale, il faut donc le transformer en forme cnf, ce qui demande du travail supplémentaire. Evaluation Soit f une fonction booléenne sur X et a un assignement d un sous-ensemble de variables de X. Le problème d évaluation est : Quelle est la fonction F telle que F = f(a)? Exemple. Soit f = (x y) ((z x) (y z)). On pose a = {x = 1,y = 1,z = 0} et b = {x = 0}. On a alors : F = f(a) = 1 et G = f(b) = y (z (y z)). L évaluation sert à déterminer la valeur de la fonction booléenne pour un assignement de toutes les variables de X. Elle permet aussi de réaliser des restrictions sur la fonction booléenne. Par exemple dans le cas où b = {x = 0}, on obtient la fonction G qui est la fonction f restreinte à x = 0 :G = f x=0. On peut ainsi à partir d une fonction f : B n B, obtenir une fonction g : B k B avec k < n. Satisfiabilité Soit f une fonction booléenne sur X avec X = n. On a vu que f : B n B. On a donc Im(f) B. L étude de la satisfiabilité de f est l étude de l ensemble Im(f) : Définition 6 (Fonction satisfiable). Une fonction booléenne est satisfiable si 1 Im(f) On obtient ainsi trois problèmes distincts et connexes :

11 9 Satisfiabilité Le problème est : La fonction f est elle satisfiable? Ceci revient à dire si la fonction f est ou non équivalente à la fonction booléenne constante 0. En effet, si une fonction booléenne n est pas satisfiable, alors Im(f) = {0} donc f = 0. Satisfy-1 Soit f une fonction booléenne. Soit S f l ensemble S f = {a B n f(a) = 1}. S f est l ensemble des assignements qui rendent f vraie. Si la fonction f n est pas satisfiable, alors S f est vide, sinon cet ensemble contient au moins un élément. Le problème Satisfy-1 est : Pour une fonction booléenne f, déterminer un a S f (s il en existe un). Satisfy-all Le problème satisfy-all est le problème plus général : Pour une fonction booléenne f, déterminer S f. Les problèmes de satisfiabilité sont des problèmes très difficiles, notamment le problème de satisfiabilité est NP-Complet pour des formules dans la forme exact-3-cnf. Ce problème est appelé problème exact-3-sat. Tautologie On a vu dans les problèmes précédents que dire qu une fonction booléenne f n est pas satisfiable, revient à dire que la fonction f est identiquement la fonction 0. On peut se poser le problème réciproque pour tester si la fonction f est identiquement égal à la fonction constante 1 : Définition 7 (Tautologie). Une fonction booléenne f est une tautologie si et seulement si la fonction booléenne f est la fonction identiquement égale à 1. Egalité Le problème de tautologie est : La fonction f est-elle une tautologie? On a vu que le nombre de fonctions booléennes distinctes est important. De plus, une fonction booléenne peut avoir plusieurs représentations différentes pour un système de représentation particulier. Il devient donc intéressant de savoir : Étant données deux représentations F et G de deux fonctions booléennes f et g, déterminer si f = g. Ce problème peut paraître simple, mais deux fonctions booléennes ayant des représentations complètement différentes peuvent être égales. Ce problème n a pas lieu d être si, dans un système de représentation particulier, chaque fonction booléenne f a une unique représentation F dans ce système : pour vérifier l égalité, il suffit de vérifier l égalité des représentations (problème beaucoup plus simple en général). Exemple. Voici deux formules booléennes f et g : f = (a b c) ( a b) ( b c) ( c a) g = ((a b) (b a) b (c a) (c b)) (( b c) ( b a) (c a)) Ces deux formules sont égales et représentent donc la même fonction mais il faut faire un effort pour le voir. Bien sûr, une des deux représentations est plus simple que l autre.

12 10 Dépendance par rapport à une variable Soit f une fonction booléenne sur X et x une variable (x X). Le problème est : La fonction f dépend-elle de x? Ceci revient à déterminer si f x=0 = f x=1 = f. 1.2 Binary Decision Diagram et ROBDD BDD et OBDD BDD Nous allons voir ici une représentation des fonctions booléennes : les Binary Decision Diagram (BDD). Cette représentation est la base des ROBDD. Les BDD découlent de la décomposition de Shanon : Théorème (Décomposition de Shanon). Soit f une fonction booléenne sur X = {x 1,,x n }, alors f : B n B peut s écrire : f(x 1,,x i,,x n ) = (x i f xi =1) ( x i f xi =0) pour tout i Définition 8 (Co-facteur). Soit f une fonction booléenne, on appelle i-ème co-facteurs de f les fonctions booléennes : f xi =0 et f xi =1 On associe souvent la décomposition de Shanon à la structure Si... Alors... Sinon. En effet, la décomposition de Shanon, pour la même fonction f, nous donne la structure : si x i alors f xi =1 sinon f xi =0 fin si De même, elle peut être représentée par un arbre : la racine représente la variable x i, les deux fils représentent les i-ème co-facteurs de f. Grâce à la décomposition de Shanon, on peut représenter n importe quelle fonction booléenne f sous la forme d un graphe : on appelle cette représentation un BDD (Binary Decision Diagram). Définition 9 (BDD). Soit f une fonction booléenne sur X. Un BDD de f est un graphe raciné défini par : Si X =, la feuille 1 ou 0 selon la valeur de f Sinon, un sous arbre binaire défini par : la racine est une variable x X un des fils (indexé par 0) est un BDD du co-facteur f x=0 défini sur X \ {x} l autre fils (indexé par 1) est un BDD du co-facteur f x=1 défini sur X \ {x} Pour chaque noeud interne α, on peut définir l index de α par la variable que représente ce noeud. Le problème des BDD est que la représentation n est pas unique : sur l un des fils, on peut avoir x j comme index et x k (avec k j) sur l autre fils. De plus, si la fonction f est une tautologie, alors le BDD de f ne sera pas forcément égal au graphe constitué uniquement de la feuille 1.

13 11 Exemple. Soit f la fonction booléenne définie sur X = {a, b, c} par la formule booléenne : f(a,b,c) = (a b c) (b c) ( a b) Si l on réalise la décomposition de Shanon par rapport à a, on obtient : f(a,b,c) = (a ((b c) (b c))) ( a ((b c) b)) Pour f a=1 = (b c) (b c), on réalise la décomposition suivante : f a=1 = (b (c c)) ( b 0). Pour f a=0 = (b c) b), on peut réaliser une autre décomposition : f a=0 = (c b) ( c b). On peut continuer ainsi jusqu aux feuilles. Cela nous donne donc : ( ( f a=1 = a b ( (c 1) ( c 1) )) ( b ( (c 0) ( c 0) ))) f a=0 = ( c ( (b 1) ( b 0) )) ( c ( (b 1) ( b 0) ))) a 1 0 b c c c b b FIG. 1.1 BDD de f(a,b,c) = (a ((b c) (b c))) ( a ((b c) b)) sous forme d arbre On peut, pour un gain d espace et plus de clarté, mettre une unique feuille 1 et une unique feuille 0. Cela donne un graphe non cyclique et non plus un arbre. On ne fera plus de distinction entre le BDD d une fonction sous forme d arbre ou sous forme de graphe. On peut penser que cette représentation est plus simple et plus expressive que les autres, mais cela n est pas le cas. En effet, il existe encore beaucoup de paramètres qui permettent des ambiguïtés dans les graphes. On ne peut pas voir dans le cas présent, que la fonction représentée ici ( f(a,b,c) = (a ((b c) (b c)) ( a ((b c) b))) est en fait la fonction f(a,b,c) = b.

14 12 a 1 0 b c c b b c FIG. 1.2 BDD de f = (a ((b c) (b c)) ) ( a ((b c) b)) avec uniquement 2 feuilles OBDD Nous avons vu que le BDD d une fonction n est pas unique. A ceci deux raisons : il peut y avoir des variables différentes sur chaque fils d un noeud et la représentation d une fonction booléenne n est pas sous une forme canonique. Nous allons commencer par résoudre le premier problème en ordonnant les variables. Définition 10. Soit f une fonction booléenne définie sur X, on peut alors définir un ordre sur les variables de X. On note cet ordre. L ordre sur X peut aussi se définir comme un ordre sur l ensemble I des indices de X. On notera indifféremment ces deux ordres. Exemple. Soit X = {a,b,c}, un ordre possible est : a c b où b est la variable la plus grande. Soit X = {x 1,x 2,x 3,x 4 }, un ordre possible est : Pour X = n, il existe n! ordres possibles. A partir de cette notion d ordre on peut définir un OBDD : Ordonned Binary Decision Diagram. Définition 11 (OBDD). Soit f une fonction booléenne sur X ordonné. Un OBDD de f est un BDD de f respectant l ordre défini sur X : Si l on note x la variable d un noeud α du BDD, et x g, (x d ) la variable du fils gauche (respectivement droite) de α, alors on doit avoir x g x et x d x. Ceci permet que les noeuds respectent l ordre défini sur les variables : le long d un chemin de la racine à une feuille, l ordre des variables rencontrées doit respecter l ordre défini sur X. Exemple. Si l on reprend l exemple de la fonction : f(a,b,c) = (a b c) (b c) ( a b), avec l ordre c b a, on obtient le OBDD suivant : Si l on transforme l arbre en OBDD, on obtient la figure 1.4

15 13 a b b c c c c FIG. 1.3 arbre binaire ordonné de f(a,b,c) = (a ((b c) (b c))) ( a ((b c) b)) a b b c c c c 0 1 FIG. 1.4 OBDD de f(a,b,c) = (a ((b c) (b c))) ( a ((b c) b)) On peut remarquer sur cet OBDD qu il y a des noeuds qui ne sont pas utiles. En effet, les deux fils d un même noeud (les noeuds étiquetés par la variable c) sont confondus ou représentent le même sous-arbre. On peut alors simplifier le OBDD, ce qui donne la figure 1.5. On voit dans ce graphe que f ne dépend pas de c mais que cet OBDD représente exactement la fonction f(a,b,c) = b. Pourtant, la fonction f = b n est pas seulement représentée par ces graphe, il existe le graphe où la racine est la variable b et le fils 0 est la feuille 0 et le fils 1 est la feuille 1. Or ici, on voit apparaître la variable a, il faudrait pouvoir l éliminer par simplification Reduced Ordonned Binary Decision Diagram : ROBDD Nous allons voir comment à partir des OBDD, nous pouvons obtenir une représentation canonique pour une fonction booléenne quelconque. On a vu que les OBDD peuvent être simplifiés, mais on peut davantage les réduire : on utilise pour cela l isomorphisme des sous-graphes. Cette réduction est due à

16 14 a b b 0 1 FIG. 1.5 OBDD de f simplifié [Bryant, 1992]. Définition 12 (ROBDD). Un ROBDD est un OBDD qui ne contient aucun noeud α tel que les deux fils soient égaux et aucune paire de noeuds distincts α et ω tels que les sous-graphes racinés en α et ω soient isomorphes. On dit que l OBDD est réduit s il est sous la forme d un ROBDD. Voici un théorème très important concernant les ROBDD : Théorème (Unicité des ROBDD). Soit f une fonction booléenne f définie sur X muni d un ordre, alors il existe un unique ROBDD H qui représente f. De plus, chaque sous graphe de H est sous forme réduite. Ce théorème nous permet d avoir l unicité du ROBDD d une fonction. Il existe un algorithme qui permet, à partir d un OBDD de f, de construire le ROBDD représentant f (voir [Bryant, 1992]). On trouve également dans cet article une démonstration du théorème. Le coût pour passer d un graphe G (représentant un OBDD de f) au ROBDD de f est de l ordre de O( G log G ) où G est le nombre de noeuds du graphe G. On peut même descendre en O( G ) ). Exemple. Pour f = (a ((b c) (b c))) ( a ((b c) b)), le ROBDD associé est : b 0 1 FIG. 1.6 ROBDD de f = (a ((b c) (b c))) ( a ((b c) b)) On retrouve exactement la fonction f = b. Le nombre de noeuds est descendu de 7 noeuds (OBDD non simplifié) à 1 noeud. Il découle de cette définition des ROBDD l unicité de la représentation d une fonction booléenne par les ROBDD. Voyons maintenant d autres intérêts des ROBDD.

17 Discussions sur les ROBDD Éléments de complexité des ROBDD Essayons de voir comment l on peut résoudre les problèmes concernant les fonctions booléennes grâce aux ROBDD. Soit f une fonction booléenne sur X ( X = n) et F le ROBDD la représentant. On note F la taille du graphe de F. On suppose ici que le graphe F a été déjà construit, intéressons nous à la résolution de certains problèmes : Tautologie f est-elle une tautologie? Coût : O(1) Il suffit de regarder si la racine de F est la feuille 1 ou non. Il est évident que cela a le même coût pour le problème de satisfiabilité. Satisfy 1 Un élément de S f. Coût : O(n) Il suffit de partir de la feuille 1 et de remonter un chemin jusqu à la racine. La complexité est en O(n), car la hauteur maximale du graphe est le nombre de variables de X. Une autre possibilité est de partir de la racine puis de choisir un fils qui n est pas la feuille 0. On réitère ainsi jusqu à arriver à la feuille 1. On y arrivera forcément car si un noeud v est différent de la feuille 0 et 1, les feuilles 0 et 1 doivent obligatoirement appartenir aux sous-graphes racinés en v. Satisfy all Tous les éléments de S f. Coût : O(n. S f ) Il suffit de réitérer autant de fois que nécessaire le Satisfy-1. Satisfy count S f. Coût : O( F ) Il faut parcourir entièrement le graphe pour pouvoir compter la multiplicité de chaque noeud. Le résultat cherché est la multiplicité de la feuille 1. Application d un opérateur logique f 1 f 2 Coût de l ordre de O( F 1. F 2 ) Il faut faire l opération logique puis réduire le graphe ainsi obtenu car il ne l est pas. Il existe un algorithme pour la fonction APPLY dans [Bryant, 1992]. Égalité de deux fonctions f 1 et f 2 Coût de l ordre de : O( F 1 ) Il faut tester l égalité de deux graphes car il y a unicité du ROBDD. La complexité des opérations sur les ROBDD est très peu élevée et donc il peut paraître intéressant de les utiliser. Mais il ne faut pas se fier à ces apparences. En effet, toutes les complexités sont en fonction de la taille du graphe du ROBDD. Or cette taille peut être exponentielle par rapport à la fonction booléenne et on se retrouve à nouveau avec des complexités plus élevées. Le problème majeur des ROBDD se trouve donc dans la taille du graphe.

18 Problème NP-Complet Nous avons vu précédemment que la taille du graphe dépend grandement de l ordre des variables. Il est donc intéressant d étudier le problème suivant : Étant donné une fonction booléenne f sur X, déterminer l ordre σ sur X qui minimise la taille du ROBDD représentant f Malheureusement, il a été démontré que ce problème est NP-Complet. (voir [Nikolskaïa, 2000]) Considérons le multiplicateur à n-bits. Soit a 1,,a n et b 1,,b n les entrées (sous forme binaire) du multiplicateur. Le circuit possède 2n sorties correspondant à l encodage binaire de a.b. Chaque sortie peut être vue comme une fonction booléenne dépendant des entrées. Dans [Bryant, 1992], il a été montré qu au moins une des fonctions de sortie requiert un ROBDD ayant au moins 2 n 8 noeuds. On voit ainsi que même le meilleur ordre pour une fonction booléenne f est exponentielle en fonction du nombre de variables la définissant Lien entre données et fonctions booléennes Caractérisation d objets par leurs attributs On s intéresse à k objets pouvant avoir n attributs. Chaque objet peut être caractérisé par l absence ou la présence des attributs. On peut ainsi avoir une représentation binaire des objets : en effet, pour chaque attribut possible de l objet, on définit une variable booléenne indiquant l absence ou la présence de cet attribut. La description de l objet revient ainsi à déterminer les valeurs des variables booléennes. Voici un exemple de 5 objets pouvant avoir 6 attributs. L objet O 3 a seulement les attributs x 4 et x 6. Objets x 1 x 2 x 3 x 4 x 5 x 6 O O O O O Pour chaque paire i,j d objets, on peut définir un ensemble d attributs pour lesquels ces objets diffèrent. Définition 13 ( (i, j)). On note (i, j) l ensemble des variables booléennes telles que les valeurs de ces variables différent pour l objet i et l objet j. On obtient ainsi pour les objets O 1 et O 2 : (1,2) = {x 1,x 2,x 4,x 6 }. A partir de cet ensemble, on peut définir une fonction booléenne qui réalise la disjonction de toutes les variables formant (i, j). On note f i,j cette fonction booléenne. Cette fonction est vraie si et seulement si au moins l une des variables pour lesquelles les objets diffèrent est vraie. Cette fonction permet ainsi de savoir si les deux objets sont différents pour certains attributs. On a donc f 1,2 = x 1 x 2 x 4 x 6. Il est évident que f i,j = f j,i. A partir de toutes les fonctions f i,j, on peut construire leur conjonction : F = k i,j=1 j<i f i,j

19 17 Dans notre exemple, on obtient ainsi la fonction suivante : F = (x 1 x 2 x 4 x 6 ) (x1 ) (x2 x 3 x 4 x 6 ) (x3 ) (x2 x 4 x 6 ) (x1 x 3 ) (x1 x 2 x 3 x 4 x 6 ) (x1 x 2 x 3 x 4 x 6 ) (x1 x 3 ) (x2 x 4 x 6 ) Cette fonction permet de caractériser l ensemble des objets et les relations entre eux : si tous les objets sont identiques, alors la fonction F est la fonction 0. De plus, si un attribut i est identique chez tous les objets, on a alors F qui ne dépend pas de la variable x i. On peut ainsi caractériser l information se trouvant dans les objets en étudiant cette fonction. Etude de la fonction booléenne obtenue On s intéresse à la fonction F obtenue à partir de la caractérisation des objets : il s agit de représenter en ROBDD. La fonction F est décrite sous forme normale conjonctive. On peut s intéresser aux tailles des clauses de F. Or cette taille, pour une clause f i,j, est exactement (i,j). On peut ainsi caractériser la taille des clauses en fonction de la table. Si l on veut appliquer l heuristique HMA (définie en 1.5), il faut que la taille possible des clauses soit un intervalle réduit et peu élevé (par exemple [2,4]). Or, pour que ce soit le cas, il faut que les données soient creuses, c est-à-dire que les objets diffèrent très peu les uns des autres. Il est possible d avoir d autres types de données : les données pleines. Dans ce cas, contrairement aux données creuses, les attributs des objets diffèrent beaucoup les uns des autres. On se retrouve avec des tailles de clauses appartenant à un intervalle réduit et élevé (par exemple [35, 40] pour une cinquantaine d attributs). Sur ce type de données, on peut appliquer une heuristique adaptée à ce type de problème. Enfin, on peut avoir des données de type mixte : les objets peuvent différer grandement les uns des autres ou être relativement proches. On obtient ainsi un intervalle grand (du type [2,35]). Pour ce type de donnée, il est difficile d appliquer une heuristique efficace car le domaine d application est trop vaste. Nous venons de lier le choix de l heuristique à appliquer aux types des données en entrées et non plus au type de la fonction booléenne. A partir du ROBDD ainsi obtenu, on peut extraire les ensembles minimaux de la fonction F. Définition 14 (Ensemble minimal d une fonction). Soit f une fonction booléenne définie sur X. Soit A un sous-ensemble de X tel que f restreinte à A = 1 soit une tautologie. On dit que A est un ensemble minimal s il n existe pas d ensemble B A et tel que f restreinte à B = 1 soit aussi une tautologie. Une fois les ensembles minimaux de F découverts, on peut alors réécrire F comme la disjonction des fonctions caractéristiques des ensembles minimaux de F. On a ainsi obtenu une réécriture de F sous forme disjonctive. A partir de cette forme, on peut caractériser la fonction et recueillir des informations sur les objets dont on est partis.

20 Taille du ROBDD et ordre des variables Influence de l ordre des variables : un exemple Nous venons de voir que l ordre influait grandement sur la taille des ROBDD. Exemple. Soit f la fonction booléenne décrit par le ROBDD de la figure 1.7. Ce ROBDD représente une fonction booléenne f défini sur X = {x 0,,x 9 }. On remarque que l ordre est l ordre induit par l ensemble des indices I = {0,, 9}. La formule dnf de f est composée de 25 clauses conjonctives ayant de 2 à 6 variables dans chaque clause. Si l on change l ordre, par celuici : On obtient un graphe avec seulement 23 noeuds au lieu des 40 de l autre ordre. Le gain est de 42,5%. On perd presque la moitié des noeuds en changeant simplement l ordre des variables Techniques pour réduire la taille d un ROBDD Il existe toute une discussion sur les ordres et les tailles des graphes (voir [Nikolskaïa, 2000]). Malheureusement, le nombre de fonction booléenne où l on peut nettement réduire la taille du graphe est exponentiellement petit par rapport aux nombres de fonctions booléennes. Par contre, on connaît des familles de fonctions où l on sait pouvoir réduire considérablement la taille (fonctions symétriques,...). Dans ces cas, on sait qu il existe un ordre qui minimise grandement la taille du graphe. Pour trouver cet ordre optimal, on ne teste pas tous les ordres possibles (n! ordres possibles), il a été développé différentes techniques pour améliorer l ordre. Elles se divisent en deux familles distinctes. Réarrangement d ordre dynamique Cette famille part du principe que le ROBDD a déjà été construit, et donc qu il existe déjà un ordre sur celui-ci. On essaye d améliorer dynamiquement cet ordre en le modifiant légèrement pour réduire la taille. Pour modifier l ordre d un ROBDD déjà construit, on utilise une opération de base : le swap de variables adjacentes. Définition 15 ( Swap de variables adjacentes dans un ordre). Soient x i et x i+1 deux variables adjacentes dans l ordre (par exemple, x i x i+1 ). Le swap de x i et x i+1 est l opération qui consiste à inverser les positions dans l ordre de x i et x i+1 : ce qui donne x i+1 x i. Le swap de variables induit un swap des noeuds au niveau du ROBDD : tous les noeuds qui étaient aux niveaux des deux variables changent de niveau. Il existe un théorème : Théorème (Coût d un swap de variables dans un ROBDD). Le swap de la variable x i et x i+1 dans un ROBDD peut être réalisé en un coût de l ordre de O( L i + L i+1 ) où L i (resp. L i+1 ) est le nombre de noeuds indexés par la variable x i (resp. x i+1 ). On peut, à partir de cette définition, réaliser l échange de n importe quelle paire de variables dans le ROBDD. Ceci revient à permuter les niveaux des noeuds. On utilise généralement une autre technique : la Window permutation. Sur l ensemble des variables de X = n, on choisit la taille m d une fenêtre. On fait se déplacer cette fenêtre sur l ensemble ordonné X. Pour chaque position de la fenêtre, on réalise toutes les permutations possibles des variables incluses dans la fenêtre. Une fois toutes les permutations réalisées, on garde

21 FIG. 1.7 ROBDD de f : G = 40 l ordre ayant minimisé la taille. On réitère cette permutation pour chaque position de la fenêtre, on réalise ainsi (n m + 1).m! permutations au lieu des n! ordres possibles. Cette technique dépend grandement de la taille de la fenêtre. En général, une taille de 3-4 est utilisée. Elle assure pas d avoir l ordre optimal mais elle permet de s en approcher pour un coût faible.

22 FIG. 1.8 ROBDD de f avec un autre ordre : G = 23 Autres méthodes Il existe d autres méthodes que celles décrites précédemment. Tout d abord, les ROBDD sont beaucoup utilisés dans le domaine des circuits logiques. On représente ainsi les fonctions booléennes utilisées dans des circuits logiques (multiplexeurs,...). Pour déterminer l ordre, on utilise d autres heuristiques

23 21 qui se basent sur la topologie du circuit étudié. Ces heuristiques ont de bons résultats en général. Malheureusement, cette technique ne s applique qu à ce type de fonction. Il existe une autre méthode pour déterminer un ordre : les algorithmes génétiques. On code pour chaque individu un ordre. On réalise des opérateurs de croisements et de mutations sur ces ordres. On crée ainsi une population d individus. La fonction d évaluation utilisée est la taille du graphe calculée pour l ordre de l individu. On cherche ainsi les meilleurs individus qui minimisent la fonction d évaluation. Grâce à tout ceci, on peut créer un algorithme génétique qui essaie d optimiser l ordre. Le gros inconvénient de cette technique est la nécessité, pour chaque individu,de calculer le ROBDD de la fonction avec l ordre de l individu. Or, pour des fonctions à 10 variables et 100 clauses, le temps de création d un ROBDD avec un ordre fixé est de l ordre de plusieurs secondes. Il faut multiplier ce temps par la taille de la population et ceci à chaque génération. Le coût de cette technique en terme de temps est très élevé. On pourrait réduire ce temps, si l on avait un moyen d estimer rapidement la taille du ROBDD en fonction de l ordre sans avoir à créer le ROBDD. 1.5 Heuristiques permettant de réduire la taille des graphes Une heuristique particulière : HMA Il existe une autre famille d algorithmes permettant de rechercher l ordre optimal d une fonction booléenne. Cette famille construit l ordre avant la construction du ROBDD, elle est donc statique. On utilise pour cela des heuristiques qui essaient de prédire le meilleur ordre pour la fonction booléenne étudiée. Certaines heuristiques réalisent de bons résultats sur des familles particulières de fonctions booléennes. Ces heuristiques sont spécialisées, mais il n existe pas d heuristique ayant de bons résultats dans le cadre général. On se propose d étudier une heuristique en particulier : HMA. Cette heuristique est destinée aux fonctions booléennes appartenant à la famille des fonctions exacte-2-cnf. Elle a été définie par Nikolskaïa dans [Nikolskaia and Rauzy, 1998]. L algorithme HMA prend en entrée une formule booléenne 2-cnf et donne en sortie un ordre sur les variables. Algorithme 1 HMA calcule un ordre sur les variables Pré-condition : f formule booléenne sous forme 2-cnf Réaliser un ordre intermédiaire σ i en triant par ordre décroissant les variables en fonction de leur nombre d apparition p(v) dans f. tant que σ i n est pas vide faire Prendre la première variable v 1 dans σ i. pour chaque variable c des clauses où v 1 apparaît faire p(c) = p(c) 1 fin pour Enlever de σ i les variables v telles que p(v) = 0 et les ajouter à l ordre σ fin tant que Exemple. Soit f la formule booléenne f = (a c) (a d) (a h) (b c) (b e) (e h). Voici comment fonctionne HMA :

24 22 L ordre ainsi obtenu est : a d b c e h. v a b c d e h Étape 1 p(v) f f f itération 1 p(v) f f itération 2 p(v) f itération 3 p(v) Résultats de l heuristique [Nikolskaia and Rauzy, 1998] a étudié cette heuristique simplement dans le cadre des formules 2-cnf. Les résultats sont impressionnants. Cette heuristique est très adaptée à cette famille de formules. On obtient pour une réécriture aléatoire d une formule des tailles qui varient de noeuds à un peu moins de noeuds pour un ordre quelconque. Avec l heuristique, la taille des ROBDD reste à peu près constante : elle est d environ noeuds. On se retrouve en général dans le meilleur des cas. L ordre ainsi obtenu n est pas forcément l ordre optimal (on peut descendre légèrement en dessous) mais il en est relativement proche. L intérêt de l heuristique est que l on réduit considérablement la taille et que l on s approche grandement de la taille minimale pour un coût faible. L heuristique n a pas été étudiée par l auteur de l article dans d autres familles que les fonctions 2-cnf. Nous avons essayé cette heuristique dans le cadre de formules 2-dnf. Là aussi,l heuristique a de meilleurs résultats qu un ordre quelconque. Elle réduit la taille de 20 à 25 %. Nous l avons aussi essayée avec des fonctions disjonctives où la taille des clauses pouvait varier dans un intervalle. Nous avons essayé plusieurs types d intervalles. Les exemples donnés ici sont sur X tel que X = 50. Intervalle réduit et peu élevé (par exemple [2, 5]) : l heuristique se trouve dans son domaine de prédilection. Ses résultats sont donc très bons. Elle améliore grandement un ordre quelconque. Intervalle réduit et élevé (par exemple [35, 40]) : l heuristique améliore légèrement l ordre mais son gain est faible. Il faut trouver une autre heuristique plus adaptée que HMA. Intervalle grand (par exemple [2,35]) : le gain est très variable selon les cas. On améliore toujours l ordre quelconque. Les résultats de l heuristique dépendent de la forme de la formule booléenne. Il faut donc vérifier la forme avant d appliquer l heuristique, tout en sachant que pour l instant, il n a pas été trouvé d heuristique adaptée pour les intervalles de la forme [35, 40] et [2, 35] Généralisation de HMA : une nouvelle heuristique Le problème de l heuristique HMA est que sa performance se réduit au cadre des fonctions 2-cnf ou 2-dnf. Il peut être intéressant de généraliser cette heuristique dans le cadre de fonctions booléennes quelconques sous formes cnf ou dnf. Pour cela, il faut modifier l algorithme de l heuristique. Tout d abord, nous avons besoin de définir la fréquence relative d une variable dans une formule booléenne sous forme cnf (identique pour la forme dnf) :

25 23 Définition 16 (Fréquence relative). Soit f une fonction booléenne sous forme cnf : f = n i=1 f i. On note p fi (x k ) la fréquence de x k dans f i et f i le nombre de littéraux de f i. On a alors p fi (x k ) sa fréquence relative de la variable x k par rapport à f i qui est : p fi (x k ) = p f i (x k ) f i A partir de cette notion, on peut alors définir la fréquence relative de x k par rapport à f : p(x k ) = n i=1 p fi (x k ) f i La fréquence relative d une variable nous permet de déterminer l importance d une variable par rapport aux autres variables au sein d une même clause et donc dans une fonction. Cela permet de pénaliser une variable qui est souvent présente dans des clauses de grandes tailles par rapport aux variables moins présentes mais dans des clauses plus petites. Ainsi, cela relativise la fréquence d une variable par rapport à la taille des clauses. Grâce à cette fréquence relative, on peut généraliser HMA : Algorithme 2 HMOI calcule un ordre sur les variables Pré-condition : f formule booléenne sous forme dnf ou cnf Réaliser un ordre intermédiaire σ i en triant par ordre décroissant les variables en fonction de leur fréquence relative p(v) dans f. tant que σ i n est pas vide faire Prendre la première variable v 1 dans σ i. pour chaque clause f i où v 1 apparaît faire pour chaque variable c de f i faire p(c) = p(c) 1 f i fin pour fin pour Enlever de σ i les variables v telles que p(v) = 0 et les ajouter à l ordre σ fin tant que Voyons voir par la pratique comment fonctionne cette heuristique : Exemple. Soit f la formule booléenne f = (b c) (d h) (a c) (a d h) Voici comment fonctionne HMOI : Étape 1 p(v) 5 6 v a b c d e h f f itération 1 p(v) f itération 2 p(v) f itération 2 p(v)

26 24 L ordre ainsi obtenu est : c b a d h e. Si l on applique l algorithme original de HMA, on obtient alors l ordre suivant : a d c b h e. Pour cet ordre, le ROBDD de f possède 9 noeuds, alors que celui réalisé avec l ordre de HMOI n a que 8 noeuds. Il faut quand même faire attention. En effet, dans ce cas particulier, si l on prend l ordre naturel (a b c ), le ROBDD n a alors que 7 noeuds. Ce ne sont que des heuristiques et l on obtient pas forcément le meilleur ordre ou que l on améliore pas forcément l ordre déjà existant. Remarque. L algorithme de HMOI est une généralisation de HMA. En effet, dans le cadre de fonctions booléennes sous forme exact-x-cnf ou exact-x-dnf (c-à-d quand la taille des clauses est fixe), les deux heuristiques coïncident et donnent le même ordre. Dans ce cadre, la fréquence relative est proportionnelle à la fréquence de la variable, donc les deux heuristiques classent les variables dans le même ordre. Ceci nous permet de pouvoir bénéficier de l efficacité de HMA dans ce cadre et d essayer de l améliorer dans les autres cas Résultats des heuristiques L exemple précédent a montré qu il faut faire attention aux résultats des heuristiques. En effet, cellesci ne nous assurent pas d avoir le meilleur ordre possible, et si l ordre naturel est déjà le meilleur ordre (ou qu il s en approche), alors l ordre calculé par l heuristique peut s éloigner de la taille minimale. Il est intéressant de voir la répartition de la taille des graphes en fonction des ordres. On étudie une fonction booléenne f définie sur 9 variables, ayant 50 clauses dont la taille varie de 2 à 5 variables. On a testé l ensemble des 9! (soit un peu plus de ) ordres possibles sur cette fonction. Pour chaque ordre, on a calculé la taille du ROBDD associé. On peut ainsi de voir comment se répartissent ces tailles : pour chaque taille de graphe, on a totalisé le nombre d ordre qui réalise cette taille. La figure 1.9 nous donne les résultats factoriels.data hma nombre d ordres hmoi taille du graphe nombre de variables : 9 nbre de clauses : 50 taille des clauses : 2-5 FIG. 1.9 Nombres d ordres en fonction de la taille du ROBDD On remarque que la répartition des ordres nous donne une gaussienne. Il serait intéressant de savoir si

27 25 cette répartition est généralisable à n importe quelle fonction booléenne ou est-elle due au cas particulier étudié. Cela nous permet aussi de pouvoir tester l efficacité des heuristiques. Si la répartition suit une gaussienne, alors en choisissant un ordre au hasard, on a de fortes chances de se trouver dans l intervalle de confiance de la gaussienne. On peut donc voir où se trouvent les ordres donnés par les heuristiques : ils se trouvent dans cet intervalle, l heuristique n apporte pas grand chose par rapport à un choix au hasard de l ordre, alors que si l ordre se trouve en dehors de cet intervalle, on a un gain important et l heuristique devient intéressante. Si on étudie le cas particulier donné ici, on a une répartition des tailles de graphes de 22 noeuds (avec 6 ordres possibles) jusqu à une taille de 55 avec 12 ordres possibles. On observe une multiplication par 2,5 entre le nombre minimal de noeuds et le nombre maximal de noeuds. Les tailles les plus fréquentes se trouvent entre 29 et 41 noeuds (avec entre et ordres possibles à chaque fois). Si on s intéresse aux heuristiques, on obtient 31 noeuds avec l heuristique HMOI, 33 avec HMA et l ordre naturel. On se trouve encore près du pic de la gaussienne mais HMOI se trouve un peu plus bas que HMA. On peut donc encore améliorer ces heuristiques en résultat brut. Malheureusement, on ne peut pas étudier les résultats bruts des heuristiques dans un cadre plus général, car il faudrait générer les n! ordres possibles et les ROBDD associés. Pour pouvoir les étudier, on les compare donc entre elles. Les résultats obtenus sont donnés dans la figure hmoi hnous hma 0-20 Gain Axe X : nombre de clauses nombre de variables : 25 taille des clauses 2-10 nombre d essais 20 FIG Gain de la taille des graphes pour différentes heuristiques dans un cas particulier Pour tester les heuristiques, on génère aléatoirement des fonctions booléennes en fonctions de certains paramètres. On étudie comment les heuristiques réagissent en fonction de la variation du nombre de clauses, du nombre de variables ou de la taille des clauses dont est constituée la fonction booléenne. Dans la figure 1.10, on se trouve dans le cadre de données creuses où on augmente le nombre de clauses. On s intéressera seulement aux heuristiques HMA et HMOI car la troisième heuristique (HNOUS) n est efficace que dans un cas particulier. On voit ici, que le gain de HMOI est toujours supérieur au gain de HMA d à peu près 10 points. On remarque aussi que HMOI nous permet de diviser par deux la taille du graphe dans les meilleurs cas et lorsque le nombre de clause augmente alors le gain augmente environ de

28 30 à 40%. L heuristique HMOI se trouve très bien adaptée dans le cadre de données creuses ou mixtes, mais elle est moins performante lorsque les données sont pleines. De plus, lorsqu on augmente le nombre de variables sans modifier les autres paramètres, l efficacité de HMOI augmente. En effet, quelque soit le type de données de départ, lorsqu on augmente le nombre de variables, les données deviennent de plus en plus creuses, donc HMOI devient de plus en plus efficace. A contrario, lorsqu on augmente la taille de l intervalle, l heuristique se trouve dans le cadre de données mixtes, donc elle devient légèrement moins efficace. Enfin, lorsqu on augmente le nombre de clauses d une fonction, c est à dire le nombre d objets, l efficacité de l heuristique diminue lentement pour, au bout d un nombre important de clauses, redevenir plus efficace. On vient donc de trouver une heuristique qui diminue la taille d un ROBDD de 50% en moyenne lorsque les données sur lesquelles la fonction booléenne est générée sont creuses. Ceci permet d obtenir facilement un ordre qui réduit considérablement la taille. Cet ordre nous permet aussi de déterminer les variables les plus importantes en termes de quantité d information. 26

29 Chapitre 2 ROBDD et approximations de fonctions booléennes Le but est de pouvoir réaliser une approximation des fonctions booléennes. Les principaux intérêts de l approximation sont nombreux : un gain d espace, une simplification de la fonction, etc. Nous verrons plus tard l utilisation de cette approximation. Pour commencer, il faut définir la notion d approximation dans l espace des fonctions booléennes : 2.1 Approximation et fonctions booléennes Soit f une fonction booléenne. Pour pouvoir approximer cette fonction, il faut définir un certain nombre de notions sur les fonctions booléennes. En effet pour pouvoir réaliser une approximation d une fonction booléenne, il nous faut définir un ordre (partiel) sur les fonctions. Cela va nous permettre de comparer deux fonctions entre elles et de savoir qu elle est la plus grande. On pourra alors définir une approximation haute de la fonction (qui sera une approximation plus grande de la fonction) et une approximation basse (qui sera plus petite que la fonction). Enfin, nous devons définir une distance sur l espace des fonctions booléennes car cela va nous permettre de chercher la fonction la plus proche de la fonction de départ selon certains critères. Commençons par une notion d ordre partiel dans l espace des fonctions booléennes : Définition 17 (Ordre partiel sur les fonctions booléennes). Soit f et g deux fonctions booléennes, on dit que f g si et seulement si f g = f. Ceci nous permet de comparer certaines fonctions, mais une fois la comparaison réalisée, il faut déterminer la distance entre ces deux fonctions : Définition 18 (Distance entre deux fonctions booléennes). Soit f et g deux fonctions booléennes. On note l opérateur logique ou exclusif et sc(f) (satisfy count le nombre d assignements différents qui rendent la fonction f vraie). On peut définir alors la notion ε de distance entre f et g : ε(f,g) = sc(f g) Il est évident que ceci détermine bien une distance compatible avec une notion intuitive de différence entre deux fonctions booléennes différentes. En effet, si la fonction f g vaut 1 pour un assignement donné, cela veut dire que l une des deux fonctions vaut 1 et que l autre vaut 0, ce qui revient à dire que 27

30 28 les deux fonctions différent pour cet assignement. Pour connaître la différence globale entre les deux fonctions, il suffit donc de compter le nombre d assignements qui rendent vrai la fonction f g, ceci nous donne la formule. Pour pouvoir réaliser une approximation d une fonction booléenne, il faut définir des notions de contraintes concernant cette approximation. Souvent, on définit une approximation d une fonction f, la fonction f qui est la fonction la plus proche de f tout en respectant un certain nombre de contraintes. On peut de même définir l approximation haute et basse d une fonction : Définition 19 (Approximations de f). Soit f une fonction booléenne, soit E l ensemble des fonctions booléennes respectant les contraintes imposées et soit ε la distance définie sur l espace des fonctions booléennes, on peut alors définir : une approximation f de f qui vérifie : l approximation haute f + de f qui vérifie : f E et g E, ε(f,g) ε(f, f) f + E,f < f + et g E tel que g f alors ε(f,g) ε(f,f + ) l approximation basse f de f qui vérifie : f E,f > f et g E tel que g f alors ε(f,g) ε(f,f ) On peut remarquer qu il n y a pas forcément unicité des approximations. En effet, il peut exister plusieurs fonctions qui vérifient la définition de f,f + ou f. De plus, l approximation f peut être différente de f + et de f. La fonction ayant le moins de différence avec f tout en respectant les contraintes peut ne pas être comparable avec f, c est à dire que l on a ni f f ni f f. Ceci provient du fait que notre notion d ordre sur les fonctions booléennes est partielle et non totale. Il peut être donc plus difficile de trouver f que de trouver f Fonctions booléennes, ROBDD et approximation Approximation Le rapport entre l approximation de fonction booléenne et les ROBDD n est pas évident de prime abord. Mais les ROBDD nous permettent d introduire une contrainte sur les fonctions booléennes et leurs représentations. On peut chercher l approximation d une fonction booléenne f telle que sa taille de ROBDD ne dépasse pas un certain nombre de noeuds. On vient ainsi de déterminer une contrainte sur les fonctions booléennes. On peut alors redéfinir précisément f + : Définition 20 (f + ). Soit f une fonction booléenne. On note f la taille du ROBDD de f. Soit k la contrainte de taille sur f + (i.e. la taille de f + doit être inférieure ou égale à k). On a alors f + qui est une fonction booléenne qui vérifie : g { g k et g f} tel que ε(f,g) ε(f,f + )

31 Etude d un cas particulier Supposons que l on ait le ROBDD d une fonction f et que l on veuille remplacer un noeud v de f et son sous-graphe par la feuille 0. Le graphe ainsi créé n est pas forcément un ROBDD, il faut donc le réduire pour obtenir le ROBDD correspondant. Soit f le ROBDD ainsi obtenu. On peut remarquer que l on a forcément f f( car tous les chemins de f menant à la feuille 1 sont forcément des chemins de f, donc f f = f ). f définit bien une borne inférieure de f. Quelle est l erreur introduite en remplaçant v par la feuille 0? Ou autrement dit, que vaut ε(f,f )? Pour le savoir, il faut connaître le nombre de chemins menant de la racine du ROBDD de f au noeud v. Notons µ(v) ce nombre qui est la multiplicité du noeud v. Pour chaque chemin de f ne passant pas par v, la valeur de f est, par construction, la même. Donc f f vaut 0 pour tous les chemins ne passant pas par v. Il suffit donc de calculer le nombre de chemins passant par v qui mènent à la feuille 1 dans f(car tous les chemins passant par v valent 0 dans f ). Or le sous-graphe enraciné en v est aussi un ROBDD, donc aussi une fonction booléenne. Déterminer le nombre de chemins passant par v dans f et menant à la feuille 1 revient à calculer ε(0, v) µ(v).on note index(v) l indice de la variable du ROBDD enraciné en v. On relativise alors le sc(f) par rapport à index(v). On a donc : ε(f,f µ(v) ) = 2 index(v) 1 ε(v,0) = µ(v) sc(v) 2index(v) 1 On peut, grâce à cette formule, calculer l erreur introduite par rapport à f en enlevant un noeud de f Heuristiques pour calculer f A partir de la formule donnant l erreur en enlevant un noeud de f, on peut réaliser un algorithme calculant f de façon approchée : Algorithme 3 Heuristique pour le calcule de f Pré-condition : ROBDD de f, k contrainte de taille g=f pour tout Noeud v de g faire Calculer µ(v) et sc(v) fin pour tant que g k faire Trouver le noeud v de g minimisant l erreur introduite : Remplacer le noeud v de g par la feuille 0 Réduire g (transformer g en ROBDD) pour tout Noeud v de g faire Recalculer les µ(v) et sc(v) fin pour fin tant que µ(v) 2 index(v) 1 sc(v) Ceci permet de calculer la borne inférieure de f. On peut de la même manière calculer f + en remplaçant le noeud v non pas par 0 mais par 1, et l erreur introduite n est pas sc(v) mais sc( (v)) (qui est le nombre de chemins de v menant à 0). On obtient ainsi f +. Mais on peut utiliser la dualité des fonctions booléennes et la complémentarité des opérateurs d approximations :

32 30 Théorème. Si l on note f + (g) l approximation haute de g donnée par l heuristique et de même pour f (g), on a alors : f + (g) = (f ( (g)) Démonstration. Pour démontrer l équivalence entre les deux fonctions, on doit comparer l algorithme pour calculer f + (g) et la fonction renvoyée par (f ( (g)). Voici l algorithme calculant f + : Algorithme 4 Heuristique pour le calcule de f + Pré-condition : ROBDD de f, k contrainte de taille g=f pour tout Noeud v de g faire Calculer µ(v) et sc( v) fin pour tant que g k faire Trouver le noeud v de g minimisant l erreur introduite : Remplacer le noeud v de g par la feuille 1 Réduire g (transformer g en ROBDD) pour tout Noeud v de g faire Recalculer les µ(v) et sc( v) fin pour fin tant que µ(v) 2 index(v) 1 sc( v) Si l on remplace l entrée f de l algorithme pour calculer f par f, la seule différence avec l algorithme pour calculer f + est que les feuilles, remplacées par 0, sont remplacées par 1. En effet, on a µ(v) = µ( v), index( v) = index(v) car, pour un robdd, l opération de négation revient simplement à remplacer la feuille 1 par 0 et réciproquement pour la feuille 0. La multiplicité, l index des noeuds du robdd sont invariants par cette opération. On a bien alors (f (g)) = f + (g) car les feuilles 0 et 1 sont inversées, donc les feuilles non modifiées par l algorithme restent inchangées (car deux inversions successives) et les chemins menant à 0 rajoutés par f sont remplacés par des chemins menant à 1 par le. On a bien égalité entre les deux sorties des algorithmes Exemple Soit g la fonction suivante : g = (a b c d e) (b c d a) (a b) (e f) Son ROBDD a une taille de 12 noeuds. On réalise une approximation de g avec une contrainte de taille de 11 noeuds. On obtient les fonctions qui se trouvent sur les trois figures suivantes (Fig. 2.1, 2.2, 2.3). On peut remarquer qu à la fois g + et g ont enlevée le même noeud (noeud ayant e comme variable qui correspond au chemin a = 1, b = 1, c = 1 et d = 0). Dans f +, ce noeud est redirigé vers 1 alors que dans g il est redirigé vers 0. Ici, dans les deux cas, c est le même noeud qui minimise l erreur mais, en général, ce n est pas le cas. De plus, lorsqu on impose une contrainte de taille de 11 noeuds, on se retrouve avec deux graphes d exactement 11 noeuds. Mais, lorsqu on redirige un noeud vers une feuille 0 ou 1 et qu on réduit l arbre en ROBDD, la taille du graphe peut diminuer de plus d un noeud. On peut donc se retrouver avec des graphes de tailles plus petites que la contrainte imposée. Dans cet exemple, si on impose une taille de 9 noeuds aux approximations, on se retrouve avec une taille de 8 pour l approximation haute et de 9 pour l approximation basse.

33 31 a b b c c d d e e f 0 1 FIG. 2.1 ROBDD de la fonction g (12 noeuds) Remarques sur l ordre des variables et l approximation Les ROBDD sont grandement influencés par l ordre qu on choisit sur les variables. Cette relation se retrouve aussi sur la fonction d approximation. En effet, l algorithme d approximation dépend grandement de l ordre sur les variables : index(v) et µ(v) sont modifiés si on modifie l ordre sur les variables et donc le calcul d erreur et aussi le noeud enlevé. On montre ainsi que si l on modifie l ordre on modifie aussi l approximation de la fonction. De plus, supposons qu avec un ordre défini le ROBDD f a une taille de x noeuds et qu on impose une contrainte de y noeuds avec x > y, soit f + l approximation obtenue. Si l ordre imposé n est pas l ordre optimal pour f, peut être qu un autre ordre nous aurait donné un ROBDD f avec une taille z avec z y. Ainsi l approximation f + obtenu avec la même contrainte de taille y nous aurait donné f et donc l approximation serait la fonction exacte alors que f + avec un autre ordre serait une fonction approchée et non la fonction exacte. Donc en fonction de l ordre sur les variables, on peut réaliser une approximation de la fonction alors qu avec un autre ordre, la même fonction aurait satisfait les contraintes. Il est donc important de réaliser un pré-traitement de la fonction pour essayer de diminuer la taille du ROBDD à approximer, mais ceci est un problème NP-Complet, il faut donc composer avec les deux problèmes : réduction de taille et approximation.

34 32 a b b c c d d e f 0 1 FIG. 2.2 ROBDD de la fonction g + (11 noeuds) a b b c c d d e f 0 1 FIG. 2.3 ROBDD de la fonction g (11 noeuds)

35 Chapitre 3 Application à l expansion, l enrichissement et la reformulation de requêtes 3.1 Analyse et génération de requêtes Présentation du problème Lorsqu on utilise un moteur de recherche, il faut lui soumettre une requête et en fonction de celle-ci, le moteur nous propose des résultats (sous formes de pages internet, liens, documents...). Le problème de trouver le bon document devient donc le problème de soumettre la requête la plus appropriée aux moteurs de recherches. Malheureusement, ceux-ci ne sont pas assez évolués pour comprendre le langage naturel et la formulation naturelle de requêtes. Il faut donc que l utilisateur se soumette aux contraintes de formulations du moteur de recherche. En général, les requêtes soumises aux moteurs doivent se présenter sous la forme élémentaire : +x 1 + x n y 1 y m où les x i et y j (1 i n, 1 j m) sont des mots. Les mots x i doivent se trouver dans le document recherché et les y j ne doivent pas s y trouver. Si l on recherche un document sur les volants de badminton, on peut soumettre la requête : +volants +badminton +sport On peut aussi la raffiner et ne pas vouloir des raquettes de badminton ni des volants de voitures, on modifie donc la requête : +volants +badminton -raquette -voiture Lorsque l utilisateur soumet une requête à un moteur, il lui arrive souvent de modifier ou reformuler sa requête en fonction du résultat de la requête précédente. Une des approches actuelles pour aider l utilisateur dans sa recherche est de lui soumettre des reformulations possibles de sa requête. Si le résultat de la recherche ne convient pas à l utilisateur n a plus qu à choisir ou modifier une des reformulations proposées par le moteur de recherche. 33

36 Solutions existantes Ce domaine de recherche existe depuis fort longtemps en informatique. Bien avant la création d Internet, le problème se posait déjà. En effet, dès 1971, il existait des recherches dans ce domaine. Les requêtes n étaient pas soumises à des moteurs de recherches mais concernaient des recherches dans des bases de données (voir [Sparck, 1971]). Ces dernières années, la recherche s est développée dans les deux directions suivantes. Utilisation de corpus Une première méthode consiste à enrichir la requête à partir d un corpus déjà établi. Il faut donc, en pré-traitement, créer un corpus de requêtes déjà soumises. La création de ce corpus, à partir d un nombre très important de requêtes et documents, demande donc un traitement lourd et complexe en amont du traitement de la requête soumise au moteur de recherche. A partir du corpus ainsi établi, on peut modifier la requête par des mots en relation avec ceux la composant. On utilise ainsi la connaissance sémantique du corpus pour enrichir et/ou modifier la requête. L avantage de cette méthode est qu une fois que le corpus est construit, on peut traiter la requête facilement (mais le coût du traitement dépend de la taille du corpus). Par contre, le coût de cette méthode est important lors de la création du corpus. De plus, les résultats sont relativement moyens. Pour de plus amples renseignements, voir [Buckley et al., ]. Analyse des documents renvoyés par le moteur La deuxième méthode consiste en une analyse des documents renvoyés par le moteur de recherche. On réalise une étude de ces documents (en général du Textmining). On extrait des documents les principaux mots-clés de ces documents. on peut alors modifier la requête par des mots extraits des documents qui sont en rapport avec les mots de la requête. Il n y a ainsi pas besoin de pré-traitement des corpus. L intérêt de cette méthode est qu elle ne nécessite aucune connaissance sémantique et aucun corpus ; on peut ainsi faire le traitement à la volée. Par contre, elle nécessite une analyse de documents. Or cette analyse peut être un traitement relativement lourd : plus l analyse est performante, plus l enrichissement de la requête sera bénéfique. Il faut donc trouver un compromis entre la richesse de l analyse et le coût de cette analyse. Les résultats de cette méthode sont meilleurs qu avec l utilisation d un corpus, par contre, le traitement est plus long car, dans le cas du corpus, les traitements lourds ont lieu pendant la création du corpus (i.e. avant la phase utilisateur) alors qu avec l analyse de documents, le traitement a lieu pendant la phase utilisateur. On peut trouver une explication plus détaillée de cette méthode dans [Callan et al., 1995]. Conclusion On voit que l analyse de documents est plus performante que l autre méthode mais avec un coût plus important. De plus, cette méthode n introduit aucune sémantique, ce qui pause un certain nombre de problèmes. Par exemple, si la requête spécifiée par l utilisateur donne de nombreux documents inappropriés, la méthode introduira de mauvais concepts et mots dans les requêtes alors que l autre méthode ne les introduira pas à cause du corpus. C est pourquoi, [Xu and Croft, 1996] a récemment introduit une troisième méthode qui est un mixte des deux précédentes. Elle donne de bons résultats et améliore de plus de 20% les techniques précédentes.

37 Méthode de résolution proposée avec l utilisation de ROBDD Présentation générale On suppose que le programme reçoit en entrée une liste L de requêtes déjà soumises à un moteur de recherche (par un générateur automatique, un utilisateur, un groupe d utilisateurs...). L est vu comme un ensemble de requêtes et non comme une liste : l ordre des requêtes n est pas concidéré dans cette étude. On peut donc définir L comme L = {q 1,,q n }, où chaque q i est une requête. Une requête peut être exprimée comme : +x 1 +x n x n +1 x m où chaque x i est un mot. On note X l ensemble des mots utilisés dans les requêtes. Pour une requête donnée et un mot x i donné, on peut avoir +x i ou x i qui apparaît dans celle-ci (mais pas les deux à la fois car cela serait une requête inconsistante). On note δ i le signe du mot x i, ainsi δ i {+, }, qu on notera parfois par δ i {+1, 1}. On note P(δ i.x i ) la probabilité d apparition de δ i.x i dans une requête et P(δ i.x i δ j.x j ) la probabilité d apparition de δ i.x i dans les requêtes contenant le mot δ j.x j. Enfin, il nous faut la requête que l utilisateur veut qu on traite. On la note Q 0 (on peut considérer que Q 0 L). Voici les différentes étapes de la méthode : pré-traitement : On réalise un pré-traitement des requêtes. On ne sélectionne que les requêtes qui sont en rapport avec la requête qu on veut étendre. Il y a plusieurs moyens de sélection : les requêtes qui ont un mot en commun avec la requête Q 0 ou les requêtes qui ont un mot en commun avec une requête déjà sélectionnée.... On peut supposer pour la suite que toutes les requêtes sont en relation avec la requête à étendre. De plus, dans cette phase, on peut réaliser certains calculs : on met à jour, pour tous les x i, les P(δ i.x i ) et les P(δ i.x i δ j.x j ). codage des requêtes en fonction booléenne : L ensemble L des requêtes formulées cible le même domaine, on peut donc penser qu elles appartiennent toutes au domaine qu on recherche. Notre but est de rechercher d autres pages et donc d autres requêtes appartenant à ce même sujet. On peut alors penser que l appartenance ou non à celui-ci peut être défini comme une fonction booléenne qui est la fonction caractéristique du sujet étudié. On veut arriver à exprimer cette fonction booléenne. Or pour ce faire, nos seules informations sont les requêtes déjà récupérées, il faut donc transformer ces requêtes en fonction booléenne. Il existe plusieurs moyens de coder ces requêtes, on en a étudié deux précisément (voir le paragraphe suivant), dans tous les cas, on la code sous forme de ROBDD pour pouvoir réaliser l opération d approximation dessus. approximation de la fonction booléenne La fonction booléenne f obtenue par le codage des requêtes n est pas exactement la fonction recherchée, il faut donc en réaliser une approximation (haute f + ou basse f ). Sachant que notre fonction f n est pas l exacte fonction booléenne, il faut la préciser. Pour cela, on utilise la fonction f f + (où est le ou exclusif ) qui exprime les différences entre la fonction f et son approximation haute. A partir de cette fonction, on peut tester les différences entre f et f + et ainsi savoir si ces mêmes différences appartiennent ou non à la fonction caractéristique recherchée. On peut tester f f, mais la différence entre f et f nous donne forcément des chemins qui mènent à 1 dans f, ceci nous permet donc de vérifier la bonne appartenance de ces chemins à la fonction caractéristique. En conclusion, si l on veut affiner f par expansion, on utilise f f +, si l on veut affiner f par vérification, on utilise f f. On doit choisir l une des deux fonctions que l on envoie à la suite du programme. On envoie le ROBDD obtenu après approximation et application de l opérateur. décodage de la fonction génératrice et génération des requêtes Comme on a codé les requêtes pour obtenir la fonction booléenne f, on peut décoder la fonction f f α où α {+, } pour obtenir de nouvelles requêtes. On utilise l opérateur inverse à celui qui a été étudié lors du codage. Selon

38 36 le choix de α, on obtiendra soit des requêtes qui exploreront un nouvel espace (α = +) ou des requêtes qui affineront les requêtes déjà existantes (α = ). évaluation et sélection de requêtes Lorsqu on décode le ROBDD, on obtient en général plusieurs requêtes différentes, il faut donc pouvoir en sélectionner une (dans le cadre de notre problème). Or pour pouvoir les sélectionner, il faut les noter. il existe plusieurs moyens d attribuer un score à une requête. On a choisit la méthode suivante. Soit Q = {+x 0 +x n x n+1 x m } une requête, soit σ une permutation de {1,, m}. On note le produit : P(Q) σ = P(δ σ(1).x σ(1) ).Π m 1 i=1 P(δ σ(i+1).x σ(i+1) δ σ(i).x σ(i) ) Ceci nous permet pour un chemin σ de calculer la probabilité de cette requête selon ce chemin. Pour calculer le score d une requête, on prend le maximum des P(Q) σ sur tous les chemins : S(Q) = max σ P(Q) σ. On renvoie à l utilisateur la requête ayant le plus haut score Deux codages de requêtes sous formes booléennes Une étape importante du processus est le codage des requêtes sous forme de fonction booléenne f L pour pouvoir réaliser une approximation. On a vu qu on avait en entrée un ensemble L = {q 1,,q n }, où chaque q i est une requête. On peut alors voir la fonction f L comme la disjonction du codage de chaque requête q i. On a alors : n f L = où f i correspond à la fonction booléenne associée à la requête q i. Le codage ne dépend donc uniquement que de la transformation de q i en f i. Deux codages différents ont été étudiés. codage simple Soit q i une requête de la forme +x 1 + x n x n+1 x m. On a X l ensemble des mots utilisés par les requêtes, à chaque x j X, on lui associe une variable booléenne x j. Pour la requête q i, on lui associe la fonction booléenne f i définie par : f i = n x j j=1 i=1 f i m j=n+1 On code ainsi le plus simplement une requête : si un mot apparaît positivement, on associe alors la variable booléenne correspondante, s il apparaît négativement, on lui associe alors la négation de cette même variable puis on réalise une conjonction sur le tout. On obtient au final une fonction booléenne f L sous forme disjonctive normale : f L = f i où f i est une conjonction. Le décodage se fait de manière inverse : on exprime la fonction sous forme disjonctive normale. On exprime alors la fonction sous forme g = g j. Enfin pour chaque g j, à chaque variable booléenne x i on associe le mot +x i et à chaque variable booléenne x i on associe le mot x i. Ainsi, un g j nous donne une requête sous forme habituelle. Ce codage est le codage le plus naturel qui soit : on code positivement lorsqu un mot est noté positivement dans la requête et négativement s il est noté avec un. Il y a une bijection entre les requêtes et les fonctions codées. En effet, pour chaque requête, il y a unicité de la fonction booléenne obtenue et de même lors du décodage. De plus, les deux opérateurs sont bien les inverses l un de l autre. On obtient bien la même requête qu au départ si on applique l opérateur de codage puis de décodage. De x j

39 37 même, on obtient bien la même fonction si l on applique le décodage puis le codage. Cette méthode est relativement facile d utilisation et simple à mettre en place. En contre partie de cette simplicité, le codage simple est très volumineux et gourmand en mémoire : la taille du graphe de la fonction obtenue est très élevée. On obtient rapidement des graphes de plusieurs dizaines de milliers de noeuds pour simplement quelques dizaines de requêtes. codage complet On a toujours q i sous la forme +x 1 +x n x n+1 x m. On note toujours x i la variable booléenne associée aux mots x i. Le codage complet, contrairement au codage simple, code la présence ou l absence d un mot à la requête. On note supp(q i ) le support de q i qui est l ensemble des mots apparaissant dans la requête q i, ce qui nous donne : Le codage de f i devient : supp(q i ) = {x i tel que + x i q i ou x i q i } f i = x j supp(q i ) x j x j X \supp(q i ) Pour l opérateur de décodage, il se pose un problème. Il n y a pas bijection entre les requêtes et les fonctions booléennes codées. Plusieurs requêtes peuvent donner la même fonction booléenne. Si l on prend une requête q i = +x 1 + x n x n+1 x m, n importe quelle requête de la forme q j = δ 1.x 1 δ m.x m avec δ k +, donnera la même fonction booléenne. Comment alors réaliser l opération de décodage? Il suffit de connaître le signe de δ k. En effet, lorsqu on réalise l opération de décodage, on obtient toutes les requêtes de cette forme, il suffit donc de déterminer les δ k pour avoir unicité de la requête. Il existe plusieurs méthodes, lors du décodage, pour déterminer δ k. Une méthode simple est d assigner à δ k le signe le plus fréquent pour x k, c est à dire on pose δ k = + si P(+x k ) P( x k ) et inversement. Cette méthode est relativement simple et très rapide. De plus, la majorité des mots est soit tout le temps positive soit tout le temps négative ; il existe peu de mots qui apparaissent à la fois en + et en dans les requêtes. Une autre méthode plus évoluée est de coder, pour les mots à la fois positifs et négatifs, les contextes dans lesquels ils sont positifs et ceux dans lesquels ils sont négatifs. Ensuite, il suffit de vérifier quel est le contexte qui correspond à la fonction décodée. Pour les mots strictement positifs ou négatifs, il suffit d appliquer la même méthode que précédemment. Le codage complet est volumineux si on l utilise avec très peu de requêtes et beaucoup de mots, car il code l information pour tous les mots, y compris ceux n apparaissant pas dans la requête. Par contre, dès que l on a un certain nombre de requêtes, le codage complet est nettement plus intéressant que le codage simple car le graphe obtenu est beaucoup plus petit. Bien sûr, il existe d autres moyens de coder une requête sous forme de fonction booléenne. Il faut les tester pour pouvoir les comparer à ces deux codages. Lorsqu on réalise un codage naïf, on obtient des graphes très volumineux alors que lorsqu on utilise un codage plus évolué, on obtient des graphes moins grands. Par contre, le codage évolué nécessite un travail supplémentaire dans la phase de décodage alors que dans le codage naïf, cette opération est triviale et naturelle. Il faut donc faire attention que l opération de codage permette bien une opération de décodage Requêtes générées et comparaison des deux méthodes de codage On va traiter ici un exemple formé d une liste de requêtes permettant d atteindre la page Web : Cette page est la page d accueil de l université de CAMBRIDGE. Les re- x j

40 38 quêtes obtenues sont des requêtes d utilisateurs qui les ont amenés à cette page (directement ou indirectement). Ce journal a été généré en février Il contient aussi le nombre de fois où la requête a été utilisée. requête utilisée nombre 1 cambridge university 65 2 whistle blowing 58 3 clare sambrook 54 4 cambridge reporter 50 5 cambridge university reporter 46 6 dr george reid cambridge 46 7 national science week 46 8 waitangi day 41 9 tender document science week geoffry chaucer chroma therapeutics accounting procedures voice projection university salaries frank whittle zadie smith photo richard barker mission statement staff appraisal clinical waste national science week environmental issues minute taking national science week uk cambridge university jobs john redwood cambridge instruments transferable skills university superannuation scheme 17 [not listed : 17683] 22,611 FIG. 3.1 Liste de requêtes menant à la page d accueil de l université de Cambridge On obtient donc au total 30 requêtes différentes que l on peut analyser. Aucune des requêtes ne contient de mot négatif, cela veut dire que la requête ne soumet que des mots qu on désire et pas de mots indésirables. On peut regarder les requêtes générées par les deux versions du programme utilisant le codage simple ou le codage complet. On observe dans la figure 3.2 l évolution de la taille du ROBDD en fonction du nombre de requêtes soumises. De même, dans la figure 3.3, on trouve les mêmes données avec le codage complet. On peut

41 39 45 taille ROBDD codage simple taille du graphe nombre de requœtes FIG. 3.2 Variation de la taille du ROBDD de la fonction en utilisant le codage simple 130 taille ROBDD codage complet taille du graphe nombre de requœtes FIG. 3.3 Variation de la taille du ROBDD de la fonction en utilisant le codage complet remarquer que la taille du ROBDD lors du codage complet est plus importante qu avec le codage simple. En effet, dès la première requête, la taille du ROBDD en codage complet est de 45 noeuds et elle finit à environ 120 noeuds après les 26 requêtes, alors que dans le codage simple, la taille commence à 4 noeuds et finit à 45 noeuds. La taille de début en codage complet est égale à la taille de fin du codage simple. Ceci peut faire croire à la supériorité du codage simple sur le codage complet en ce qui concerne la taille du graphe. C est faux. Si l on regarde la figure 3.4, on observe que dès que le nombre de requêtes et de mots devient important, la taille du codage simple devient exponentielle alors que la taille du codage complet est linéaire. Ceci est évident, car dès qu une nouvelle variable apparaît dans le codage simple,

42 40 le nombre de noeuds du graphe double, car il faut introduire cette nouvelle variable dans le ROBDD. Or dans le cas du codage complet, dès le début, toutes les variables sont codées dans la fonction, donc quand on rencontre une nouvelle variable, nous n avons pas besoin de discriminer les anciennes requêtes par rapport à cette variable. Par contre, cela implique de connaître dès le début toutes les variables présentes. Ce codage est plus difficile à mettre en place dans une lecture des requêtes à la volée. 1.2e+06 codage simple codage complet 1e taille du graphe nbre requetes FIG. 3.4 Taille du ROBDD et codage de la fonction booléenne avec de nombreux mots On vient de montrer que la taille du ROBDD dépend du codage et que le codage complet est plus intéressant à utiliser. Est-ce toujours le cas si l on s intéresse aux requêtes générées? On peut voir dans la figure 3.5 quelques requêtes générées à partir du codage simple. Avec ce codage, on obtient un ROBDD de 45 noeuds pour la fonction requête f L. Si l on impose une contrainte de taille de 20 noeuds pour les approximations, on obtient un graphe de 2 noeuds pour f + L et de 20 noeuds pour f L. On obtient des graphes de 45 noeuds pour f L f + L et f L f L et un graphe de 20 noeuds pour f+ L f L. On obtient de nombreuses requêtes (128) dont un certain nombre sont correctes mais peu innovantes. Comparons maintenant avec le codage complet. Avec celui-ci, la taille du ROBDD des requêtes est de 121 noeuds. Avec une contrainte de taille de 50 noeuds, on obtient 532 requêtes alors qu avec une contrainte de 100 noeuds, on obtient 157 requêtes en utilisant dans les deux cas le ROBDD de f + f. La figure 3.6 récapitule la taille des différents ROBDD et le nombre de requêtes générées en fonction de la contrainte imposée. Il faut maintenant voir quelles sont les requêtes générées. Pour cela, on choisit une contrainte de 60 noeuds ce qui permet un certain nombre de requêtes (466). La figure 3.7 montre 10 requêtes générées ayant le meilleur score et que l on soumet à l utilisateur. A partir de cette sélection, l utilisateur peut alors choisir la ou les requêtes qui l intéressent. La figure montre que l utilisateur a été intéressé par 3 des dix requêtes. Il suffit alors à l utilisateur de soumettre les requêtes à un moteur de recherche et d analyser les résultats.

43 41 score Nbre de requête obtenue : cambridge cambridge +geoffry cambridge +tender cambridge +tender +geoffry cambridge +waitangi cambridge +waitangi +geoffry cambridge +waitangi +tender cambridge +waitangi +tender +geoffry cambridge +whistle cambridge +whistle +geoffry cambridge +whistle +tender cambridge +whistle +tender +geoffry cambridge +whistle +waitangi cambridge +whistle +waitangi +geoffry cambridge +whistle +waitangi +tender cambridge +whistle +waitangi +tender +geoffry cambridge +whistle +science +waitangi +tender +geoffry cambridge +george cambridge +george +geoffry cambridge +george +waitangi +tender +geoffry cambridge +whistle +george cambridge +whistle +george +geoffry cambridge +whistle +george +tender cambridge +whistle +george +tender +geoffry cambridge +whistle +george +waitangi cambridge +whistle +george +waitangi +geoffry cambridge +whistle +george +waitangi +tender cambridge +whistle +george +waitangi +tender +geoffry cambridge +george +science cambridge +george +science +geoffry cambridge +george +science +tender cambridge +whistle +george +science +waitangi +tender +geoffry FIG. 3.5 Quelques requêtes générées à partir du codage simple et une approximation à 40 noeuds On étudiera seulement la méthode du codage complet car l autre codage a des résultats moins intéressants et moins pertinents. On cherchera à comprendre comment sont générées les nouvelles requêtes à partir des anciennes. Tout d abord, pour qu une requête soit générée, son codage doit rendre vrai la fonction f f + (ou tout autre fonction choisie : f f, f + f...). Par la suite, on ne différenciera pas la requête et la fonction booléenne obtenue par le codage de cette requête. Supposons que le programme génère une requête q. On sait que q rend vrai la fonction choisie pour générer les requêtes. On a donc q qui rend vraie la fonction f f + c est à dire que (f f + ) q = 1. Or, il y a seulement deux possibilités pour que cette fonction soit vraie : 1. q rend vraie f et donc ne rend pas vraie f +, donc elle rend f + fausse.

44 42 Contrainte T aille Taille Taille de Taille de Taille de Nombre de taille de f + de f f + f f f f + f requêtes générées FIG. 3.6 Tableau des tailles des différents ROBDD et du nombre de requêtes générées pour le codage complet score requête sélection cambridge +barker +instruments cambridge +george +reid +transferable university +salaries +environmental X cambridge +reporter +photo X cambridge +reporter +procedures cambridge +taking +instruments cambridge +voice +instruments X cambridge +appraisal +instruments cambridge +reporter +transferable clinical +waste +environmental FIG. 3.7 Dix requêtes générées par le codage complet et une contrainte de 60 noeuds et la sélection de l utilisateur parmi ces dix requêtes. 2. q rend vraie f + et rend fausse f. Or, f + est une approximation de f, donc on a f f +, ce qui veut dire que f f + = f. Si l on suppose que q rend vraie f, cela veut dire que f q = 1, donc on a (f f + ) q = 1. Ceci entraîne, par distributivité, f q f + q = 1. En remplaçant f q par sa valeur (tautologie donc 1) et en simplifiant, on obtient alors f + q = 1. Or ceci est en contradiction avec (f f+ ) q = 1. Cela veut dire que q ne peut vérifier que le second cas. On a alors q qui rend vraie f + et rend fausse f. On est ainsi certain que la requête générée n a pas déjà été soumise par l utilisateur (car, dans ce cas, elle rendrait f vraie). On étudiera plus en détail la génération d une requête en particulier la requête : +cambridge +taking +instruments. Comment cette fonction a été générée? On peut voir que cette requête est l agrégation de la requête 28 (+cambridge +instruments) et la requête 24 (+minute +taking) à laquelle on a enlevé le mot +taking. Comment cela s explique-t-il? Voyons la fonction booléenne formée par ces 2 requêtes. On note f 24 (resp. f 28 ) le codage de la requête 24 (resp. 28). On trouve dans le tableau 3.8 le codage des requêtes. Sur chaque ligne, on trouve le f i correspondant à la requête. On a donc f 24 = x 0 x 1 x 2 x 3 et f 28 = x 0 x 1 x 2 x 3.

45 43 requête cambridge instruments minute taking x 1 x 2 x 3 x 4 f 24 +minute +taking f 28 +cambridge +instruments FIG. 3.8 Codage de deux requêtes La fonction booléenne est le ou de tous les f i, donc f = f 24 f 28. La figure 3.9 montre le ROBDD de f. Il contient 9 noeuds. L ordre sur les variables est x taking x minute x instruments x cambridge. cambridge instruments instruments minute minute taking taking 0 1 FIG. 3.9 ROBDD de f = f 24 f 28 On réalise une approximation de ce graphe avec une contrainte de taille de 7 noeuds. On obtient alors le ROBDD qu on trouve sur la figure 3.10 Les deux noeuds portant la variable x taking ont été redirigés vers la feuille 1. Lors de l approximation, les noeuds avec les variables les plus basses ont tendances à disparaître. Ceci explique ainsi pourquoi, lors de l agrégation des deux requêtes, un mot a disparu : il a été enlevé lors de l étape d approximation car pas assez révélant. On peut rappeler que l ordre sur les variables est défini par l heuristique HMOI qui classe les variables les plus importantes dans le haut de l ordre et les variables peu importantes dans le bas de l ordre. On trouve dans la figure 3.11, le ROBDD de f f +.

46 44 cambridge instruments instruments minute minute 0 1 FIG ROBDD de f + avec une contrainte de taille de 7 noeuds cambridge instruments instruments minute minute taking taking 0 1 FIG ROBDD de f + f Ce ROBDD contient 9 noeuds. Si on cherche les chemins menant à la feuille 1, on en trouve deux : x cambridge = 0 x instruments = 0 x minute = 1 x taking = 0 et x cambridge = 1 x instruments = 1 x minute = 0 x taking = 1. Ceci nous donne deux requêtes : q 1 = +minute et q 2 = +cambridge+instruments+taking. Ainsi, q 1 est la requête générée par le programme. La différenciation entre q 1 et q 1 a lieu grâce à la fonction de notation des requêtes qui donne un meilleur score à q 2 que q 1 lorsqu on a les 30 requêtes. Notons que dans le cadre où on a seulement les deux requêtes 24 et 28, les deux requêtes ont le même score (P = 0.5) La méthode a tendance à enlever les noeuds des requêtes qui ont peu d importance. Ainsi, elle a tendance à généraliser les requêtes fournies par l utilisateur en les combinant entre elles. Si on réduit

47 la taille de contrainte appliquée à f +, les phénomènes de généralisations et combinaisons s amplifient. Ces phénomènes sont plus visibles lorsqu on utilise plus de requêtes. Il est aisé d améliorer les requêtes générées en leurs appliquant un post-traitement. En effet, il est possible de réaliser un enrichissement des requêtes. Si l on prend la requête +cambridge +instruments +voice, on remarque que le mot voice est toujours associé au mot projection. Il paraît donc naturel de proposer plutôt la requête enrichie par ce mot : +cambridge +instruments +voice +projection. Cette opération d enrichissement est facile à mettre en place. Pour chaque requête q contenant les mots x i, on regarde s il existe des mots δ j.x j n appartenant pas à q tel qu il existe un mot δ k.x k dans q tel que P(δ k.x k δ j.x j ) = 1. On rajoute alors le mot δ j.x j à q. On peut aussi définir un enrichissement à ε près. On remplace la condition P(δ k.x k δ j.x j ) = 1 par P(δ k.x k δ j.x j ) 1 ε. Ceci nous permet d ajouter les mots qui sont souvent (à ε près) avec δ k.x k. Il est intéressant de définir l enrichissement à ε près lorsqu on utilise un ensemble important de requêtes (quelques milliers de requêtes) car il est presque impossible d avoir la condition P(δ k.x k δ j.x j ) = 1. On l assouplit en permettant un écart de ε. Dans l exemple de ce chapitre, le nombre de requêtes étant limité (30) et très précises, l algorithme n a pas pu démontrer pleinement son efficacité car l approximation a seulement permis l agrégation de requêtes. La méthode a été testée avec succès dans un cadre où l on a plusieurs milliers de requêtes soumises au programme. On s est intéressé à l expansion de requêtes, non pas dans le cadre d utilisateurs humains, mais dans le cadre d un programme de construction de corpus en langue minoritaire à partir du WEB. Ce programme génère des requêtes dans le but de trouver des documents dans une langue cible minoritaire. Il réalise un apprentissage de la méthode de génération des requêtes en fonction des documents en sa possession. Il est intéressant de voir comment améliorer les requêtes de ce programme au travers de la méthode expliquée dans ce chapitre. 45

48 Chapitre 4 Construction de corpus en langue minoritaire à partir du WEB 4.1 Présentation de CorpusBuilder Introduction Internet est une source importante d informations diverses et variées, mais dont l organisation et la collecte n est pas simple. On étudie dans ce chapitre un créateur de corpus, une démarche pour générer de manière automatique des requêtes applicables à un moteur de recherche dans le but de créer une collection de document liés à un concept minoritaire sur le Web. Le concept étudié est la langue du document : on désire que les documents soient rédigés dans une langue cible, minoritaire sur le Web, donnée par l utilisateur. Chaque document récupéré par le programme est étiqueté grâce à un filtre comme étant pertinent ou non au concept choisi. De plus, le programme CorpusBuilder associe un apprentissage sur la génération des requêtes soumises au moteur de recherche. Cette méthode a été présentée dans [Ghani et al., 2001]. Nous présentons dans un premier temps la méthode expliquée dans cet article, puis nous verrons comment compléter cette recherche par la méthode décrite dans le chapitre Algorithme général La figure 4.1 explique le fonctionnement général de CorpusBuilder. Cette méthode fonctionne globalement de façon itérative. La langue concept est donnée par l utilisateur sous la forme d une ou plusieurs pages Web. De plus, l utilisateur doit donner au moins un document non adapté (donc dans une autre langue que la langue cible). Une fois que l utilisateur a donné ces documents, il n intervient plus sur le programme qui travaille de façon automatique et indépendante. A partir des documents initiaux fournis par l utilisateur, des statistiques sur ces documents sont calculées. Ces statistiques permettent de générer une requête qui est soumise au moteur de recherche. Le filtre étiquette positivement ou négativement (en fonction de l appartenance ou non au langage cible) le document renvoyé par le moteur de recherche. Le programme retourne alors à la phase de calculs des probabilités sur les documents positifs et négatifs et recommence un cycle. On peut inclure, dans ce cycle, une phase d apprentissage des constructions des requêtes. En effet, selon que le document est étiqueté positivement ou négativement par le filtre, on réalise un apprentissage des paramètres utilisés pour la création de requête. Si une requête a déjà été 46

49 47 Calculs statistiques Construction requête Docs initiaux WEB Appropriés Apprentissage Non appropriés Filtre FIG. 4.1 Architecture générale de CorpusBuilder générée, alors on récupère le deuxième document renvoyé par le moteur de recherche, puis le troisième et ainsi de suite. Voici l algorithme général et non détaillé de la méthode sans apprentissage : 1. Initialisation RelDocListe=le document dans la langue cible donné par l utilisateur RelFreqMots=frequence_des_mots(RelDocListe) NonRelDocListe=les document dans n appartent pas à la langue cible donnés par l utilisateur NonRelFreqMots=frequence_des_mots(NonRelDocListe) 2. Génération de requête en utilisant les mots de RelDocListe et NonRelDocListe Sélectionner k terme d inclusion en utilisant générer_mots(relfreqmots) Sélectionner k terme d exclusion en utilisant générer_mots(nonrelfreqmots) Soumettre au Web la requête +Inc_mot 1 + Inc_mot k Exc_mot 1 Exc_mot k 3. Récupération d un document Si q est une nouvelle requête, chercher l URL du premier document donnée par le moteur de recherche et récupérer la page correspondante Si q a déjà été générée, prendre la page suivante non visitée. Si tous les résultats ont été pris, alors ne rien retourner Si la requête n a aucun résultat, retourner à l étape 2 sinon soumettre le document au filtre 4. Filtre : étiqueter le document d et l assigner à RelDocListe ou NonRelDocListe 5. Recalculer RelFreqMots et NonRelFreqMots avec les nouvelles listes mises à jour 6. Retourner à l étape 2 On choisit de récupérer un seul document par cycle pour permettre à l algorithme de générer le plus de requêtes possibles et ainsi faciliter son exploration du Web.

50 Méthodes de générations de requêtes On a vu dans l algorithme précédent qu il y a une étape de génération des termes d inclusion et des termes d exclusion. Ceci est l étape clef de la méthode car c est elle qui génère les requêtes et détermine ainsi les documents récupérés. Pour générer ces termes en fonctions des probabilités sur les mots, il existe différentes méthodes présentées ici. On indique les méthodes correspondantes à la génération des k termes d inclusion. Pour les termes d exclusion, les méthodes sont les méthodes analogues. UN : Uniform probability On choisit k mots dans les documents étiquetés positivement avec équiprobabilité des mots. Cette méthode choisit au hasard parmi les documents appropriés. TF : Term Frequency On choisit les k mots les plus fréquents des documents positifs. PTF : Probabilistic Term Frequency On choisit k termes des documents sources avec une probabilité proportionnelle à leur fréquence. Les mots les plus fréquents ont plus de chance d être sélectionnés. ODR : Odds Ratio Choisit les k termes des documents positifs ayant le plus haut score d odds ratio. Le score odds ratio d un mot x est défini par : log 2 P(x doc positifs) (1 P(x docs négatifs)) P(x docs négatifs) (1 P(x docs négatifs)) PODR : probabilistic odds ratio On sélectionne k mots avec une probabilité proportionnelle à leurs scores odds ratio. Dans ces 5 méthodes, 2 sont déterministes et donnent ainsi toujours le même résultat si les statistiques ne sont pas modifiées. Ces deux méthodes ont donc plus de chances de générer les mêmes requêtes plusieurs fois. Il reste 3 méthodes non-déterministes ; ces méthodes introduisent une part de hasard dans la sélection des k termes. Ce hasard est soit total (UN) ou proportionnel à un score (PTF et PODR). 4.2 Résultats des différentes méthodes de génération de requêtes On a testé ces cinq méthodes avec différentes longueurs de requêtes fixées. De plus, on a utilisé la même méthode pour l inclusion et l exclusion. On a testé ces méthodes sur un document cible en slovène et des documents non appropriés en anglais, tchèque, croate et serbe. Le programme a réalisé dans tous les cas 500 cycles. On peut voir dans la figure 4.2 les résultats des différentes méthodes avec des longueurs de 1, 3, 5, 7 et 10 termes d inclusion (et le même nombre pour les termes d exclusion). On observe que dans ce tableau que toutes les méthodes n arrivent pas à générer 500 requêtes différentes. Par exemple, la méthode déterministe ODR_1 ne génère que 97 requêtes différentes. Les deux méthodes déterministes génèrent peu de requêtes différentes ( il faut une longueur de 10 pour qu ODR génère 500 requête différentes et une longueur de 7 pour que TF génère 496 requêtes). De plus, ces deux méthodes récupèrent en général peu de documents et la proportion de documents appropriés est faible. Ces méthodes ramènent donc très peu de documents positifs. Par exemple, la méthode ODR_1 ramène 403 documents (ce qui est le maximum ramené par les différentes méthodes) mais seulement 102 sont dans la langue cible. Ceci fait donc une proportion d environ 25% de documents corrects. La méthode UN génère de nombreuses requêtes différentes mais ramène une quantité moyenne de documents (appropriés ou non). Ceci vient de la probabilité uniforme sur tous les mots, il n y a aucune sélection des termes et l on explore au hasard. Enfin, les deux dernières méthodes sont équivalentes dans leurs résultats. Elles ramènent de nombreux documents (en moyenne 300 pour PTF) et, en plus, un nombre moyen de documents dans la langue cible. Les deux meilleures méthodes sont PTF_3 et PODR_3 avec 258 documents

51 49 Longueur de nombre de nombres de docs nombre de la requête requêtes appropriés docs total ODR PODR TF PTF UN FIG. 4.2 Résultats obtenus pour les différentes méthodes de génération de requêtes avec différentes longueur positifs sur 324 documents récupérés par le programme. PODR récupère en moyenne 80% de documents appropriés quelque soit la longueur de la requête, il faut donc faire la distinction sur le nombre total de documents récupérés et non sur le pourcentage de documents positifs. Il est aussi à noter le bon résultat de la méthode ODR_3 qui récupère 258 documents dont 217 sont appropriés. 4.3 Apprentissage de la génération de requête Dans la section précédente, les méthodes de génération de requête ont des résultats différents selon la longueur de la requête. Il est intéressant d introduire un apprentissage des méthodes et longueurs de requêtes à utiliser. Cet apprentissage se réalise sur la combinaison des méthodes et la modification des différentes longueurs pour les termes d inclusion et pour les termes d exclusion. Voici les quatre méthodes différentes qui ont été utilisées.

52 ML : Memory-Less Learning Cette méthode est la plus simple des quatre. Tant qu une méthode donne de bons résultats, on continue à l utiliser. Dès qu elle renvoie aucun résultat ou un document non pertinent, alors on change de méthode. Voici l algorithme : Algorithme 5 Algorithme de la méthode ML Initialiser D(m) avec une distribution uniforme sur les méthodes m i tant que (1) faire Choisir une méthode m i de génération de requête en fonction de D(m) Générer une requête avec la méthode m i et récupérer un document d Mettre à jour les scores D(m) : Si d est dans la langue cible : D(m i ) = 1 et D(m j ) = 0 pour j i Sinon D(m i ) = 0 et D(m j ) = 1 M 1 pour i j ( M est le nombre de méthode différente utilisée pour la génération de requêtes) Normaliser les scores pour donner une distribution de probabilité sur les méthodes et la stocker dans D(m). fin tant que FM : Fading Memory Learning Cette méthode se base sur les performances passées des différentes méthodes de génération, mais progressivement elle réduit l impact de l apprentissage des événements du passé. Voici l algorithme : Algorithme 6 Algorithme de la méthode FM Initialiser le score S(m i ) de chaque méthode à 1. Normaliser les score S(m) pour obtenir une distribution D(m) de probabilité sur les méthodes. tant que (1) faire Choisir une méthode m i de génération de requête en fonction de D(m) Générer une requête avec la méthode m i et récupérer un document d Mettre à jour les scores D(m) : Diminuer les scores : D(m) = D(m) α (on a choisit ici α = 0.9. Si d est dans la langue cible : S(m i ) = S(m i ) + 1 Sinon S(m j ) = S(m j ) + 1 M 1 pour i j Normaliser les scores pour donner une distribution de probabilité sur les méthodes et la stocker dans D(m). fin tant que 1 Il est à noter qu on augmente les scores des méthodes non utilisées de M 1 si l on se trouve dans un cas d échec. On ne diminue pas le score de la méthode utilisée mais on augmente les autres LTA : Long-Term Learning Additive Cette méthode estime les probabilités des méthodes selon tous les événements de l historique. Les deux méthodes LTM et LTA sont identiques à part pour la mise à jour des scores des méthodes. On trouve ici l algorithme de LTA.

53 51 Algorithme 7 Algorithme de la méthode LTA Initialiser les score Pos(m i ) et Neg(m i ) à 1 pour chaque méthode. Pos(m i ) indique le nombre de documents positifs récupérés par la méthode m i, de même pour Neg(m i ) Pos(m i ) Pos(m i )+Neg(m i ) Calculer S(m i ) = Normaliser les scores pour donner une distribution de probabilité sur les méthodes et la stocker dans D(m). tant que (1) faire Choisir une méthode m i de génération de requête en fonction de D(m) Générer une requête avec la méthode m i et récupérer un document d Mettre à jour les scores D(m) : Si d est dans la langue cible : Pos(m i ) = Pos(m i ) + 1 Sinon Neg(m i ) = Neg(m i ) + 1 Pos(m i ) Pos(m i )+Neg(m i ) Recalculer les scores : S(m i ) = Normaliser les scores pour donner une distribution de probabilité sur les méthodes et la stocker dans D(m). fin tant que LTM : Long-Term learning Multiplicative La méthode LTM utilise le même algorithme que la méthode LTA, sauf pour la mise à jour des Pos(m i ) et Neg(m i ). Dans le cas additif, on réalise une addition, alors qu ici on réalise une multiplication par β ou une division, selon le document d. On prend β = Résultats de l apprentissage Une fois ces méthodes implémentées, on a réalisé une expérimentation toujours dans le même cadre que pour l étude des méthodes de génération de requêtes. Le document cible est toujours en slovène et on réalise 500 cycles. Les méthodes d apprentissages ont été utilisées pour apprendre la longueur des termes d inclusion, la longueur des termes d exclusion, la méthode de génération des termes d inclusion et la méthode de génération des termes d exclusion. On a utilisé la même méthode pour apprendre les différents paramètres. nb de requêtes différentes nb docs appropriés nb docs total ML FM LTA LTM PTF_ FIG. 4.3 Résultats globaux des méthodes d apprentissages Dans la figure 4.3, il est présenté les résultats globaux des méthodes d apprentissages. Les quatre méthodes génèrent toutes à peu près 500 requêtes différentes. La méthode ayant les meilleurs résultats est la méthode ML avec un pourcentage de 55% de documents corrects sur les 318 documents récupérés.

54 52 Longueur des requêtes ML FM LTA LTM FIG. 4.4 Apprentissage des longueurs des termes d inclusion Méthode de sélection ODR PODR PTF TF UN des termes ML FM LTA LTM FIG. 4.5 Apprentissage des méthodes de génération des termes d inclusion Les méthodes LTM et LTA sont très proches en résultat et la méthode LTA a un meilleur pourcentage de documents corrects par rapport à la méthode LTM. Par contre, en nombre total de documents, elle est inférieure à LTM. L apprentissage ne réalise pas aussi bien que la meilleure méthode (PTF_3) qui a été trouvée à la main. Les figures 4.4 et 4.5 récapitulent les différents paramètres des méthodes d apprentissage pour la génération des termes d inclusion. les figures 4.6 et 4.7 sont les figures correspondantes pour les termes d exclusion. En ce qui concerne les longueurs des requêtes, mis à part ML qui semble privilégier les requêtes de longueur 10, nous pouvons dire, pour toutes les méthodes, qu elles utilisent les différentes longueurs indifféremment. Pour les méthodes de génération des termes d inclusion, les méthodes ML, FM et LTM semblent privilégier la sélection par PODR, avec par exemple 290 appels pour LTM sur 500. LTA ne privilégie aucune méthode. Pour les termes d exclusion, les méthodes réalisent les mêmes choix sauf LTM qui utilise PODR 39 fois et UN 138 fois. Les différentes méthodes d apprentissages ont des résultats moyens par rapport aux meilleures méthodes de génération (PTF_3 et PODR_3). De plus, elles sont toutes à peu près équivalentes dans les paramètres qu elles apprennent. La figure 4.8 montre l évolution du nombre de documents corrects par rapport aux nombre de documents rapatriés. Or, pour toutes les méthodes, on voit que le rapport entre les deux nombres est constant Longueur des requêtes ML FM LTA LTM FIG. 4.6 Apprentissage des longueurs des termes d exclusion

55 53 Méthode de sélection ODR PODR PTF TF UN des termes ML FM LTA LTM FIG. 4.7 Apprentissage des méthodes de génération des termes d exclusion ML FM LTM LTA Nombre de documents pertinents Nombre de documents recuperes FIG. 4.8 Nombre de documents pertinents par rapport au nombre de document récupérés par les différentes méthodes pour toutes les méthodes puisque l on obtient quatre droites distinctes. Les méthodes diffèrent donc dans le pourcentage de documents corrects récupérés. Les deux méthodes LTM et LTA ont un taux de près de 75% de documents corrects. La méthode ML a le même taux mais la courbe s arrête plus tôt car cette méthode ramène moins de documents comparée aux autres. Cette figure nous montre que l on peut donc améliorer nettement les méthodes d apprentissages. Pour cela, il faut améliorer le nombre total de documents qu elles ramènent, donc diminuer le nombre de requêtes ne donnant aucun document en retour. Il faut aussi améliorer le taux de documents pertinents sur le nombre de documents récupérés. Dans ce but, on va essayer d appliquer la méthode décrite dans le chapitre précédent.

56 Application de la méthode Problème rencontré La méthode ne peut être appliquée telle qu elle sur le fichier de requêtes générées par CorpusBuilder. On a pris comme exemple, une recherche de documents en français et on a laissé 2000 cycles au programme. Si l on essaye d appliquer la méthode au fichier des requêtes, on voit apparaître un problème. 1e+06 LTA Taille du ROBDD Nombre de requetes FIG. 4.9 Taille du ROBDD des requêtes pour LTA (avec 2000 requêtes) En effet, la figure 4.9 montre la taille du ROBDD créé à partir des 1000 premières requêtes générées avec cette méthode. Cette taille évolue de façon linéaire par rapport au nombre de requêtes. Ceci est important car on sait que le graphe ne va pas grandir trop vite (comme avec le codage simple). Mais, le graphe obtenu avec seulement les 1000 premières requêtes est d à peu près un million de noeuds. Or, l algorithme d approximation a une complexité en O(n 2 ). Il est donc peu envisageable de l appliquer. Pour contrer ce problème, on opte pour un filtrage des requêtes afin de diminuer considérablement la taille du ROBDD. Pour cela, on a réalisé une étude du vocabulaire Evaluation du vocabulaire généré Le vocabulaire est important pour nos requêtes. Il est donc intéressant de l étudier, car il caractérise nos requêtes. En effet, trouve-t-on toujours les mêmes mots dans les requêtes ou est-ce que les mots uti-

57 55 lisés dans celles-ci sont distribuées de façon équiprobable? Pour commencer, on a étudié le vocabulaire contenu dans les requêtes générées par les méthodes. On a étudié les méthodes LTA (LTM différenciant peu de cette méthode) et FM. On a réalisé 2000 requêtes dans le but de trouver des documents en français. On peut voir dans la figure 4.10 l évolution de la richesse du vocabulaire au fil de la génération des 2000 requêtes ML FM LTM LTA 2000 Taille du vocabulaire Nombre de requetes FIG Evolution de la richesse du vocabulaire des différentes méthodes On remarque que toutes les requêtes ont à peu près le même nombre de mots dans le vocabulaire utilisé. Selon la méthode, la taille du vocabulaire oscille entre 2200 et 2500 mots, ce qui fait en moyenne un nouveau mot par requête. Il n existe donc pas une énorme différence entre le nombre de mots différents utilisés par les 4 méthodes d apprentissages. On peut alors se demander comment se répartisse ces 2000 mots. En effet, il est intéressant de voir la fréquence de chaque mot et comment il se répartit entre les inclusions (notée +) et les exclusions ( notée ) dans les requêtes. Pour cela, on a compté le nombre de fois où un mot était utilisé positivement dans une requête et combien de fois il a été utilisé négativement. Dans la figure 4.11, on peut trouver les résultats pour la méthode LTA. De même, dans la figure 4.12, on trouve les résultats de la méthode ML. Dans les deux cas, 90% des mots sont utilisés, au maximum, dans une dizaine de requêtes différentes. Une grande majorité des mots est donc sous-employée et servent très peu. On peut remarquer aussi que presque tous les mots servent à la fois comme termes d inclusion et comme termes d exclusion. Lorsqu un mot est plus utilisé en tant que termes positifs, il est quand même utilisé comme terme d exclusion. De même pour les termes utilisés majoritairement négativement, ils se retrouvent quand même, de temps en temps, utilisés de façon positive. On peut ainsi découper les mots du vocabulaire en trois catégories distinctes : Les termes majoritairement positifs : Ils ont une fréquence, assez élevée, d apparition dans les requêtes. Ils sont utilisés en majorité en tant que termes d inclusions mais peuvent parfois être des

58 utilisation positive utilisation negative frequence FIG Fréquence des différents mots du vocabulaire pour la méthode LTA termes d exclusions. On les retrouve à gauche des deux graphiques. Les termes majoritairement négatifs : Tout comme les termes majoritairement positifs, ils ont une fréquence, assez élevée, d apparition dans les requêtes. Ils sont utilisés en majorité en tant que termes d exclusions mais peuvent parfois être des termes d inclusions. On les retrouve, dans les deux figures, à l opposé des termes majoritairement positifs : sur la droite. Les termes peu utilisés : On les retrouve, dans les graphiques, entre les termes positifs et négatifs. Ils sont très peu utilisés, par rapport aux deux catégories précédentes, dans les requêtes. Ils sont utilisés à la fois comme termes positifs et négatifs, avec en général, une prédisposition à l une des deux catégories (positif ou négatif). Ces trois catégories permettent de classés les mots selon leur fréquence, mais il existe des mots qui ne peuvent être classé dans ces catégories. On remarque qu un tel mot dans la figure 4.12 : le mot accept est apparu 555 fois dans des requêtes en tant que terme d inclusion et 403 en tant que terme d exclusion. Il ne peut ni être classé comme terme positif ni comme terme négatif. De plus, il est trop fréquent (plus de 900 fois sur 2000 requêtes) pour être classé comme terme peu utilisé. Cette catégorisation des mots est-elle suffisante pour pouvoir réaliser un filtrage des requêtes? Malheureusement non, car il y a encore des difficultés : les mots majoritairement positifs ou négatifs ont déjà été beaucoup utilisés, il n est pas intéressant de faire des filtres sur ces mots car ils ont déjà été fortement employés. Par contre les mots sous-employés de la catégorie des termes peu utilisés peuvent être intéressant pour réaliser un filtre. Mais quels mots employer dans cette catégorie? 90% des mots appartiennent à cette classe, il faut donc faire un choix. Certains mots peuvent ne pas être employés car inadaptés ou le mot peut ne pas avoir pu être pleinement employé.... On ne peut faire la différence entre les mots adaptés et les mots non-adaptés au concept. Il faut donc trouver une autre méthode de sélection de mots.

59 utilisation positive utilisation negative frequence FIG Fréquence des différents mots du vocabulaire pour la méthode ML Evaluation du vocabulaire des documents pertinents et résultats Pour cela, on a étudié non pas le vocabulaire des requêtes mais le vocabulaire des documents appartenant au concept. En effet, lorsque le programme tourne, il récupère des documents qui appartiennent au concept cible. On peut alors étudier le vocabulaire de ces documents pour pouvoir le comparer à celui des requêtes. On a opté pour une méthode d étude basique et naïve. Pour chaque mot, on compte le nombre de citation de ce mot dans les documents appropriés et le nombre de document dans lequel il est cité. Ces deux nombres peuvent être fortement différent. En effet, un mot peu apparaître dans 3 documents, mais s il est cité 1000 fois dans chaque document, alors son nombre de citation est de Il est donc intéressant de voir la répartition des occurrences d un mot dans les documents appropriés en fonction du nombre de document dans lequel il apparaît. On peut trouver le résultat de cette étude pour la méthode LTA dans la figure 4.13 et pour la méthode ML dans la figure 4.14 On retrouve dans les deux figures des distributions similaires. Pour les quatre méthodes on retrouve la même distribution. Cette distribution de points est caractéristique d une distribution de Zipf que l on retrouve sur le graphique La distribution de Zipf épouse parfaitement la distribution du vocabulaire obtenu par la méthode ML à part quelques points. Zipf est une fonction de la forme Z(x) = a x b. La distribution associée à ML a été trouvée par régression linéaire. Elle est : 367 Z(x) = 560 x L intérêt de cette régression est qu elle nous permet de définir une distance sur les mots. La distance d un mot est la distance entre ce mot et la courbe définie par Z(x). Dans le cadre des deux méthodes, on peut voir qu un certain nombre de points (ou mots) sont éloignés de la distribution de Zipf. Il est intéressant

60 LTA 600 nombre de documents oø le mot appara t nombre d occurences du mots FIG Répartition du vocabulaire du concept pour la méthode LTA d étudier ces mots. On trouve dans la figure 4.16, les mots trouvés pour la méthodes LTA et dans la figure 4.17, les mots correspondant pour la méthode ML. Les mots connection, ok, server, aug, gmt, content et http qui se trouvent en haut et au milieu du graphique pour LTA, se trouvent au même endroit dans le graphique de ML. Si l on s intéresse aux mots qui se trouvent proche d eux et en dessous, on remarque qu ils ne font pas partis de la distribution de Zipf. Il est intéressant d extraire à nouveau ces mots. On obtient dans les deux cas les mots : unix, ranges, apache, modified, last, accept, thu, keep, alive.... On voit ainsi apparaître le fameux accept que l on avait noté dans la figure Tous ces mots sont de mots anglais qui font partis du codage HTML. Ils ne sont donc pas intéressant pour nous et nous devons les considérer comme neutre. On peut alors les inclure dans un anti-dico qui permettra d éviter de les considérer dans la génération de requête. Grâce à notre distribution de Zipf, nous avons pu remarquer des mots non-pertinents et ainsi les ignorer pour les requêtes à venir. Ceci nous permet de croire en l utilité de cette étude des occurrences des mots. Voyons maintenant ce que cela donne pour les mots proches de la distribution de Zipf. Trouverons nous des mots intéressants pour nos requêtes et sur lesquels nous pourrons réaliser un filtrage des requêtes? Pour traiter ces mots, on s est intéressé aux mots ayant plus de 4100 occurrences dans plus de 350 documents pour les deux méthodes. On trouve une liste de mots similaire dans les deux cas. On trouve dans la figure 4.18 une liste de ces mots pour la méthode LTA. Il n y pas besoin d étudier la méthode ML car les mots de cette listes sont en majorité identiques. Cette liste ne contient que des mots français, donc appartenant au concept cible. De plus, on sait que ces mots apparaissent souvent et dans de nombreux documents appropriés, il est donc intéressant de faire un filtre sur les requêtes contenant ces mots. Il est judicieux de sélectionner les mots proches de la courbe représentant la distribution de Zipf associée aux documents. Ceci nous permet de sélectionner des mots appropriés au langage et de réaliser un filtre à partir de ces mots. Si l on prend tous les mots

61 ML 500 nombre de documents oø le mot appara t nombre d occurences du mots FIG Répartition du vocabulaire du concept pour la méthode ML de la figure 4.18 et que l on recherche les requêtes utilisant un ou plusieurs de ces mots dans la méthode LTA, on obtient alors près de 400 requêtes différentes, ce qui permet de diviser par 5 le nombre de requêtes utilisées pour la construction du ROBDD. Cela veut dire qu une trentaine de mots se retrouve dans 25% des requêtes, ce qui est relativement important si l on considère que la taille du vocabulaire est d environ 2200 mots.si l on construit le ROBDD associé à ces requêtes, on obtient un graphe de noeuds. Pour réaliser une approximation dessus, cela prend encore un certain temps car la complexité de l algorithme d approximation est en O(n 2 ). Pour mieux comprendre ce qui se passe et pour simplifier, on a sélectionné les requêtes ne contenant que le mot sur. On obtient alors un ROBDD de 3726 noeuds au lieu des noeuds précédent, ceci permet une génération de requête plus rapide. Le programme génère 1455 requêtes dont près de 300 qui ont un score non nul si l on réalise une approximation du graphe avec 3000 noeuds. La figure 4.19 récapitule les requêtes ayant les meilleurs scores. Les requêtes ayant les meilleurs scores sont en général plus courtes que les requêtes ayant un score plus faible car la probabilité d avoir deux mots est en général inférieure à la probabilité d avoir un mot. Pour modifier ce déséquilibre et favoriser les requêtes longues, on a rajouter un second score qui est le score normal de la requête multiplié par sa longueur : score(q) q. On retrouve ce nouveau score dans la seconde colonne de la figure On utilise ce nouveau score pour classer les requêtes. Cette nouvelle méthode de notation favorise les requêtes plus spécifiques car plus longues, alors que l ancienne méthode favorisait les requêtes plus générales car plus courtes. Les dix requêtes ayant les plus haut scores sont donc : 1. +surmonter 2. +surmonter +relatifs +voulu +dramatiques +lentilles +expresse +show +évaluation +collectives 3. +surmonter +relatifs +voulu +dramatiques +lentilles +expresse +show +évaluation

62 ML Distribution de Zipf nombre de documents oø le mot appara t nombre d occurences du mots FIG Distribution de Zipf et répartition du vocabulaire de la méthode ML nombre d occurrence nombre de du mot document mot connection ok text server aug html type gmt content date http FIG Exemples de mots éloignés de la distribution de Zipf pour LTA 4. +surmonter +relatifs +voulu +dramatiques +lentilles +expresse +show 5. +surmonter +relatifs +voulu +dramatiques +lentilles +expresse 6. +surmonter +relatifs +voulu +dramatiques +lentilles 7. +surmonter +saint +pst +accessoire +appelle +animée +compréhensible +paroles +mariages 8. +surmonter +saint +pst +accessoire +appelle +animée +compréhensible +mariages 9. +surmonter +relatifs +voulu +dramatiques

63 61 nombre d occurrence nombre de du mot document mot connection ok server aug html gmt content http FIG Mots éloignés de la distribution de Zipf pour ML (occurrences de 550 à 2048 dans plus de 500 documents) 10. +surmonter +saint +pst +accessoire +appelle +animée +mariages On peut voir que ces dix requêtes peuvent être classées dans trois catégories différentes. +surmonter La première catégorie ne contient qu une requête : la requête +surmonter. Cette requête est unique car elle ne contient qu un mot et est très générale. On peut interdire d envoyer des requêtes ne contenant qu un terme d inclusion mais cela n est pas forcément utile. En effet, si l on envoie cette requête au moteur de recherche Altavista, le moteur trouve pages ou sites relatifs à ce mot. Ceci explique pourquoi on préfère envoyer des requêtes contenant plusieurs mots. L avantage est que l on ne risque pas d épuiser cette requête avec ses résultats. Si l on regarde les dix premiers résultats de cette requête, neuf pages sont en français sur dix. La page http :// étant l unique page qui n est pas en français. Ceci nous fait un taux de 90% de réussite et nous avons donc trouver 9 documents nouveaux dans la langue cible. Les requêtes contenant +surmonter +relatifs +voulu +dramatiques Cette catégorie est formée de six requêtes : les requêtes 2 à 6 et la requête 9. On peut choisir de tester toutes les requêtes. Ici, nous allons juste étudier les résultats de la requête 2 ayant le plus haut score et étant la plus spécifique ainsi que la requête 9 ayant le plus bas score et étant la plus générale. On peut remarquer que la requête 9 est la requête de cette catégorie ayant le plus haut score avant multiplication par la longueur de la requête et que la requête 2 est celle ayant le plus haut score après multiplication. La requête 2 nous donne aucun résultat si elle est soumise au moteur de recherche. La première requête qui nous donne un résultat est la requête 9. Toutes les autres requêtes ne nous donnent aucun résultat à cause du mot lentille qui est un mot trop précis. Lorsqu on soumet la requête 9 au moteur de recherche, celui ci nous renvoie 34 pages. Si l on étudie les dix premières réponses, on obtient dix documents français, cela veut dire que cette requête a un taux de réussite de 100% sur les dix premiers résultats. Ceci est très intéressant et laisse supposer qu une très grande partie des 34 documents répondant à cette requête doivent être dans la langue cible. On voit donc que la requête 9 est la requête la plus intéressante des six requêtes de cette catégorie. Pourtant, elle est la requête ayant le plus faible score... Les requêtes contentant +surmonter +saint +pst +accessoire +appelle +animée +mariages Cette catégorie contient les trois requêtes restantes. Elle contient les requêtes 7, 8 et 10. Ces requêtes sont aussi classées par ordre de spécificité : la requête 7 étant la plus spécifique et la 10 étant la plus

64 62 nombre d occurrence nombre de du mot document mot son cette avec nous se vous sont plus aux pas ce sur il qui par pour dans que une est un en du des les et le de FIG Mots fréquents et proche de la distribution de Zipf pour LTA (plus de 4100 occurrences dans plus de 350 documents) générale. Aucune des trois requêtes ne donne de résultat. On peut classer les requêtes générées en deux ensembles. Les requêtes qui renvoient des résultats et les requêtes sans résultat. Lorsqu on étudie plus en détails les requêtes donnant des résultats, on voit que plus de 95% des résultats correspondent à la langue cible. Ceci améliore grandement la méthode traditionnelle d apprentissage qui avait un rapport d environ 75%. Pour améliorer les résultats, il suffit d améliorer le nombre de requêtes donnant des résultats par rapport au nombre de requête ne donnant pas de résultats. De plus, le nombre de documents, pour les requêtes correctes, est relativement important par rapport aux requêtes de la méthode LTA. Ceci permet d appliquer plusieurs fois cette requête et donc de récupérer plus de documents avec une même requête. Tous les mots utilisés ici, proviennent d un unique cluster par rapport à la distribution de Zipf, il peut être intéressant d étudier d autres clusters de mots.un

65 63 score(q) score(q) q requête q surmonter derri military etat surmonter +relatifs surmonter +relatifs +voulu surmonter +relatifs +voulu +dramatiques surmonter +relatifs +voulu +dramatiques +lentilles surmonter +relatifs +voulu +dramatiques +lentilles +expresse surmonter +relatifs +voulu +dramatiques +lentilles +expresse +show +surmonter +relatifs +voulu +dramatiques +lentilles +expresse show +évaluation +surmonter +relatifs +voulu +dramatiques +lentilles +expresse show +évaluation +collectives surmonter +saint syndrome thornier +surmonter +saint +pst +accessoire +appelle +animée +compréhensible mariages +surmonter +saint +pst +accessoire +appelle +animée +compréhensible paroles +mariages surmonter +saint +pst +accessoire +appelle +animée +mariages surmonter +saint +pst +accessoire +appelle +mariages surmonter +saint +pst +accessoire +mariages surmonter +saint +pst +mariages surmonter +saint +relatifs surmonter +saint +relatifs +mariages FIG Requêtes générées après filtrage sur le mot sur exemple de cluster de mots à étudier sont les mots proches de la fonction de Zipf dans la zone des mots ayant entre 1024 et 4096 occurrences. Ces mots nous permettent ainsi de générer d autres requêtes. La méthode de génération de requête que l on a appliquée à CorpusBuilder, nous a permis d améliorer la génération de requête grâce à une étude des occurrences des différents mots des documents appropriés. Ceci nous permet de superviser les différentes méthodes d apprentissage. On peut utiliser ce procédé toutes les 1000 requêtes générées. La génération permet d explorer un espace non encore étudié par la méthode et elle facilite la diversité des requêtes.

66 Conclusion La méthode qui a été développée dans le cadre de ce rapport se trouve validée par les résultats qu elle a eu avec le programme CorpusBuilder. On a réussi a développer une méthode simple et rapide de génération de requêtes à partir de l historique des requêtes déjà utilisées. Cette méthode utilise un outil puissant et simple : les fonctions booléennes. Ces fonctions permettent une manipulation aisée et simple des requêtes. De plus, l algorithme d approximation des ROBDD est très pratique avec l opérateur ou exclusif pour pouvoir explorer l espace autour de la fonction étudiée. En effet, la combinaison des deux permet, avec une fonction booléenne donnée, d explorer l espace autour de cette fonction de manière très simple. De plus, on peut choisir d utiliser une exploration vers introvertie (utilisation de f f), extravertie (f f + ) ou les deux (f + f ). Cette méthode d exploration a pu être appliquée avec succès à la génération de requêtes. Le programme ainsi obtenu a pu être testé avec de bons résultats sur les requêtes menant à la page http :// De plus, on a pu tester l amélioration qu apporte cette exploration à la méthode utilisée par CorpusBuilder. Pour pouvoir l appliquer de manière aisée, il a fallu réaliser une étude du vocabulaire générée par les requêtes de ce programme et par les documents pertinents récupérés. Après cette étude, nous avons pu appliquer avec succès la méthode. Les résultats sont très encourageant. En effet, les requêtes générées donnent des résultats de l ordre de plus de 90% de bons documents récupérés, alors que CorpusBuilder a des moyennes d environ 75%. On voit donc une nette amélioration du pourcentage de documents pertinents. Par contre, nous n avons pas réussi a améliorer le pourcentage de requêtes donnant des résultats. On se retrouve au même niveau qu avec CorpusBuilder. Il faut donc améliorer ce point. Dans ce but, il serait intéressant d introduire une notion de sémantique dans la méthode. En effet, les fonctions booléennes sont un objet purement théorique, elles ne tiennent pas compte de la sémantique des termes de la requête. Ce fait explique que nos requêtes ne donnent pas forcément un résultat. Un moyen d arriver à introduire cette notion serait de modifier la fonction de notation des requêtes générées. En effet, la fonction utilisée dans les expérimentations est une fonction probabiliste naïve, il est possible de la modifier. On peut introduire des modèles de Markov pour améliorer cette fonction. Ceci nous permettrait d améliorer la notation des requêtes et ainsi faciliter encore plus le choix de l utilisateur. De plus, lors de l utilisation avec CorpusBuilder, on peut introduire les Support Vector Machine (SVM) pour pouvoir extraire automatiquement et avec de meilleurs résultats les mots proches de la distribution de Zipf associée à la méthode. Ceci permettrait une plus grande richesse des requêtes générées par la méthode et ainsi augmenterait le nombre de requêtes donnant des résultats. 64

67 Bibliographie [Bryant, 1992] Bryant, R. E. (1992). Symbolic Boolean manipulation with ordered binary-decision diagrams. ACM Computing Surveys, 24(3) : [Buckley et al., ] Buckley, C., Singhal, A., Mitra, M., and Salton, G. New retrieval approaches using smart : Trec. [Callan et al., 1995] Callan, J. P., Croft, W. B., and Broglio, J. (1995). TREC and tipster experiments with inquery. Information Processing and Management, 31(3) : [Cui et al., 2002] Cui, H., Wen, J.-R., Nie, J.-Y., and Ma, W.-Y. (2002). Probabilistic query expansion using query logs. In International World Wide Web Conference, Honolulu, Hawaii. [Flake et al., 2002] Flake, G., Glover, E., Lawrence, S., and Giles, C. L. (2002). Extracting query modifications from nonlinear svms. In International World Wide Web Conference, Honolulu, Hawaii. [Ghani et al., 2001] Ghani, R., Jones, R., and Mladeni c, D. (2001). Building minority language corpora by learning to generate web search queries. [Kunjan et al., 1997] Kunjan, T., Hinsberger, U., and Kolla, R. (1997). Approximative representation of boolean functions by size controllable robdd s. [Mitra et al., 1998] Mitra, M., Singhal, A., and Buckley, C. (1998). Improving automatic query expansion. In Research and Development in Information Retrieval, pages [Nikolskaia and Rauzy, 1998] Nikolskaia, M. and Rauzy, A. (1998). sum-of-products formulae. Heuristics for bdd handling of [Nikolskaïa, 2000] Nikolskaïa, M. (2000). Binary decision diagrams and applications to reliability analysis. [Sparck, 1971] Sparck, J. (1971). Automatic keyword classification for information retrieval. [Xu and Croft, 1996] Xu, J. and Croft, W. B. (1996). Query expansion using local and global document analysis. In Research and Development in Information Retrieval, pages [Zien et al., 2000] Zien, J., Meyer, J., Tomlin, J., and Liu, J. (2000). Web query chararcteristics and their implications on search engines. i

68

69 Liste des Figures 1.1 BDD de f(a,b,c) = (a ((b c) (b c))) ( a ((b c) b)) sous forme d arbre BDD de f = (a ((b c) (b c)) ) ( a ((b c) b)) avec uniquement 2 feuilles arbre binaire ordonné de f(a,b,c) = (a ((b c) (b c))) ( a ((b c) b)) OBDD de f(a,b,c) = (a ((b c) (b c))) ( a ((b c) b)) OBDD de f simplifié ROBDD de f = (a ((b c) (b c))) ( a ((b c) b)) ROBDD de f : G = ROBDD de f avec un autre ordre : G = Nombres d ordres en fonction de la taille du ROBDD Gain de la taille des graphes pour différentes heuristiques dans un cas particulier ROBDD de la fonction g (12 noeuds) ROBDD de la fonction g + (11 noeuds) ROBDD de la fonction g (11 noeuds) Liste de requêtes menant à la page d accueil de l université de Cambridge Variation de la taille du ROBDD de la fonction en utilisant le codage simple Variation de la taille du ROBDD de la fonction en utilisant le codage complet Taille du ROBDD et codage de la fonction booléenne avec de nombreux mots Quelques requêtes générées à partir du codage simple et une approximation à 40 noeuds Tableau des tailles des différents ROBDD et du nombre de requêtes générées pour le codage complet Dix requêtes générées par le codage complet et une contrainte de 60 noeuds et la sélection de l utilisateur parmi ces dix requêtes Codage de deux requêtes ROBDD de f = f 24 f ROBDD de f + avec une contrainte de taille de 7 noeuds ROBDD de f + f Architecture générale de CorpusBuilder Résultats obtenus pour les différentes méthodes de génération de requêtes avec différentes longueur Résultats globaux des méthodes d apprentissages Apprentissage des longueurs des termes d inclusion Apprentissage des méthodes de génération des termes d inclusion Apprentissage des longueurs des termes d exclusion iii

70 4.7 Apprentissage des méthodes de génération des termes d exclusion Nombre de documents pertinents par rapport au nombre de document récupérés par les différentes méthodes Taille du ROBDD des requêtes pour LTA (avec 2000 requêtes) Evolution de la richesse du vocabulaire des différentes méthodes Fréquence des différents mots du vocabulaire pour la méthode LTA Fréquence des différents mots du vocabulaire pour la méthode ML Répartition du vocabulaire du concept pour la méthode LTA Répartition du vocabulaire du concept pour la méthode ML Distribution de Zipf et répartition du vocabulaire de la méthode ML Exemples de mots éloignés de la distribution de Zipf pour LTA Mots éloignés de la distribution de Zipf pour ML (occurrences de 550 à 2048 dans plus de 500 documents) Mots fréquents et proche de la distribution de Zipf pour LTA (plus de 4100 occurrences dans plus de 350 documents) Requêtes générées après filtrage sur le mot sur iv

71 Sommaire 1 Etude d une représentation particulière des fonctions booléennes : les ROBDD Représentation des fonctions booléennes Algèbre de Boole Quelques représentations des fonctions booléennes Différents problèmes liés aux fonctions booléennes Binary Decision Diagram et ROBDD BDD et OBDD Reduced Ordonned Binary Decision Diagram : ROBDD Discussions sur les ROBDD Éléments de complexité des ROBDD Problème NP-Complet Lien entre données et fonctions booléennes Taille du ROBDD et ordre des variables Influence de l ordre des variables : un exemple Techniques pour réduire la taille d un ROBDD Heuristiques permettant de réduire la taille des graphes Une heuristique particulière : HMA Généralisation de HMA : une nouvelle heuristique Résultats des heuristiques ROBDD et approximations de fonctions booléennes Approximation et fonctions booléennes Fonctions booléennes, ROBDD et approximation Approximation Etude d un cas particulier Heuristiques pour calculer f Exemple Remarques sur l ordre des variables et l approximation Application à l expansion, l enrichissement et la reformulation de requêtes Analyse et génération de requêtes Présentation du problème Solutions existantes Méthode de résolution proposée avec l utilisation de ROBDD Présentation générale v

72 vi Deux codages de requêtes sous formes booléennes Requêtes générées et comparaison des deux méthodes de codage Construction de corpus en langue minoritaire à partir du WEB Présentation de CorpusBuilder Introduction Algorithme général Méthodes de générations de requêtes Résultats des différentes méthodes de génération de requêtes Apprentissage de la génération de requête ML : Memory-Less Learning FM : Fading Memory Learning LTA : Long-Term Learning Additive LTM : Long-Term learning Multiplicative Résultats de l apprentissage Application de la méthode Problème rencontré Evaluation du vocabulaire généré Evaluation du vocabulaire des documents pertinents et résultats Annexes Bibliographie i Liste des Figures iv Sommaire v

73

74 INSTITUT DE RECHERCHE EN INFORMATIQUE DE NANTES Représentation et approximation de fonctions booléennes : Application à la génération de requêtes LEBLET Jimmy (encadré par QUAFAFOU Mohamed) Termes généraux : fonctions booléennes, ROBDD, approximation, génération de requêtes Mots-clés additionnels et phrases : apprentissage, extraction à partir du WEB, construction de corpus IRIN, Faculté des Sciences & Techniques de Nantes 2, rue de la Houssinière B.P F NANTES CEDEX 3

Groupe symétrique. Chapitre II. 1 Définitions et généralités

Groupe symétrique. Chapitre II. 1 Définitions et généralités Chapitre II Groupe symétrique 1 Définitions et généralités Définition. Soient n et X l ensemble 1,..., n. On appelle permutation de X toute application bijective f : X X. On note S n l ensemble des permutations

Plus en détail

Université Paris-Dauphine DUMI2E 1ère année, 2009-2010. Applications

Université Paris-Dauphine DUMI2E 1ère année, 2009-2010. Applications Université Paris-Dauphine DUMI2E 1ère année, 2009-2010 Applications 1 Introduction Une fonction f (plus précisément, une fonction réelle d une variable réelle) est une règle qui associe à tout réel x au

Plus en détail

Chapitre 2 Le problème de l unicité des solutions

Chapitre 2 Le problème de l unicité des solutions Université Joseph Fourier UE MAT 127 Mathématiques année 2011-2012 Chapitre 2 Le problème de l unicité des solutions Ce que nous verrons dans ce chapitre : un exemple d équation différentielle y = f(y)

Plus en détail

De même, le périmètre P d un cercle de rayon 1 vaut P = 2π (par définition de π). Mais, on peut démontrer (difficilement!) que

De même, le périmètre P d un cercle de rayon 1 vaut P = 2π (par définition de π). Mais, on peut démontrer (difficilement!) que Introduction. On suppose connus les ensembles N (des entiers naturels), Z des entiers relatifs et Q (des nombres rationnels). On s est rendu compte, depuis l antiquité, que l on ne peut pas tout mesurer

Plus en détail

La classification automatique de données quantitatives

La classification automatique de données quantitatives La classification automatique de données quantitatives 1 Introduction Parmi les méthodes de statistique exploratoire multidimensionnelle, dont l objectif est d extraire d une masse de données des informations

Plus en détail

Image d un intervalle par une fonction continue

Image d un intervalle par une fonction continue DOCUMENT 27 Image d un intervalle par une fonction continue La continuité d une fonction en un point est une propriété locale : une fonction est continue en un point x 0 si et seulement si sa restriction

Plus en détail

Algèbre binaire et Circuits logiques (2007-2008)

Algèbre binaire et Circuits logiques (2007-2008) Université Mohammed V Faculté des Sciences Département de Mathématiques et Informatique Filière : SMI Algèbre binaire et Circuits logiques (27-28) Prof. Abdelhakim El Imrani Plan. Algèbre de Boole 2. Circuits

Plus en détail

2.4 Représentation graphique, tableau de Karnaugh

2.4 Représentation graphique, tableau de Karnaugh 2 Fonctions binaires 45 2.4 Représentation graphique, tableau de Karnaugh On peut définir complètement une fonction binaire en dressant son tableau de Karnaugh, table de vérité à 2 n cases pour n variables

Plus en détail

Théorème du point fixe - Théorème de l inversion locale

Théorème du point fixe - Théorème de l inversion locale Chapitre 7 Théorème du point fixe - Théorème de l inversion locale Dans ce chapitre et le suivant, on montre deux applications importantes de la notion de différentiabilité : le théorème de l inversion

Plus en détail

Le produit semi-direct

Le produit semi-direct Le produit semi-direct Préparation à l agrégation de mathématiques Université de Nice - Sophia Antipolis Antoine Ducros Octobre 2007 Ce texte est consacré, comme son titre l indique, au produit semi-direct.

Plus en détail

Structures algébriques

Structures algébriques Structures algébriques 1. Lois de composition s Soit E un ensemble. Une loi de composition interne sur E est une application de E E dans E. Soient E et F deux ensembles. Une loi de composition externe

Plus en détail

Souad EL Bernoussi. Groupe d Analyse Numérique et Optimisation Rabat http ://www.fsr.ac.ma/ano/

Souad EL Bernoussi. Groupe d Analyse Numérique et Optimisation Rabat http ://www.fsr.ac.ma/ano/ Recherche opérationnelle Les démonstrations et les exemples seront traités en cours Souad EL Bernoussi Groupe d Analyse Numérique et Optimisation Rabat http ://www.fsr.ac.ma/ano/ Table des matières 1 Programmation

Plus en détail

CHAPITRE 5. Stratégies Mixtes

CHAPITRE 5. Stratégies Mixtes CHAPITRE 5 Stratégies Mixtes Un des problèmes inhérents au concept d équilibre de Nash en stratégies pures est que pour certains jeux, de tels équilibres n existent pas. P.ex.le jeu de Pierre, Papier,

Plus en détail

3 Approximation de solutions d équations

3 Approximation de solutions d équations 3 Approximation de solutions d équations Une équation scalaire a la forme générale f(x) =0où f est une fonction de IR dans IR. Un système de n équations à n inconnues peut aussi se mettre sous une telle

Plus en détail

Chapitre 2. Eléments pour comprendre un énoncé

Chapitre 2. Eléments pour comprendre un énoncé Chapitre 2 Eléments pour comprendre un énoncé Ce chapitre est consacré à la compréhension d un énoncé. Pour démontrer un énoncé donné, il faut se reporter au chapitre suivant. Les tables de vérité données

Plus en détail

Résolution d équations non linéaires

Résolution d équations non linéaires Analyse Numérique Résolution d équations non linéaires Said EL HAJJI et Touria GHEMIRES Université Mohammed V - Agdal. Faculté des Sciences Département de Mathématiques. Laboratoire de Mathématiques, Informatique

Plus en détail

Exemples de problèmes et d applications. INF6953 Exemples de problèmes 1

Exemples de problèmes et d applications. INF6953 Exemples de problèmes 1 Exemples de problèmes et d applications INF6953 Exemples de problèmes Sommaire Quelques domaines d application Quelques problèmes réels Allocation de fréquences dans les réseaux radio-mobiles Affectation

Plus en détail

Sujet proposé par Yves M. LEROY. Cet examen se compose d un exercice et de deux problèmes. Ces trois parties sont indépendantes.

Sujet proposé par Yves M. LEROY. Cet examen se compose d un exercice et de deux problèmes. Ces trois parties sont indépendantes. Promotion X 004 COURS D ANALYSE DES STRUCTURES MÉCANIQUES PAR LA MÉTHODE DES ELEMENTS FINIS (MEC 568) contrôle non classant (7 mars 007, heures) Documents autorisés : polycopié ; documents et notes de

Plus en détail

Chapitre 3. Quelques fonctions usuelles. 1 Fonctions logarithme et exponentielle. 1.1 La fonction logarithme

Chapitre 3. Quelques fonctions usuelles. 1 Fonctions logarithme et exponentielle. 1.1 La fonction logarithme Chapitre 3 Quelques fonctions usuelles 1 Fonctions logarithme et eponentielle 1.1 La fonction logarithme Définition 1.1 La fonction 7! 1/ est continue sur ]0, +1[. Elle admet donc des primitives sur cet

Plus en détail

Continuité et dérivabilité d une fonction

Continuité et dérivabilité d une fonction DERNIÈRE IMPRESSIN LE 7 novembre 014 à 10:3 Continuité et dérivabilité d une fonction Table des matières 1 Continuité d une fonction 1.1 Limite finie en un point.......................... 1. Continuité

Plus en détail

Premiers exercices d Algèbre. Anne-Marie Simon

Premiers exercices d Algèbre. Anne-Marie Simon Premiers exercices d Algèbre Anne-Marie Simon première version: 17 août 2005 version corrigée et complétée le 12 octobre 2010 ii Table des matières 1 Quelques structures ensemblistes 1 1.0 Ensembles, relations,

Plus en détail

Arithmétique binaire. Chapitre. 5.1 Notions. 5.1.1 Bit. 5.1.2 Mot

Arithmétique binaire. Chapitre. 5.1 Notions. 5.1.1 Bit. 5.1.2 Mot Chapitre 5 Arithmétique binaire L es codes sont manipulés au quotidien sans qu on s en rende compte, et leur compréhension est quasi instinctive. Le seul fait de lire fait appel au codage alphabétique,

Plus en détail

Les indices à surplus constant

Les indices à surplus constant Les indices à surplus constant Une tentative de généralisation des indices à utilité constante On cherche ici en s inspirant des indices à utilité constante à définir un indice de prix de référence adapté

Plus en détail

La fonction exponentielle

La fonction exponentielle DERNIÈRE IMPRESSION LE 2 novembre 204 à :07 La fonction exponentielle Table des matières La fonction exponentielle 2. Définition et théorèmes.......................... 2.2 Approche graphique de la fonction

Plus en détail

Développement décimal d un réel

Développement décimal d un réel 4 Développement décimal d un réel On rappelle que le corps R des nombres réels est archimédien, ce qui permet d y définir la fonction partie entière. En utilisant cette partie entière on verra dans ce

Plus en détail

Algorithmes d'apprentissage

Algorithmes d'apprentissage Algorithmes d'apprentissage 1 Agents qui apprennent à partir d'exemples La problématique : prise de décision automatisée à partir d'un ensemble d'exemples Diagnostic médical Réponse à une demande de prêt

Plus en détail

PROBLEMES D'ORDONNANCEMENT AVEC RESSOURCES

PROBLEMES D'ORDONNANCEMENT AVEC RESSOURCES Leçon 11 PROBLEMES D'ORDONNANCEMENT AVEC RESSOURCES Dans cette leçon, nous retrouvons le problème d ordonnancement déjà vu mais en ajoutant la prise en compte de contraintes portant sur les ressources.

Plus en détail

t 100. = 8 ; le pourcentage de réduction est : 8 % 1 t Le pourcentage d'évolution (appelé aussi taux d'évolution) est le nombre :

t 100. = 8 ; le pourcentage de réduction est : 8 % 1 t Le pourcentage d'évolution (appelé aussi taux d'évolution) est le nombre : Terminale STSS 2 012 2 013 Pourcentages Synthèse 1) Définition : Calculer t % d'un nombre, c'est multiplier ce nombre par t 100. 2) Exemples de calcul : a) Calcul d un pourcentage : Un article coûtant

Plus en détail

LIVRE BLANC Décembre 2014

LIVRE BLANC Décembre 2014 PARSING MATCHING EQUALITY SEARCH LIVRE BLANC Décembre 2014 Introduction L analyse des tendances du marché de l emploi correspond à l évidence à une nécessité, surtout en période de tension comme depuis

Plus en détail

Probabilité. Table des matières. 1 Loi de probabilité 2 1.1 Conditions préalables... 2 1.2 Définitions... 2 1.3 Loi équirépartie...

Probabilité. Table des matières. 1 Loi de probabilité 2 1.1 Conditions préalables... 2 1.2 Définitions... 2 1.3 Loi équirépartie... 1 Probabilité Table des matières 1 Loi de probabilité 2 1.1 Conditions préalables........................... 2 1.2 Définitions................................. 2 1.3 Loi équirépartie..............................

Plus en détail

Représentation des Nombres

Représentation des Nombres Chapitre 5 Représentation des Nombres 5. Representation des entiers 5.. Principe des représentations en base b Base L entier écrit 344 correspond a 3 mille + 4 cent + dix + 4. Plus généralement a n a n...

Plus en détail

Définitions. Numéro à préciser. (Durée : )

Définitions. Numéro à préciser. (Durée : ) Numéro à préciser (Durée : ) On étudie dans ce problème l ordre lexicographique pour les mots sur un alphabet fini et plusieurs constructions des cycles de De Bruijn. Les trois parties sont largement indépendantes.

Plus en détail

avec des nombres entiers

avec des nombres entiers Calculer avec des nombres entiers Effectuez les calculs suivants.. + 9 + 9. Calculez. 9 9 Calculez le quotient et le rest. : : : : 0 :. : : 9 : : 9 0 : 0. 9 9 0 9. Calculez. 9 0 9. : : 0 : 9 : :. : : 0

Plus en détail

Introduction à l étude des Corps Finis

Introduction à l étude des Corps Finis Introduction à l étude des Corps Finis Robert Rolland (Résumé) 1 Introduction La structure de corps fini intervient dans divers domaines des mathématiques, en particulier dans la théorie de Galois sur

Plus en détail

Les algorithmes de base du graphisme

Les algorithmes de base du graphisme Les algorithmes de base du graphisme Table des matières 1 Traçage 2 1.1 Segments de droites......................... 2 1.1.1 Algorithmes simples.................... 3 1.1.2 Algorithmes de Bresenham (1965).............

Plus en détail

Objectifs du cours d aujourd hui. Informatique II : Cours d introduction à l informatique et à la programmation objet. Complexité d un problème (2)

Objectifs du cours d aujourd hui. Informatique II : Cours d introduction à l informatique et à la programmation objet. Complexité d un problème (2) Objectifs du cours d aujourd hui Informatique II : Cours d introduction à l informatique et à la programmation objet Complexité des problèmes Introduire la notion de complexité d un problème Présenter

Plus en détail

Cours Premier semestre

Cours Premier semestre C.Belleudy, D.Gaffé Université de Nice-Sophia Antipolis DEUG Première année SM,MP,MI UECS EEA Électronique Numérique Cours Premier semestre C. Belleudy, D.Gaffé version 3. 2 Électronique Numérique Chapitre

Plus en détail

TSTI 2D CH X : Exemples de lois à densité 1

TSTI 2D CH X : Exemples de lois à densité 1 TSTI 2D CH X : Exemples de lois à densité I Loi uniforme sur ab ; ) Introduction Dans cette activité, on s intéresse à la modélisation du tirage au hasard d un nombre réel de l intervalle [0 ;], chacun

Plus en détail

Logique binaire. Aujourd'hui, l'algèbre de Boole trouve de nombreuses applications en informatique et dans la conception des circuits électroniques.

Logique binaire. Aujourd'hui, l'algèbre de Boole trouve de nombreuses applications en informatique et dans la conception des circuits électroniques. Logique binaire I. L'algèbre de Boole L'algèbre de Boole est la partie des mathématiques, de la logique et de l'électronique qui s'intéresse aux opérations et aux fonctions sur les variables logiques.

Plus en détail

INTRODUCTION À L ANALYSE FACTORIELLE DES CORRESPONDANCES

INTRODUCTION À L ANALYSE FACTORIELLE DES CORRESPONDANCES INTRODUCTION À L ANALYSE FACTORIELLE DES CORRESPONDANCES Dominique LAFFLY Maître de Conférences, Université de Pau Laboratoire Société Environnement Territoire UMR 5603 du CNRS et Université de Pau Domaine

Plus en détail

Items étudiés dans le CHAPITRE N5. 7 et 9 p 129 D14 Déterminer par le calcul l'antécédent d'un nombre par une fonction linéaire

Items étudiés dans le CHAPITRE N5. 7 et 9 p 129 D14 Déterminer par le calcul l'antécédent d'un nombre par une fonction linéaire CHAPITRE N5 FONCTIONS LINEAIRES NOTION DE FONCTION FONCTIONS LINEAIRES NOTION DE FONCTION FONCTIONS LINEAIRES NOTION DE FONCTION Code item D0 D2 N30[S] Items étudiés dans le CHAPITRE N5 Déterminer l'image

Plus en détail

Exercices du Cours de la programmation linéaire donné par le Dr. Ali DERBALA

Exercices du Cours de la programmation linéaire donné par le Dr. Ali DERBALA 75. Un plombier connaît la disposition de trois tuyaux sous des dalles ( voir figure ci dessous ) et il lui suffit de découvrir une partie de chacun d eux pour pouvoir y poser les robinets. Il cherche

Plus en détail

1 de 46. Algorithmique. Trouver et Trier. Florent Hivert. Mél : [email protected] Page personnelle : http://www.lri.fr/ hivert

1 de 46. Algorithmique. Trouver et Trier. Florent Hivert. Mél : Florent.Hivert@lri.fr Page personnelle : http://www.lri.fr/ hivert 1 de 46 Algorithmique Trouver et Trier Florent Hivert Mél : [email protected] Page personnelle : http://www.lri.fr/ hivert 2 de 46 Algorithmes et structures de données La plupart des bons algorithmes

Plus en détail

Architecture des ordinateurs TD1 - Portes logiques et premiers circuits

Architecture des ordinateurs TD1 - Portes logiques et premiers circuits Architecture des ordinateurs TD1 - Portes logiques et premiers circuits 1 Rappel : un peu de logique Exercice 1.1 Remplir la table de vérité suivante : a b a + b ab a + b ab a b 0 0 0 1 1 0 1 1 Exercice

Plus en détail

IFT1215 Introduction aux systèmes informatiques

IFT1215 Introduction aux systèmes informatiques Introduction aux circuits logiques de base IFT25 Architecture en couches Niveau 5 Niveau 4 Niveau 3 Niveau 2 Niveau Niveau Couche des langages d application Traduction (compilateur) Couche du langage d

Plus en détail

Eteindre. les. lumières MATH EN JEAN 2013-2014. Mme BACHOC. Elèves de seconde, première et terminale scientifiques :

Eteindre. les. lumières MATH EN JEAN 2013-2014. Mme BACHOC. Elèves de seconde, première et terminale scientifiques : MTH EN JEN 2013-2014 Elèves de seconde, première et terminale scientifiques : Lycée Michel Montaigne : HERITEL ôme T S POLLOZE Hélène 1 S SOK Sophie 1 S Eteindre Lycée Sud Médoc : ROSIO Gauthier 2 nd PELGE

Plus en détail

Pourquoi l apprentissage?

Pourquoi l apprentissage? Pourquoi l apprentissage? Les SE sont basés sur la possibilité d extraire la connaissance d un expert sous forme de règles. Dépend fortement de la capacité à extraire et formaliser ces connaissances. Apprentissage

Plus en détail

Cryptographie et fonctions à sens unique

Cryptographie et fonctions à sens unique Cryptographie et fonctions à sens unique Pierre Rouchon Centre Automatique et Systèmes Mines ParisTech [email protected] Octobre 2012 P.Rouchon (Mines ParisTech) Cryptographie et fonctions

Plus en détail

UEO11 COURS/TD 1. nombres entiers et réels codés en mémoire centrale. Caractères alphabétiques et caractères spéciaux.

UEO11 COURS/TD 1. nombres entiers et réels codés en mémoire centrale. Caractères alphabétiques et caractères spéciaux. UEO11 COURS/TD 1 Contenu du semestre Cours et TDs sont intégrés L objectif de ce cours équivalent a 6h de cours, 10h de TD et 8h de TP est le suivant : - initiation à l algorithmique - notions de bases

Plus en détail

Exercices - Polynômes : corrigé. Opérations sur les polynômes

Exercices - Polynômes : corrigé. Opérations sur les polynômes Opérations sur les polynômes Exercice 1 - Carré - L1/Math Sup - Si P = Q est le carré d un polynôme, alors Q est nécessairement de degré, et son coefficient dominant est égal à 1. On peut donc écrire Q(X)

Plus en détail

Probabilités. I Petits rappels sur le vocabulaire des ensembles 2 I.1 Définitions... 2 I.2 Propriétés... 2

Probabilités. I Petits rappels sur le vocabulaire des ensembles 2 I.1 Définitions... 2 I.2 Propriétés... 2 Probabilités Table des matières I Petits rappels sur le vocabulaire des ensembles 2 I.1 s................................................... 2 I.2 Propriétés...................................................

Plus en détail

Introduction au Data-Mining

Introduction au Data-Mining Introduction au Data-Mining Alain Rakotomamonjy - Gilles Gasso. INSA Rouen -Département ASI Laboratoire PSI Introduction au Data-Mining p. 1/25 Data-Mining : Kèkecé? Traduction : Fouille de données. Terme

Plus en détail

Probabilités sur un univers fini

Probabilités sur un univers fini [http://mp.cpgedupuydelome.fr] édité le 7 août 204 Enoncés Probabilités sur un univers fini Evènements et langage ensembliste A quelle condition sur (a, b, c, d) ]0, [ 4 existe-t-il une probabilité P sur

Plus en détail

Projet d informatique M1BI : Compression et décompression de texte. 1 Généralités sur la compression/décompression de texte

Projet d informatique M1BI : Compression et décompression de texte. 1 Généralités sur la compression/décompression de texte Projet d informatique M1BI : Compression et décompression de texte Le but de ce projet est de coder un programme réalisant de la compression et décompression de texte. On se proposera de coder deux algorithmes

Plus en détail

Calcul différentiel sur R n Première partie

Calcul différentiel sur R n Première partie Calcul différentiel sur R n Première partie Université De Metz 2006-2007 1 Définitions générales On note L(R n, R m ) l espace vectoriel des applications linéaires de R n dans R m. Définition 1.1 (différentiabilité

Plus en détail

Équations non linéaires

Équations non linéaires Équations non linéaires Objectif : trouver les zéros de fonctions (ou systèmes) non linéaires, c-à-d les valeurs α R telles que f(α) = 0. y f(x) α 1 α 2 α 3 x Equations non lineaires p. 1/49 Exemples et

Plus en détail

COURS EULER: PROGRAMME DE LA PREMIÈRE ANNÉE

COURS EULER: PROGRAMME DE LA PREMIÈRE ANNÉE COURS EULER: PROGRAMME DE LA PREMIÈRE ANNÉE Le cours de la première année concerne les sujets de 9ème et 10ème années scolaires. Il y a bien sûr des différences puisque nous commençons par exemple par

Plus en détail

Resolution limit in community detection

Resolution limit in community detection Introduction Plan 2006 Introduction Plan Introduction Introduction Plan Introduction Point de départ : un graphe et des sous-graphes. But : quantifier le fait que les sous-graphes choisis sont des modules.

Plus en détail

Coup de Projecteur sur les Réseaux de Neurones

Coup de Projecteur sur les Réseaux de Neurones Coup de Projecteur sur les Réseaux de Neurones Les réseaux de neurones peuvent être utilisés pour des problèmes de prévision ou de classification. La représentation la plus populaire est le réseau multicouche

Plus en détail

Jean-Philippe Préaux http://www.i2m.univ-amu.fr/~preaux

Jean-Philippe Préaux http://www.i2m.univ-amu.fr/~preaux Colonies de fourmis Comment procèdent les colonies de fourmi pour déterminer un chemin presque géodésique de la fourmilière à un stock de nourriture? Les premières fourmis se déplacent au hasard. Les fourmis

Plus en détail

Cours d introduction à l informatique. Partie 2 : Comment écrire un algorithme? Qu est-ce qu une variable? Expressions et instructions

Cours d introduction à l informatique. Partie 2 : Comment écrire un algorithme? Qu est-ce qu une variable? Expressions et instructions Cours d introduction à l informatique Partie 2 : Comment écrire un algorithme? Qu est-ce qu une variable? Expressions et instructions Qu est-ce qu un Une recette de cuisine algorithme? Protocole expérimental

Plus en détail

Cours d Analyse. Fonctions de plusieurs variables

Cours d Analyse. Fonctions de plusieurs variables Cours d Analyse Fonctions de plusieurs variables Licence 1ère année 2007/2008 Nicolas Prioux Université de Marne-la-Vallée Table des matières 1 Notions de géométrie dans l espace et fonctions à deux variables........

Plus en détail

FONCTION DE DEMANDE : REVENU ET PRIX

FONCTION DE DEMANDE : REVENU ET PRIX FONCTION DE DEMANDE : REVENU ET PRIX 1. L effet d une variation du revenu. Les lois d Engel a. Conditions du raisonnement : prix et goûts inchangés, variation du revenu (statique comparative) b. Partie

Plus en détail

LE PROBLEME DU PLUS COURT CHEMIN

LE PROBLEME DU PLUS COURT CHEMIN LE PROBLEME DU PLUS COURT CHEMIN Dans cette leçon nous définissons le modèle de plus court chemin, présentons des exemples d'application et proposons un algorithme de résolution dans le cas où les longueurs

Plus en détail

Chapitre 1 : Évolution COURS

Chapitre 1 : Évolution COURS Chapitre 1 : Évolution COURS OBJECTIFS DU CHAPITRE Savoir déterminer le taux d évolution, le coefficient multiplicateur et l indice en base d une évolution. Connaître les liens entre ces notions et savoir

Plus en détail

Limites finies en un point

Limites finies en un point 8 Limites finies en un point Pour ce chapitre, sauf précision contraire, I désigne une partie non vide de R et f une fonction définie sur I et à valeurs réelles ou complees. Là encore, les fonctions usuelles,

Plus en détail

Probabilités sur un univers fini

Probabilités sur un univers fini [http://mp.cpgedupuydelome.fr] édité le 10 août 2015 Enoncés 1 Proailités sur un univers fini Evènements et langage ensemliste A quelle condition sur (a,, c, d) ]0, 1[ 4 existe-t-il une proailité P sur

Plus en détail

Rappels sur les suites - Algorithme

Rappels sur les suites - Algorithme DERNIÈRE IMPRESSION LE 14 septembre 2015 à 12:36 Rappels sur les suites - Algorithme Table des matières 1 Suite : généralités 2 1.1 Déition................................. 2 1.2 Exemples de suites............................

Plus en détail

Objectifs. Clustering. Principe. Applications. Applications. Cartes de crédits. Remarques. Biologie, Génomique

Objectifs. Clustering. Principe. Applications. Applications. Cartes de crédits. Remarques. Biologie, Génomique Objectifs Clustering On ne sait pas ce qu on veut trouver : on laisse l algorithme nous proposer un modèle. On pense qu il existe des similarités entre les exemples. Qui se ressemble s assemble p. /55

Plus en détail

DÉRIVÉES. I Nombre dérivé - Tangente. Exercice 01 (voir réponses et correction) ( voir animation )

DÉRIVÉES. I Nombre dérivé - Tangente. Exercice 01 (voir réponses et correction) ( voir animation ) DÉRIVÉES I Nombre dérivé - Tangente Eercice 0 ( voir animation ) On considère la fonction f définie par f() = - 2 + 6 pour [-4 ; 4]. ) Tracer la représentation graphique (C) de f dans un repère d'unité

Plus en détail

DOCM 2013 http://docm.math.ca/ Solutions officielles. 1 2 10 + 1 2 9 + 1 2 8 = n 2 10.

DOCM 2013 http://docm.math.ca/ Solutions officielles. 1 2 10 + 1 2 9 + 1 2 8 = n 2 10. A1 Trouvez l entier positif n qui satisfait l équation suivante: Solution 1 2 10 + 1 2 9 + 1 2 8 = n 2 10. En additionnant les termes du côté gauche de l équation en les mettant sur le même dénominateur

Plus en détail

Raisonnement probabiliste

Raisonnement probabiliste Plan Raisonnement probabiliste IFT-17587 Concepts avancés pour systèmes intelligents Luc Lamontagne Réseaux bayésiens Inférence dans les réseaux bayésiens Inférence exacte Inférence approximative 1 2 Contexte

Plus en détail

CAC, DAX ou DJ : lequel choisir?

CAC, DAX ou DJ : lequel choisir? CAC, DAX ou DJ : lequel choisir? 1. Pourquoi cette question Tout trader «travaillant 1» sur les indices s est, à un moment ou un autre, posé cette question : «je sais que la tendance est bien haussière

Plus en détail

Calcul matriciel. Définition 1 Une matrice de format (m,n) est un tableau rectangulaire de mn éléments, rangés en m lignes et n colonnes.

Calcul matriciel. Définition 1 Une matrice de format (m,n) est un tableau rectangulaire de mn éléments, rangés en m lignes et n colonnes. 1 Définitions, notations Calcul matriciel Définition 1 Une matrice de format (m,n) est un tableau rectangulaire de mn éléments, rangés en m lignes et n colonnes. On utilise aussi la notation m n pour le

Plus en détail

Simulation de variables aléatoires

Simulation de variables aléatoires Chapter 1 Simulation de variables aléatoires Références: [F] Fishman, A first course in Monte Carlo, chap 3. [B] Bouleau, Probabilités de l ingénieur, chap 4. [R] Rubinstein, Simulation and Monte Carlo

Plus en détail

FONCTIONS DE PLUSIEURS VARIABLES (Outils Mathématiques 4)

FONCTIONS DE PLUSIEURS VARIABLES (Outils Mathématiques 4) FONCTIONS DE PLUSIEURS VARIABLES (Outils Mathématiques 4) Bernard Le Stum Université de Rennes 1 Version du 13 mars 2009 Table des matières 1 Fonctions partielles, courbes de niveau 1 2 Limites et continuité

Plus en détail

Economie de l Incertain et des Incitations

Economie de l Incertain et des Incitations Economie de l Incertain et des Incitations CHAPITRE 2 Eléments de théorie des jeux en information symétrique et asymétrique Equilibres Bayesiens - Université de Tours - M1 AGE - Arnold Chassagnon - Automne

Plus en détail

Conversion d un entier. Méthode par soustraction

Conversion d un entier. Méthode par soustraction Conversion entre bases Pour passer d un nombre en base b à un nombre en base 10, on utilise l écriture polynomiale décrite précédemment. Pour passer d un nombre en base 10 à un nombre en base b, on peut

Plus en détail

1 Première section: La construction générale

1 Première section: La construction générale AMALGAMATIONS DE CLASSES DE SOUS-GROUPES D UN GROUPE ABÉLIEN. SOUS-GROUPES ESSENTIEL-PURS. Călugăreanu Grigore comunicare prezentată la Conferinţa de grupuri abeliene şi module de la Padova, iunie 1994

Plus en détail

Fondements de l informatique Logique, modèles, et calculs

Fondements de l informatique Logique, modèles, et calculs Fondements de l informatique Logique, modèles, et calculs Cours INF423 de l Ecole Polytechnique Olivier Bournez Version du 20 septembre 2013 2 Table des matières 1 Introduction 9 1.1 Concepts mathématiques........................

Plus en détail

Modèles à Événements Discrets. Réseaux de Petri Stochastiques

Modèles à Événements Discrets. Réseaux de Petri Stochastiques Modèles à Événements Discrets Réseaux de Petri Stochastiques Table des matières 1 Chaînes de Markov Définition formelle Idée générale Discrete Time Markov Chains Continuous Time Markov Chains Propriétés

Plus en détail

1 Complément sur la projection du nuage des individus

1 Complément sur la projection du nuage des individus TP 0 : Analyse en composantes principales (II) Le but de ce TP est d approfondir nos connaissances concernant l analyse en composantes principales (ACP). Pour cela, on reprend les notations du précédent

Plus en détail

Chapitre 3. Les distributions à deux variables

Chapitre 3. Les distributions à deux variables Chapitre 3. Les distributions à deux variables Jean-François Coeurjolly http://www-ljk.imag.fr/membres/jean-francois.coeurjolly/ Laboratoire Jean Kuntzmann (LJK), Grenoble University 1 Distributions conditionnelles

Plus en détail

Théorie des Graphes Cours 3: Forêts et Arbres II / Modélisation

Théorie des Graphes Cours 3: Forêts et Arbres II / Modélisation IFIPS S7 - informatique Université Paris-Sud 11 1er semestre 2009/2010 Théorie des Graphes Cours 3: Forêts et Arbres II / 1 Forêts et arbres II Théorème 1.1. Les assertions suivantes sont équivalentes

Plus en détail

Classe de première L

Classe de première L Classe de première L Orientations générales Pour bon nombre d élèves qui s orientent en série L, la classe de première sera une fin d étude en mathématiques au lycée. On a donc voulu ici assurer à tous

Plus en détail

Cours de mathématiques

Cours de mathématiques DEUG MIAS premier niveau Cours de mathématiques année 2003/2004 Guillaume Legendre (version révisée du 3 avril 2015) Table des matières 1 Éléments de logique 1 1.1 Assertions...............................................

Plus en détail

Probabilités conditionnelles Loi binomiale

Probabilités conditionnelles Loi binomiale Exercices 23 juillet 2014 Probabilités conditionnelles Loi binomiale Équiprobabilité et variable aléatoire Exercice 1 Une urne contient 5 boules indiscernables, 3 rouges et 2 vertes. On tire au hasard

Plus en détail

Baccalauréat ES Antilles Guyane 12 septembre 2014 Corrigé

Baccalauréat ES Antilles Guyane 12 septembre 2014 Corrigé Baccalauréat ES Antilles Guyane 12 septembre 2014 Corrigé EXERCICE 1 5 points Commun à tous les candidats 1. Réponse c : ln(10)+2 ln ( 10e 2) = ln(10)+ln ( e 2) = ln(10)+2 2. Réponse b : n 13 0,7 n 0,01

Plus en détail

Manuel d utilisation 26 juin 2011. 1 Tâche à effectuer : écrire un algorithme 2

Manuel d utilisation 26 juin 2011. 1 Tâche à effectuer : écrire un algorithme 2 éducalgo Manuel d utilisation 26 juin 2011 Table des matières 1 Tâche à effectuer : écrire un algorithme 2 2 Comment écrire un algorithme? 3 2.1 Avec quoi écrit-on? Avec les boutons d écriture........

Plus en détail

Qu est-ce qu une probabilité?

Qu est-ce qu une probabilité? Chapitre 1 Qu est-ce qu une probabilité? 1 Modéliser une expérience dont on ne peut prédire le résultat 1.1 Ensemble fondamental d une expérience aléatoire Une expérience aléatoire est une expérience dont

Plus en détail

Contexte. Pour cela, elles doivent être très compliquées, c est-à-dire elles doivent être très différentes des fonctions simples,

Contexte. Pour cela, elles doivent être très compliquées, c est-à-dire elles doivent être très différentes des fonctions simples, Non-linéarité Contexte Pour permettre aux algorithmes de cryptographie d être sûrs, les fonctions booléennes qu ils utilisent ne doivent pas être inversées facilement. Pour cela, elles doivent être très

Plus en détail

Objets Combinatoires élementaires

Objets Combinatoires élementaires Objets Combinatoires élementaires 0-0 Permutations Arrangements Permutations pour un multi-ensemble mots sous-ensemble à k éléments (Problème du choix) Compositions LE2I 04 1 Permutations Supposons que

Plus en détail

Julien MATHEVET Alexandre BOISSY GSID 4. Rapport RE09. Load Balancing et migration

Julien MATHEVET Alexandre BOISSY GSID 4. Rapport RE09. Load Balancing et migration Julien MATHEVET Alexandre BOISSY GSID 4 Rapport Load Balancing et migration Printemps 2001 SOMMAIRE INTRODUCTION... 3 SYNTHESE CONCERNANT LE LOAD BALANCING ET LA MIGRATION... 4 POURQUOI FAIRE DU LOAD BALANCING?...

Plus en détail

Baccalauréat S Antilles-Guyane 11 septembre 2014 Corrigé

Baccalauréat S Antilles-Guyane 11 septembre 2014 Corrigé Baccalauréat S ntilles-guyane 11 septembre 14 Corrigé EXERCICE 1 6 points Commun à tous les candidats Une entreprise de jouets en peluche souhaite commercialiser un nouveau produit et à cette fin, effectue

Plus en détail

La demande Du consommateur. Contrainte budgétaire Préférences Choix optimal

La demande Du consommateur. Contrainte budgétaire Préférences Choix optimal La demande Du consommateur Contrainte budgétaire Préférences Choix optimal Plan du cours Préambule : Rationalité du consommateur I II III IV V La contrainte budgétaire Les préférences Le choix optimal

Plus en détail

Fonctions de plusieurs variables, intégrales multiples, et intégrales dépendant d un paramètre

Fonctions de plusieurs variables, intégrales multiples, et intégrales dépendant d un paramètre IUFM du Limousin 2009-10 PLC1 Mathématiques S. Vinatier Rappels de cours Fonctions de plusieurs variables, intégrales multiples, et intégrales dépendant d un paramètre 1 Fonctions de plusieurs variables

Plus en détail

Chapitre 5 : Flot maximal dans un graphe

Chapitre 5 : Flot maximal dans un graphe Graphes et RO TELECOM Nancy A Chapitre 5 : Flot maximal dans un graphe J.-F. Scheid 1 Plan du chapitre I. Définitions 1 Graphe Graphe valué 3 Représentation d un graphe (matrice d incidence, matrice d

Plus en détail

Polynômes à plusieurs variables. Résultant

Polynômes à plusieurs variables. Résultant Polynômes à plusieurs variables. Résultant Christophe Ritzenthaler 1 Relations coefficients-racines. Polynômes symétriques Issu de [MS] et de [Goz]. Soit A un anneau intègre. Définition 1.1. Soit a A \

Plus en détail

Quelques algorithmes simples dont l analyse n est pas si simple

Quelques algorithmes simples dont l analyse n est pas si simple Quelques algorithmes simples dont l analyse n est pas si simple Michel Habib [email protected] http://www.liafa.jussieu.fr/~habib Algorithmique Avancée M1 Bioinformatique, Octobre 2008 Plan Histoire

Plus en détail

Programmation linéaire

Programmation linéaire 1 Programmation linéaire 1. Le problème, un exemple. 2. Le cas b = 0 3. Théorème de dualité 4. L algorithme du simplexe 5. Problèmes équivalents 6. Complexité de l Algorithme 2 Position du problème Soit

Plus en détail