Arbres, préfixes et suffixes.

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

Objets Combinatoires élementaires

Identification de nouveaux membres dans des familles d'interleukines

Gestion des Clés Publiques (PKI)

chapitre 4 Nombres de Catalan

1 Recherche en table par balayage

Algorithmes récursifs

BACCALAURÉAT GÉNÉRAL SESSION 2012 OBLIGATOIRE MATHÉMATIQUES. Série S. Durée de l épreuve : 4 heures Coefficient : 7 ENSEIGNEMENT OBLIGATOIRE

Chaînes de Markov au lycée

La NP-complétude. Johanne Cohen. PRISM/CNRS, Versailles, France.

Quelques Algorithmes simples

L exclusion mutuelle distribuée

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

Big Data et Graphes : Quelques pistes de recherche

Exercices types Algorithmique et simulation numérique Oral Mathématiques et algorithmique Banque PT

Le chiffre est le signe, le nombre est la valeur.

Les structures de données. Rajae El Ouazzani

Gestion réactive des opérations de maintien et d actualisation réglementaire et technologique des systèmes complexes.

Chap 4: Analyse syntaxique. Prof. M.D. RAHMANI Compilation SMI- S5 2013/14 1

M06/5/COMSC/SP1/FRE/TZ0/XX INFORMATIQUE NIVEAU MOYEN ÉPREUVE 1. Mardi 2 mai 2006 (après-midi) 1 heure 30 minutes INSTRUCTIONS DESTINÉES AUX CANDIDATS

SOCLE COMMUN - La Compétence 3 Les principaux éléments de mathématiques et la culture scientifique et technologique

Probabilités Loi binomiale Exercices corrigés

CAHIER DES CHARGES GESTION DES STOCKS

# 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>

Communications collectives et ordonnancement en régime permanent pour plates-formes hétérogènes

CH.6 Propriétés des langages non contextuels

Introduction à la théorie des graphes. Solutions des exercices


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

