1. Trang chủ
  2. » Giáo Dục - Đào Tạo

(LUẬN văn THẠC sĩ) extraction de sous trajectoires d’abeilles luận văn ths công nghệ thông tin

48 5 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Extraction de sous-trajectoires d’abeilles
Tác giả Nguyen Van Tho
Người hướng dẫn Karell Bertet
Trường học Institut de la Francophonie pour l’Informatique
Chuyên ngành Informatique
Thể loại thesis
Năm xuất bản 2014
Thành phố La Rochelle
Định dạng
Số trang 48
Dung lượng 853,87 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

L’Analyse Formelle de Concepts AFC est souvent utilisée pour analyser les données décrivant la relation entre un ensemble d’objets et d’un ensemble d’attributs.. Dans ce stage nous prése

Trang 1

m´emoire de fin d’´etudes

Extraction de sous-trajectoires

d’abeilles

Rédigé par :NGUYEN Van ThoPromotion 17 - IFI

Encadrant :Karell BERTET

La Rochelle, Avril – Octobre, 2014

Ce stage a été réalisé au Laboratoire Informatique, Image et Interaction L3i et a été

financé par la région Poitou-Charentes

Trang 2

Je tiens tout d’abord à remercier Madame Karell Bertet, responsable de mon stage pour

le temps qu’elle m’a consacré durant ce stage, ses conseils précieux pendant 6 mois demon stage

Je tiens à remercier également les professeurs et les personnels de l’Institut de laFrancophonie pour l’Informatique, des professeurs invités de m’avoir donné des cours

de haut qualité et pour leur soutien tout au long de mes études

Je tiens à remercier Monsieur Bruno Lescalier pour le fournissement de données.Mes remerciements vont aussi aux ma femme, ma famille et mes amis pour leurencouragement

Trang 3

RésuméL’objectif de ce stage est de rechercher les sous-trajectoires maximales fré-

quentes d’abeilles L’Analyse Formelle de Concepts (AFC) est souvent utilisée

pour analyser les données décrivant la relation entre un ensemble d’objets et d’un

ensemble d’attributs Les fondements mathématiques derrières l’AFC, le treillis

de Galois et le système de fermeture permettent d’en étendre le cadre applicatif à

des descriptions plus sophistiquées, telles que les séquences Dans ce stage nous

présentons une méthode d’analyse formelle de concepts séquentiels ; une extension

de l’AFC et la recherche de concepts pertinents en utilisant les treillis de Galois Elle

consiste d’abord à discrétiser les trajectoires d’abeilles en séquences Et puis,

calcu-ler le treillis de Galois du contexte séquentiel (une extension du contexte formel)

qui consiste à rechercher les sous-séquences communes maximales à l’ensemble

de séquences Des expérimentations et de nombreuses évaluations ont été effectués

pour valider la faisabilité de l’approche et illustrent la possibilité d’une application

des méthodes d’apprentissage supervisé ou non-supervisé

Mots-clés.treillis de Galois, analyse formelle de concepts, trajectoire,données tielles, fouille de données

séquen-AbstractThe aim of this thesis is to mine the frequent closed sub-trajectories of bees

The Formal Concept Analysis (FCA) is often used to analyze the data describing

the relationship between a set of objects and a set of attributes The mathematical

foundation behind the FCA, the Galois lattice and closure system allow to extend

the application of FCA to more sophisticated data descriptions, such as sequence

In this work, we present a formal analysis of sequential concepts; an extension of

the FCA and its application for mining relevant concepts Firstly, we discretize

the trajectories of bees to sequences Then, we construct the Galois lattice of

sequential context (an extension of the formal context) which consists of searching

the maximum common sub-sequences of a set of sequences Experiments were

conducted to validate the feasible of the proposed approach, as well as illustrate the

possibility of applying the supervised or unsupervised learning methods

Keywords Galois lattices, formal concept analysis, trajectory, sequential data, datamining

Trang 4

Table des matières

Page

1.1 Contexte 1

1.2 Problématique 1

1.3 Principales contributions 2

1.4 Organisation du mémoire 3

2 État de l’art 4 2.1 Analyse formelle de concepts 4

2.1.1 Contexte formel 4

2.1.2 Structure de treillis 5

2.1.3 Calcul du treillis 8

2.2 Recherche des motifs séquentiels 8

