J'ai un problème qui peut être réduit à un problème d'affectation. (Dans une question précédente, j'ai découvert comment procéder.)
Ce qui signifie que nous avons un ensemble d'agents et un ensemble de tâches ainsi qu'une fonction de coût . Nous devons trouver une affectation afin que le coût total soit minime.c ( i , j )
L' algorithme hongrois peut trouver une solution optimale dans au moins . Ce qui me semble bien.
Mon nouveau problème est: il y a un nombre de jours donné. Je dois résoudre le problème d'affectation pour chaque jour afin que chaque tâche soit effectuée tous les jours et qu'aucun agent n'effectue la même tâche deux fois .
Ce que j'ai essayé: nous pourrions exécuter l'algorithme hongrois séparément pour chaque jour et limiter le nombre de combinaisons possibles en fonction du résultat de la journée précédente. Mais cela nous poserait des problèmes certains des derniers jours, où il sera très probablement impossible de trouver une solution viable.
Une autre idée est d'intégrer en quelque sorte la recherche locale pour changer les décisions prises la veille. Mais je pense que nous ne pouvons pas compter sur cela.
Les cas de problème auxquels je devrai faire face se situeront quelque part . La matrice de coût aura beaucoup de mêmes valeurs (par exemple, principalement 1 ou infini, seulement 2 ou 3). Ainsi, pendant l'algorithme hongrois, il y a beaucoup d'espace pour créer différentes solutions optimales pour une seule journée.C ( i , j )
Je serais heureux d'entendre des idées ou des conseils sur la façon de trouver une bonne solution au problème. Merci d'avance.