Adloun

Corrigé X-ENS 2025 Informatique A MP — Partie II (Q8 à Q11) : Arbre de décision optimal par énumération

Sujet officiel du concours X-ENS, session 2025, épreuve Informatique A MP. Corrigé rédigé par Ibrahim Alame.

Sujet officiel (PDF, site du concours)

Énoncé

Les arbres sont codés par le type suivant (avec les types et fonctions de la partie I) :


type noeud = {caractere: caractere; enfants: (float * arbre) array}
and arbre =
  | Noeud of noeud           (* On pose une question sur un caractère. *)
  | Feuille of etat          (* On a atteint une feuille, on donne l'état. *)
  | Impossible               (* On a atteint une feuille impossible :
                                aucune espèce ne correspond aux réponses données. *)

Une valeur est un arbre de décision pour un ensemble de caractères et un état si : n'est pas Impossible ; si , alors et ( est une dirac ou ) ; si , alors , e a num.(i) cases et chaque e.(v) vaut , où si cette probabilité est nulle, et sinon est un arbre de décision pour et . Exemple, pour et l'état de Q1 ( et non précisés) :

La hauteur moyenne vaut pour une feuille ou Impossible, et pour un nœud dont les enfants sont les ; l'arbre dessiné a une hauteur moyenne de . Un arbre de décision est optimal pour et si sa hauteur moyenne est minimale parmi les arbres de décision pour et .

Q8. Énumérer les arbres de décision pour et , avec leur hauteur moyenne (pour l'arbre dessiné, donner et ) ; lequel minimise la hauteur moyenne ?
Q9. Écrire choix_possibles : 'x list array -> 'x array list, liste des tableaux obtenus en choisissant un élément dans chaque liste ; ainsi choix_possibles [| [1; 2]; [3; 4; 5] |] vaut [[|1; 3|]; [|1; 4|]; [|1; 5|]; [|2; 3|]; [|2; 4|]; [|2; 5|]].
Q10. Écrire enumere : etat -> arbre list, liste de tous les arbres de décision pour un état et l'ensemble de tous les caractères (la liste globale caracteres).
Q11. Écrire argmin : 'x list -> ('x -> float) -> 'x, qui renvoie un élément d'une liste non vide minimisant , puis arbre_optimal : etat -> arbre, arbre de décision optimal pour un état et tous les caractères.

Corrigé

Q8. À la racine, n'est pas une dirac et : une feuille est interdite, la racine est un nœud de caractère ou . On calcule les états fils avec Q3 (et la partie I) ; un état dirac avec des caractères restants peut, lui, être soit une feuille, soit un nœud.

Racine 1. et ; et (Q1). Aucun de ces deux états n'est une dirac et il reste le caractère : chaque fils est forcément un nœud , dont les fils, sans caractère restant, sont forcément des feuilles (ou Impossible pour une probabilité nulle). Il y a donc un seul arbre de racine , celui de l'énoncé, que l'on note ; on y lit

Chaque nœud a une hauteur moyenne , donc .

Racine 0. et ; et . Ce dernier état n'est pas une dirac : son fils est forcément un nœud , de branches (probabilité , état ) et (probabilité , état ), de hauteur moyenne . Le fils est une dirac avec le caractère restant : soit une feuille (), soit un nœud de branches (0 %, Impossible) et (100 %, feuille ), de hauteur moyenne . D'où deux arbres :


100 % gratuit

La suite du corrigé est sur Adloun

Le corrigé rédigé en entier, question par question, et le tuteur pour poser des questions sur ce sujet.

Voir le corrigé complet, gratuitement

Inscription gratuite en 30 secondes (e-mail, nom d'utilisateur, mot de passe, classe ou profil), sans carte bancaire : arrivée directe sur le corrigé.

Toutes les parties de l'épreuve

Corrigé complet gratuit →