2.2.1 Préliminaires 9

2.2.2 Recherche des motifs séquentiels maximaux 10

2.2.3 Recherche des motifs séquentiels fermés 10

2.3 Arbre des suffixes généralisés 11

2.3.1 Définitions 11

2.3.2 Construction de arbre des suffixes généralisés 12

2.3.3 Arbre des suffixes généralisés (GST) 14

2.4 Recherche des sous-séquences communes maximales 15

2.4.1 Définitions 15

2.4.2 Calcul de U(v) pour chaque noeud interne v 16

2.4.3 Algorithme pour calculer lca(x,y) 17

3 Analyse formelle de concepts séquentiels 24 3.1 Treillis de Galois des contextes séquentiels 24

3.1.1 Définitions 24

3.1.2 Treillis de Galois des séquences 26

3.1.3 Calcul de treillis de Galois de contexte séquentiel 27

3.1.4 Recherche des concepts pertinents 29

Trang 5

4 Application aux trajectoires d’abeilles 31

4.1 Discrétisation des trajectoires d’abeilles 31

4.1.1 Discrétisation selon la vitesse 31

4.1.2 Discrétisation selon la direction 33

4.2 Expérimentations 34

5 Conclusion et perspectives 38 5.1 Conclusion 38

5.2 Perspectives 38

Trang 6

List of Figures

2.1 Le treillis des concepts du contexte formel 2.1 7

2.2 Arbre des suffixes de la chaîne xabxac [Gus97] 11

2.3 Arbre des suffixes et arbre des suffixes implicites de la séquence xabxa 14 2.4 Arbre des suffixes généralisés de "xabxa" et "babxba"[Gus97], le premier nombre indique la séquence, le deuxième nombre indique la position du commencement du suffixe 14

2.5 Les feuilles en rectangle ayant identifieur i, les nœuds en cercle sont lcas des feuilles deΓi [Gus97] 17

2.6 Les nombres de chemin d’un arbre binaire entier de 15 noeuds 21

2.7 Les partitions des noeuds 22

3.1 Contexte séquentiel et treillis de Galois 26

3.2 Treillis de concepts du contexte de table 3.1 26

3.3 Intégration de méthode proposée à la bibliothèque java-lattices : Le diagramme de paquetages avec principales classes 29

3.4 Les bordures et les concepts pertinents avec min_sup= 30% et min_long=3 30 4.1 Un vecteur vitesse avec ses trois composants 32

4.2 Un exemple de trajectoires en 3D et un exemple de contexte séquentiel des vitesses 33

4.3 Angle entre deux vecteurs créés par trois points d’une fenêtre 33

4.4 Nombre des concepts pertinents et nombre total de concepts avec une taille de fenêtre de 3 35

4.5 Ratio entre le nombre de concepts pertinents et le nombre total de con-cepts (pour des séquences de vitesse) 36

4.6 Ratio entre le nombre de concepts pertinents et le nombre total de con-cepts (pour des séquences de direction) 36

4.7 Treillis des concepts des séquences de direction 37

Trang 7

List of Tables

2.1 La table binaire décrivant la relation I du contexte (O, S, I) 5

2.2 Un exemple de concept formel 6

2.3 Base de données transactionnelles des clients 9

2.4 Version séquentielle de la base de données 9

3.1 Un exemple de contexte séquentiel 25

4.1 Correspondant entre les vitesses et les codes 32

4.2 Correspondance entre les directions et les codes 34

4.3 Un exemple de contexte séquentiel des directions 34

Trang 8

de Guillaume Chiron permettent de suivre individuellement en 3D chaque abeille envol devant la ruche, et ainsi extraire les trajectoires des abeilles à partir d’une carte deprofondeur L’idée de ce stage est d’étudier la faisabilité des méthodes d’extraction

de motifs séquentiels aux trajectoires des abeilles Ces méthodes ont pour objectifd’extraire les sous-séquences fréquentes dans un contexte supervisé ou non Ainsi, unetelle extraction est envisageable à partir de l’ensemble des trajectoires des abeilles pour

en extraire les sous-séquences fréquentes, ou bien à partir d’une base d’apprentissage detrajectoires préalablement catégorisées (abeilles normales ou anormales par exemple),permettant ainsi d’identifier ou de caractériser les sous-trajectoires fréquentes ou nonfréquentes par catégorie

