设置如下:我必须运行一定数量的任务。每个任务需要花费不同的时间来完成,并且有单独的截止日期。我最多可以并行运行N个任务(N大约为10-20,但是我忽略了它的大小是否对解决方案有影响)。同样,有固定的周期性时间窗口,在这些时间窗口中任务无法开始,并且对于每个并行线程同时发生。这意味着,如果任务在禁止窗口启动后立即结束,则可能会浪费大量的工作时间,这是不希望的。如果禁止窗口即将开始并且我开始了一个简短的任务,则也可能会发生这种情况。因此,可能要更有效地开始一个较长的任务,该任务要推迟到以后,并且只有在两个任务都在各自的截止日期之前完成后才开始,这个任务要早些。
问题是:是否有排序算法可以帮助我有效地解决此问题?简而言之,给定要运行的一定数量的任务,每个任务都有一定的时间和截止日期,这是一种有效的算法,可以解决从何处开始每个任务(线程和线程中的位置)的问题吗?目前,它可以解决100个任务和10个线程是一件好事,但是理想情况下,它需要可扩展,最多可以说5,000个任务和约100个线程。
我是物理学专业的,所以我对分类算法一无所知,希望能对您有所帮助。预先感谢!