• Aucun résultat trouvé

C HAPITRE 5 Étude des Oracles des

Théorème 5.13. L’Oracle des Facteurs de s reconnaît tous (et seulement) les facteurs des mots de E(s).

Démonstration.

⇒’ : Tout facteur d’un mot de la fermeture de s est reconnu par l’Oracle des Facteurs de s.

Soientw un mot de la fermeture de s et m un facteur de w. Alors w peut s’écrire w = u m v (u, v ∈ Σ∗) et le suffixe m v de w est nécessairement reconnu par l’Oracle des Suffixes de s (cf. Théorème 5.12 – page ci-contre). Par conséquent, cela implique qu’il existe un chemin (e0 → ex1 → . . . → ex|m v|)

dans l’Oracle des Suffixes des correspondant au mot m v. Le mot m étiquette donc un chemin (e0 → ex1 → . . . → ex|m|) et est donc reconnu par l’Oracle des Facteurs de s.

⇐’ : Tout mot reconnu par l’Oracle des Facteurs de s est facteur d’un mot de la fermeture de s. Soitm un mot reconnu par l’Oracle des Facteurs de s. Si ce mot est également reconnu par l’Oracle des Suffixes des, cela signifie que m est un suffixe d’un mot deE(s) (cf. Théorème 5.12 – page précédente). Supposons maintenant quem ne soit pas reconnu par l’Oracle des Suffixes de s. Cela implique alors que m est reconnu par l’Oracle des Facteurs de s à l’état ex|m|(qui n’est pas final dans l’Oracle des Suffixes

de s) suivant un chemin e0 → ex1 → . . . → ex|m|. Il existe donc un chemin (e0 → ex1 → . . . → ex|m| → ex|m|+1 → . . . → e|s|) dans l’Oracle de s avec e|s| final. Ainsi, le motm est préfixe d’un mot

reconnu par l’Oracle des Suffixes des, ce qui signifie que m est préfixe d’un suffixe d’un mot w∈ E(s). Finalement, il s’en conclut que le motm est un facteur d’un mot de la fermeture de s.

5.4

Caractéristiques des Oracles

L’Oracle est minimal en nombre d’états (définition classique de la minimalité des automates, cf. An- nexe D.2), parmi les automates reconnaissant un nombre fini de mots dont au moins tous les facteurs/- suffixes d’un mot donné (cf. Section 5.1.4 – page 143). Cependant, il n’est pas toujours minimal en nombre de transitions parmi les automates reconnaissant un nombre fini de mots dont au moins tous les facteurs/suffixes d’un mot donné [4]. Une des particularités de l’Oracle est sa propriété d’homogénéité, lui conférant un avantage de complexité spatiale lors de son implémentation. La question de sa mini- malité en nombre de transitions parmi la classe des automates homogènes s’est légitimement posée, et dans la conclusion de leur article, CLEOPHAS & al. [28] montrent que même parmi les automates de

cette classe, l’Oracle n’est pas toujours minimal en nombre de transitions. La section suivante montre comment cette observation peut être enrichie, en produisant des automates homogènes ayant moins de transitions et reconnaissant encore moins de faux positifs que les Oracles pour certains mots donnés. Sur la base de ce constat et des résultats de la section précédente, l’ordre de grandeur du nombre de faux positifs engendrés par les Oracle dans le pire des cas est établi.

5.4.1 Minimalité en nombre de transitions et en nombre de mots

Considérons l’ensemble des automates homogènes qui reconnaissent au moins tous les facteurs (res- pectivement suffixes) des, et qui ont le même nombre d’états et au plus le même nombre de transitions que l’Oracle des Facteurs (respectivement Suffixes) de s. À l’intérieur de cet ensemble, l’Oracle n’est pas toujours minimal en nombre de mots acceptés, ni en nombre de transitions, ni même en cumulant ces deux critères. En effet, l’Oracle du mot axttyabcdeatzattwu (cf. Figure 5.12) possède 35 transi- tions, l’Oracle des Facteurs accepte 247 mots et l’Oracle des Suffixes accepte 39 mots. Alors qu’il existe un autre automate homogène (cf. Figure 5.13), qui reconnaît au moins tous les facteurs (respectivement suffixes) deaxttyabcdeatzattwu et qui possède seulement 34 transitions. La version « Facteur » de cet automate reconnaît seulement 241 mots et sa version « Suffixe » accepte seulement 30 mots. Cet exemple montre qu’il existe un automate homogène qui possède à la fois moins de transitions et moins de faux positifs que l’Oracle correspondant, et cela pour les deux versions « Facteurs » et « Suffixes ».

