29.运动员最佳匹配问题---READ.docxVIP

  1. 1、本文档共3页,可阅读全部内容。
  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文档。上传文档
查看更多
29.运发动最正确匹配问题 羽毛球队有男女运发动各n人。给定2个nxn矩阵P和Q。是男运发动 i和女运发动j配对组成混合双打的男运发动竞赛优势;是女运发动i和男 运发动j配合的女运发动竞赛优势。由于技术配合和心理状态等各种因素影响, 不一定等于Q[j][i]o男运发动i和女运发动]配对组成混合双打的男女双方 竞赛优势为P[i][j]*Q[j][i]o设计一个算法,对于给定的男女运发动竞赛优势,计 算男女运发动最正确配对法,使各组男女双方竞赛优势的总和到达最大。 回溯法基本思路 回溯法的基本做法是有哪些信誉好的足球投注网站,或是一种组织得井井有条的、能防止不必要有哪些信誉好的足球投注网站的 穷举式有哪些信誉好的足球投注网站法。这种方法适用于解一些组合数相当大的问题。回溯法在问题的解 空间树中,按深度优先策略,从根结点出发有哪些信誉好的足球投注网站解空间树。算法有哪些信誉好的足球投注网站至解空间树 的任意一点时,先判断该结点是否包含问题的解:如果肯定不包含,那么跳过对该 结点为根的子树的有哪些信誉好的足球投注网站,逐层向其祖先结点回溯;否那么,进入该子树,继续按深 度优先策略有哪些信誉好的足球投注网站。 2.问题的回溯算法1符号约定 2. 问题的回溯算法 2解空间 运发动最正确配对问题的解空间可以组织成一棵n+1层的排列树,从根结点出发 到该排列树的任一叶结点对应了一个运发动的配对方案,其中第i层结点表示第i 个男运发动,从第i层结点到第i+1层接点的连线表示与第i个男运发动相配对的 女运发动j(j为连线上的标号)。 . 3算法基本思想 在程序的执行过程中,假设当前的层数in时,那么说明已经找到了一个运发动配对 方案,此时只需判断其是否是最优解,在算法中,cc存放各组男女运发动双方竞赛 优势乘积的总和,而bestc是最优值,即存放竞赛优势乘积总和的最大值,随程序的 执行,cc和bestc中存放其相应的当前值与当前最优值,此时假设限界函数cobestc, 那么说明当前的最优方案已不再最优,此时就用找到的方案来更新当前的最优方案; 否那么仍然保持以前的最优值;假设in,那么按照深度优先的策略继续往下有哪些信誉好的足球投注网站。上述 过程一直地进行下去,直到所有路径均被检查过,就可以得到一个最优方案。 .程序实现ftinclude “stdafx.h ftinclude u iostreamv#define N 3 using namespace std;class team {public: int level;〃层数int bestScore; 〃最优分数 int curScore; 〃当前分数int bestWomen[N];〃最优女运发动 int p[N] [3];int q[N] [3]; public: void FindBestComb(int curWomen[], int w[]);〃函数接口 用回逆求出最优组 合team(int m, int n);〃赋值函数 );void team: : FindBestComb(int curWomen[], int w口)〃w口判断每层被选中的 女运发动w[i]=l没有选中,w[i]=0选中 (for(int i = 0; i N; i++) {if (w[i] != 0) curWomen [level] = i; 〃存放每层的女发动 curScore += p[level] [i] * q[i] [level];〃计算当前有分数 if (level N - 1) w[i] = 0;〃已被选中的女运发动 level++; FindBestComb (curWomen, w);〃调用自身 w[i] = 1;level一; )else {cout/zcurScore :〃curScore〃\n〃 ; if (curScore bestScore)( bestScore = curScore;for (int i = 0; i N; i++) ( bestWomen[i] = curWomen[i];) )) curScore -= p[level] [i] * q[i] [level];〃回逆 )} )team::team(int m, int n ) {cout/zplease input the array a:〃; for(int i=0;im;i++)for (int j=0;jn;j++) cin?p[i] [j];cout,zplease input the array b:〃; for(int i=0;im;i++)for (int j=0;jn;j++) cin?q[i] [j]; )int main(void) (team tm(3, 3); tm. bestScore=0;tm. curScore=0; tm. level=0;int w[N]; int curWomen[N];for (int i = 0; i N;

文档评论(0)

189****6037 + 关注
实名认证
文档贡献者

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

版权声明书
用户编号:6012235243000004

1亿VIP精品文档

相关文档