- 1、本文档共14页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
摘 要
最大团问题(Maximum Clique Problem, MCP)是现实世界中一类真实问题,在市场分析、方案选择、信号传输、计算机视觉、故障诊断等领域具有非常广泛的应用。自1957年Hararv和Ross首次提出求解最大团问题的确定性算法以来,研究者们已提出了多种确定性算法来求解最大团问题。但随着问题规模的增大(顶点增多和边密度变大),求解问题的时间复杂度越来越高,确定性算法显得无能为力,不能有效解决这些NP完全问题。
最大团问题又称为最大独立集问题(Maximum Independent Set Problem),在市场分析、方案选择、信号传输、计算机视觉、故障诊断等领域具有非常广泛的应用。目前,求解MCP问题的算法主要分为两类:确定性算法和启发式算法。确定性算法有回溯法、分支限界法等,启发式算法蚁群算法、顺序贪婪算法、DLS-MC算法和智能搜索算法等。不管哪种算法,都要求在多项式时间内求得MCP问题的最优解或近似解。图分为有向图和无向图,本文主要研究确定性算法求解无向图最大团问题。
根据算法的设计结果,采用C++语言在Visual Studio 2008上实现算法,通过测试分析,结果运行正确。
关键词:最大团问题,分支限界法,MCP
目 录 TOC \o 1-3 \h \z \u
1 问题描述 1
2 问题分析 2
3 建立数学模型 4
4 算法设计 5
5 算法实现 6
6 测试分析 10
结 论 11
参考文献 12
1 问题描述
给定一个无向图1.1=(V,E),找出此无向图的最大团。如果V?U,且对任意u,v ? U有(u,v) ?E,则称U是G的完全子图。G的完全子图U是G的一个团,当且仅当U不包含G的更大完全子图。G的最大团是指G中所含顶点数最多的团。 无向完全图: 设G=(V,E)为N阶无向图,若G中的任何顶点都以其余的N-1个顶点相邻,则称G为N阶无向图。??
完全子图:给定G=(V,E),如果U为G的子图并且是完全图,则称为完全子图
团:设U为G完全子图,当图U不包含G的更大完全子图时,称U是G的一个团。
下图1.1中,子集{1,2}是G的大小为2的完全子图。这个完全子图不是团,因为它被G的更大的完全子图{1,2,5}包含。{1,2,5}是G的最大团。{1,4,5}和{2,3,5}也是G的最大团。
1
1
2
4
5
3
图1.1无向连通图
2 问题分析
分支限界(Brand and Bound)法类似于回溯法,也是一种在问题的解空间树上搜索问题的解的算法。
分支限界法常以广度优先或最小耗费(最大效益)优先的方式搜索解空间树。在分支限界法中,每一个活结点只有一次机会成为扩展结点。一旦活结点成为扩展结点,就一次性产生其所有儿子结点。在这些儿子结点中,舍弃那些导致不可行解或导致非最优解的儿子结点,将其余儿子结点加入活结点表中。此后,从活结点表中取下一个结点成为当前扩展结点,并重复上述结点扩展过程,直至找到所需的解或活结点表为空时为止。
具体来讲,分支限界法由“分支”策略和“限界”策略两部分组成。“分支”体现在对问题空间是按广度优先搜索;“限界”策略是为了加速搜索速度而采用启发式剪枝的策略。分支搜索法采用广度优先的策略,依次生成E结点所有分支(即所有的子结点)。在生成的结点中,将采用更有效的约束函数(限界函数)控制搜索路径,去除那些不满足约束条件(即不可能导出最优解)的结点,使之能更好地朝着状态空间树上有最优解的分支推进。
根据从活结点表中选择下一个扩展结点的方式的不同,分支限界法主要分为以下两类:
1,队列式(FIFO)分支限界法
队列式分支限界法将活结点表组织成一个队列,并按队列的FIFO原则选取下一个结点成为当前扩展结点。具体流程为:
(1)初始化,根结点是唯一的活结点,根结点入队。
(2)从活结点队中取出根结点后,作为当前E结点。对当前E结点,先从左到右地产生它的所有儿子,用约束条件检查,把所有满足约束函数的儿子加入活结点队列中。
(3)重复上述过程:再从活结点表中取出队首结点(队中最先进来的结点)为当前E结点,……;直到找到一个解或活结点队列为空为止。
2,优先队列式分支限界法
优先队列式分支限界法将活结点表组织成一个优先队列,并按优先队列中规定的结点优先级选取优先级最高的下一个结点成为当前扩展结点。具体流程为:对每一活结点计算一个优先级,并根据这些优先级,从当前活结点表中优先选择一个优先级最高(最有利)的结点作为扩展结点,使搜索朝着解空间树上有最优解的分支推进,以便尽快地找出一个最优解。
3 建立数学模型
最大团问题作为一个整数规划问题有许多等价的描述,整数规划问题描述如下:
文档评论(0)