⌨ Spécialité NSI · Numérique et sciences informatiques Première Générale · Chapitre 9

Dichotomie, algorithmes gloutons et k plus proches voisins

Recherche dichotomique dans un tableau trié et coût logarithmique, algorithmes gloutons (rendu de monnaie, sac à dos) et leurs limites, algorithme des k plus proches voisins pour la classification.

1. Recherche dichotomique

205182123164235386567728919étape 1 : milieu indice 4 (16) < 23 → à droiteétape 2 : milieu indice 7 (56) > 23 → à gaucheétape 3 : indice 5 → 23 trouvéChaque étape divise par 2 la zone de recherche.
Recherche dichotomique de 23 dans un tableau trié de 10 éléments.

Méthode · Algorithme

def dichotomie(t, x):
    g, d = 0, len(t) - 1
    while g <= d:
        m = (g + d) // 2
        if t[m] == x:
            return m
        elif t[m] < x:
            g = m + 1
        else:
            d = m - 1
    return -1

Propriété · Coût logarithmique

Le tableau doit être trié. À chaque étape, la zone de recherche est divisée par $2$ : pour $n$ éléments, au plus environ $\log_2 n$ étapes. Pour un million d'éléments : $20$ étapes au lieu d'un million.

2. Algorithmes gloutons

Définition

Un algorithme glouton construit une solution étape par étape en faisant à chaque fois le choix qui semble le meilleur sur le moment, sans revenir en arrière. Il est rapide mais ne donne pas toujours la solution optimale.

Exemple · Rendu de monnaie

Rendre $8$ € avec des pièces de $5$, $2$ et $1$ : on prend la plus grande pièce possible à chaque fois : $5 + 2 + 1$ ($3$ pièces), ce qui est optimal pour le système européen. Avec un système $\{1, 3, 4\}$ et $6$ à rendre, le glouton donne $4 + 1 + 1$ ($3$ pièces) alors que $3 + 3$ ($2$ pièces) est meilleur.

3. Les k plus proches voisins

0taillepoids?● classe A● classe B
k plus proches voisins (k = 3) : le point « ? » prend la classe majoritaire parmi ses 3 voisins les plus proches.

Méthode · Algorithme kNN

Pour classer un nouvel élément : calculer sa distance à tous les éléments connus, garder les $k$ plus proches, et lui attribuer la classe majoritaire parmi eux. Le choix de $k$ et de la distance (euclidienne $\sqrt{(x_1 - x_2)^2 + (y_1 - y_2)^2}$) influence le résultat. C'est un algorithme d'apprentissage automatique.

Activité · Classer des iris

MatérielPython, jeu de données des iris (longueur et largeur des pétales, $3$ espèces).
ConsigneCalculer les distances d'une fleur inconnue à toutes les fleurs connues, trier, garder les $5$ plus proches et voter.
Résultatvoisins = sorted(donnees, key=lambda f: distance(f, inconnue))[:5] puis comptage des espèces.
BilanLe résultat peut changer avec $k$ : un $k$ trop petit est sensible au bruit, un $k$ trop grand efface les frontières.

⚠️ Une erreur dans ce cours ? Signalez-la

S'entraîner

Exercices corrigés

🎓 20 exercices corrigés et un quiz vous attendent dans ce chapitre.

Créez votre compte gratuit pour voir les corrections, faire les quiz et suivre votre progression.

Vérifier

Avez-vous bien compris ?

Répondez au quiz : la correction s'affiche immédiatement.