X ENS Informatique Commune MP PC 2015Sujet, corrigé et rapport du jury
Enveloppes convexes dans le plan
- Algorithmique : complexité et analyse amortie
- Structures de données : piles
- Algorithmes de tri
- Géométrie algorithmique : enveloppe convexe
- Programmation en Python
Téléchargements
Présentation du sujet
DifficileCalcul de l'enveloppe convexe d'un nuage de points : algorithme du paquet cadeau et algorithme de balayage (Graham-Andrew)Afficher ou masquer la section
Présentation du sujet
DifficileLe sujet, commun aux filières MP et PC, porte sur le calcul de l'enveloppe convexe d'un nuage de points dans le plan, un problème classique de géométrie algorithmique. Après des questions préliminaires sur l'ordre des points, il fait étudier deux algorithmes : le « paquet cadeau », de complexité O(n·m), puis un algorithme de balayage utilisant des piles, de complexité O(n·log n).
- 1Partie I : PréliminairesRecherche du point le plus bas du nuage et écriture du test d'orientation de trois points.
- 2Partie II : Algorithme du paquet cadeauConstruction d'un ordre total sur les points, puis programmation de l'algorithme du paquet cadeau et justification de sa complexité en O(n·m).
- 3Partie III : Algorithme de balayageMise à jour des enveloppes supérieure et inférieure à l'aide de piles, puis assemblage et analyse de la complexité amortie en O(n·log n) de l'algorithme de Graham-Andrew.
Difficile. Le rapport qualifie la question sur la mise à jour de l'enveloppe supérieure de 'clairement difficile', et la question finale d'analyse de complexité amortie a obtenu 0 point pour 84,7% des candidats de la filière PC.
Ce qu'a observé le jury
6 erreurs relevéesAnalyse de complexité amortie non maîtrisée · Mise à jour de l'enveloppe supérieure avec une pile · Mauvais choix d'algorithme de triAfficher ou masquer la section
Ce qu'a observé le jury
6 erreurs relevéesL'épreuve, corrigée séparément pour les filières MP (540 candidats admissibles, moyenne 14,23, écart-type 2,79) et PC (551 candidats, moyenne 10,90, écart-type 2,86), porte sur un problème classique de géométrie algorithmique. Le jury insiste sur l'importance de la lisibilité et de la rigueur du code, en plus de sa correction, et relève de nombreuses difficultés sur les questions d'analyse de complexité en fin d'épreuve.
Les erreurs les plus sanctionnées
- 1Analyse de complexité amortie non maîtriséeQ13
De nombreux candidats restent bloqués sur la question finale, ne comprenant pas comment conclure à une complexité en n log n après avoir vu une complexité apparente en n².
« candidats ont été bloqués à ce niveau, ne comprenant pas comm ent on pouvait finalement conclure en une complexité en n log n. »
- 2Mise à jour de l'enveloppe supérieure avec une pileQ10
Cette question, jugée clairement difficile par le jury, a donné lieu à des réponses très inégales, de quelques lignes à plusieurs dizaines.
« Cette question est clairement difficile, les propositions vo nt de 5 lignes à plusieurs »
- 3Mauvais choix d'algorithme de triQ9
Des candidats proposent le tri à bulles, qui n'est pas en O(n log n), ou présentent le tri rapide comme ayant une complexité garantie en n log n alors qu'il est quadratique dans le pire cas.
- 4Preuve de transitivité mal maîtriséeQ4
De nombreux candidats se perdent dans une preuve calculatoire de la transitivité et multiplient une inégalité par un scalaire sans tenir compte de son signe.
- 5Non-respect de l'abstraction des pilesQ10, Q11
Le sujet imposait d'utiliser uniquement les opérations fournies sur les piles plutôt que de manipuler directement les listes sous-jacentes ; cette contrainte a été mal comprise et peu respectée.
- 6Code juste mais illisible
Certaines solutions justes restent totalement tordues, avec un code très difficile à lire et à comprendre.
Ce qui a été bien réussi
- La question sur le point le plus bas du nuage (Q1) a été plutôt bien traitée en moyenne, sans vraie difficulté.
- La question de cours sur un algorithme de tri en O(n·log n) (Q9) a été très bien réussie, avec la totalité des points pour 90,6% des candidats MP.
- La question symétrique sur l'enveloppe inférieure (Q11) a été bien traitée par 74,5% des candidats MP.
Conseils du jury
- Soigner la lisibilité et la structuration du code : indentation des boucles et tests, passages à la ligne.
- Réutiliser les fonctions écrites aux questions précédentes plutôt que tout refaire.
- Éviter d'appeler plusieurs fois la même fonction dans une boucle ; stocker le résultat en mémoire.
- Vérifier systématiquement que les indices utilisés ne dépassent pas la taille du tableau.
- Respecter les contraintes de l'énoncé, notamment l'usage imposé de structures de données comme les piles.
- Justifier soigneusement une analyse de complexité, y compris lorsqu'elle nécessite un raisonnement amorti.
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 POLYTECHNIQUE - ÉCOLES NORMALES SUPÉRIEURES
ÉCOLE SUPÉRIEURE DE PHYSIQUE ET DE CHIMIE INDUSTRIELLES
COMPOSITION D'INFORMATIQUE - B - (XECLR)
Le langage de programmation choisi par le candidat doit être spécifié en tête de la copie.
Enveloppes convexes dans le plan

