第5章回溯法习题ppt课件.pptVIP

  1. 1、本文档共25页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第5章回溯法习题ppt课件

课程安排 第5章 回溯法习题课 第5章 回溯法习题 子集和问题 最小长度电路板排列问题 最小重量机器设计问题 运动员最佳匹配问题 无分隔符字典问题 无和集问题 n色方柱问题 整数变换问题 拉丁矩阵问题 排列宝石问题 重复拉丁矩阵问题 罗密欧与朱丽叶的迷宫问题 工作分配问题 独立钻石跳棋问题 智力拼图问题 布线问题 最佳调度问题 无优先级运算问题 世界名画陈列馆问题 世界名画陈列馆问题(不重复监视) 魔方问题 魔方(Rubik’s Cube)问题 算24点问题 算m点问题 双轨车皮编序问题 多轨车皮编序问题 部落卫队问题 虫蚀算式问题 完备环序列问题 离散01串问题 喷漆机器人问题 子集树问题 0-1背包问题 排列树问题 一般解空间有哪些信誉好的足球投注网站问题 最短加法链问题 n2-1谜问题 第5章 回溯法习题 子集和问题 运动员最佳匹配问题 最佳调度问题 离散01串问题 5-1 子集和问题 子集和问题的一个实例为〈S,t〉。其中,S={ x1,x2,…,xn} 是一个正整数的集合,c是一个正整数。 子集和问题判定是否存在S 的一个子集S1,使得 试设计一个解子集和问题的回溯法。 编程任务: 对于给定的正整数的集合S={ x1,x2,…,xn}和正整数c,编程计算S 的一个子集S1,使得 子集和问题 数据输入: 第1行有2个正整数n和c,n表示S的大小,c是子集和的目标值。接下来的1 行中,有n个正整数,表示集合S 中的元素。 结果输出: 输出子集和问题的解。当问题无解时,输出“No solution! ”。 输入示例 5 10 2 2 6 5 4 输出示例 2 2 6 子集和问题算法 类似于装载问题 bool Subsum::backtrack(int i) { //从1开始调用 if (in) { //计算完毕 for (int j=1; j=n; j++) bestx[j] = x[j]; //记录最优解 bestw = cw; if (bestw==c) return true; //满足条件(找到了) else return false; } 子集和问题算法 r -= w[i]; //剩余大小 if (cw+w[i]=c) { //第i个数可以使用 x[i] = 1; //左子树 cw += w[i]; //当前和加上w[i] if (backtrack(i+1)) return true; cw -= w[i]; //准备进入右子树 } if (cw+rbestw) {//上界函数 x[i] = 0; //右子树 if (backtrack(i+1)) return true; } r += w[i]; //右子树无最优解 return false; } 5-4 运动员最佳匹配问题 问题描述: 羽毛球队有男女运动员各n 人。 给定2 个n×n 矩阵P 和Q。P[i][j] 是男运动员i 和女运动员j 配对组成混合双打的男运动员竞赛优势;Q[i][j] 是女运动员i 和男运动员j 配合的女运动员竞赛优势。 由于技术配合和心理状态等各种因素影响,P[i][j] 不一定等于Q[j][i] 。 男运动员i 和女运动员j 配对组成混合双打的男女双方竞赛优势为P[i][j]*Q[j][i] 。 设计一个算法,计算男女运动员最佳配对法,使各组男女双方竞赛优势的总和达到最大。 运动员最佳匹配问题 编程任务: 设计一个算法,对于给定的男女运动员竞赛优势,计算男女运动员最佳配对法,使各组男女双方竞赛优势的总和达到最大。 数据输入: 第一行有1 个正整数n (1≤n≤20)。接下来的2n 行,每行n 个数。前n 行是p,后n 行是q。 结果输出: 男女双方竞赛优势的总和的最大值。 运动员最佳匹配问题 结果输出: 男女双方竞赛优势的总和的最大值。 样例分析 运动员最佳匹配问题算法 解空间是一棵排列树 void pref::Backtrack(int t) { //从1开始回溯 if (tn) Compute(); //构成1次全排列 else for (int j=t; j=n; j++) { //从结点t到叶结点 swap(r[t], r[j]); //将结点j作为当前结点 Backtrack(t+1); swap(r[t], r[j]); //将结点还回去 } } 运动员最佳匹配问题算法 void pref::Compute(void) { //计算当前排列的竞赛优势 for (int i=1,temp=0;i=n;i++) //按题目要求计算 temp += p[i][r[

文档评论(0)

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

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

1亿VIP精品文档

相关文档