(En cours de redaction)

Optimisation de tournées sous contraintes

Le moteur d'optimisation de tournées sous contraintes de RosaLog

Objectif principal de l'optimisation : Minimiser le plus possible le temps de déplacements et ainsi remplir les plannings.

Objectifs secondaires : Planifier au plus tôt dans le temps, éviter de mobiliser excessivement une journée

Le poids ou la configuration générale de ces objectifs et le comportement de l'algorithme n'est pas aujourd'hui réglable par l'utilisateur

Lancement de l'optimisation de tournées sous contraintes

Paramétrage de l'intervalle de date sur laquelle lancer une optimisation

Paramétrage des intervenants sur lesquels l'optimisation doit agir

Comportement du moteur d'optimisation

Objectifs d'optimisation

Objectif principal de l'optimisation

Minimiser le plus possible le temps de déplacements et ainsi remplir les plannings.

Objectifs secondaires

Planifier au plus tôt dans le temps, éviter de mobiliser excessivement une journée

Configuration

Le poids ou la configuration générale de ces objectifs et le comportement de l'algorithme n'est pas aujourd'hui réglable par l'utilisateur

Limites de l'optimisation

  • Le moteur d'optimisation n'affecte qu'un seul intervenant à une viste/intervention.
  • Les interventions multi-intervenants ou multi-créneaux ne sont pas optimisables, et restent figées
  • L'algorithme d'optimisation est basé sur une recherche en partie au hasard, non deterministes, deux optimisations successives sur les mêmes données retournent des résultats différents.
  • La capacité de l'algorithme à trouver un résultat optimal dans un temps raisonnable diminue fortement avec la quantité de données qui lui est fourni, et en particulier avec le nombre d'interventions libres à optimiser.

Préconisations

  • Il est préconisé de demander à planifier quelques dizaines d'interventions en même temps, par exemple :
  • Une semaine d'une équipe de 5 personnes faisant 6 interventions par jour : 5x5x6 = 150
  • Une semaine d'une équipe de 10 personnes faisant 5 interventions par jour, dont la moitié est verrouillée : 5x10x5 / 2 = 125
  • Un mois pour un intervenant faisant 6 interventions par jour : 20x6 = 120
  • Une journée d'une équipe de 30 personnes faisant 6 interventions par jour : 30 x 6 = 180
  • Le moteur n'impose pas de limite aujourd'hui mais les temps de calcul peuvent être longs et donc limiter de fait son utilisabilité
  • Dans une prochaine mise à jour le moteur pourra imposer des limites afin de réduire les risques de résultats décevants et de pouvoir assurer la charge de calculs pour tous les clients en parallèle

Prise en compte des contraintes

Les contraintes sont prises en compte par l'algorithme de façon stricte

Contraintes et règles sur les visites/interventions

location

Lieu. Le lieu d'execution {{Work.mmClass.name,ofts}}

necessaryDuration

Durée nécessaire : La durée de l'intervention planifiée sera celle nécessaire indiquée en minute. Par défaut, 60 minutes.

Indication de la productivité

Si une productivité est indiquée sur l'intervenant alors le temps nécessaire est divisé par cette productivité

englobingInterval

Période planifiable (date au plus tôt / date au plus tard)

Horaires

Horaires simples

possibleDayMornings

Jours possibles (le matin), par case à cocher

possibleDayAfternoons

Jours possibles (l'après midi), par case à cocher

timeWindow

Horaires du matin

timeWindowBis

Horaires de l'après-midi

dayTimeWindows

Horaires détaillés

necessarySkills

Compétences nécessaires : L'intervenant affecté doit posseder l'ensemble des compétences nécessaires pour effectuer l'intervention.

necessaryPosition

Position nécessaire : Si elle est indiquée sur la viste, l'intervenant doit être sur la position (catégorie de personnel) pour pouvoir effectuer l'intervention.

lockIntervals

Verrou sur créneau

lockResources

Verrou sur affectation

sector

Secteur : Si le secteur est indiqué alors l'intervenant affecté doit être autorisé à agir sur ce secteur. (Voir règle )

restrictedToResources

Intervenants possibles : Lorsque des intervenants possibles sont spécifiés alors celui qui est affecté doit en faire partie.

refusedResources

Intervenants refusés.

allowPlanAfterEnglobing

Autorisation à planifier après la période planifiable

Contraintes et règles sur les intervenants

Horaires sur chaque journée de la semaine

Lieu habituel de départ et retour chaque jour

Nuits à l'hôtel

Compétences

Secteurs

Indisponibilités

Contraintes sur les clients