e0 a e1 e2 e3 e4 e5 e6 e7 e8 e9 e10 e11 e12 e13 e14 e15 e16 e17 e18

x t y b c d e z w u x b t t t y z w y w a b c d e a t z t a t t w u

Figure 5.12 – Oracle des Facteurs du motaxttyabcdeatzattwu.

e0 a e1 e2 e3 e4 e5 e6 e7 e8 e9 e10 e11 e12 e13 e14 e15 e16 e17 e18

x t y b c d e z w u x b t t t y z w y w a b c d e a t z a t t w u

Figure 5.13 – Automate acceptant1tous les facteurs du motaxttyabcdeatzattwu.

Parmi les faux positifs des Oracles deaxttyabcdeatzattwu, un certain nombre proviennent de la contraction(11, 14) par le facteur remarquable at. Les deux transitions (e1, t, e12) et (e12, t, e16) sont nécessaires pour reconnaître les facteurs at, att, attw, attwu ou le suffixe attwu (selon l’Oracle) de axttyabcdeatzattwu. En les remplaçant par la transition (e1, t, e3), les facteurs at, att, attw, attwu ou le suffixe attwu sont également reconnus, mais le nombre de faux positifs engendrés par ce nou- vel automate (qui demeure homogène) est moindre par rapport à l’Oracle. Il est possible de construire d’autres exemples permettant d’accentuer l’écart entre le nombre de faux positifs engendrés par les deux

1Seules les lignes continues appartiennent à cet automate. La transition en gras (de e

1 vers e3) est la seule qui n’est pas

présente dans l’Oracle des Facteurs de ce mot, alors que les deux transitions en pointillé (de e1vers e12et de e12vers e16) sont

automates, par exemple en insérant de nouveaux symboles après la10`emeposition. En effet, l’Oracle du mot axttyabcdef ghijatzattwu possède 45 transitions, et reconnaît 377 facteurs ou 49 suffixes selon la version, tandis que le même automate privé des transitions (e1, t, e17) et (e17, t, e21) et augmenté de la transition(e1, t, e3) possède 44 transitions et reconnaît 366 facteurs ou 35 suffixes (toujours selon la version). Il est également possible d’augmenter l’écart concernant le nombre de transitions, en construi- sant de plus grands exemples sur le même principe (i.e., remplacement den transitions par au plus n− 1 autres transitions conservant les propriétés d’homogénéité et de reconnaissance des facteurs ou suffixes du mot d’origine).

5.4.2 Nombre de faux positifs

Plusieurs algorithmes exploitent les Oracles avec de bons résultats, comme l’algorithme de recherche de motifTurbo-BOM [4], la méthode d’extraction de motifs en tandem FORREPEATS[85], l’algorithme de compression de texte COMPROR [84], la méthode d’improvisation musicale en temps réel utilisée dans le logiciel OpenMusic [8] ou encore l’outil d’identification de protéines à partir de données de spectrométrie de masses2 POPITAM[65]. Toutefois, toutes sont obligées de tenir compte de l’incertitude sur l’information apportée par les Oracles.

Bien que le nombre de faux positifs puisse dans certains cas être nul (e.g.aaaaaa . . .), il peut aussi être exponentiel. De fait, il est possible de construire une famille de mots dont les Oracles associés pos- sèdent un nombre exponentiel de faux positifs. Pour chaque mots de cette famille, chaque sous-ensemble deCs∗ est cohérent et minimal. Soit, par exemple, la famille de tous les mots de typeaabbccddee . . ., et soit s un mot de cette famille, de longueur|s| (forcément paire). L’ensemble de contractions C∗

s appli- cables à un tel mot est{(1, 2), (3, 4), . . . , (|s| − 1, |s|)}. Chaque sous-ensemble de contractions C ⊆ Cs est cohérent et minimal, et hormis pour les sous-ensembles {} et {(1, 2)}, il est aisé de remarquer que M ot(s,C) /∈ F act(s). De plus, tous les mots obtenus à partir de ces sous-ensembles sont deux à deux différents.

Le nombre de ces sous-ensembles est : |C∗ s| X i=0 |C∗ s| i  − 2 = |s| 2 X i=0 |s| 2 i  − 2 = 2|s|2 − 2.

Par conséquent, dans le pire des cas, le nombre de mots acceptés par les Oracles qui ne sont pas fac- teurs/suffixes des est dans Ω√2|s|.

5.5

Vers un nouvel Oracle

L’approche du langage reconnu à l’aide des facteurs remarquables et des contractions est très utile formellement pour arriver à une caractérisation de ce langage, mais ne permet pas a priori de répondre à une question simple telle : « Comment faire pour diminuer sérieusement le nombre de faux positifs reconnus par les Oracles ? » Pour essayer de donner une réponse à ce genre de questions, il faut se tourner vers les Oracles eux-mêmes et comprendre intuitivement la création d’un faux positif au fur et à mesure du parcours d’un chemin entre l’état initial de l’Oracle et l’un de ses états finaux. Avec

2Méthode permettant l’identification de molécules par l’analyse de ses différents constituants. Cette technique utilise les

une telle approche, on saisit l’importance des transitions externes qui parfois sont empruntées durant la lecture d’un mot qu’il serait souhaitable de ne pas lire. Les transitions externes sont donc en partie responsables de l’existence des faux positifs ; pour diminuer le nombre de faux positifs, il faut donc agir sur les transitions externes dans le but d’enrichir l’Oracle avec des informations supplémentaires, mais sans trop l’alourdir.

5.5.1 Oracle à transitions gardées

Soit l’Oracle d’un mot s et soit w un mot. La lecture de w par l’Oracle se fait à partir de l’état initiale0 en suivant pas à pas les transitions. Supposons que, lorsqu’on arrive dans un état ei après la lecture du préfixe w0 de w, le caractère suivant α de w doit être lu le long d’une transition externe issue de ei. Cette lecture ne devrait être autorisée que si w0α est un facteur de s ; mais ce test n’est pas réalisable rapidement à ce niveau. Il est néanmoins possible de trouver un autre critère qui limite sérieusement le nombre d’autorisations à ce niveau, tout en préservant la structure de l’Oracle et son caractère économique.

Il s’agit d’associer à chaque transition externe (issue, disons, de l’étatei et ayant l’étiquette α) la longueur maximum des motsm tels que Etat(m) = ei etm α est un facteur de s. Cette condition est moins forte que le test précédemment identifié, mais elle permet en contrepartie une vérification aisée et rapide. L’entier associé à chaque transition externe sera appelée garde et la structure d’index ainsi obtenue s’appellera Oracle des Facteurs/Suffixes à transitions gardées.

Avant de détailler la méthode d’élaboration de ces gardes, il est nécessaire de revenir sur l’algorithme de construction de l’Oracle. En effet, l’algorithme 5.1 – page 145 – présenté précédemment n’est pas optimal. ALLAUZEN& al. ont élaboré un autre algorithme permettant de construire le même Oracle [3,

page]. Cet algorithme est incrémental (i.e., l’Oracle du mot s = s1. . . sn+1 est construit à partir de l’Oracle des = s1. . . snet du symbolesn+1) et sa complexité (spatiale et temporelle) est linéaire. Cet algorithme est généralement qualifié de version « on-line » dans la littérature.

Avant de le présenter, il est indispensable de définir une fonction dite de suppléance sur les états de l’automate, sur laquelle repose cette méthode, puisque cette fonction régit l’ajout des transitions externes.