算法分析与设计(VC问题团问题独立集问题)
一、VC问题&其NPC证明
定义:对于给定的一个图G和一个正整数k是否存在小于等于k个顶点,使得这些点所关联的边能够覆盖整个图G;
在这里我们由已知的3SAT规约到VC问题(在之前已经证明3SAT是NPC问题)
这里的任意Ci满足|Ci|=3这个条件,下面我们根据3SAT的条件找出一个变换使得其为VC问题;
在这里举一个例子便于理解(给出如下3SAT实例,将其转化为顶点覆盖(VC)问题):
根据上述的的构造过程,我们可以将其转化为如下的VC实例:
由上图G所示要想覆盖各个图所有的边直线边的顶点至少选择一个,故总个数为n个,对于覆盖三角形(子句)的边
其顶点至少选择两个有m个子句,故选择的顶点为2m个。因此要想覆盖这个图k至少为n+2m;
(在这里如果一条联络边被选择,其对应的三角形只能选择另外两个顶点在覆盖其对应的两条联络边)
由此我们得出了3SAT到VC的一个变换,下面证明此变换是可以在多项式时间内完成的:
在这里一共增加了n+3m+3m条边,显然是可以在多项式时间内构造完成,故满足多项式规约;
最后证明此规约过程是等价的:(前者为真时满足后者,后者为真时满足前者)
对于3SAT中的每一个子句其一定覆盖一条联络边,只需选出这条联络边未覆盖的顶点即可满足VC问题;
因为与每个三角形部件对应的三条联络边至少有一个被点覆盖所以每个三角形对应的子句为真,故满足3SAT;
二、团问题&独立集(IS)问题
由上述证明我们已经知道VC问题是NPC问题,现在根据此条件和以下定理,我们很容易证明团问题和IS问题也为NPC问题。
(注:本质上这三个问题是等价的,彼此之间可以相互转化)
对于任意一个图G=(V,E),假设V ' 是V的一个子集,对于以下3个条件彼此之间是等价的:
1)V '是图G的一个顶点覆盖; 2)V - V ' 是G的一个独立集; 3)在G的补图中V - V ' 是一个团;
显然团问题和IS问题都是可以在多项式时间内验证的,故它们都是NP问题;
下面证明IS问题是NPC问题:(从VC问题转换)
设有一个顶点覆盖实例(G,k)有一个k的顶点覆盖,则G中的任意一条边其端点至少有一个被选择,至多有一个
在V - S中 (边的顶点要么都在S中要么有一个在S中,亦或是都不在V - S中或有一个在V - S中)即V - S中的任意
两个点都没有边,所以V - S为独立集;
下面证明团问题是NPC问题:(从IS问题转换)
在独立集(G,k)中,有一个大小为k的独立集,S中任意两个顶点无边,则对于其补图中任意两个顶点都存在边,
故此补图为一个团;(独立集的补图是团)
算法分析与设计(VC问题团问题独立集问题)相关推荐
- 中北大学算法分析与设计实验报告六(最大团问题)
中北大学算法分析与设计实验报告六(最大团问题) 1.实验名称 实验六 回溯与分支限界算法实验 2.实验目的 题目:最大团问题 强化学生利用回溯算法和优化处理实际问题的能力. 3.训练知识点集群 (1) ...
- 《算法分析与设计》课程任务
<算法分析与设计>课程任务 内容包括以下8个部分,建议将任务按以下方式分解:其中1-6的每个部分的简介.适用条件.基本思想.基本步骤.复杂度分析等由1人讲解,实例分析由1人讲解(注:至少一 ...
- 用c语言验证装载问题 回溯法,《算法分析与设计》期末考试复习题纲(完整版)...
<算法分析与设计>期末复习题 一.选择题 1. 算法必须具备输入.输出和( D )等4个特性. A.可行性和安全 性 B .确定性和易读性 C.有穷性和安全 性 D .有穷性和确定性 2. ...
- 国防科大计算机考博大纲,2020年国防科技大学算法分析与设计考博大纲
国防科技大学2020年博士研究生入学考试自命题科目考试大纲 3A03<算法分析与设计>考试大纲 一.参考书目 1.<算法设计与分析基础>,Anany Levitin著,潘彦 译 ...
- 一周搞定期末考系列之《算法分析与设计》
转眼就到了期末复习算法的时候了 真的是一点都不慌啊 算法分析与设计这门课,由于是一门选修课,而且我对算法分析没有过多的热爱,所以没有对这门课程进行全方位的深度的学习与复习,但是我相信,将下列算法的全部 ...
- 程振波 算法设计与分析_算法分析与设计之动态规划
动态规划同样是一种将问题分解为求解子问题的方法,不过与分治不同的是,动态规划算法的子问题不是相互独立的,而是有公共的部分,即有重叠子问题,这个时候使用分治算法,将会重复计算公共的子问题,效率很低!而用 ...
- 一本好的教辅,可以少走很多弯路:算法分析和设计 王晓东
算法分析和设计 王晓东 我觉得第三版JAVA版本最好,第4版是C++版本,删减了几章. 可以配合北大屈婉玲教授的视频课程一起看 自己走了一些弯路,希望后续的可以避免以下 下载地址如下,也可以淘宝买本二 ...
- 非计算机专业教学改革,非计算机专业算法分析与设计教学改革论文
非计算机专业算法分析与设计教学改革论文 [摘要]算法分析与设计不仅是计算机专业的核心课程,同时也是与计算机有关的非计算机专业的专业课.本人针对非计算机专业学生在学习过程中存在的若干问题,就教学内容.教 ...
- 东师19年春计算机在线作业,东师算法分析与设计20春在线作业1【标准答案】
算法分析与设计20春在线作业1题目 试卷总分:100 得分:100 一.单选题 (共 20 道试题,共 40 分) 1.按F5开始调试,程序便会直接运行到断点处.接下来可以逐行来运行程序,查看各个变 ...
最新文章
- select三级联动 怎么删除前一个的_python测试开发django57.xadmin选项二级联动
- Hibernate缓存
- 学术 | 热议:寒门硕士要不要继续读博士?
- 一台服务器能承载多少用户_一台入门级服务器能为你的办公应用带来哪些效率?评测告诉你...
- mysql 普通索引使用方法,Mysql索引类型与基本用法实例分析
- 过去式加ed的发音_过去式的变化规律,掌握诀窍了吗?
- 统计学习方法的三要素
- mysql笔记03 查询性能优化
- SAP Spartacus Storefront页面的page layout config
- 405 Method Not Allowed
- 围观神龙架构首次开箱,现场直播暴力拆机
- JSK-10926 各位数字之和的和【入门】
- 内核调试神器SystemTap — 简介与使用(一)
- oracle ADF 代码标准
- 通用印刷体文字识别_印刷体文字识别(汉字)中文符的分割
- 判定系数推导 — Coefficient of Determination Derivation
- C语言求解根号2的近似值
- Win10用注册表开启任务栏透明
- 概率论总结(四): 大数定律及中心极限定理
- MSDC 4.3 接口规范(13)
热门文章
- 小米商城秒杀脚本python
- 截图工具(win+shift+S)截图之后为什么粘贴不上?有了这个方法,不用单独下载多次复制粘贴的工具了
- 如何入门UI设计?学ui设计要看什么书籍
- potplay皮肤装扮
- 七种常见的逻辑门真值表
- 【Ubuntu 16.04中为Chromium、Chrome、Firefox安装Flash播放器插件教程】
- 关于 618的前世今生,我帮东哥告诉你
- git提交空目录的方法
- flutter实现可缩放可拖拽双击放大的图片功能
- django报错:OperationalError: (1045, Access denied for user 'TEST'@'localhost' (using password: NO))