Nouvelle fonctionnalité de planification

La fonction solve de notre API affecte des tâches géolocalisées à
diverses tournées en les ordonnant efficacement. En complément, la
nouvelle fonction plan va fournir des indicateurs précieux pour
éclairer les choix de nos utilisateurs lors des modifications de
planning.

« Ah ! j’arriverai trop tard ! » – Photo de Veri Ivanova sur Unspash

Des indicateurs pour l’aide à la décision

Sur le terrain, les opérateurs gérant la planification peuvent
modifier à la marge des tournées optimisées pour satisfaire des
besoins non explicités ou réagir aux aléas. Ces choix découlent d’une
expertise mélangeant empiriquement les critères de coût et de qualité
de service liée au respect des contraintes métiers, notamment
horaires.

La fonction plan permet pour n’importe quelle route de mettre à jour
les horaires d’arrivée prévus (ETA) tout en évaluant le coût
opérationnel et l’impact sur le respect des contraintes. Pour chaque
ajustement, il devient possible d’obtenir instantanément des
indicateurs pertinents : nombre de tâches en retard, niveau de retard,
dépassement des horaires ou des capacités théoriques des véhicules,
modification du coût… Les utilisateurs peuvent apporter leur
expertise avec une plus grande valeur ajoutée en appuyant leurs
décisions sur des éléments factuels précis.

Un problème simple… en apparence

Dans le cas d’une tournée surchargée, il est impossible de respecter
tous les horaires. Faut-il alors partir comme prévu mais arriver en
retard pour certaines tâches ? Dans ce cas, notre API permettra de
quantifier les retards. Mais pourra également proposer de partir plus
tôt, dans la mesure de la marge sur le terrain, afin de réduire les
retards pour limiter la dégradation de service perçue.

Autre exemple d’un opérateur qui souhaite déplacer le matin en début
de tournée une tâche censée être faite après 14 h. Le respect de cette
contrainte changerait toute la physionomie de la planification en
décalant tous les horaires. L’API détecte dans ce cas qu’il faut
violer la seule contrainte de la tâche déplacée, avec une avance
importante, mais sans occasionner de retard plus tard.

L’optimisation sous le capot

Pour la fonction plan, les contraintes horaires habituelles
deviennent souples afin d’autoriser les violations horaires,
l’objectif principal étant de les minimiser. En second lieu, on assure
une amplitude de travail réduite au maximum tout en cherchant à faire
les tâches au plus tôt.

L’approche de programmation linéaire que nous avons implémentée
garantit l’optimalité de la solution obtenue, tout en évitant l’écueil
fréquent de temps de calcul déraisonnables. Grâce à un travail de
modélisation ad-hoc poussé, les temps de réponse de l’API permettent
une utilisation en temps réel.

Pour mieux cerner l’apport de cette nouvelle fonctionnalité pour votre
cas d’usage, contactez-nous.

Julien Coupey

Auteur : Julien Coupey

Julien est développeur et responsable de la R&D chez Verso.