



免费预览已结束,剩余1页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
算法设计与分析上机报告姓名:学号:日期:上机题目:最佳调度问题(回溯算法)实验环境:CPU: 2.10GHz ; 内存: 6G ; 操作系统:Win7 64位 ;软件平台:Visual Studio2008 ;一、算法设计与分析:题目:最佳调度问题(回溯算法)设有n个任务由m个可并行工作的机器来完成,完成任务i需要时间为ti。试设计一个算法找出完成这个任务的最佳调度,使完成全部任务的时间最早。算法思想:解空间的表示:一个深度为N的M叉树。ti:第i个任务的时间xi=j:当前输出结果Resi=j:表示第i个任务要运行在第j台机器上time_machinei:第i个机器上的运行时间基本思路: 1、搜索从开始结点(根结点)出发,以DFS搜索整个解空间。2、每搜索完一条路径则记录下time_min和Resi序列,开始结点就成为一个活结点, 同时也成为当前的扩展结点。在当前的扩展结点处向纵深方向移至一个新结点, 并成为一个新的活结点,也成为当前扩展结点。 3、如果在当前的扩展结点处不能再向纵深方向扩展,则当前扩展结点就成为死结点。此时,应往回移动(回溯)至最近的一个活结点处,并使这个活结点成为当前的扩展结点;直至找到一个解或全部解。二、核心代码:bool placetest(int k)int time_max_K = time_machine1;for(int i=2;i time_max_K )time_max_K = time_machinei;if(time_max_K time_min)return false;elsereturn true; void Backtrack(int k,int t,int x) if(k N )int time_max_K = time_machine1;for(int i=2;i time_max_K )time_max_K = time_machinei;if(time_max_Ktime_min)time_min = time_max_K;for(int i=1;i=N;i+)Resi = xi;elsefor(int i=1;i=K;i+)xk = i;if( placetest(k) )time_machinei += tk;Backtrack(k+1,t,x);time_machinei -= tk; 三、结果与分析:附录(源代码)算法源代码(C+描述)/*最佳调度问题(回溯算法)设有n个任务由k个可并行工作的机器来完成,完成任务i需要时间为。试设计一个算法找出完成这n个任务的最佳调度,使完成全部任务的时间最早。*/#include #include #include using namespace std;int K,N;int *time_machine;/K+1=0;int *Res;/N+1;static int time_min = INT_MAX;bool placetest(int k);void Backtrack(int k,int t,int x);int main()cout 请输入任务个数和机器个数: N K;if( N = K)cout 最短运行时间即为任务中时间最长者!endl;return 0;int *t = new intN+1;int *x = new intN+1;cout 请分别输入 N个任务时间: endl;for(int i=1;i ti;/t8 = 0,2,14,4,16,6,5,3;time_machine = new intK+1;Res = new intN+1;for(int i=1;iK+1;i+)time_machinei=0;for(int i=1;iN+1;i+)cout ti ;cout endl;clock_t start,finish; double totaltime;start=clock();Backtrack(1,t,x);finish=clock(); /1ms clock+ totaltime=(double)(finish-start)/CLOCKS_PER_SEC;cout 程序运行时间: totaltime sn;for(int i=1;iN+1;i+)cout Resi ;cout endl;cout min time: time_min endl;system(pause);return 0;bool placetest(int k)int time_max_K = time_machine1;for(int i=2;i time_max_K )time_max_K = time_machinei;if(time_max_K time_min)return false;elsereturn true; void Backtrack(int k,int t,int x) if(k N )int time_max_K = time_machine1;for(int i=2;i time_max_K )time_max_K = time_machinei;if(time_max_Ktime_min)time_min = time_max_K;for(int i=1;i=N;i+)Resi = xi;elsefor(
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025贵州民族大学招聘程序招聘博士配偶工作考前自测高频考点模拟试题及完整答案详解一套
- 2025年中国户外太阳能聚光灯行业市场分析及投资价值评估前景预测报告
- 2025河南郑州市新郑市面向社会聘任政务服务社会监督员、政务服务体验员10人考前自测高频考点模拟试题附答案详解(模拟题)
- 外协员工入职安全培训课件
- 2025广东广州医科大学附属医院招聘163人(第一次编制)考前自测高频考点模拟试题有完整答案详解
- 2025年陕西大秦电能集团有限公司检修分公司招聘(1人)模拟试卷及答案详解(各地真题)
- 2025福建省康辉国际旅行社股份有限公司招聘5人考前自测高频考点模拟试题带答案详解
- 2025年文化和旅游部直属事业单位招聘应届生(100人)模拟试卷完整参考答案详解
- 2025和田地区教师招聘(2000人)考前自测高频考点模拟试题及答案详解参考
- 2025广西来宾市投资促进局公开招聘1人考前自测高频考点模拟试题附答案详解(考试直接用)
- 养老院保洁培训课件
- 《生成式人工智能》 课件 第4章 Transformer模型
- 中医围手术期护理
- 2025年辽宁高考地理试卷真题答案详解讲评课件(黑龙江吉林内蒙古适用)
- 演员签约剧组合同协议
- 《决策分析法DEMATEL课件》
- 装修公司投资协议书
- 大学英语四级考试大纲
- 数字技术赋能下的小学语文课堂创新实践
- 中药塌渍操作方法
- 中科低碳新能源技术学院(能源工程系) 氢能技术应用专业:新版人才培养方案
评论
0/150
提交评论