CCINP Option Informatique MP 2023Sujet et rapport du jury
- Programmation récursive en OCaml
- Algorithmique et complexité
- Diviser pour régner
- Raisonnement par récurrence
- Graphes
- Programmation en Python
- Automates finis déterministes
Téléchargements
- Corrigé : pas encore disponible
Présentation du sujet
Difficulté moyenneSélection linéaire du k-ième élément en OCaml, clique de célébrités dans un graphe et famille d'automates A(k,p)Afficher ou masquer la section
Présentation du sujet
Difficulté moyenneL'épreuve d'informatique MP du CCINP 2023 comporte trois parties indépendantes. La première programme en OCaml, sans trait impératif, un algorithme de sélection en temps linéaire fondé sur les médians de paquets de cinq, puis en borne la complexité. La deuxième étudie les cliques de célébrités d'un graphe avec des preuves et des fonctions Python, la troisième une famille d'automates déterministes sur l'alphabet {0,1}.
- 1Partie I : sélection du (k+1)-ième plus petit élément en OCamlFonctions récursives auxiliaires (longueur, tri par insertion, paquets de cinq, médians, partage), fonction de sélection par diviser pour régner et preuve par récurrence d'une majoration linéaire du nombre de comparaisons (Q1 à Q9).
- 2Partie II : recherche d'une clique de célébritésExemples, unicité d'une clique de célébrités non vide, propriétés par retrait d'un sommet, puis programmation en Python sur des listes d'adjacence et preuve par récurrence de l'algorithme de construction (Q10 à Q16).
- 3Partie III : étude d'une famille d'automatesAutomates A(k,p) comptant la parité de certaines lettres, description de l'état atteint, propriétés liées au ou exclusif et au remplissage par des zéros (Q17 à Q22).
Difficulté moyenne. Le jury juge la longueur et le niveau de difficulté adaptés, avec une moyenne de 10,51 qui a permis de bien classer les candidats.
L'épreuve en chiffres
Moyenne 10,51 / 20 · écart-type 3,73 · où vous situez-vous ?Afficher ou masquer la section
L'épreuve en chiffres
- Moyenne
- 10,51/ 20
- Écart-type
- 3,73
- Coefficient
- 7
- Durée
- 4 h
Votre note sur 20 à ce sujet, en conditions de concours.
Source : document officiel du concours, épreuve du 27 avril 2023. Notes publiées par le concours (après harmonisation le cas échéant). Courbe : estimation par une loi normale.
Ce qu'a observé le jury
6 erreurs relevéesTraits impératifs interdits en partie I · Mauvais usage de l'opérateur @ · Hérédité de la récurrence sur la complexitéAfficher ou masquer la section
Ce qu'a observé le jury
6 erreurs relevéesLe jury estime le sujet bien calibré et couvrant de nombreux aspects de l'option et du tronc commun. Les erreurs viennent surtout du non-respect des consignes, d'un manque de rigueur dans les preuves et de confusions de syntaxe entre Python et OCaml. La partie III a été moins abordée.
Les erreurs les plus sanctionnées
- 1Traits impératifs interdits en partie IPartie I, Q1 à Q8
L'énoncé interdisait références, boucles et autres traits impératifs en OCaml : leur usage a valu zéro à la question concernée.
« l'utilisation de références ou boucles a entraîné l'attribution de la note zéro aux questions concernées »
- 2Mauvais usage de l'opérateur @Partie I
La concaténation était tolérée si elle restait pertinente, mais elle a souvent entraîné des confusions de syntaxe, une complexité dégradée ou un emploi dans les motifs de filtrage.
« confusion de [t]@h avec t @ h, dégradation de la complexité, utilisation dans les motifs de filtrage »
- 3Hérédité de la récurrence sur la complexitéQ9
Beaucoup de candidats n'ont pas su exploiter l'inégalité fournie par l'énoncé pour conclure l'hérédité.
« beaucoup de candidats n’ ont pas su exploiter l’inégalité donnée »
- 4Preuves imprécises sur les cliquesQ11
Confusion entre clique et clique de célébrités, oubli que la clique vide est toujours une clique de célébrités, erreurs de raisonnement sur les ensembles.
« oubli que la clique vide est dans tous les cas une clique de célébrités »
- 5Code complexe non commenté
Une solution compliquée, avec fonctions auxiliaires et nombreux paramètres, doit être expliquée en français, sinon elle risque de ne rapporter aucun point.
- 6Réponses hors propos sur les automatesQ17 et Q18
Certains candidats se sont contentés de dessiner l'automate au lieu d'expliciter l'état atteint.
« certains candidats donnent simplement en réponse une représentation graphique de l’automate ce qui est hors propos »
Ce qui a été bien réussi
- Les questions de programmation en Python de la partie II ont en général été bien traitées.
- Les copies sont globalement satisfaisantes sur la présentation du code.
- Dans la partie III, les candidats qui ont compris les questions les ont traitées correctement.
Conseils du jury
- Lire et respecter les consignes placées en tête de partie, notamment sur les traits de langage autorisés.
- Soigner l'indentation et les retours à la ligne : une partie du barème porte sur la lisibilité.
- Expliquer en français toute fonction qui n'est pas simple et directe.
- Ne pas mélanger la syntaxe de Python et celle d'OCaml.
- Rédiger les démonstrations avec clarté et précision, en particulier les manipulations d'ensembles.
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
Pas encore de corrigé pour ce sujet : voici des sujets proches corrigés.
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
ÉPREUVE MUTUALISÉE AVEC E3A-POLYTECH ÉPREUVE SPÉCIFIQUE - FILIÈRE MP
INFORMATIQUE
N.B. : le candidat attachera la plus grande importance à la clarté, à la précision et à la concision de la rédaction. Si un candidat est amené à repérer ce qui peut lui sembler être une erreur d'énoncé, il le signalera sur sa copie et devra poursuivre sa composition en expliquant les raisons des initiatives qu'il a été amené à prendre.
RAPPEL DES CONSIGNES
- Utiliser uniquement un stylo noir ou bleu foncé non effaçable pour la rédaction de votre composition ; d'autres couleurs, excepté le vert, peuvent être utilisées, mais exclusivement pour les schémas et la mise en évidence des résultats.
- Ne pas utiliser de correcteur.
- Écrire le mot FIN à la fin de votre composition.
Les calculatrices sont interdites.
Partie I - Programmation en OCaml : sélection du
(k + 1)^e plus petit élément
1.1 - Fonctions utiles
Q1. Écrire une fonction récursive de signature:
longueur : 'a list -> int
et telle que longueur 1 est la longueur de la liste 1.
Q2. Écrire une fonction récursive de signature :
insertion : 'a list -> 'a -> 'a list
et telle que insertion l a est la liste triée dans l'ordre croissant obtenue en ajoutant l'élément
tri_insertion : 'a list -> 'a list
et telle que tri_insertion l est la liste obtenue en triant l dans l'ordre croissant.
Q4. Écrire une fonction récursive de signature :
selection_n : 'a list -> int -> 'a
et telle que selection_n 1 n est l'élément de rang n de la liste 1 .
Par exemple, selection_n [
paquets_de_cinq : 'a list -> 'a list list
et telle que paquets_de_cinq l est une liste de listes obtenue en regroupant les éléments de la liste 1 par paquets de cinq sauf éventuellement le dernier paquet qui est non vide et qui contient au plus cinq éléments. Par exemple :
- paquets_de_cinq [] est égal à [],
- paquets_de_cinq
[2; 1; 2; 1; 3] est égal à[[2; 1; 2; 1; 3]] , - paquets_de_cinq [
3; 4; 2; 1; 5; 6; 3 ] est égal à [[3; 4; 2; 1; 5]; [6; 3] ].
medians : 'a list list -> 'a list
Dans le cas où la liste
medians [[3;1;5;3;2];[4;3;1];[1;3];[5;1;2;4]] est égal à [3;3;1;2].
partage : 'a -> 'a list -> 'a list * 'a list * int * int
1.2 - La fonction de sélection et sa complexité
Q8. Écrire une fonction récursive de signature :
selection : 'a list -> int -> 'a
Algorithme 1 - Sélection du $(k+1)^{\mathrm{e}}$ plus petit élément
SELECTION L K :
/* L est une liste, k est un entier positif */
début
$n \leftarrow$ LONGUEUR L
si $n \leq 5$ alors
$\mathrm{M} \leftarrow$ (TRI_INSERTION $L)$
retourner l'élément de rang $k$ de $M$
fin
sinon
L_Cinq $\leftarrow$ PAQUETS_DE_CINQ L
$\mathrm{M} \leftarrow$ medians L_Cinq
pivot $\leftarrow$ selection $\mathrm{M}((n+4) / / 5) / / 2$
/* L'opérateur // désigne le quotient d'entiers. Le rang ( $n+4$ ) //5) //2
correspond au rang du médian de la liste $M$ */
$L_{1}, L_{2}, n_{1}, n_{2} \leftarrow$ PARTAGE pivot L
si $k<n_{1}$ alors
retourner selection $L_{1} k$
fin
sinon
retourner selection $L_{2}\left(k-n_{1}\right)$
fin
fin
fin
Partie II - Recherche d'une clique de célébrités
II. 1 - Définitions et propriétés
Le terme "célébrité" provient de l'interprétation suivante : l'ensemble des sommets correspond à un ensemble de personnes et une arête (
-
G_1 = (S, A_1) avecA_1 = {(1, 2), (1, 3), (1, 5), (2, 6)} . -
G_2 = (S, A_2) avec
a) Montrer que si
b) Montrer que si
c) On suppose que
i) Montrer que si (
ii) Montrer que si (
iii) Montrer que si (
II. 2 - Algorithmique et programmation en Python (Informatique Commune)
On pourra remarquer que si l'ensemble des sommets d'un graphe
Q15. Écrire une fonction Python Clique_possible_C(G) prenant en argument une liste
Algorithme 2 - Construction d'une clique de célébrités possibles
Clique_possible_C G :
début
$C \leftarrow[]$
$S \leftarrow[0,1, \ldots, n-1]$
$/ * \mathrm{n}$ est le nombre de sommet de $G \quad * /$
pour chaque $s$ élément de $S$ faire
si $C$ est vide alors
Ajouter s dans C
fin
sinon
$c \leftarrow$ premier élément de $C$
$t \leftarrow$ FAUX
/* t permet de vérifier si on a effectué certaines instructions */
si ( $s, c$ ) n'est pas une arête de $G$ alors
$C \leftarrow[s]$
$t \leftarrow$ VRAI
fin
si ( $c, s$ ) n'est pas une arête de $G$ alors
$C \leftarrow C$
$t \leftarrow$ VRAI
fin
si $t=F A U X$ alors
Ajouter $s$ à la fin de liste $C$
fin
fin
fin
fin
retourner $C$
Partie III - Étude d'une famille d'automates
Étant donnés un entier
III. 1 - Définitions
-
Q un ensemble fini non vide appelé ensemble des états, -
Σ est un ensemble fini appelé alphabet, -
δ : Q × Σ → Q une application appelée application de transition, -
q_0 un élément deQ appelé état initial, -
F une partie deQ appelée ensemble des états finaux.
-
Σ = {0, 1} ,
− ∀(c, e) ∈ Q, δ((c, e), 0) = ((c + 1)modp, e) ,
− ∀(c, e,) ∈ Q, δ((c, e), 1) = {((c + 1), modp, 1 − e), si c = kmodp,; ((c + 1), modp, e), sinon. -
q_0 = (0, 0) ,
− F = {0, 1, …, p − 1} × {1} .
On noteL_(k, p) la fonction indicatrice de l'ensemble des mots reconnus parA_(k, p) . Soit autrement:
III. 2 - Exemples et propriétés élémentaires des
A_(k, p)
Q18. Soit
Q19. Soit
b) En déduire que pour tout mot
Remarque. Ces égalités permettent la construction d'une relation d'équivalence sur les mots qui est utilisée pour montrer que deux mots de longueur
Questions fréquentes
4 questionsSur quels chapitres porte l'épreuve d'informatique MP du CCINP 2023 ?Afficher ou masquer la section
Questions fréquentes
4 questionsSur quels chapitres porte l'épreuve d'informatique MP du CCINP 2023 ?
Elle mobilise la programmation récursive en OCaml, la complexité et le diviser pour régner (partie I), les graphes et Python (partie II), puis les automates déterministes (partie III).
Quelle est la moyenne de l'option informatique MP au CCINP 2023 ?
Le rapport indique une moyenne de 10,51 avec un écart-type de 3,73.
Quelles erreurs le jury a-t-il relevées en informatique MP au CCINP 2023 ?
L'usage de boucles ou de références en OCaml malgré l'interdiction (note zéro), les maladresses avec l'opérateur @, une hérédité mal menée en Q9 et des preuves imprécises sur les cliques de célébrités en Q11.
Le sujet d'informatique MP CCINP 2023 était-il long ?
Le jury estime la longueur et la difficulté adaptées. La partie III sur les automates a cependant été moins abordée.
Pas de description pour le moment