Alors que les premiers travaux d’extraction de motifs fréquents visaient à calculer tousles sous-ensembles de motifs pour en extraire les plus pertinents [AS+94], de récentesméthodes issues de l’analyse formelle des concepts (AFC) reposent sur l’extraction demotifs fermés L’AFC, outil de représentation et d’extraction des connaissances sous

1 http://l3i.univ-larochelle.fr/APIALERTE

2 Laboratoire Informatique, Image et Interaction (L3i), Université de La Rochelle

Trang 9

forme de règles d’association ou de concepts, ainsi la possibilité de classification dans

le cas supervisé et de segmentation dans le cas non supervisé Malgré des traitementssouvent exponentiels, les fondements mathématiques de l’AFC, qui reposent sur lathéorie des treillis [Bir67] et des fermetures, garantissent des algorithmes efficaces etsouvent optimaux La plupart de ces algorithmes sont implémentés dans la bibliothèquejava-lattices [Ber14] développée au laboratoire L3i ó ce stage est réalisé L’AFCanalyse les données décrit par la relation entre un ensemble d’objets et d’un ensembled’attributs Alors que les objets sont classiquement décrits par des ensembles d’attributs,les propriétés d’un opérateur de fermeture permettent d’en étendre le cadre applicatif

à des descriptions plus sophistiquées, telles que les graphes [GK01], les intervalles[Pol98], les formules logiques [FR04], les séquences, et plus généralement aux patterns[Kuz01] Plus formellement, ces extensions sont rendues possibles par la mise en placed’un opérateur de fermeture dans l’espace de description considéré Dans le cas desséquences, il est nécessaire de définir un opérateur de fermeture qui correspond au calculdes sous-séquences communes maximales à un ensemble de séquences Les objets sontalors décrits par des séquences, formant ainsi un contexte séquentiel à partir duquel il estpossible de générer le treillis de Galois de séquences

L’objectif de ce stage est donc d’implémenter le calcul des sous-séquences communesmaximales qui possède les propriétés d’un opérateur de fermeture Puis de l’intégrer ausein de la bibliothèque java-lattices par la mise en place d’un opérateur de fermeture surles séquences, et d’un contexte séquentiel Des expérimentations seront menées sur destrajectoires d’abeilles qu’il s’agira de discrétiser en séquences

Le travail de ce stage présente les contributions suivantes :

(1) Deux méthodes de discrétisation de discrétiser les trajectoires d’abeilles en séquences: discrétisation selon la vitesse et discrétisation selon la direction

(2) Implémentation du calcul des sous-séquences communes, puis mise en place d’uncontexte séquentiel, extension d’un contexte classique, avec les sous-séquencescommunes comme opérateur de fermeture La construction du treillis de Galois ducontexte séquentiel est ainsi rendue possible en utilisant l’algorithme de Bordat[Bor86] ou l’algorithme Next Closure [Gan84] déjà implémentés au sein de labibliothèque java-lattices

(3) Expérimentations sur 20 trajectoires d’abeilles et accompagnées de quelquesmesures d’évaluation Bien que l’apprentissage est non-traité dans le carde de ceprojet, nos résultats montrent que l’apprentissage supervisé/non-supervisé sur lestrajectoires sont faisables

Trang 10

1.4 Organisation du mémoire

Le mémoire est organisé de la manière suivante :

Dans le chapitre 2, nous présentons un état de l’art sur l’analyse formelle de concepts(AFC) et la recherche de sous-séquences communes maximales

Dans le chapitre 3, nous décrivons la méthode proposée, le treillis de Galois ducontexte séquentiel et la recherche des concepts pertinents

Le chapitre 4 présente les expérimentations et ses résultats

Trang 11

L’Analyse Formelle de Concepts (AFC) [Wil82; GWW99] a été présentée comme undomaine de mathématiques appliquées qui consiste à restructurer la théorie des treillis[Bir67] L’AFC analyse les données décrivant la relation entre un ensemble d’objets

et un ensemble d’attributs Ces données apparaissent couramment dans de nombreuxdomaines de l’activité humaine tels que la psychologie, la sociologie, l’anthropologie,

