Au travail, on nous donne un ensemble de contraintes de la forme (nom de la tâche, fréquence) où la fréquence est un nombre entier qui signifie le nombre de ticks entre chaque invocation de la tâche "nom de la tâche". Deux tâches ne peuvent pas s'exécuter simultanément, et chaque invocation de tâche prend un tick pour se terminer. Notre objectif est de trouver le meilleur ordonnancement en termes de respect de l'ensemble des contraintes.
Par exemple, si l'on nous donne les contraintes {(a, 2), (b,2)}, le meilleur programme est "ab ab ab...". D'autre part, si l'on nous donne les contraintes ({a,2}, {b, 5}, {c, 5}), le meilleur programme est probablement "abaca abaca abaca...".
Actuellement, nous trouvons le meilleur programme en exécutant un algorithme génétique qui tente de minimiser la distance entre les fréquences réelles et les contraintes données. Cela fonctionne plutôt bien, mais je me demande s'il n'existe pas un algorithme mieux adapté à ce type de problème. J'ai essayé de faire des recherches sur Google, mais il me semble que je n'ai pas les mots justes (l'ordonnancement concerne généralement la réalisation de tâches :()). Pouvez-vous m'aider ?