多机调度问题 贪心算法

问题描述:设有n个独立的作业{1,2,…n},由m台相同的机器进行加工处理。作业i所需的处理时间为t; (t;为正整数)。约定每个作业均可在任何一台机器.上加工处理,但未完工前不允许中断处理,即作业不能拆分成更小的子作业。要求给出一种作业调度方案,使得所给的n个作业在尽可能短的时间内由m台机器加工处理完成。

贪心选择策略:按处理时间从大到小的顺序将作业分配给空闲的机器。

个人感觉这个算法难点在于变量多
数组t[…n]: t[i]表示作业i所需的处理时间。
数组num[1…m]: num[j]表示第j台机器上处理的作业数。
数组M[1…m, …n]: M[j, 1…num[j]]表示第j台机器上处理的作业集。
数组fT1…m]: f[j]表示第j台机器被占用的时间。

输入:作业数n,机器数m,表示n个作业所需的处理时间的整数数组t[…n]。
输出:在m台机器上处理n个作业所需的近似最短时间mint,表示m台机器上分别处理的作业数的数组num[1…m],表示m台机器_上分别处理的作业集的数组M[1…m, 1…n]。

num[1..m]=0; f[1..m]=0 /初始化
/对t1..n]按降序地址排序,排序结果返回到数组a[ ..n]中,
//使得t[a[1]]>=f[a[2]>...>=t[a[]]。
a=sort(t, n)
for i=l to n
	j=min(f, m) //求f[..m]的最小值对应的下标。
	num[j]=num[j]+1 //在 第j台机器上安排作业a[i]
	M[j, num[]]=a[i]
	f[j]=f[j]+t[a[i]]
end for
mint=max(f, m) //求f[..m]的最大值。
return mint, num, M
  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
多机调度问题是指在有多个独立作业和多相同机器的情况下,如何安排作业的调度,使得作业能够在尽可能短的间内完成。贪心算法是一种常用的解决多机调度问题的方法。 贪心算法的贪心策略是最长处理间的作业优先,即将处理间最长的作业分配给最先空闲的机器。这样可以保证处理间长的作业优先处理,从而在整体上获得尽可能短的处理间。\[1\] 举个例子,假设有7个独立作业{1, 2, 3, 4, 5, 6, 7},要由3机器{M1, M2, M3}进行加工处理,各作业处理间分别为{2, 14, 4, 16, 6, 5, 3}。根据贪心算法,我们可以按照最长处理间的作业优先的原则,将作业分配给空闲间最早的机器。具体的作业调度方案可以根据实际情况进行计算。\[2\] 贪心算法的求解思路是先对作业处理进行排序,然后按照贪心策略依次将作业分配给空闲间最早的机器。最终得到的作业调度方案可以近似地得到最优解。\[3\] 总结起来,多机调度问题贪心算法是一种有效的解决方法,通过将处理间最长的作业优先分配给最先空闲的机器,可以在尽可能短的间内完成作业加工处理。 #### 引用[.reference_title] - *1* [求解多机调度问题 —— 贪心算法](https://blog.csdn.net/Ennd_me/article/details/118343115)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down1,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [【贪心法】多机调度问题](https://blog.csdn.net/weixin_42260102/article/details/95971105)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down1,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [多机调度问题 贪心算法解决 C++](https://blog.csdn.net/weixin_56727452/article/details/125146940)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down1,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值