Skip to content

Planificateur de tournées de collecte — mise en situation

Les modules 3 et 4 ont entraîné des modèles à partir d’exemples déjà étiquetés (une consommation connue, un statut de paiement connu) : de l’apprentissage supervisé. Ce module aborde sa contrepartie, posée au module 1 : l’apprentissage non supervisé, où aucune bonne réponse n’est fournie.

Une coopérative agricole doit organiser la collecte de récoltes auprès de 130 points de collecte dispersés sur son territoire. Deux missions :

  1. Regrouper les points en zones réalisables par une flotte de 4 camions.
  2. Pour chaque zone, calculer l’ordre de passage le plus court.
import numpy as np
import pandas as pd
rng = np.random.default_rng(11)
bassins = [
{"nom": "Nord", "centre": (12.5, -1.5), "n": 35},
{"nom": "Centre", "centre": (7.0, -2.0), "n": 40},
{"nom": "Sud-Est", "centre": (5.5, 0.8), "n": 30},
{"nom": "Sud-Ouest", "centre": (6.2, -4.5), "n": 25},
]
# ... génération de points par bassin, dispersion gaussienne autour de chaque centre
Nombre total de points: 130

Notez que les données sont générées par bassins régionaux (4 zones de coopératives), mais que cette information ne sera pas utilisée par les algorithmes de clustering : l’objectif est de vérifier si ces derniers redécouvrent une structure géographique cohérente à partir des seules coordonnées.

Il n’existe ici aucune « bonne réponse » : personne n’a étiqueté chaque point avec la zone à laquelle il devrait appartenir. L’algorithme doit découvrir une structure — des points proches les uns des autres — sans supervision. C’est la définition même du clustering.

👉 Corriger la distorsion géographique


Junior TSAFACK – 12/09/2026