Selon le commentaire d'iehrlich (merci btw), le terme «ordonnancement» pourrait être trompeur et cela pourrait être une description plus appropriée: étant donné une matrice N * N, trouver une permutation de ligne qui donnera la plus grande somme diagonale.Algorithme pour planifier les travaux sur les processeurs
J'ai un ensemble de N tâches et N processeurs. Tous les processeurs peuvent être différents les uns des autres. Pour chaque paire (travail, processeur), les performances de ce travail s'exécutent sur ce processeur. La performance est mesurée en IPC (instructions par cycle).
J'essaie de trouver un calendrier (allocation 1-à-1) qui maximise la somme globale de IPC. Je peux le faire en passant par tous les horaires possibles, avec O (N!), Ce qui n'est pas viable. J'ai ensuite essayé d'utiliser l'algorithme O (N^2) de «matching stable», en utilisant les IPC pour trier les préférences des charges de travail et des processeurs. Il fonctionne très vite et renvoie un horaire décent, mais pas le meilleur.
Mes questions sont les suivantes:
1) Je me attendais vraiment l'algorithme de correspondance stable pour être en mesure de retourner l'affectation optimale. Quelqu'un peut-il expliquer pourquoi cela échoue? Ma meilleure estimation jusqu'ici est l'existence de liens entre différentes paires (travail, processeur). J'ai aussi essayé l'algorithme "stable matching with indifference" sans aucune chance. Je dois mentionner que l'algorithme n'échoue pas à cause de ma mise en œuvre. Je cherche une réponse plus théorique pour expliquer pourquoi l'algorithme lui-même ne peut pas résoudre ce problème.
2) Connaissez-vous un algorithme que je peux utiliser pour cela? Est-ce que l'on existe même?
Il y a toute une branche de l'informatique pour ça. En fait, il provient à l'origine de la gestion de la production. Pensez à lire https://en.wikipedia.org/wiki/Scheduling_(computing) pour les débutants – iehrlich
Merci, il semble très utile. Cependant, après l'avoir parcouru rapidement, il semble que tous les algorithmes présentés soient heuristiques et ne garantissent pas le retour du planning optimal. – prodromou
J'ai dit "pour les débutants" pour une raison :) Aussi, comment vérifiez-vous si l'horaire est optimal? – iehrlich