J'ai un problème réel que j'essaie de représenter et d'automatiser. Je l'ai simplifié et résumé comme suit:
- Il existe n lieux de travail (P1, P2, ..., Pn).
- Chaque endroit, Pn a une clé, Kn.
- Il y a m Ouvriers (W1, W2, ..., Wm).
- Pour travailler chez Pn, un travailleur doit détenir Kn.
- Chaque clé peut être détenue par un travailleur ou laissée à la Bourse, E.
Un travailleur peut se rendre à la Bourse à tout moment pour récupérer des clés non réclamées ou déposer certaines clés pour que d'autres puissent les utiliser.
Maintenant, il y a un calendrier de travail exogène qui doit être complété dans un ordre strict. Par exemple:
- 2016-04-21 W1 doit travailler à P6
- 2016-04-21 W2 doit travailler à P3
- ** échange de clés requis **
- 2016-04-22 W3 doit travailler à P3
- 2016-04-22 W2 doit travailler à P6
Un certain nombre de travailleurs peuvent devoir travailler chez Pn à un moment donné de leur horaire, mais jamais le même jour
Nous savons:
- L'emplacement de départ de toutes les clés, soit avec les travailleurs ou à E
- Les futurs ordres de travail que chaque travailleur devra exécuter
Donc, j'ai du mal à modéliser toute cette situation. Pouvez-vous suggérer des structures de données et des algorithmes que je devrais examiner afin de les maîtriser et de commencer à optimiser les déplacements vers l'échange pour chaque travailleur?
Ce que je veux minimiser, c'est le nombre total de voyages vers E. Un objectif secondaire serait de s'assurer qu'aucun travailleur n'effectue un nombre disproportionné de voyages.
Merci d'avance!!