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

Annale · 2023★★★Niveau moyenSession du 18 avril 2023· 880 candidats

Info A X-ENS MP 2023 — sujet, corrigé et rapport jury

Sujet OCaml en 7 parties largement indépendantes sur la compression entropique de textes. Moyenne 9.68, σ=3.6 sur 880 candidats. Sujet, corrigé Hadamard et synthèse rapport jury.

Mohamed K.

Mohamed K.

Centralien · MPSI puis MP · Recherche ML santé

Aperçu rapide

Difficulté

★★★Niveau moyen

Moyenne

9.68/20

Top 25%

12.1

Présents

880

Top piège du sujet : Tableau trié par ordre décroissant alors que croissant demandé (Q I.2)

Statistiques jury

Comment les candidats s'en sont sortis

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

Moyenne

9.68

Médiane

9.7

Écart-type

3.60

Q1 (25%)

7.3

Q3 (75%)

12.1

Candidats présents

880

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 7 parties largement indépendantes sur la compression entropique de textes. Partie I : comptage des occurrences. Partie II : représentation d'un alphabet par arbre binaire (feuilles étiquetées). Partie III : codes préfixes pour encoder/décoder. Partie IV : construction d'un arbre optimal (Huffman simplifié, sans files de priorité). Parties V-VI : arbres canoniques et alphabétiques pour limiter le coût de stockage de l'arbre. Partie VII : codes arithmétiques…

Structure de l'épreuve

  1. Partie IPartie I — Comptage des occurrences(Q I.1-I.2)Abordable

    Fonction q de S vers ℕ comptant les lettres d'un mot. Q1.1 : 98 % traitée, 84 % réussie. Q1.2 : tableau trié par ordre décroissant attendu mais souvent inversé.

  2. Partie IIPartie II — Arbres binaires d'étiquetage(Q II.1-II.4)Niveau attendu

    Représentation d'un alphabet comme feuilles d'un arbre binaire. Q II.1 : cardinal de T_[1,n] (90 % traitée, 76 % réussie en MP). Q II.4 : étiquette de chaque feuille (55 %, 13 %).

  3. Partie IIIPartie III — Codes préfixes pour (dé)compression(Q III.1-III.2)Difficile

    Tout arbre binaire décrit un code préfixe utilisable pour encoder/décoder. Q III.1 : 89 % traitée, 15 % réussie — preuve d'unicité par récurrence souvent confondue avec déterminisme. Q III.2 : 82 %, 12 % — gestion de la liste vide pour le mot vide.

  4. Partie IVPartie IV — Arbre optimal (Huffman simplifié sans files de priorité)(Q IV.1-IV.6)Difficile

    Construction d'un arbre optimal pour la taille du texte encodé. Approche similaire à Huffman mais sans files de priorité (contre-productif ici). Q IV.6 (code optionnel) : 20 % MP, 3 % réussite.

  5. Partie VPartie V — Arbres canoniques (représentation compacte)(Q V.1-V.x)Très difficile

    Arbres canoniques limitant le coût de stockage de l'arbre lui-même. Q V.1 : 33 % MP, 3 % réussite — codes longs sans explication.

  6. Partie VIPartie VI — Arbres alphabétiques (encore plus compacts)(Q VI.1-VI.2)Très difficile

    Compression encore plus de l'arbre, au prix d'un moindre taux de compression. Q VI.1 : 21 % MP, 2 % réussite — programmation dynamique avec parcours dans le mauvais sens.

  7. Partie VIIPartie VII — Codes arithmétiques rANS (approche alternative)(Q VII.1-VII.2)Très difficile

    Approche complètement différente : codes arithmétiques de type rANS pour s'approcher davantage du taux de compression théorique optimal. Largement non abordée.

Analyse globale du jury

« Sujet OCaml de compression entropique en 7 parties indépendantes. Pour la note maximale, il n'était pas nécessaire de traiter l'intégralité du sujet. MP : 880 candidats français, moyenne 9,68/20, σ=3,60. MPI : 228 candidats, 11,60/20, σ=3,43. Trop de codes inutilement complexes (>10 lignes vs attendues 5-10) et listes/tableaux confondus. Distinction stricte attendue entre listes et tableaux : l[i] sur une liste, ou x::t sur un tableau, sanctionnés. Concaténation de listes n'est pas O(1). Beaucoup de candidats raisonnent par récurrence en disant 'ainsi de suite' sans préciser sur quoi. Beaucoup ont prouvé que l'algorithme III.2 est déterministe au lieu de l'unicité de la décomposition. »

Top pièges sanctionnés

  • Tableau trié par ordre décroissant alors que croissant demandé (Q I.2)-1 pts

    « Beaucoup de candidats ont écrit une fonction qui renvoie un tableau trié par ordre décroissant, contrairement à ce qui est demandé dans le sujet. »

  • Confondre listes et tableaux : l[i] avec l liste, ou x::t avec t tableau, en O(1)-2 pts

    « Trop de candidats, probablement inspirés de Python, ne font pas la différence entre listes et tableaux et se permettent d'écrire l[i] avec l une liste, ou x::t avec t un tableau. De plus, ces opérations sont alors souvent considérées comme étant en temps constant, ce qui a évidemment été sanctionné. »

  • Concaténation de liste considérée O(1) — c'est en O(taille de la gauche)-2 pts

    « La concaténation de liste n'est pas une opération élémentaire ; sa complexité est linéaire en la taille de la liste de gauche ! »

  • Récurrence par 'ainsi de suite' / 'on procède récursivement' sans poser la quantité d'induction (Q III.1)-2 pts

    « Beaucoup de candidats raisonnent par récurrence en indiquant simplement 'et ainsi de suite' ou 'on procède récursivement', sans même indiquer sur quoi procède la récurrence ; cela a été sanctionné. Par ailleurs, beaucoup trop de copies ont en réalité prouvé que l'algorithme de la question III.2 est déterministe, ce qui est vrai mais n'implique en rien l'unicité de la décomposition et ne répond donc pas à la question. »

  • O(n) appels récursifs ⇒ complexité totale O(n) — faux si chaque appel n'est pas O(1)-2 pts

    « Concernant les analyses de complexité, le fait qu'une fonction effectue O(n) appels récursifs n'implique en rien que la complexité temporelle totale soit aussi en O(n). Encore faut-il pouvoir garantir que le nombre d'opérations élémentaires effectuées à chaque appel est borné. »

Chapitres clés à maîtriser

Programmation OCaml (tableaux, listes, distinction stricte)
Théorie de l'information (entropie de Shannon, codes préfixes)
Algorithmique des arbres (parcours, étiquetage, Huffman)
Programmation dynamique (mémoïsation, ordre de remplissage)
Preuves de programmes (récurrence, complexité, invariants)

Ressources

Téléchargements

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

FAQ

Questions fréquentes — 2023

Partager

Préparation X-ENS · Info MP

Bossez ce sujet 2023 avec un ancien taupin

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

Sujet