在工作中,我们给出了一组形式为(任务名称,频率)的约束,其中频率是一个整数,表示每次调用任务“任务名称”之间的滴答数。两个任务不能同时运行,每个任务调用需要一个滴答时间才能完成。我们的目标是找到匹配约束集的最佳时间表。
例如,如果给定约束 {(a, 2), (b,2)},则最佳调度是 "ab ab ab..." 另一方面,如果给定约束 ({a,2 }, {b, 5}, {c, 5}) 最好的时间表可能是“abaca abaca abaca...”
目前,我们通过运行试图最小化实际频率与给定约束之间的距离的遗传算法找到最佳时间表。它实际上工作得很好,但我想知道是否有一些算法更适合这种问题。我试图搜索谷歌,但我似乎缺乏正确的词(调度通常是关于完成任务:()。你能帮忙吗?