la médecine, la biologie, linguistique, sciences informatiques, mathématiques et génieindustriel Nous présentons dans cette section les notions de base de l’AFC et quelquesalgorithmes pour l’extraction de motifs séquentiels

2.1.1 Contexte formel

Définition 2.1.1(Contexte formel) Un contexte formel est un triplet K= (O, S, I) ó Oest un ensemble d’objets, S est un ensemble d’attributs et I est une relation binaire entre

Oet S i.e I ∈ OxS (o, s) ∈ I signifie que l’objet o possède l’attribut s

Graphiquement, nous pouvons représenter un contexte formel par une table binaire(cross-table) mettant en relation objets et attributs Les lignes de la table correspondentaux objets, les colonnes de la table correspondent aux attributs (i, j) prend la valeur 1,vrai ou encore × si l’objet i possède l’attribut j

Trang 12

Exemple 2.1.1 Le contexte C décrit par la figure 2.1 consiste l’ensemble des objets

O= {1, 2, 3, 4, 5} et l’ensemble des attributs S = {a, b, c, d}

2.1.2 Structure de treillis

La notion de concept formel est fondamentale pour AFC Pour définir le concept formeld’un contexte formel (O, S, I) nous avons besoins des opérateurs de dérivation définispour les sous-ensembles arbitraires A ⊆ O et B ⊆ S :

Définition 2.1.2 Pour un contexte formel (O, S, I) pour tout A ⊆ O et B ⊆ S , on défini:(1) A0 = α(A) = {o ∈ O | oIs ∀s ∈ A}

Trang 13

• ≤est une relation d’ordre sur l’ensemble S, i.e une relation binaire qui vérifie les

propriétés suivantes :

– réflexivité : pour tout x ∈ S , on a xIx

– antisymétrie : pour tous x, y ∈ S , xIy et yIx impliquent x= y

– transitivité : pour tous x, y, z ∈ S , xIy et yIz impliquent xIz

• toute paire d’éléments x, y de S admet à la fois une borne inférieure et une borne

supérieure

– la borne inférieure de x et y, notée x ∧ y, est l’unique élément maximal (plus

grand élément) de l’ensemble des prédécesseurs (ou minorants) de x et y(ensemble des éléments z ∈ S tels que z ≤ x et z ≤ y)

– la borne supérieure de x et y, notée x ∨ y, est l’unique élément minimal (i.e.plus petit élément) de l’ensemble des successeurs (ou majorants) de x et y(ensemble des éléments z ∈ S tels que z ≥ x et z ≥ y)

Définition 2.1.5 (Treillis des concepts) Le treillis des concepts se défini pour une

relation binaire I entre un ensemble O d’objets et un ensemble S d’attributs, encore

appelé contexte Le treillis des concepts d’un contexte (O, S, I) est une paire (C, ≤) ó :

• C est un ensemble de concepts défini sur P(O) × P(S ) par :

(A, B) ∈ C ⇐⇒ A ⊆ O, B ⊆ S, B= α(A) et A = β(B)

avec

α(A) = {b ∈ S : aIb pour tout a ∈ A} β(B) = {a ∈ O : aIb pour tout b ∈ B}

• ≤est une relation binaire définie sur l’ensemble des concepts C, pour (A1, B1) et (A2, B2) ∈

C :

(A1, B1) ≤ (A2, B2) ⇐⇒ B1 ⊆ B2 ⇐⇒ A1 ⊇ A2

Trang 14

La figure 2.1 montre le diagramme de Hasse du treillis de Galois du contexte 2.1.Une éclipse représente un concept et les arcs entre les éclipses matérialisent la relationd’ordre du plus général (en bas) vers le plus spécifique (en haut).

Figure 2.1 – Le treillis des concepts du contexte formel 2.1

Définition 2.1.6 (Treillis de Galois) Un treillis de Galois se définit à partir d’unecorrespondance de Galois (α, β) entre deux ensembles O et S Soient A ⊆ O et B ⊆ S ,

on définit α et β comme suit:

α : P(O) → P(S ) α(A) = {s ∈ S/(o, s) ∈ I, ∀o ∈ A} (2.1)

β : P(S ) → P(O) α(B) = {o ∈ O/(o, s) ∈ I, ∀s ∈ B} (2.2)

• α est une application isotone de P(O) vers P(S ) : X ⊆ Y implique α(X) ⊆ α(Y),

