Mines Option Informatique MP 2018Sujet, corrigé et rapport du jury
- Automates finis déterministes
- Langages reconnaissables
- Programmation en Caml
- Listes et tableaux
- Types enregistrements
- Complexité des algorithmes
- Preuve de terminaison
Téléchargements
Présentation du sujet
Recherche de motifs dans un texte : automates finis déterministes à repli et algorithme de Knuth-Morris-PrattAfficher ou masquer la section
Présentation du sujet
Le sujet étudie des algorithmes de recherche efficace des occurrences d'un ou plusieurs motifs dans une longue chaîne de caractères, en Caml. Il part d'une recherche naïve, introduit les automates finis déterministes à repli, construit l'automate de Knuth-Morris-Pratt puis ouvre sur la recherche simultanée d'un ensemble de motifs.
- 1Partie 1 : recherche naïve d'un motifRecouvrement possible des occurrences, fonctions longueur et préfixe sur les listes, recherche naïve et sa complexité.
- 2Partie 2 : automates finis déterministes à repliDéfinition des automates à repli, équivalence avec un automate déterministe complet, copie et suppression des replis, calcul des occurrences en temps linéaire.
- 3Partie 3 : automate de Knuth-Morris-PrattConstruction de l'automate KMP associé à un motif, preuve de sa caractérisation, complexité et comparaison avec la recherche naïve.
- 4Partie 4 : ensemble de motifs et automates à repli arborescentsRecherche d'un dictionnaire de motifs par KMP répété, puis stratégie plus efficace inspirée d'un automate arborescent.
Ce qu'a observé le jury
5 erreurs relevéesRecouvrement des occurrences ignoré · Fonction préfixe et appels inutiles à longueur · Calculs de complexité interminablesAfficher ou masquer la section
Ce qu'a observé le jury
5 erreurs relevéesLe sujet, qui combine la notion formelle d'automate et la manipulation de structures de données élaborées, permet selon le jury de bien évaluer le programme des deux années. La grande majorité des candidats aborde l'ensemble des questions et certains finissent en passant les plus difficiles. Le jury regrette le peu d'efforts de rédaction sur les questions théoriques et des codes parfois trop compliqués.
Les erreurs les plus sanctionnées
- 1Recouvrement des occurrences ignoréQ1, Q2
Les questions 1 et 2 visaient à montrer que deux occurrences d'un motif peuvent se chevaucher ; ne pas le voir fausse ensuite les codes.
« Beaucoup de candidats passent à côté de cette finesse et se trouvent ensuite pénalisés dans l’écriture des codes. »
- 2Fonction préfixe et appels inutiles à longueurQ3, Q4
Les cas d'arrêt de la fonction préfixe sont mal gérés, et appeler longueur sur le texte rend la complexité linéaire en la taille du texte au lieu de celle du motif.
« La fonction préfixe pose parfois des difficultés cependant (mauvaise gestion des cas d’arrêt). »
- 3Calculs de complexité interminablesQ6
Certains se perdent dans de longues sommes pour un résultat faux ; on attend un O cohérent avec le code proposé.
« Le calcul de complexité conduit parfois le candidat à se perdre dans de très gros calculs de sommes »
- 4Justifications théoriques imprécisesQ7
Des arguments contradictoires, comme une suite à la fois strictement décroissante et stationnaire, sont trop fréquents.
« Les arguments théoriques attendus ici sont précis. »
- 5Complexité imposée non respectéeQ10, Q11
Peu de candidats voient la subtilité de la complexité demandée et annoncent le résultat de l'énoncé alors que leur propre code ne le vérifie pas.
Ce qui a été bien réussi
- Une certaine aisance dans la manipulation des objets de type élaboré a été globalement appréciée.
- Les candidats montrent une certaine aisance dans la manipulation des listes (question 5).
- La présentation des copies est globalement satisfaisante et quelques rares excellentes copies ont été lues.
Conseils du jury
- Donner des arguments précis aux questions théoriques plutôt que des justifications superficielles.
- Écrire des codes clairs et simples, en utilisant l'indentation.
- Construire les automates en suivant exactement la construction décrite par l'énoncé.
- Vérifier que la complexité annoncée correspond bien au code écrit.
Synthèse rédigée par WikiPrépa à partir du rapport officiel du jury (à télécharger en PDF). Les citations sont extraites du rapport.
Ces sujets peuvent vous intéresser
Lecture du sujet en ligne
L'énoncé complet, avec les formules et les figures, sans ouvrir le PDF.Afficher ou masquer la section
Lecture du sujet en ligne
ÉCOLE DES PONTS PARISTECH, ISAE-SUPAERO, ENSTA PARISTECH, TELECOM PARISTECH, MINES PARISTECH, MINES SAINT-ÉTIENNE, MINES NANCY, IMT Atlantique, ENSAE PARISTECH.
Concours Centrale-Supélec (Cycle International), Concours Mines-Télécom, Concours Commun TPE/EIVP.
CONCOURS 2018
ÉPREUVE D'INFORMATIQUE MP
Durée de l'épreuve :
3 heures
Les candidats sont priés de mentionner de façon apparente sur la première page de la copie :
INFORMATIQUE - MP
L'énoncé de cette épreuve comporte 8 pages de texte.
Abstract
Si, au cours de l'épreuve, un candidat repère ce qui lui semble être une erreur d'énoncé, il le signale sur sa copie et poursuit sa composition en expliquant les raisons des initiatives qu'il est amené à prendre.
Préliminaire concernant la programmation
Définitions générales
let lambda
On supposera que les éléments de
1 Recherche naïve d'un motif
- 3
- 6
- 12
- 16
2 Automates finis déterministes à repli
-
F ⊆ Q_A est un ensemble d'états, appelés finals. -
δ : Q_A × Σ → Q_A est une fonction partielle de transition (c'est-à-dire, une fonction dont le domaine de définition est un sous-ensemble deQ_A × Σ ); on impose queδ(0, α) soit défini pour toutα ∈ Σ . -
ρ : Q_A∖{0} → Q_A est une application (c'est-à-dire, une fonction totale), appelée fonction de repli, telle que pour toutq ∈ Q_A avecq ≠ 0, ρ(q) < q . On prolongeρ en convenantρ(0) = 0 .
Un AFDR est représenté en Caml par le type enregistrement suivant :
type afdr = {
final : bool vect;
transition : int vect vect;
repli: int vect;
};;;
où :
- final est un tableau de taille
k de booléens tel que siq ∈ Q_A , final. (q) contient true si et seulement siq ∈ F ; - transition est un tableau de taille
k de tableaux de tailleλ d'entiers, tel que siq ∈ Q_A etα_i ∈ Σ de codei , transition. (q). (i) contient -1 siδ(q, α_i) n'est pas défini, et contientδ(q, α_i) sinon; - repli est un tableau de taille
k d'entiers tel que repli. (0) contient 0 et repli. (q) pourq ∈ Q_A∖{0} contientρ(q) .
On observe que le type afdr ne code pas explicitement la valeur dek , maisk est par exemple la longueur du tableau final.
|
|
||||
|
|
|
|
|
|
| 0 | 1 | 0 |
|
|
| 1 | 2 | |||
| 2 | 3 | |||
| 3 | ||||
.jpg)
Montrer que pour tout
On dit qu'un AFDR
-
q_0 = 0 ; - pour tout
1 ⩽ i ⩽ p, q_i^′ = ρ^j(q_(i − 1)) avecj ⩾ 0 le plus petit entier tel queδ(ρ^j(q_(i − 1)), u_i) est défini ; - pour tout
1 ⩽ i ⩽ p, q_i = δ(q_i^′, u_i) ; -
q_p ∈ F .
Ainsi,
3 Automate de Knuth-Morris-Pratt
-
F = {k} . - Pour tout
1 ⩽ i ⩽ k, δ(i − 1, u_i) = i et, pour toutα ∈ Σ∖{u_1}, δ(0, α) = 0 ; aucune autre transition n'est définie. - Pour tout
1 ⩽ i ⩽ k, ρ(i) est le plus grand entier0 ⩽ j < i tel queu_1…u_j est un suffixe deu_1…u_i .
On peut ainsi vérifier que l'automateA_1 de la question précédente est l'automate KMP associé à «aba »sur l'alphabetΣ = {a, b} .
Quelle est la complexité de cette fonction en terme des longueurs
4 Ensemble de motifs et automates à repli arborescents

Quelle est la complexité de cette fonction, en terme du nombre
ni une formalisation complète de cette approche, ni une implémentation, mais une stratégie générale et les grandes étapes nécessaires à la résolution du problème. On pourra faire l'hypothèse, pour simplifier, que l'ensemble
Quelles difficultés sont à prévoir dans l'implémentation? Quelle complexité peut-on espérer avec une telle approche, en terme du nombre
Fin de l'épreuve
Questions fréquentes
3 questionsSur quoi porte l'épreuve d'informatique Mines-Ponts MP 2018 ?Afficher ou masquer la section
Questions fréquentes
3 questionsSur quoi porte l'épreuve d'informatique Mines-Ponts MP 2018 ?
Le sujet traite de la recherche de motifs dans un texte : recherche naïve, automates finis déterministes à repli, automate de Knuth-Morris-Pratt et recherche d'un ensemble de motifs, avec des fonctions à écrire en Caml.
Quelles erreurs le jury a-t-il relevées en informatique option MP Mines 2018 ?
Le jury cite l'oubli du recouvrement possible des occurrences, une mauvaise gestion des cas d'arrêt, des calculs de complexité faux ou incohérents avec le code et des justifications théoriques imprécises.
Quels conseils de rédaction pour le code en informatique Mines MP 2018 ?
Le jury demande des codes clairs et indentés, des arguments précis pour les questions théoriques et une complexité réellement cohérente avec la fonction écrite.
Pas de description pour le moment
