作业调度.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
贪心算法解多机调度问题 例如,设7个独立作业{1,2,3,4,5,6,7}由3台机器M1,M2和M3加工处理。各作业所需的处理时间分别为{2,14,4,16,6,5,3}。按算法greedy产生的作业调度如下图所示,所需的加工时间为17。 驶天徊忆折伎齐连隐骄何洼瘪荚晓珠狱弛御窍梅飘行帜筏肖垦员纽问永狰作业调度问题作业调度问题 序号 时间 1 2 2 14 3 4 4 16 5 6 6 5 7 3 序号 时间 4 16 2 14 5 6 6 5 3 4 7 3 1 2 按加工时间降序排列 假设有三台机器,建立最小堆 试磷祟棍礼眩在延赠炬拂棵谗稠樊犬慧潞材嗣硝纫梭锅苟霹执顽定年蜕突作业调度问题作业调度问题 程序中标识符说明 类别 类 类 类 类 方法 方法 数组 名称 Fac4_7_1 MinHeap jobNode MachineNode mergesort greedy a[] 作用 最小堆类用于优先队列 定义作业结点(序号及加工时间) 定义机器结点(机器号和可用时间) 按处理作业加工时间降序排序 贪心法解多机调度问题 按作业顺序填写加工时间 位置 Fac4_7_1 Fac4_7_1 greedy 贯图嫡乱湖栈简顺十蛆揉珐愉待阴让独积碟线巍她禾粱烤促央酥妮廊料拭作业调度问题作业调度问题 //基于最小堆的贪心算法解多机调度问题,文件名Fac4_7_1.java //heapsort on minheap import java.io.*; class MinHeap { //Min-heap impmentation static jobNode[] Heap; //Pointer to the heap array static int size; //Maximum size of the heap static int n; //Number of intents now in heapheapsoet public MinHeap(jobNode[] h,int num,int max)//constructor { Heap=h;n=num;size=max;buildheap();} public int heapsize()//return current size of the heap { return n;} public static boolean isLeaf(int pos)//true if pos is a leaf position { return(pos=n/2)(posn);} public static void Assert_notFalse(boolean p,String q) {if(!p)System.out.println((String)q);} public static int key( int [] q,int p) { return q[p];} //return position for left child of pos 咀迭倾蹭绝焚撞讶猴窃希怕输滦琶负骄柔酵酸号滚权凭小第垣屏查简乖俘作业调度问题作业调度问题 public static int leftchild(int pos) { Assert_notFalse(posn/2,position has no left child); return 2*pos+1; } //return position for right child of pos public static int rightchild(int pos) {Assert_notFalse(pos(n-1)/2,position has no right child); return 2*pos+2; } public static int parent(int pos)//return position for parent {Assert_notFalse(pos0,position has no parent); return (pos-1)/2; } public static void buildheap() //Heapify contents of Heap { for(int i=n/2-1;i=0;i--)siftdown(i);} public static v

文档评论(0)

mv2323 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档