• β est une application antitone de P(S ) vers P(O) : X ⊆ Y implique β(X) ⊇ β(Y),

• (β ◦ α) est une application extensive sur P(S ) : X ⊆ O implique X ⊆ (β ◦ α)(X),

• (α ◦ β) est une application extensive sur P(O) : X ⊆ S implique X ⊆ (α ◦ β)(X)

ó :

P(X) est l’ensemble des parties de X

Trang 15

Les deux compositions (α ◦ β) et (β ◦ α) sont des opérateurs de fermetures définisrespectivement sur O et S

Définition 2.1.7(Opérateur de fermeture) Un opérateur de fermeture sur l’ensemble Xest un mapping C : P(X) → P(X) satisfont pour A, A1, A2⊆ X:

A ⊆ C(A)

A1⊆ A2 ⇒ C(A1) ⊆ C(A2)

C(A)= C(C(A))

Définition 2.1.8(Système de fermeture) Un ensemble de fermés X avec son opérateur

de fermeture se compose un système de fermeture Par exemple (O, α ◦ β) est un système

de fermeture

2.1.3 Calcul du treillis

Plusieurs algorithmes ont été proposés pour calculer du treillis de Galois (ou générerles fermés) Un des premiers algorithmes proposés est l’algorithme de Chein [Che69],les concepts sont générés à partir de concept initial en utilisant un algorithme de calculles sous-matrices Des algorithmes plus récents ont amélioré la performance en testantles concepts existant pour éviter de les régénérer [Nor78; Gan84; Bor86] L’algorithmeNext Closure [Gan84] génère les concepts selon l’ordre lectical entre eux Les conceptspeuvent être générés de manière incrémentale [Nor78; GMA91; CR93] L’algorithme

de Bordat [Bor86] génère les concepts en calculant le diagramme de Hasse du treillis.Conclusion: Toute description d’objets par une connexion (α, β) qui vérifie les pro-priétés d’une connexion de Galois permet ainsi de maintenir le système de fermeture surl’ensemble des objets, et donc de rendre possible la génération du treillis de Galois

La recherche des motifs séquentiels est un problème fondamental et essentiel dans denombreuses applications (découverte des règles d’association, règles de classification

ou regrouper les objets selon les motifs) d’exploration de données qui sont ordonnéestelles que la base de données transactionnelles, la base de données des trajectoires Plusieurs méthodes ont été proposées pour la recherche des motifs séquentiels Lespremières méthodes se basent sur l’algorithme Apriori [Agr+96] qui énumère tous lesmotifs séquentiels fréquents (i.e partagés par un nombre suffisant d’objets) Puis d’autressolutions ont été proposées pour limiter le nombre de motifs fréquents générés qui estexponentiel Cette énumération est un problème exponentielle Il y a deux solutions à larecherche des motifs séquentiels La première solution est de recherche seulement lesmotifs séquentiels maximaux [AS95] La deuxième solution est de recherche seulement

Trang 16

les motifs séquentiels fermés en introduisant un système de fermeture sur l’ensemble desséquences [YHA03; WH04].

2.2.1 Préliminaires

Soit I = i1, i2, , in est un ensemble de n items distinctifs La base de données actionnelles est noté D dont chaque transaction (tid, T) a un unique identifiant tid etcontient un ensemble d’items encore appelé motif T

trans-Exemple 2.2.1 La table 2.3 est un exemple de base de données transactionnelles (saversion séquentielle est présentée dans la table 2.4)

Customer Id Transaction Time Items Bought

Customer Id Customer Sequence

Table 2.4 – Version séquentielle de la base de données

Définition 2.2.1(motif) Un motif ou itemset est un ensemble non vide d’items

Définition 2.2.2 (séquence) Une séquence est une une liste ordonnée, non vide, demotifs notée (it1) (itn) ó (itj) est un motif

Trang 17

Définition 2.2.3 (support) Le support d’un motif X noté supp(X) est le nombre detransactions dont X est sous-ensemble.

supp(X)= |{(tid, T) ∈ D/X ⊆ T}|

|D|

Le support prend sa valeur dans l’intervalle [0, 1]

Définition 2.2.4(motif fréquent) Un motif est dit fréquent si son support est supérieur

super-2.2.2 Recherche des motifs séquentiels maximaux

