RdF Reconnaissance des Formes Semaine 11 : RDF sur les chaînes



Documents pareils
Recherche dans un tableau

Perl Orienté Objet BioPerl There is more than one way to do it

Chapitre 1 : Introduction aux bases de données

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

Big data et sciences du Vivant L'exemple du séquençage haut débit

Plus courts chemins, programmation dynamique

Chapitre 2 Devine mon nombre!

Pourquoi l apprentissage?

6. Hachage. Accès aux données d'une table avec un temps constant Utilisation d'une fonction pour le calcul d'adresses

STAGE IREM 0- Premiers pas en Python

# let rec concat l1 l2 = match l1 with [] -> l2 x::l 1 -> x::(concat l 1 l2);; val concat : a list -> a list -> a list = <fun>

Introduction. I Étude rapide du réseau - Apprentissage. II Application à la reconnaissance des notes.

OPTIMISATION À UNE VARIABLE

1. Création d'un état Création d'un état Instantané Colonnes Création d'un état Instantané Tableau... 4

LES DÉTERMINANTS DE MATRICES

Examen Médian - 1 heure 30

Arbres binaires de recherche

Les chaînes de caractères

TP n 2 Concepts de la programmation Objets Master 1 mention IL, semestre 2 Le type Abstrait Pile

Cours d algorithmique pour la classe de 2nde

Simulations numériques de figures de diffractions à l'usage de la sixième secondaire et du premier baccalauréat

Manuel de l administrateur

Chapitre 10. Les interfaces Comparable et Comparator 1

Contrats sur différence (CFD)

IN Cours 1. 1 Informatique, calculateurs. 2 Un premier programme en C

Algorithmes de recherche

Cours 3 : Python, les conditions

PROBLEMES D'ORDONNANCEMENT AVEC RESSOURCES

Plateforme PAYZEN. Définition de Web-services

E-Biothon : Une plate-forme pour accélérer les recherches en biologie, santé et environnement.

6 - Le système de gestion de fichiers F. Boyer, UJF-Laboratoire Lig, Fabienne.Boyer@imag.fr

LE PROBLEME DU PLUS COURT CHEMIN

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

Travaux pratiques. Compression en codage de Huffman Organisation d un projet de programmation

Cours Informatique Master STEP

Algorithmes d'apprentissage

Documentation RBS Change E-Commerce Core

F = B * I * L. Force en Newtons Induction magnétique en teslas Intensité dans le conducteur en ampères Longueur du conducteur en mètres

Représentation d un entier en base b

Introduction au maillage pour le calcul scientifique

INSTRUCTIONS COMPLÉTES

Cours 02 : Problème général de la programmation linéaire

Intelligence Artificielle et Systèmes Multi-Agents. Badr Benmammar

Chapitre 4 : Guide de Mouvement et Masque

Règlement d études et d examens concernant la formation de musiciens et musiciennes d Eglise non professionnels

MABioVis. Bio-informatique et la

FAQ Conditions de candidature... 2 Procédure de candidature et remise de prix... 2 Le dossier de candidature... 3

Mini_guide_Isis.pdf le 23/09/2001 Page 1/14

TRUECRYPT SUR CLEF USB ( Par Sébastien Maisse 09/12/2007 )

Java Licence Professionnelle Cours 7 : Classes et méthodes abstraites

Les structures de données. Rajae El Ouazzani

Les arbres binaires de recherche

CHAPITRE III: L'ENSEIGNEMENT ET LA RECHERCHE

Objets Combinatoires élementaires

L ARBORESCENCE. Qu est-ce qu un dossier? L arborescence?

Chapitre 1 I:\ Soyez courageux!

Note de cours. Introduction à Excel 2007

Bases moléculaires des mutations Marc Jeanpierre

Big Data et Graphes : Quelques pistes de recherche

HEG Gestion de la Qualité L.Cornaglia. Les référentiels SMI, normes, processus de certification

I. Introduction aux fonctions : les fonctions standards

Organigramme / Algorigramme Dossier élève 1 SI

FDS/RDDH CHARTE DE NOMMAGE

CHAPITRE 3 LA SYNTHESE DES PROTEINES

Polymorphisme, la classe Object, les package et la visibilité en Java... 1

de calibration Master 2: Calibration de modèles: présentation et simulation d

Groupe de travail Low Cost. Frédéric DIDIER Jacques WITKOWSKI

Quelques Algorithmes simples

