【本文原创,转载请注明出处<V字弦割丶>】
http://blog.csdn.net/vmurder/article/details/39555459
首先介绍一下多机调度问题。
就是某工厂有n个独立的作业,由m台相同的机器进行加工处理。作业i所需的加工时间为ti,任何作业在被处理时不能中断,也不能进行拆分处理。现厂长请你给他写一个程序:算出n个作业由m台机器加工处理的最短时间。
显然我们有一种贪心算法,就是先从大到小排个序,枚举作业,哪个机器有空就把作业往哪里塞,这是一个很“优秀”的贪心,可以水过很多分!但是显然它是错。如果你认为不显然,那么来看这组数据:
{7,3//8,9,10,11,12,14,16}
它的最优解是27:8+9+10=27;11+16=27;12+14=26;
然后我们可以牺牲代码复杂度来提高准确率,二分答案,然后往每个容器(此处为3个)里面塞,那么这组数据就可以调过了,但是它还是错的!因为这个问题