(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