Quand faut-il visiter l'autre côté ?
Exercice · niveau 2 · informatique (MP2I/MPI), chapitre 26 — Apprentissage automatique
Énoncé
On range six points dans un arbre -d, en coupant selon à la racine puis en alternant :
On cherche le plus proche voisin de . Que donne la descente seule ? Quelle est la vraie réponse ? Énoncer le test qui décide s'il faut explorer le côté opposé d'un nœud.
Corrigé
La descente seule se trompe. À la racine, : on part à gauche. En , : encore à gauche, jusqu'à . En remontant on garde le meilleur des trois nœuds traversés, soit , à distance . Or le vrai plus proche voisin est , à distance — et il est de l'autre côté du premier hyperplan.
Le test d'élagage. Soit la distance au meilleur candidat courant. Un nœud coupe l'espace par l'hyperplan d'équation . Tout point du demi-espace opposé est à distance au moins de . Donc :
Sur notre requête, à la racine : il faut explorer à droite, et c'est là qu'on trouve . La recherche complète visite des points ; le seul élagué est , coupé en car .
Ce que l'exercice éprouve. L'arbre -d n'est pas un arbre binaire de recherche où la descente suffirait. Le test de la racine sépare selon une seule coordonnée, et le plus proche voisin peut se trouver juste de l'autre côté du plan de coupe. La descente donne un candidat, jamais une réponse ; c'est la remontée avec élagage qui rend l'algorithme exact. L'élagage est ici le même geste qu'au chapitre chap:exploration : on ne coupe une branche qu'après avoir prouvé qu'elle ne peut rien contenir de meilleur.
Les autres exercices de ce chapitre Le cours du chapitre
Un blocage sur cet exercice ? Le tuteur d'Adloun guide par questions, sans donner la réponse.