Stages de Pré-Rentrée — Inscriptions ouvertes, places très limitées ! S'inscrire

Aller au contenu principal
Annale · 2022★★★Niveau moyenSession du 29 avril 2022· 1 689 candidats

Option Info Centrale-Supélec MP 2022, sujet & corrigé

Sujet OCaml en trois parties autour des automates et expressions rationnelles : miroir d'un langage et déterminisation (Brzozowski), algorithme dichotomique de Conway, dérivées d'Antimirov. Moyenne 9.45, σ=4.02, médiane 9.3. Sujet, corrigé Hadamard et rapport jury.

Mohamed K.

Mohamed K.

Centralien · MPSI puis MP · Recherche ML santé

Top piège du sujet

Parenthèses oubliées dans les appels de fonctions OCaml

Statistiques jury

Comment les candidats s'en sont sortis

Notes brutes officielles publiées par le jury — non harmonisées.

Moyenne

9.45

Médiane

9.3

Écart-type

4.02

Q1 (25%)

6.4

Q3 (75%)

12.4

Candidats présents

1 689

sur 1 816 inscrits · 7.0% d'absents

Comparaison

Comment ce sujet se compare aux autres

Moyenne en hausse de +0.45 par rapport à 2021 (9.45 vs 9). Écart-type plus resserré (σ 4.18 → 4.02), notes moins dispersées. Sujet plus accessible que la session précédente.

Calculateur

Où je me situe sur ce sujet ?

Entrez votre note brute. Le percentile et la position se mettent à jour en temps réel.

Analyse

Ce qu'a observé le jury

Synthèse Hadamard du rapport officiel — citations, chiffres et conseils du jury.

Présentation du sujet

