ImageVerifierCode 换一换
格式:DOCX , 页数:15 ,大小:97.99KB ,
资源ID:14352826      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/14352826.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(C++程序流水作业调度Word下载.docx)为本站会员(b****4)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

C++程序流水作业调度Word下载.docx

1、这与a是N的一个最优调度矛盾,所以。从而。这就是证明了流水作业调度问题具有最优子结构的性质。2. 建立递归式计算最优解由流水作业调度问题的最优子结构的性质我们可以得到,。推广到更一般的情形,我们便有:。其中,这一项是由于机器上,作业需在时间之后才能开工。因此,在机器上完成作业之后,在机器上还需时间才能完成对作业的加工。按照上面所叙述的递归式,可以设计出解决流水作业调度问题的动态规划算法。通过对递归式的分析,算法可以得到进一步的改进。3. 流水调度问题的Johnson法则 设a是作业集S在机器的等待时间为t时的任意一个最优调度。如果在调度中,安排在最前面的两个作业分别为i和j,即。则由动态规划的

2、递归式可以得到:其中, 如果作业i和j满足,则称作业i和j满足Johnson不等式。如果作业i和j不满足Johnson不等式,则交换作业i和j的加工次序后,作业i和j满足Johnson不等式。 在作业集S当机器的等待时间为t时的调度a中,交换作业i和作业j的加工次序,得到的作业集S的另一个调度a,它所需要的加工时间为 。其中, 当作业i和j满足Johnson不等式时,我们有从而,由此可得,因此任意t有从而,。由此可见。 换句话说,当作业i和作业j不满足Johnson不等式时,交换它们的加工顺序后,作业i和作业j就满足Johnson不等式了,且不增加加工时间。由此可得,对于流水作业调度问题,必存

3、在一个最优的调度a,使得作业和满足Johnson不等式:,称这样的调度a为满足Johnson法则的调度。 进一步可以证明,调度a满足Johnson法则当且仅当对任意的i和j都有ij时有。由此可知,任意两个满足Johnson法则的调度均为最优调度。至此,我们将流水调度问题转化为求满足Johnson法则的调度问题。4. 算法的描述从上面的分析可知,流水作业调度问题一定存在满足Johnson法则的最优调度,且容易由下面的算法确定。流水作业调度问题的Johnson算法:(1) 令;(2) 将中作业依的非减序排列;将中作业依的非增序排列;(3) 作业接种作业构成满足Johnson法则的最优调度。具体的代

4、码在文件夹流水作业调度动态规划法文件夹中。三、 时空效率分析 算法FlowJob的主要计算时间花在对作业集的排序上。在这里,我们使用冒泡排序法(BubbleSort),因此,在最坏情况下算法FlowJob所需要的计算时间为。所需要的空闲显然是。/ FlowOperation.h#ifndef FLOWOPERATION_H#define FLOWOPERATION_Hclass FlowOperationpublic: FlowOperation(); FlowOperation(); void run(); / 运行接口private: int number; / 流水作业个数 int nu

5、mberB; / 记录N1的个数 int numberC; int *a; / 存储流水作业时间 int *b; / N1(Ai=Bi) bool input(); / 输入接口 bool sort(); / X=0 or X=1 快速排序 目的是满足Johnson 不等式 min(Bi,Aj)min(Bj,Ai) 任意 ji bool sortB(int *b,int i,int j,int X); / X=0; bool sortC(int *c,int i,int j,int X); / X=1; void output(); / 输出计算的最优调度所用的时间;#endif/ FlowO

6、peration.cpp#include using std:endl;ios;cout;fstreamfstream;ifstream;ofstream;cstdlib/using std:exit;#include FlowOperation.h#define N 50 / 预定义有50个作业 根据实际情况可作调整ifstream inputFile(input.txt,ios:in);ofstream outputFile(output.txtout);FlowOperation:FlowOperation() / 构造函数 number=0; numberB=0; numberC=0;

7、 a=new int *N; b=new int *N; c=new int *N; for (int i=0;inumber; outputFilenumber cout for (int j=0;jaij; outputFileaij ; cout outputFile couti+) / 分类 判断 ai 与 bi 的关系 即 ai0 与 ai1的大小关系 if (ai0ai1) / 提取满足ai=bi的时间事件 在机器M1上的工作时间 小于M2上的工作时间 存储在数组c中 cnumberC0=ai0; cnumberC1=ai1; numberC+;numberB=numberB fo

8、r (int k=0;kk+)numberB;biknumberC=numberC for ( k=0;numberC;cik if (a!=NULL) if (b!=NULL) | (c!=NULL) return true; return false; return false;sort() if (sortB(b,0,numberB-1,0) / 判断是否一对数组b 排好序 if (sortC(c,0,numberC-1,1) / 判断是否一对数组c 排好序 return true;sortB(int *b,int i,int j,int X) / 升序排序 if (ij) int left=i; int right=j; j+;/ 目的是使用 -j int pivot=biX; while (i while(ij) / 从左边寻找第一个大于 pivot 的数 不适用等号 if (b+iXi) / 从右边寻找第一个小于 pivot 的数 不适用等号 if (b-jX if (i int t; t=biX; biX=bjX; bjX=t;

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1