La recherche des motifs séquentiels maximaux a été introduite dans les travaux de

R Agrawal et R Srikant [AS95] Les auteurs présentait trois algorithmes dont deuxpermettaient l’extraction de motifs séquentiels maximaux à partir une base de donnéesdes transactions des clients La base de données transactionnelles est transformée en desséquences (voir exemple dans les tables 2.3 et 2.4) La définition d’un motif séquentielmaximal est similaire à celle des itemsets fréquents maximaux Ainsi, si une séquence sest fréquente et qu’il n’existe pas de séquences fréquentes s0 telles que s0

@ s, alors lemotif séquentiel s est dit maximal

2.2.3 Recherche des motifs séquentiels fermés

Clospan [YHA03] est une méthode basée sur le principe depth-first et implémentel’algorithme PrefixSpan En fait, il s’agit d’une optimisation de ce dernier, destinée àélaguer l’espace de recherche en évitant de parcourir certaines branches dans le processus

de divisions récursives (en détectant par avance les motifs séquentiels non fermés) Leprincipe de CloSpan repose sur deux éléments essentiels : l’ordre lexicographique desséquences et la détection de liens systématiques entre deux items (i.e."β apparaît toujoursavant γ dans la base de données")

BIDE (BI-Directional Extension) est proposée dans [WH04] étendre les séquencesdans les deux directions, i.e en avant (forward extension) et en arrière (backwardextension) Cette méthode est plus efficace que Clospan dans le cas de bases contenant

de trop nombreuses séquences fermées

Trang 18

2.3 Arbre des su ffixes généralisés

La principale caractéristique de l’arbre des suffixes est que pour toute feuille i, laconcaténation des arête-étiquettes sur le chemin de la racine jusqu’à la feuille i définitexactement le suffixe de α qui commence à la position i On l’appelle su f fi

Si un suffixe cọncide avec un facteur du texte, aucune feuille ne correspondra ausuffixe Pour éviter ce problème, on ajoute un caractère artificiel, par exemple $ à la fin

Trang 19

2.3.2 Construction de arbre des su ffixes généralisés

Un arbre des suffixes peut être construire en temps linéaire Le premier algorithmelinéaire algorithme est proposé par Weiner [Wei73] en 1973 McCreight [McC76]propose un autre algorithme linéaire mais plus efficace pour la gestion de mémoire

En 1995, Ukkonen [Ukk95] a présenté un algorithme qui est aussi efficace que celui

de McCreight mais plus simple Nous allons donc représenter en détaille l’algorithmed’Ukkonen

2.3.2.1 Algorithme d’Ukkonen

L’algorithme d’Ukkonen permet de construire un arbre des suffixes à temps linéaire

Il traite les symboles de la chaîne un par un et de de gauche à droite (incrémental).L’algorithme se base sur le concept de l’arbre des suffixes implicites

Définition 2.3.2 (Arbre des suffixes implicites) Un arbre des suffixes implicites dechaîne α est un arbre obtenu à partir de l’arbre des suffixes α$ en supprimant tous lescopies du terminal symbole $ à partir des étiquettes des arêtes de l’arbre, puis en enlevantles arêtes qui n’ont pas d’étiquette, puis enlever tous les noeuds qui n’ont pas au moinsdeux enfants

Un arbre des suffixes implicites pour un préfixe α[0 i] de α est définie de façonsimilaire en prenant l’arbre des suffixes de α[0 i]$ et suppression les symboles $, desarêtes et des nœuds comme ci-dessus [Gus97]

L’arbre des suffixes implicites encode tous les suffixes de la séquence α, mais lessuffixes ne terminent pas forcément aux feuilles Nous n’utilisons arbre des suffixesimplicites que pour les résultats intermédiaires pendant la construction de arbre dessuffixes La Figure 2.3 représente l’arbre des suffixes et l’arbre des suffixes implicites de

la séquence xabxa Nous constatons que les suffixes a et xa ne terminent par aux feuillesdans l’arbre des suffixes implicites

Définition 2.3.3 Nous désignons par Iil’arbre des suffixes implicites de α[0 i] pour i

• À phase i+ 1, l’arbre Ti +1est construit à partir de Ti

Trang 20

• Chaque phase i+ 1 est ensuite divisée en i + 1 extensions

• A l’extension j, insère y[j i+1] dans l’arbre en