Sujet OCaml en trois parties indépendantes sur les algorithmes classiques liant automates et expressions rationnelles. Partie I (moitié de l'épreuve) : miroir d'un langage, rationalité, déterminisation, automate déterministe minimal via l'algorithme de Brzozowski. Partie II : type OCaml pour les expressions rationnelles, algorithme dichotomique de Conway. Partie III (plus courte mais plus difficile) : dérivées d'Antimirov.

Structure de l'épreuve

  1. Partie IMiroir, rationalité, déterminisation, Brzozowski(Partie I, Q1-Q24)Difficile

    Moitié de l'épreuve. Bonne maîtrise des bases d'OCaml. Confusions persistantes avec Python sur listes/boucles for. Bien gérer la représentation binaire des entiers pour les ensembles d'états.

  2. Partie IIType OCaml pour expressions rationnelles + Conway(Partie II, Q25-Q44)Niveau attendu

    Implémentation manipulée à travers diverses questions, puis algorithme dichotomique de Conway (étoile d'une matrice d'expressions rationnelles → expression rationnelle d'un langage d'automate).

  3. Partie IIIDérivées d'Antimirov(Partie III, Q45+)Très difficile

    Plus courte mais plus difficile. Abordée sérieusement seulement par les meilleures copies. Q44 abordée par un nombre conséquent de copies, beaucoup d'erreurs de calcul.

Analyse globale du jury

« Le sujet était relativement long et la troisième partie, plus courte mais plus difficile, n'a été abordée sérieusement que dans les meilleures copies. Néanmoins, chaque question a été traitée de manière satisfaisante par au moins une copie. L'épreuve comportait à parts égales programmation et théorie. La partie programmation est plutôt réussie avec une bonne maitrise des bases d'OCaml, même si l'on rencontre encore des confusions avec Python sur les listes ou les boucles for. Les réponses théoriques ont été plus confuses, ou s'appuyaient sur des résultats hors programme mal maîtrisés (lemme de pompage, master theorem). »

Top pièges sanctionnés

  • Parenthèses oubliées dans les appels de fonctions OCaml-2 pts

    « L'oubli quasi-systématique des parenthèses dans le passage des paramètres à une fonction (par exemple f n - 1 au lieu de f (n-1)) ou de délimiteurs type begin/end. L'indentation, certes utile pour comprendre le code, n'est pas un délimiteur comme en Python. »

  • Mot clé ref ou ! oublié systématiquement-1 pts

    « L'oubli du mot clé ref ou du ! dans la gestion des variables. Si un oubli isolé est souvent pardonné, à l'inverse, leur absence systématique est clairement sanctionnée. »

  • Confusion {a^n b^n} ↔ {a* b*} (Q1, Q9)-2 pts

    « Confusion entre a*b* qui est un langage (ici l'ensemble des mots {a^n b^p, (n,p) ∈ N²}) et {a*b*} qui est un ensemble de langages. »

  • Sous-langage rationnel vs langage rationnel-1 pts

    « On rappelle qu'un sous-langage d'un langage rationnel n'est pas forcément rationnel (sinon, comme Σ* est rationnel, tout langage serait rationnel). »

  • Manipulation de listes au lieu d'ensembles bit (Q20-Q22-Q24)-2 pts

    « De nombreux candidats n'ont pas compris la démarche et ont manipulé ou généré dans leurs programmes des ensembles d'états sous forme de listes avant de les convertir à la fin sous la forme attendue au lieu de travailler directement avec la représentation choisie (ce qui a pour effet d'annuler l'optimisation proposée par le sujet). »

Source : Rapport du jury Centrale-Supélec · Info MP, session 2022 · PDF officiel ↗

Contexte

L'épreuve en quelques chiffres

L'épreuve Option Informatique Centrale-Supélec MP 2022 s'est déroulée fin avril 2022, en 4 heures, coefficient 10. Session 2022 : 1689 candidats présents (sur 1816 inscrits, taux d'absence 7.0%), l'option Info est choisie par environ un tiers des MP, contre deux tiers pour S2I.

Sujet en OCaml sur les automates et expressions rationnelles, en trois parties indépendantes. Partie I (moitié de l'épreuve) : miroir d'un langage, rationalité, déterminisation et algorithme de Brzozowski pour l'automate déterministe minimal. Partie II : type OCaml pour expressions rationnelles, algorithme dichotomique de Conway. Partie III (plus courte mais plus difficile) : dérivées d'Antimirov.

La moyenne brute s'est établie à 9.45/20, écart-type 4.02. Médiane 9.3, premier quartile 6.4, troisième quartile 12.4. 5 copies à 0 et 14 copies à 20/20 selon l'histogramme. L'épreuve équilibre programmation et théorie « à parts à peu près égales ».

Accompagnement personnalisé

Travaillez ce sujet avec un prof de l'équipe

Nos professeurs anciens taupins (Polytechnique, ENS, Centrale) reprennent ce sujet avec toi en cours particulier — corrigé ligne par ligne, méthode, pièges évités.

Cours 1 à 1 en visio ou présentielCorrigé détaillé du sujetMéthode de rédaction
Travailler avec un prof
RDV gratuit de 15 min

Trouvez le prof qu'il vous faut

Échangez avec notre équipe pour trouver le professeur idéal selon vos besoins.

Matching avec le bon prof
Programme sur-mesure
Premier cours d'essai

Sans engagement • Réponse sous 24h

Stratégie

Notre approche pour ce sujet

Sujet long sur une partie difficile du programme. Le jury alerte : « certains candidats se sont obstinés sur la première partie en oubliant que les parties étaient indépendantes ». Stratégie clé : passer en partie II avant de bloquer trop longtemps sur la I.

Si tu vises 9-12/20 (médiane à top 25%)

Cibler la programmation OCaml « plutôt réussie » sur la plupart des copies. En partie I : Q1-Q15 (miroir, rationalité, déterminisation classique). En partie II : Q26-Q35 (type OCaml + manipulation simple). Soigner la syntaxe OCaml, pas de mélange Python (boucles for sur listes, indentation-délimiteur).

Si tu vises 14+ (top 10%)

Maîtriser la représentation binaire des entiers comme ensembles d'états (Q19-Q22 : appartenance en O(1) au lieu de O(n) avec List.mem). Bien gérer Brzozowski avec accessibilité ↔ coaccessibilité (Q26-Q27). Tenter Q44 (souvent abordée). En partie III : Q45+ (dérivées d'Antimirov) sont la frontière du top.

Gestion des 4h : 1h45 sur partie I (Q1-Q24, mais ne pas s'obstiner si bloqué sur Brzozowski), 1h30 sur partie II (Q25-Q44, type OCaml puis Conway), 30 min sur partie III (Q45+, ce qui est faisable), 15 min de relecture. Lire l'énoncé en entier avant de coder, beaucoup de candidats ont relu une question après l'avoir codée et oublié des contraintes (taille des matrices globales, complexités demandées).

Conseils du jury

Cinq conseils transversaux

  • Syntaxe OCaml propre : parenthèses systématiques (f (n-1) pas f n - 1), ref et ! respectés, pas de Python déguisé. L'indentation n'est pas un délimiteur en OCaml.
  • Définitions rigoureuses en théorie : ab est un langage (mots anbp), pas un ensemble de langages. Σ* rationnel n'implique pas tout sous-langage rationnel.
  • Pas de hors-programme mal maîtrisé : pas de lemme de pompage, pas de master theorem direct C(n) = aC(n/2) + O(n^b). Démontrer proprement, par exemple D(n) = C(n)/a^n ramène à une somme estimable.
  • Construire l'automate déterministe en représentation binaire (entiers OCaml suffisent jusqu'à n bits), pas de manipulation de listes intermédiaires qui annule l'optimisation du sujet.
  • Entraînement régulier sur machine recommandé. Lire l'énoncé en entier avant de coder, et relire chaque question après pour vérifier qu'aucune contrainte n'a été oubliée.

Ressources

Téléchargements

Sujet officiel, corrigé Hadamard et rapport jury — tout en un endroit.

FAQ

Questions fréquentes — 2022

Partager

Préparation Centrale-Supélec · Info MP

Bossez ce sujet 2022 avec un ancien taupin

Nos professeurs analysent votre copie sur ce sujet, identifient vos faiblesses et structurent votre révision pour la session 2023.