LE TABLEUR OPENOFFICE CALC : CONTRÔLES DE FORMULAIRES ACCÈS AUX BASES DE DONNÉES

Règlement du jeu Concours Photo #cvchatel

ANALYSE DE RISQUE AVEC LA MÉTHODE MEHARI Eric Papet Co-Fondateur SSII DEV1.0 Architecte Logiciel & Sécurité Lead Auditor ISO 27001

Initiation à la programmation en Python

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.

Le module Supply Chain pour un fonctionnement en réseau

1 Définition et Appel d une fonction. V. Phan Luong. Cours 4 : Fonctions

Big Data et Graphes : Quelques pistes de recherche

Traitement de texte : Quelques rappels de quelques notions de base

Initiation à l algorithmique

RapidMiner. Data Mining. 1 Introduction. 2 Prise en main. Master Maths Finances 2010/ Présentation. 1.2 Ressources

N 5 SÉNAT SECONDE SESSION ORDINAIRE DE PROJET DE LOI ADOPTÉ AVEC MODIFICATIONS PAR L'ASSEMBLÉE NATIONALE, EN DEUXIÈME LECTURE,

Chapitre V : La gestion de la mémoire. Hiérarchie de mémoires Objectifs Méthodes d'allocation Simulation de mémoire virtuelle Le mapping

.NET - Classe de Log

Le client est une personne qui bénéficie des services du Fournisseur et il est enmême temps

Tune Sweeper Manuel de l'utilisateur

Compression Compression par dictionnaires

Identification de nouveaux membres dans des familles d'interleukines

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

Travaux pratiques avec RapidMiner

Structures algébriques

Bernard HAMM, Évelyne LAVOISIER

Mini_guide_Isis_v6.doc le 10/02/2005 Page 1/15

Théorie et Codage de l Information (IF01) exercices Paul Honeine Université de technologie de Troyes France

AP 2nde G.T : «Organiser l information de manière visuelle et créative»

1 Démarrer L écran Isis La boite à outils Mode principal Mode gadget Mode graphique...

Qu'est-ce qu'un moteur de recherche. Moteur de recherche sur Internet

LE MODELE CONCEPTUEL DE DONNEES

Comparer l intérêt simple et l intérêt composé

chapitre 4 Nombres de Catalan

LibreOffice Calc : introduction aux tableaux croisés dynamiques

Transcription:

RdF Reconnaissance des Formes Semaine 11 : RDF sur les chaînes Master ASE : http://master-ase.univ-lille1.fr/ Master Informatique : http://www.fil.univ-lille1.fr/ Spécialité IVI : http://master-ivi.univ-lille1.fr/

Plan du cours 1 correspondance, recherche de sous-chaînes 2 Distances de chaînes distance edit 2

Reconnaissance de chaînes : introduction Définition une chaîne est une séquence ordonnée de symboles discrets tirés d'un alphabet 0,1, 0,1,2,...,9, a,b,c,..., z, A,G,C,T Exemple x =AGCTTCGAATC où chaque lettre représente un acide nucléique de l'adn (adénine, guanine, cytosine et thymine) en raison du caractère nominal des éléments, pas de notion évidente/intuitive de distance entre les chaînes les chaînes ne sont pas des vecteurs longueurs éventuellement différentes 3

Problème (probablement le plus important en RdF chaînes) étant donnés une chaîne x et un texte t, déterminer si x est une sous-chaîne de t (string-matching existence problem ou SME) Généralisation déterminer toutes les occurrence de x dans t, et leurs positions (string-matching computation problem ou SMC) = lister tous les shifts valides (shift : décalage s requis pour aligner le 1er caractère de x avec le s+1ème caractère de t) 4

Exemples chaînes d'adn en bio-informatique t Aa Ga Ca Ta T C G A A T C A C A G T x s=5 C G A A de manière réaliste, la taille de x peut être 1.000 et la taille de t peut être 10.000.000 la taille du Diccionario de la RAE (diccionnaire officiel espagnol) a 87.000 entrées, qui sont basées sur une base de données de 270 Mentrées une recherche de «Obama» sur Google produit 710.000.000 de pages in 0.20 secondes 5