- la robotique, par exemple pour l'accélération de la détection de collisions dans le cadre de la planification de trajectoire,
- le traitement d'images et la vision, par exemple pour la détection d'objets convexes (comme des plaques minéralogiques de voiture) dans des scènes 2 d ,
- l'informatique graphique, par exemple pour l'accélération du rendu de scènes 3d par lancer de rayons,
- la théorie des jeux, par exemple pour déterminer l'existence d'équilibres de Nash,
- la vérification formelle, par exemple pour déterminer si une variable risque de dépasser sa capacité de stockage ou d'atteindre un ensemble de valeurs interdites lors de l'exécution d'une boucle dans un programme,
et bien d'autres encore.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
0 | 1 | 1 | 4 | 4 | 5 | 5 | 7 | 7 | 8 | 11 | 13 |
|
|
0 | 4 | 8 | 1 | 4 | 9 | 6 | -1 | 2 | 5 | 6 | 1 |
Partie I. Préliminaires

Question 3 Écrire une fonction orient
Partie II. Algorithme du paquet cadeau

- (réflexivité) pour tout
j ≠ i, p_j⪯p_j , - (antisymétrie) pour tous
j, k ≠ i, p_j⪯p_k etp_k⪯p_j impliquej = k , - (transitivité) pour tous
j, k, l ≠ i, p_j⪯p_k etp_k⪯p_l impliquep_j⪯p_l , - (totalité) pour tous
j, k ≠ i, p_j⪯p_k oup_k⪯p_j .
indices des points du paquet cadeau dans une liste. Par exemple, sur le nuage de la figure 1, le résultat sera la liste
Intermède : piles d'entiers
- créer une nouvelle pile vide,
- déterminer si la pile est vide,
- insérer un entier au sommet de la pile,
- déterminer la valeur de l'entier au sommet de la pile,
- retirer l'entier au sommet de la pile.
- newStack(), qui ne prend pas d'argument et renvoie une pile vide,
- isEmpty(
s ), qui prend une piles en argument et renvoie True ou False suivant ques est vide ou non, - push
(i, s) , qui prend un entieri et une piles en argument, insèrei au sommet des (c'est-à-dire à la fin de la liste), et ne renvoie rien, -
top(s) , qui prend une piles (supposée non vide) en argument et renvoie la valeur de l'entier au sommet des (c'est-à-dire à la fin de la liste), - pop
(s) , qui prend une piles (supposée non vide) en argument, supprime l'entier au sommet des (c'est-à-dire à la fin de la liste) et renvoie sa valeur.
Partie III. Algorithme de balayage


Questions fréquentes
4 questionsSur quels chapitres porte l'épreuve d'informatique commune X-ENS MP-PC 2015 ?Afficher ou masquer la section
Questions fréquentes
4 questionsSur quels chapitres porte l'épreuve d'informatique commune X-ENS MP-PC 2015 ?
L'épreuve porte sur le calcul de l'enveloppe convexe d'un nuage de points, avec l'algorithme du paquet cadeau puis un algorithme de balayage utilisant des piles, ce qui mobilise l'algorithmique, l'analyse de complexité et la programmation Python.
Quelles erreurs le jury a-t-il le plus relevées sur cette épreuve d'informatique X-ENS 2015 ?
Le jury relève des difficultés sur l'analyse de complexité amortie de la dernière question, un mauvais choix d'algorithme de tri, une preuve de transitivité mal maîtrisée et un non-respect de la contrainte d'utiliser les piles comme structure abstraite.
L'épreuve d'informatique commune X-ENS 2015 est-elle plus difficile en MP ou en PC ?
D'après les statistiques du rapport, la moyenne est plus élevée en MP (14,23/20) qu'en PC (10,90/20), pour un sujet pourtant commun aux deux filières.
Quelle est la dernière question la plus difficile du sujet X-ENS informatique commune 2015 ?
La question 13, qui demandait de justifier la complexité en n log n de l'algorithme de balayage par un argument amorti, a obtenu 0 point pour 84,7% des candidats de la filière PC.
Pas de description pour le moment