– recherchant la fin du chemin étiqueté par y[j i] depuis la racine de Ti

– rajoutant y[i+1] si nécessaire

Algorithm 1Algorithme d’Ukkonen en bref: Ukkonen(α)

Entrée: α : chaîne entrée

Sortie: T : arbre des suffixes

1: construire T0

2: for i ← 0, n − 1 do//phase i+1

3: for j ←0, i+ 1 do //extension j

4: Trouver la fin du chemin étiqueté par y[j i] depuis la racine

5: Ajouter y[i+1] si nécessaire

6: end for

7: end for

Durant l’extension j de la phase i+1, l’algorithme trouve la fin du chemin étiquetépar y[j i] depuis la racine pour, éventuellement, ajouter y[i+1] Cet ajout se fait alors enaccord avec 3 règles

• Règle 1Si le chemin étiqueté par y[ j i] depuis la racine se termine sur une feuille,alors y[i+1] est ajouté à la fin de étiquette de la branche menant à la cette feuille

• Règle 2Si le chemin étiqueté par y[ j i] depuis la racine ne se termine pas surune feuille et qu’aucun chemin étiqueté par y[i+1] ne commence après ce chemin.Alors une nouvelle feuille est créée avec une branche y menant étiqueté e par y[i+1] Si le chemin étiqueté par y[ j i] depuis la racine ne se termine pas sur unnœud alors un nouveau noeud doit être créé et la branche cassée

• Règle 3Si le chemin étiqueté par y[ j i] depuis la racine ne se termine pas sur unefeuille Alors un chemin étiqueté par y[i+1] commence après ce chemin Doncy[j i+1] est déjà dans l’arbre : on ne fait rien

Algorithme en O(n)En utilisant les corollaires du lemme 2.3.1 et quelques astucesnous pouvons construire un arbre des suffixes en O(n) Consultez-vous le livre deGusfield pour plus de détails et la preuve de ce lemme

Lemme 2.3.1 Si un nouveau nœud interne av est ajouté à l’arbre pendant l’extension

j de la phase i+1 alors soit il y a d déjà un nœud interne v dans arbre, soit un nœudinterne v va être créé dans l’extension j+1 de la phase i+1

Cet algorithme est basé sur le principe d’accélération avec lien suffixe et la notiond’arbre de suffixes implicites Figure 2.3

Trang 21

abxa

3axb

Figure 2.3 – Arbre des suffixes et arbre des suffixes implicites de la séquence xabxa

2.3.3 Arbre des su ffixes généralisés (GST)

C’est un arbre des des suffixes pour un ensemble de chaîne A = {α1, α2, , αn} Pourconstruire l’arbre des suffixes généralisés T de A, d’abord, on ajoute à la fin de chaquechaîne αiune sentinelle $itel que i , j ⇐⇒ $i , $j Puis, l’arbre des suffixes généralisépeut être construit sur la concaténation de ces chaînes

Figure 2.4 – Arbre des suffixes généralisés de "xabxa" et "babxba"[Gus97], le premiernombre indique la séquence, le deuxième nombre indique la position du commencement

du suffixe

Trang 22

Algorithm 2Algorithme pour construire l’arbre des suffixes généralisés : GST(A)

Entrée: Aun ensemble des séquences

Sortie: L’arbre des suffixes généralisés T

1: S ←une séquence vide

2.4.1 Définitions

Étant donné un ensemble de (n ≥ 2) séquences A= {α1, α2, , αn}sur l’alphabetΣ

Définition 2.4.1(Sous-séquence) La séquence S est une sous-séquence de la séquence

de sous-séquence commune de A, X est l’ensemble des sous-séquences communesmaximales ssi χi @ χjavec ∀i , j et 1 ≤ i, j ≤ m

La recherche des sous-séquences communes maximales peut être résolue à l’aided’un arbre des suffixes généralisés avec une complexité en O(P |αi|):

(1) Construire l’arbre des suffixes généralisés de l’ensemble des séquences A ={α1, α2, , αn}en utilisant l’algorithme de Ukkonen [Ukk95]

(2) Rechercher les sous-séquences communes maximales en identifiant les nœudsinternes qui contient au moins une feuille de chaque chaîne Les sous-séquencescommunes sont les chemins de la racine à ces nœuds internes La complexité del’algorithme est de O(n) avec n= Σ|si|

