算法设计与分析资料报告资料报告材料课程大作业.doc
《算法设计与分析资料报告资料报告材料课程大作业.doc》由会员分享,可在线阅读,更多相关《算法设计与分析资料报告资料报告材料课程大作业.doc(17页珍藏版)》请在课桌文档上搜索。
1、题 目:作业调度问题与算法分析目录算法设计与分析课程大作业1一动态规划算法解决流水作业调度31、问题描述32、算法分析33. 算法的描述44、局部算法实现55. 运行结果66、时空效率分析6二贪心算法解多机调度问题61、问题描述62、算法分析73.局部算法实现74.计算复杂性分析85. 运行结果9三回溯法解决批作业调度问题91.问题描述92.算法思想103. 局部算法实现114.运行结果125.时间复杂性分析12四作业调度算法比拟12五课程学习总结13摘要:在现代企业中,作业调度已成为提高资源利用率、从而提高企业运行效益的关键环节之一。把各个作业分配到车间现有的设备上,并确定它们的先后次序,这
2、是一项复杂的工作本文就作业调度排序问题进展了研究,通过对几个经典作业调度算法的分析讨论,总结了各个算法对作业调度的求解过程,并给出了每个算法的复杂度与性能分析。关键词:作业调度;动态规划;贪心算法;回溯法;一动态规划算法解决流水作业调度1、问题描述给定n个作业,每个作业有两道工序,分别在两台机器上处理。一台机器一次只能处理一道工序,并且一道工序一旦开始就必须进展下去直到完成。一个作业只有在机器1上的处理完成以后才能由机器2处理。假设作业i在机器j上需要的处理时间为ti,j。流水作业调度问题就是要求确定一个作业的处理顺序使得尽快完成这n个作业。2、算法分析 直观上,一个最优调度应使机器M1没有空
3、闲时间,且机器M2的空闲时间最少。在一般情况下,机器M2上会有机器空闲和作业积压2种情况。 在一般情况下,机器M1开始加工S中作业时,机器M2还在加工其他作业,要等时间t后才可利用。将这种情况下完成S中作业所需的最短时间记为T(S,t)。流水作业调度问题的最优值为T(N,0)。由流水作业调度问题的最优子结构性质可知,12 从公式1可以看出,该问题类似一个排列问题,求N个作业的最优调度问题,利用其子结构性质,对集合中的每一个作业进展试调度,在所有的试调度中,取其中加工时间最短的作业做为选择方案。将问题规模缩小。 公式2说明一般情况下,对作业集S进展调度,在M2机器上的等待时间,除了需要等该部件在
4、M1机器上完成时间,还要冲抵一局部原来的等待时间,如果冲抵已成负值,自然仍需等待M1将作业做完,所以公式取maxt-ai,0。3. 算法的描述 从分析可知,流水作业调度问题一定存在满足Johnson法如此的最优调度,且容易由下面的算法确定。流水作业调度问题的Johnson算法:1令;2将中作业依的非减序排列;将中作业依的非增序排列;作业接种作业构成满足Johnson法如此的最优调度。4、局部算法实现int FlowShop(int n,int a,int b,int c)int i;Jobtype *d = new Jobtypen;for( i=0; ibi?bi:ai;/按Johnson法
5、如此分别取对应的bi或ai值作为关键字di.job = ai=bi;/给符合条件aibi的放入到N1子集标记为truedi.index = i; BubbleSort(d,n);/对数组d按关键字升序进展排序 int j = 0,k = n-1; for( i=0; in; i+)if(di.job)cj+ = di.index;/将排过序的数组d,取其中作业序号属于N1的从前面进入elseck- = di.index;/属于N2的从后面进入,从而实现N1的非减序排序,N2的非增序排序 j = ac0;k = j+bc0;for( i=1; in; i+)j += aci;/M1在执行ci作业
6、的同时,M2在执行ci-1号作业,最短执行时间取决于M1与M2谁后执行完k = jk?k+bci:j+bci;/计算最优加工时间delete d;return k;5. 运行结果6、时空效率分析 算法Flowshop的主要计算时间花在对作业集的排序上。在这里,我们使用冒泡排序法(BubbleSort),因此,在最坏情况下算法FlowJob所需要的计算时间为。所需要的空闲显然是。二贪心算法解多机调度问题1、问题描述 多机调度问题要求给出一种作业调度方案,使所给的n个作业在尽可能短的时间由m台机器加工处理完成。约定,每个作业均可在任何一台机器上加工处理,但未完工前不允许中断处理。作业不能拆分成更小
7、的子作业。这个问题是NP完全问题,到目前为止还没有有效的解法。对于这一类问题,用贪心选择策略有时可以设计出较好的近似算法。2、算法分析 贪心算法只需按顺序以数组方式提供各作业的加工时间和机器的台数;求出作业的个数,假设小于机器台数,就将作业逐个分配给就近的机器,所需要的加工时间,即为最长作业所需时间。 假设作业数大于机器台数,将作业按加工时间的多少降序排序,以机器数建立最小堆,先将前m个作业分配给m个机器,最小堆顶是最小的元素即m个作业中加工时间最少的作业,将其移出并加上后续作业的加工时间,再插入堆,这时会改变原来的状态,升到堆顶的机器加工总时间最少,它再移出加后续作业的加工时间,在插入堆,依
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 算法 设计 分析 资料 报告 材料 课程 作业

链接地址:https://www.desk33.com/p-15204.html