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.
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.