Trang 23

Le problème de LCS peut être résolu à l’aide d’un arbre des suffixes généralisés.Lorsque l’arbre des suffixes généralisés est construit, on peut trouver les sous-séquencescommunes en identifiant les nœuds internes qui contient au moins une feuille de chaquechaỵne Les sous-séquences communes sont les chemins de la racine aux ces nœudsinternes La complexité de l’algorithme est de O(n) avec n= Σ|si|.

Soit T l’arbre des suffixes généralisés de l’ensemble des séquences A = {α1, α2, , αn}(n ≥ 2) Pour chaque feuille de T, assigner un identifieur L( f ) = i pour indiquer que laséquence associé à feuille est suffixe de la séquence αi Par exemple, L( f )= 1, le suffixeterminé par f est commencé par la séquence 1 Pour un noeud arbitraire v de T, nousdéfinissons:

(1) C(v) est le nombre des identifieurs distinctifs des feuilles du sous-arbre issu de v.(2) S (v) est le nombre des feuilles du sous-arbre issu de v

(3) U(v) est le nombre des suffixes commencés par la même séquence

(4) ni(v) est le nombre des feuilles ayant identifieur i dans le sous-arbre issu de v.Les sous-séquence communede A correspondent aux noeuds v tel que C(v) = n

Le lemme 2.4.1 permet d’exprimer C(v) en fonction de S (v) et U(v) S (v) se calculesimplement en parcourant les feuilles du sous-arbre issu de v La difficulté consiste donc

à calculer U(v)

Lemme 2.4.1 U(v)= P

i:n i (v)>0(ni(v) − 1) et C(v)= S(v) - U(v) [Gus97]

2.4.2 Calcul de U(v) pour chaque noeud interne v

Le calcul de U(v) repose sur la notion de plus proche ancêtre commun:

Définition 2.4.4(Ancêtre) Dans un arbre enraciné T, un nœud u est un ancêtre d’unnœud v si u est sur le chemin unique de la racine à v Avec cette définition, un nœud est

un ancêtre de lui-même Un ancêtre propre de v se réfère à un ancêtre qui n’est pas v.Définition 2.4.5 Dans un arbre enraciné T, le plus proche ancêtre commun(lca) de deuxnœuds u et v est le nœud le plus profond de T qui est un ancêtre de u et de v

Soit Γi est la liste des feuilles ayant pour identifieur i Les valeurs de Γi sont lenombre de dfs (nombre assigné par l’ordre d’un parcours en profondeur) SoitΓi (v)toutes les feuilles ayant pour identifieur i dans le sous-arbre issu de v Γi (v) est unintervalle consécutif deΓi (Conséquence du numérotage DFS)

Soit h(w) est le nombre de fois ó w est lca pour tous les paires de feuilles consécutives

deΓi Le calcul de U(v) se déduit du lemme 2.4.2 et l’équation 2.3

Trang 24

Figure 2.5 – Les feuilles en rectangle ayant identifieur i, les nœuds en cercle sont lcasdes feuilles deΓi [Gus97]

Lemme 2.4.2 Si nous calculons le lca pour chaque paire de feuilles consécutives enΓi ,alors pour tout noeud v, exactement ni(v) − 1 des lcas calculés se situe dans le sous-arbre

h(w) : w est dans le sous − arbre issu de v (2.3)

L’algorithme 3 décrit le calcul du LCS(A) en utilisant U(v) Pendant le parcoursascendant, calculer C(v)= S (v) − U(v) Si C(v) = n (nombre de séquence) et le sous-séquence χ(v) de la racine à v est un sous-séquence commune de T Pour garantir que Xest l’ensemble des sous-séquences communes maximales, nous devons tester si χ(v) v etsupprimer tous les χi ∈ X: χi v χ(v)

Cet algorithme utilise le calcul du lca décrit dans la section suivante

2.4.3 Algorithme pour calculer lca(x,y)

Baruch Schieber et Uzi Vishkin [SV88] ont proposé un algorithme pour trouver le plusproche ancêtre communde deux noeuds u et v (lca(u,v)) en temps constant, après uneétape de prétraitement en temps linéaire L’algorithme se base sur deux observations[HT84]:

Ngày đăng: 27/06/2022, 08:51

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm