应用实例—批处理作业调度.PPTVIP

  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文档。上传文档
查看更多
应用实例—批处理作业调度

应用实例—图的m着色问题 给定无向连通图G和m种不同的颜色。用这些颜色为图G的各顶点着色,每个顶点着一种颜色。是否有一种着色法使G中每条边的2个顶点着不同颜色。 这个问题是图的m可着色判定问题。若一个图最少需要m种颜色才能使图中每条边连接的2个顶点着不同颜色,则称这个数m为该图的色数。 求一个图的色数m的问题称为图的m可着色优化问题。 平面图的四色猜想。 应用实例—图的m着色问题 解向量:(x1, x2, … , xn)表示顶点i所着颜色x[i] 可行性约束函数:顶点i与已着色的相邻顶点颜色不重复。 问题解空间可表示为一颗高度为n+1的完全m叉树。解空间树的第i(1 ≤ i ≤ n)层每个节点都有m个儿子,每个儿子相应于x[i]的m个可能着色之一。第n+1层节点均为叶节点。 应用实例—图的m着色问题 void Color::Backtrack(int t) { if (tn) { sum++; for (int i=1; i=n; i++) cout x[i] ; cout endl; } else for (int i=1;i=m;i++) { x[t]=i; if (Ok(t)) Backtrack(t+1); } } bool Color::Ok(int k) {// 检查颜色可用性 for (int j=1;j=n;j++) if ((a[k][j]==1)(x[j]==x[k])) return false; return true; } 算法时间复杂度分析: (1)节点数: 1+m+m2+…+mn =(mn+1-1)/(m-1)≤mn+1/(m/2)=2mn (2)最坏情况下每个结点都要与其它所有顶点的颜色比较,复杂度O(n); 故复杂度为O(nmn) 类似于n后问题。 应用实例—图的m着色问题 1 5 3 2 4 6 7 1 5 3 2 4 6 7 1 1,2 1,2,1 1,2,1,3 1,2,1,3,1 1,2,1,3,1,2 1,2,1,3,1,2,3 应用实例—图的m着色问题 1 2 3 4 1 2 3 … … … 1 2 3 4 5 6 7 8 9 10 11 12 应用实例—图的m着色问题 1 2 3 4 1 2 3 4 1 2 3 4 1 2 3 4 1 2 3 4 1 2 3 4 1 2 3 4 1 2 3 4 1 2 3 4 1 2 3 4 1 2 3 4 1 2 3 4 A:(1,2,1,2) B:(1,2,1,3) C:(1,2,3,2) D:(1,3,1,2) E:(1,3,1,3) F:(1,3,2,3) G:(2,1,2,1) H:(2,1,2,3) I:(2,1,3,1) J:(2,3,1,3) K:(2,3,2,1) L:(2,3,2,3) 1 2 3 4 1 2 3 4 1 2 3 4 1 2 3 4 1 2 3 4 1 2 3 4 M:(3,1,2,1) N:(3,1,3,1) O:(3,1,3,2) P:(3,2,1,2) Q:(3,2,3,1) R:(3,2,3,2) 应用实例—图的m着色问题 1 2 5 3 4 6 应用实例—图的m着色问题 1 2 5 3 4 6 应用实例—旅行售货员问题 旅行售货员(货郎担)问题: 某售货员要到若干城市去推销商品,已知各城市间的路程耗费(代价),如何选定一条从驻地出发,经过每个城市一遍,最后回到驻地的路线,使得总路程耗费最小。 2 1 3 10 30 4 6 20 5 4 应用实例—旅行售货员问题 显约束: (1)i=n时,检查是否存在一条从顶点x[n-1]到x[n]的边和一条从顶点x[n]到顶点1的边,若存在,需要判断当前回路代价是否优于已找到的当前最优回路代价bestc,若为真,更新当前最优值bestc和最优解bestx。 (2)当in时,当前扩展结点位于排列树的第i-1层。若图中存在从顶点x[i-1]到顶点x[i]的边,且x[1:i]的代价小于当前最优值bestc时,进入排列树的第i层,否则剪去相应子树。 设巡回路线从结点1开始,则解向量为i1=1,i2,i3,…,in,其中i2,i3,…,in为{2,3,…,n}的一个排列。搜索空间为排列树。 应用实例—旅行售货员问题 templateclass Type void TravelingType::Backtrack(int i){ if (i == n) { if (a[x[n-1]][x[n]] != NoEdge a[x[n]][1] != NoEdge (cc + a[x[n-1]][x[n]] + a[x[

文档评论(0)

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

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

1亿VIP精品文档

相关文档