Autre exemple musical Fugue no2 de Bach en Do - (composition où les différentes voix s'imitent les unes les autres) ouverture avec un thème principal (le sujet), qui se répète ensuite en imitation dans les autres voix thème : 2nde mineure descandante, 2nde mineure montante, descente plus grande qu'une 4rte problème : reconnaître les occurrences du thème dans un fichier MIDI 6

Préfixes et suffixes on dit que y est un préfixe de x, noté y [ x si x = yw, avec w une chaîne quelconque (note : ⅼyⅼ ⅼxⅼ) de la même manière, y est un suffixe de x, noté y ] x si x = wy, avec w une chaîne quelconque (ici encore : ⅼyⅼ ⅼxⅼ) par convention, la chaîne vide est préfixe et suffixe de toute chaîne Exemple soit la chaîne S1 = {abca}, S2 = {cbac} et S3 = {abcaabccbacbac} S1 est un préfixe de S3 puisqu'il existe une chaîne w1 = {abccbacbac} telle que S3 = S1w1 de manière analogue, S2 est suffixe de S3 parce que S3 = w2s2, où w2 = {abcaabccba} Petit excercice montrer que [ et ] sont des relations d'ordre 7

Algorithme naïf n = longueur(t), m = longueur(x) for s in 0..n-m if (x[1,m] = t[s+1,s+m]) print s return Algorithme de Boyer-Moore efficace, implémenté dans la plupart des éditeurs de texte 8

Puissance de l'algorithme de Boyer-Moore après un mismatch, deux heuristiques indépendantes et parallèles proposent des shifts sûrs, le plus grand est choisi - tous deux opèrent de droite à gauche à chaque position 1. Heuristique du «bon suffixe» aligne le suffixe courant de t avec le plus grand préfixe de x qui correspond, le cas échéant ==> construire la table des 1ères occurrences de tous les suffixes de x à l'exception des suffixes eux-mêmes ex : «estimates» = s,2 ; es,1 ; tes,0 ; 0 pour tous les autres 9

Puissance de l'algorithme de Boyer-Moore après un mismatch, deux heuristiques indépendantes et parallèles proposent des shifts sûrs, le plus grand est choisi - tous deux opèrent de droite à gauche à chaque position 2. Heuristique du «mauvais caractère» utilise le caractère le plus à droite de t qui ne correspond pas avec le caractère aligné de x propose d'aligner ce mauvais caractère avec l'occurrence la plus à droite de ce caractère dans x s'il existe ==> construire la table des caractères de x contenant le rang de leur dernière occurrence (0 pour les autres) ex : «estimates» = a,6 ; e,8 ; i,4 ; m,5 ; s,9 ; t,7 ; 0 pour les autres 10

Exemple d'exécution de l'algorithme de Boyer-Moore 11

Autres algorithmes Algorithme de Knuth-Morris-Pratt variante de Boyer-Moore - table de correspondances partielles Algorithme de Rabin-Karp utilise une fonction de hachage - on recalcule la fonction de hachage pour chaque sous-chaîne du texte dont la longueur est celle du motif - gain de performance important si l'on utilise une fonction de hachage qui a la propriété que l'on puisse facilement calculer t[i+1..j+1] en fonction de t[i..j] 12

Distances de chaînes Problème étant données deux chaînes x et y, combien d'opérations fondamentales permettent de passer de l'une à l'autre? Opérations Substitution: un caractère de x est remplacé par un autre dans y Insertion: un caractère est inséré dans x (longueur: +1) Suppression: un caractère est supprimé dans x (longueur: -1) Algorithme de Levenshtein (une «Edit Distance») for i in 0..m : c[i,0] = i for j in 0..n : c[0,j] = j for i in 0..m for j in 0..n c[i,j] = min(c[i-1,j]+1, // insertion c[i,j-1]+1, // suppression c[i-1,j-1]+1 (x[i]=y[j]?1:0) // substitution ou même car return c[m,n] 13

Alternatives de correspondance Correspondance avec erreurs étant donnée une chaîne x et un texte t, déterminer le shift s pour lequel la distance edit entre x et la sous-chaîne de t à la position s+1 est minimale algorithme similaire à la distance edit ==> minimiser distance(x,y), avec y une sous-chaîne de t Correspondance avec le symbole «don't-care» on a en plus le caractère ø, qui peut correspondre à tous formellement, pas de différence dans les algorithmes - mais ils deviennent moins efficaces 14

Pour approfondir Duda, Hart, Stork, «Pattern Classification», 2ème édition, Wiley-Interscience, 2001. http://rii.ricoh.com/~stork/dhs.html Boyer, Moore, «A fast string searching algorithm», Communications of the ACM. 20:762-772, 1977. http://download-book.net/quinlan-c4.5-pdf-doc.html 15