Retour au blog
Engineering

Planification territoriale à grande échelle : de 100 à 300 000 clients

FMCG Cloud Team · Data Science8 min de lecture

La planification territoriale est l'un de ces problèmes qui semble simple à petite échelle et devient extraordinairement complexe à mesure que vous grandissez. Quand vous avez 10 commerciaux couvrant 100 clients, vous pouvez dessiner des territoires sur une carte à la main et obtenir un résultat raisonnable. Quand vous avez 500 commerciaux couvrant 300 000 clients à travers un pays avec des réseaux routiers, des schémas de trafic et des densités de clients variés, la planification territoriale manuelle devient impossible. L'espace combinatoire est trop grand, les contraintes sont trop nombreuses et les conséquences de territoires sous-optimaux sont trop coûteuses.

L'objectif fondamental de la planification territoriale est trompeusement simple : diviser votre base client en territoires tels que chaque territoire peut être efficacement desservi par un commercial ou une équipe, la charge de travail est équilibrée entre les territoires, le temps de trajet au sein de chaque territoire est minimisé et les clients importants reçoivent une fréquence de visite appropriée. La difficulté réside dans la satisfaction simultanée de tous ces objectifs, car ils sont souvent en conflit.

Le clustering géographique est le point de départ. L'algorithme regroupe les clients proches en clusters spatiaux en utilisant une combinaison de distance géographique (mesurée en temps de trajet, pas en distance à vol d'oiseau) et de densité de clients. Les zones urbaines denses peuvent avoir des centaines de clients dans quelques kilomètres carrés, tandis que les zones rurales ont des clients dispersés sur de vastes distances. L'algorithme de clustering doit gérer cette variation de densité avec élégance, créant des territoires urbains compacts avec beaucoup de clients et des territoires ruraux plus grands avec moins de clients mais plus dispersés.

100 outlets2 loose zonesplan at scale300k outlets4 balanced territoriesNorth75kEast75kSouth75kWest75k

La matrice de distances est le fondement computationnel. Pour la planification territoriale à l'échelle de 300 000 clients, vous avez besoin d'estimations de temps de trajet entre chaque paire de clients susceptibles d'être dans le même territoire. Calculer une matrice de distances complète 300K par 300K nécessiterait 90 milliards de calculs de distance, ce qui est évidemment impraticable. Au lieu de cela, le système utilise une approche hiérarchique : d'abord diviser la géographie en zones grossières en utilisant des limites administratives ou des cellules de grille, calculer les distances zone à zone, puis calculer les distances client à client uniquement au sein des territoires candidats. Cela réduit le calcul de plusieurs ordres de grandeur.

L'équilibrage de la charge de travail va au-delà du simple comptage de clients par territoire. Un territoire avec 200 commerces de proximité nécessite un effort différent de celui avec 50 supermarchés. Le système utilise un modèle de scoring de charge de travail qui prend en compte le nombre de clients, la fréquence de visite attendue par client (déterminée par le segment et le niveau), le temps de service moyen par visite (variant selon le type de magasin et la complexité de la commande), le temps de trajet entre les arrêts et la charge administrative. Les territoires sont équilibrés sur le score de charge de travail total, pas sur le nombre de clients, garantissant une distribution équitable du travail réel.

L'optimisation est formulée comme un problème d'affectation sous contraintes. Chaque client doit être assigné à exactement un territoire. Les charges de travail des territoires doivent tomber dans une bande de tolérance configurable (généralement plus ou moins 15 % de la moyenne). La contiguïté géographique doit être maintenue afin qu'aucun territoire n'ait d'îlots de clients isolés. Les clients prioritaires doivent être dans des territoires avec une capacité de fréquence de visite appropriée. Les relations commerciaux-clients existantes doivent être préservées quand c'est possible pour minimiser les perturbations.

Résoudre cela à grande échelle nécessite une optimisation métaheuristique plutôt que des méthodes exactes. Le système utilise une recherche adaptative de grand voisinage qui part d'une solution initiale réalisable (générée par le clustering géographique) et l'améliore itérativement en déplaçant des clients entre territoires. Chaque déplacement est évalué par rapport à tous les objectifs simultanément en utilisant une fonction de coût pondérée. La recherche est guidée par une sélection adaptative d'opérateurs, apprenant automatiquement quels types de déplacements sont les plus productifs pour l'instance de problème spécifique.

Le défi computationnel de la mise à l'échelle à 300 000 clients est significatif. Chaque itération de l'optimisation évalue des centaines de déplacements potentiels de clients, chacun nécessitant un recalcul de la charge de travail et une estimation du temps de trajet. Une implémentation naïve prendrait des heures. Le système utilise le calcul incrémental, où chaque déplacement met à jour les scores des territoires affectés plutôt que de tout recalculer à partir de zéro, des calculs de distance delta qui ne recalculent les impacts de trajet que pour le client déplacé et ses voisins, l'évaluation parallèle de déplacements indépendants sur plusieurs cœurs CPU et l'arrêt anticipé quand les déplacements sont clairement non améliorants.

Avec ces optimisations, un problème de planification territoriale de 300 000 clients converge généralement vers une solution de haute qualité en 5 à 10 minutes. C'est suffisamment rapide pour des cycles de replanification hebdomadaires, où les territoires sont ajustés en fonction des changements dans la base client, la disponibilité des commerciaux ou les priorités commerciales.

Rééquilibrer des territoires existants est plus nuancé que de les créer à partir de zéro. Quand un nouveau plan territorial est généré, le système calcule un score de perturbation mesurant combien de clients changent d'affectation territoriale. Il applique ensuite une contrainte d'adhérence qui pénalise les réaffectations inutiles. Le résultat est un plan qui améliore la structure territoriale actuelle sans provoquer de perturbation massive des relations commerciaux-clients établies.

La visualisation et les workflows d'approbation sont critiques pour l'adoption. Les planificateurs de territoires doivent pouvoir voir les territoires proposés sur une carte, explorer les décompositions de charge de travail par territoire, comparer le plan proposé avec l'actuel et faire des ajustements manuels avant d'approuver. Le système supporte cela via des outils interactifs basés sur des cartes où les planificateurs peuvent surcharger les affectations algorithmiques, glisser des clients entre territoires et voir l'impact sur l'équilibre de la charge de travail en temps réel.

L'impact commercial des territoires optimisés se compose quotidiennement. Chaque point de pourcentage de réduction du temps de trajet sur 500 commerciaux se traduit par des milliers de visites clients supplémentaires par mois. Chaque amélioration de l'équilibre de la charge de travail réduit l'épuisement et le turnover des commerciaux. Chaque augmentation de la contiguïté géographique réduit les coûts de carburant et l'usure des véhicules. La planification territoriale n'est pas un exercice ponctuel mais une opportunité d'optimisation continue qui produit des dividendes chaque jour où votre équipe terrain est sur la route.