带期限的作业调度问题.docVIP

  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文档。上传文档
查看更多
带期限的作业调度问题.doc

算法作业 题目:给定一个带期限的作业排序问题, n=5, (p1,p2,p3,p4,p5)=(6,3,4,8,5), (t1,t2,t3,t4,t5)=(2,1,2,1,1), (d1,d2,d3,d4,d5)= (3,1,4,2,4), 应用FIFOBB求使总罚款数最小的可行作业集J, 要求: 1)阐述c’(X)和u(X)的设计思路,U的初始值; 2)针对解向量变长格式, 画出FIFOBB的生成的部分状态空间树, 按活节点生成顺序给节点编号,在各节点位置给出c’(X)和U的值,给每条边标记选择的作业编号; 3)阐述c’(X)=U的处理方案, 可行解的判断方案; 4)阐述你程序中的主要数据类型、数据变量和功能模块。 5)、编成并上机实现FIFOBB程序, 实现对不同作业排序问题实例的求解,问题实例的输入数据存储在case.txt文件中,其格式为: 第一行 问题规模(最多10个作业) 第二行 各作业的罚款数,数据项之间用一个空格分隔 第三行 各作业的截止期限,数据项之间用一个空格分隔 第四行 各作业所需的运行时间,数据项之间用一个空格分隔 解:1、C(x)为成本估计函数,Pi是各个作业的成本。U(x)是对应结点X的解的成本值。 在比较的时候可能出现C(x)=U(x),我们设一个较小的常数e,一句当前结点的截止期限与前面结点的运行时间总和比较,若大于,则结点可行,不大于,则不可行。 2.状态空间树: 方框: 椭圆表示结点; 作业:1 2 3 4 5 六边形表示死结点。 作业:2 3 4 5 3 4 5 4 5 5 作业:3 4 5 4 5 5 4 5 5 5 作业:5 3.主要数据类型与变量 算法或程序模块 #includestdio.h typedef struct node { int time; int parent; int x; float u,c; int date; }F;F q[30]; float p[10]; int t[10],d[10],a[10]={0,1,2,3,4,5,6,7,8,9}; int i,j,D,k,E,b; float co,up,max=1000,U,e=0.5; F w[1]; int time(int k,int E) { if(q[E].date d[a[k]]) w[0].date =d[a[k]]; else w[0].date =q[E].date; if(q[E].time+t[a[k]]w[0].date ) return 0; else return 1; } void cost(int k,int E) { int m; if(!time(k,E)) co=max; else if(q[E].x-a[k]!=-1) {co=q[E].c; for(m=q[E].x+1;ma[k];m++) co=co +p[m]; }else

文档评论(0)

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

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

1亿VIP精品文档

相关文档