水木社区手机版
首页
|版面-C++程序设计语言(CPlusPlus)|
新版wap站已上线
返回
1/1
|
转到
主题:问一个算法问题
楼主
|
coronasky
|
2020-03-27 03:45:33
|
展开
有m个服务器,另外有n个任务,每个任务的时长是p[i],n >> m
想要把所有任务调度到m个服务器上同时运行,求总运行时间的最小值?
有近似解就行
感觉是minmax问题,又有点像背包问题
--
FROM 199.43.4.*
3楼
|
coronasky
|
2020-03-27 06:40:45
|
展开
多谢!搜了一下,贪心应该就可以得到近似解了
【 在 here080 (hero080) 的大作中提到: 】
: partition problem (optimization version)的加强版?
: 肯定是NP-hard
: 近似解应该有办法。
: ...................
--
FROM 199.43.4.*
4楼
|
coronasky
|
2020-03-27 06:41:30
|
展开
对,我准备这么做,先从大到小排序,然后依次每个任务塞到目前sum最小的那个服务器上
【 在 cafitren (挿fit人) 的大作中提到: 】
: 先跑大的,后跑小的,利用率90%,sum(p)/m/0.9?
--
FROM 199.43.4.*
6楼
|
coronasky
|
2020-03-28 03:19:11
|
展开
dp的复杂度太高了,因为m很大
已经用贪心解决了,因为数据分布比较好,所以效果很好,最大和最小的差不到1%
【 在 galaxy123 (galaxy123) 的大作中提到: 】
: 类似问题:
https://blog.csdn.net/Swartz2015/article/details/65939318
: 不过他是分2堆,你是分m堆。你要是用动态规划算出最优解,我估计时间复杂度大约是O(m的m次方* n个任务的总时间)
: - 来自「最水木 for iPhone 11 Pro Max」
: ...................
--
FROM 199.43.4.*
1/1
|
转到
选择讨论区
首页
|
分区
|
热推
BYR-Team
©
2010.
KBS Dev-Team
©
2011
登录完整版