Réaliser la fiche de lecture du document distribué en suivant les différentes étapes de la méthodologie (consulter le support du TD!

Le code à barres EAN 13 mes premiers pas...

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

Big Data et Graphes : Quelques pistes de recherche

DOCM Solutions officielles = n 2 10.

UML (Paquetage) Unified Modeling Language

Plus courts chemins, programmation dynamique

Le langage SQL Rappels

Ebauche Rapport finale

1 Introduction au codage

ÉPREUVE COMMUNE DE TIPE Partie D

Initiation à la Programmation en Logique avec SISCtus Prolog

Probabilités sur un univers fini

LES GENERATEURS DE NOMBRES ALEATOIRES

FICHE 1 : GENERALITES SUR EXCEL

Continuité et dérivabilité d une fonction

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

Après examen par le conseil des ministres réuni le 8 ramadan 1417 (17 janvier 1997),

Baccalauréat ES Antilles Guyane 12 septembre 2014 Corrigé

Nouvelles propositions pour la résolution exacte du sac à dos multi-objectif unidimensionnel en variables binaires

Eléments de Théorie des Graphes et Programmation Linéaire

arcopole Studio Annexe 4 Intégration LDAP et processus d authentification Site du programme arcopole :

INF 232: Langages et Automates. Travaux Dirigés. Université Joseph Fourier, Université Grenoble 1 Licence Sciences et Technologies

Chapitre 10. Les interfaces Comparable et Comparator 1

TP 1. Prise en main du langage Python

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

Université Ibn Zohr Excel Résume de cours

BACCALAURÉAT PROFESSIONNEL ÉPREUVE DE MATHEMATIQUES. EXEMPLE DE SUJET n 2

Bac Blanc Terminale ES - Février 2011 Épreuve de Mathématiques (durée 3 heures)

EBS 204 E C B S. Publication : Novembre 96

Pour l épreuve d algèbre, les calculatrices sont interdites.

Algorithmique et Programmation

Démonstration d utilisation De NesmaCom

NIMEGUE V3. Fiche technique 3.07 : Sauvegarde / Restauration manuelle

Noms de domaines internationalisés (IDN)

Exercice 6 Associer chaque expression de gauche à sa forme réduite (à droite) :

28/06/2013, : MPKIG034,

Introduction à MATLAB R

LE PROCESSUS ( la machine) la fonction f. ( On lit : «fonction f qui à x associe f (x)» )

Excel 2007 Niveau 3 Page 1

Baccalauréat ES Polynésie (spécialité) 10 septembre 2014 Corrigé

AVIS DE CONCOURS D ENTREE AU CESAG ANNEE ACADEMIQUE :

MATLAB : COMMANDES DE BASE. Note : lorsqu applicable, l équivalent en langage C est indiqué entre les délimiteurs /* */.

Présentation du Master Ingénierie Informatique et du Master Science Informatique , Année 2 Université Paris-Est Marne-la-Vallée

Les cartes de fidélités... 2 Natures de pièces... 5 Impression des chèques cadeaux... 6 Statistiques fidélités... 8 Fiche client...

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

Texte Agrégation limitée par diffusion interne

données en connaissance et en actions?

Corrigé des TD 1 à 5

MIS 102 Initiation à l Informatique

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.

Qu est ce qu un réseau social. CNAM Séminaire de Statistiques Appliquées 13/11/2013. F.Soulié Fogelman 1. Utilisation des réseaux sociaux pour le

Initiation à la programmation en Python

Baccalauréat ES/L Amérique du Sud 21 novembre 2013

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

Projet Active Object

ÉTUDE DE L EFFICACITÉ DE GÉOGRILLES POUR PRÉVENIR L EFFONDREMENT LOCAL D UNE CHAUSSÉE

Joëlle Bolot, Stéphane Cipriani.

Cours d algorithmique pour la classe de 2nde

Gestion d'une billeterie défilé des talents

Introduction à l étude des Corps Finis

Documentation SecurBdF

Utilisation d objets : String et ArrayList

LA PHYSIQUE DES MATERIAUX. Chapitre 1 LES RESEAUX DIRECT ET RECIPROQUE

Les métiers de l informatique. à la direction générale des Finances publiques

La gestion de données dans le cadre d une application de recherche d alignement de séquence : BLAST.

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

CHAPITRE 3 LA SYNTHESE DES PROTEINES

Exemple On lance une pièce de monnaie trois fois de suite. Calculer la probabilité d obtenir exactement deux fois pile.

Travaux dirigés d introduction aux Probabilités

Introduction a l'algorithmique des objets partages. Robert Cori. Antoine Petit. Lifac, ENS Cachan, Cachan Cedex. Resume

Transcription:

Arbres, préfixes et suffixes. Épreuve pratique d algorithmique et de programmation Concours commun des écoles normales supérieures Durée de l épreuve: 3 heures 30 minutes Juin/Juillet 2011 AENION! N oubliez en aucun cas de recopier votre u 0 à l emplacement prévu sur votre fiche réponse Important. Sur votre table est indiqué un numéro u 0 qui servira d entrée à vos programmes. Les réponses attendues sont généralement courtes et doivent être données sur la fiche réponse fournie à la fin du sujet. À la fin du sujet, vous trouverez en fait deux fiches réponses. La première est un exemple des réponses attendues pour un ũ 0 particulier (précisé sur cette même fiche et que nous notons avec un tilde pour éviter toute confusion!). Cette fiche est destinée à vous aider à vérifier le résultat de vos programmes en les testant avec ũ 0 au lieu de u 0. Vous indiquerez vos réponses (correspondant à votre u 0 ) sur la seconde et vous la remettrez à l examinateur à la fin de l épreuve. En ce qui concerne la partie orale de l examen, lorsque la description d un algorithme est demandée, vous devez présenter son fonctionnement de façon schématique, courte et précise. Vous ne devez en aucun cas recopier le code de vos procédures! Quand on demande la complexité en temps ou en mémoire d un algorithme en fonction d un paramètre n, on demande l ordre de grandeur en fonction du paramètre, par exemple: O(n 2 ), O(n log n),... Il est recommandé de commencer par lancer vos programmes sur de petites valeurs des paramètres et de tester vos programmes sur des petits exemples que vous aurez résolus préalablement à la main ou bien à l aide de la fiche réponse type fournie en annexe. Enfin, il est recommandé de lire l intégralité du sujet avant de commencer afin d effectuer les bons choix de structures de données dès le début.

1 Introduction On s intéresse dans ce sujet aux problèmes de recherche de motifs dans des séquences de caractères. Ces problèmes sont très présents dans le domaine de la génomique : l ADN est représenté comme une séquence de caractères A,, et C, et on souhaite rechercher un motif donné dans une séquence d ADN, les occurrences de plusieurs motifs dans une ou plusieurs séquences, ou encore les motifs communs qui apparaîssent dans plusieurs séquences. On se propose d étudier un outil permettant la conception d algorithmes efficaces pour ces problèmes. Dans ce sujet, on travaillera toujours sur des séquences de caractères qui ne peuvent prendre que les quatre valeurs A,, et C. 2 énération aléatoire de séquences On considére la suite d entiers (u k ) définie pour k 0 par : { votre u0 (à reporter sur votre fiche) si k = 0 u k = 15 091 u k 1 mod 64 007 si k 1 Question 1 Que valent : u 10 u 100 u 1000 Pour une séquence de caractères S de longueur l et 1 i l, on note S[i] le ième caractère de S. On définit des séquences de caractères aléatoires de la manière suivante : Définition 1 Pour k, l N 2 on note S k,l la séquence de l caractères sur l alphabet {A,,, C}, telle que pour 1 i l, le ième caractère de cette séquence est donné par : A si u i+k 1 mod 4 = 0 si u i+k 1 mod 4 = 1 S k,l [i] = si u i+k 1 mod 4 = 2 C si u i+k 1 mod 4 = 3 Question 2 Donnez les séquences suivantes : S 0,5 S 10,5 S 20,5 On définit la liste de n séquences L k,n,l = (S k,l, S k+l,l, S k+2l,l,..., S k+(n 1) l,l ). 3 Arbres préfixes On rappelle qu un arbre enraciné est un ensemble de nœuds et d arêtes tels que chaque nœud est : soit une feuille f ; soit un nœud interne u, qui possède un ou plusieurs fils qui sont des nœuds de l arbre ; u est relié à chacun de ses fils v par une arête (u, v) et u est appelé père de v. On nomme racine d un arbre le seul nœud qui ne possède pas de père. Les nœuds comme les arêtes d un arbre peuvent être munis d étiquettes. On définit les arbres préfixes de la façon suivante : 1 / 4

Définition 2 L arbre préfixe d un ensemble de séquences E est un arbre enraciné tel que : chaque arête est étiquetée par une lettre de l alphabet ; pour un nœud u et deux de ses fils v et w, l arête (u, v) ne porte pas la même étiquette que l arête (u, w) ; à chaque séquence S de l ensemble E correspond une feuille f de l arbre telle que la concaténation des caractères étiquetant les arêtes sur le chemin de la racine à f est égale à S ; de même chaque feuille correspond à une séquence de E. R A C A A 3 4 C 1 5 2 Figure 1 Exemple d arbre préfixe. La racine est marquée par la lettre R. La figure 1 représente l arbre préfixe des séquences AC, AC, AA, A, et AC. La feuille notée 1 correspond par exemple à la séquence AC, obtenue en lisant les caractères depuis la racine jusqu à cette feuille. Question à développer pendant l oral : Montrez que dans un arbre préfixe, un nœud a au plus quatre fils. Question 3 Donnez le nombre de nœuds ainsi que le nombre d arêtes étiquetées par la lettre A dans les arbres préfixes des listes de séquences suivantes : L 0,5,4 L 0,50,10 L 0,50,40 Question à développer pendant l oral : Quelle est la complexité de votre algorithme? Dans l étude de complexité des algorithmes suivants, on supposera désormais que les arbres préfixes des listes de séquences ci-dessus ont été construites, et on ne prendra plus en compte la complexité de leur création. On munit les lettres de l alphabet d un ordre total arbitraire : A < < < C et on étend cet ordre aux séquences à l aide de l ordre lexicographique : pour deux séquences S 1 et S 2, si i est l index du premier caractère différent dans S 1 et S 2 ( k < i, S 1 [k] = S 2 [k]) et que S 1 [i] < S 2 [i], alors on a S 1 < S 2. Par exemple AAC < AACA car les trois premiers caractères sont identiques et < C pour le troisième. Question 4 Pour les ensembles de séquences suivants, donnez la séquence qui apparaît en 4ème position dans l ordre lexicographique : L 0,5,4 L 0,50,10 L 0,50,40 (on ne donnera que les 10 premiers caractères pour cette dernière séquence) 2 / 4

Question 5 Donnez le plus long préfixe commun à au moins k séquences distinctes des listes suivantes (s il existe plusieurs tels préfixes, on donnera le plus petit au sens de l ordre lexicographique) : L 0,5,4, k = 2 L 0,50,10, k = 4, L 0,50,40, k = 10 Question 6 Donnez la plus courte séquence qui n est préfixe d aucune séquence des listes suivantes (en cas d égalité, on donnera la plus petite au sens de l ordre lexicographique) : L 0,5,4 L 0,50,10 L 0,50,40 Question à développer pendant l oral : Pour les questions 4, 5 et 6, donnez la complexité de vos algorithmes. 4 Arbre des suffixes et recherche de motifs dans un texte On considère une séquence S de n caractères. On appelle suffixe de S commençant au caractère i, et on note S[i... n] la séquence de caractères S[i],... S[n] extraite de S. À partir d une séquence S de n caractères sur l alphabet {A,,, C}, on considère la séquence S obtenue en rajoutant un caractère de terminaison à la fin de la séquence : S = S[1],..., S[n],. On définit l arbre des suffixes de S de la façon suivante : Définition 3 Un arbre des suffixes pour la séquence S est un arbre enraciné comprenant exactement n + 1 feuilles, qui sont numérotées de 1 à n + 1. Les arêtes sont étiquetées à l aide des caractères A,,, C et, de telle sorte que pour un nœud interne u et deux de ces fils v et w, (u, v) et (u, w) ne sont pas étiquetées par le même caractère et que la concaténation des caractères étiquetant les arêtes sur le chemin de la racine à la feuille i pour i n correspond à la séquence S[i... n], et la feuille n + 1 correspond à la séquence. La figure 2 montre un exemple d arbre des suffixes. A 6 A 5 A 4 3 2 1 Figure 2 Arbre des suffixes pour la séquence A. 3 / 4

Question à développer pendant l oral : Montrez que si la séquence S ne se termine pas par un caractère spécial, il n existe pas nécessairement d arbre des suffixes pour S. Question 7 Construisez l arbre des suffixes pour les textes suivants, donnez leur nombre de nœuds, ainsi que le nombre d arêtes étiquetées par la lettre A : S 0,10 S 10,100 S 110,1000 Question à développer pendant l oral : On souhaite rechercher un grand nombre de motifs dans un même texte. Proposez une méthode efficace pour ce problème, et donnez sa complexité. Dans quels cas cette méthode est elle intéressante? Question 8 On appelle sous-séquence consécutive d une séquence S toute séquence de caractères L de taille l telle qu il existe k 0 avec L[i] = S[i + k] pour tout 1 i l. Donnez la séquence de caractères la plus courte qui n est pas une sous-séquence des séquence suivantes (en cas d égalité, on donnera la séquence la plus petite au sens de l ordre lexicographique) : S 0,10 S 10,100 S 110,1000 5 Comparaison de deux séquences On cherche à déterminer la ressemblance de deux séquences de caractères. On appelle sous-séquence non consécutive commune à deux séquences de caractères S 1 et S 2 une séquence L telle que L[i] = S 1 [f(i)] = S 2 [g(i)], où f et g sont deux fonctions strictement croissantes. Par exemple AAC est une sous-séquence non consécutive commune à AACAC et à AACAAC. Question à développer pendant l oral : On note l(i, j) la plus longue sous-séquence non consécutive commune à S 1 [1..i] et S 2 [1..j]. Exprimez l(i, j) en fonction de l(i, j ) pour i i et j j et des caractères de S 1 et S 2. Question 9 Donnez la longueur de la plus longue sous-séquence non consécutive des séquences suivantes : S 0,10 et S 10,10 S 0,100 et S 100,100 S 0,1000 et S 1000,1000 On s intéresse maintenant aux sous-séquences consécutives communes à deux séquences, comme définies dans la partie précédente. Question 10 Donnez la plus longue sous-séquence consécutive commune aux paires de textes suivants (en cas d égalité, on donnera la plus petite dans l ordre lexicographique) : S 0,10 et S 10,10 S 0,100 et S 100,100 S 0,1000 et S 1000,1000 4 / 4

Fiche réponse type: Arbres, préfixes et suffixes. ũ 0 : 115 Question 1 52892 37008 14225 Question 2 CACAC AAA AAC Question 3 17,7 404,101 1897,499 Question 4 CAC AAAA AAAC... Question 5 CAC AA Question 6 C Question 7 50, 15 4891, 1533 497366, 129684 Question 8 AAA A Question 9 5 62 I / II

649 Question 10 A AAAC ACACCAA II / II

Fiche réponse: Arbres, préfixes et suffixes. Nom, prénom, u 0 :.......................................... Question 1 Question 2 Question 3 Question 4 Question 5 Question 6 Question 7 Question 8 Question 9 I / II

Question 10 II / II