多项式规约及其常见问题的规约方法

来源于我们上课的PPT

多项式规约

如果问题 X X X的任意实例 能够经过 多项式时间的标准计算步骤 和 多项式时间 调用问题 Y Y Y的解决方案 被解决,则 X ≤ p Y X \leq_{p}Y XpY

注意方向,是 X X X可以多项式归约到 Y Y Y

性质

如果 X ≤ p Y X \leq_{p} Y XpY 并且 Y Y Y可以在多项式时间能够得到解决,那么 X X X也可以在多项式时间内得到解决。

如果 X ≤ p Y X \leq_pY XpY 并且 X X X不存在多项式时间的解,则 Y Y Y也不存在多项式时间的解。

如果 X ≤ p Y X \leq_{p}Y XpY 并且 Y ≤ p X Y \leq_pX YpX,则 X ≡ p Y X \equiv_p Y XpY,既 X X X Y Y Y是等价的。

如果 X ≤ p Y X \leq_p Y XpY 并且 Y ≤ p Z Y \leq_p Z YpZ,则 X ≤ p Z X \leq_p Z XpZ

举例
  1. 点覆盖 ≡ p \equiv_p p 独立集

在这里插入图片描述

证明:

①点覆盖可以归约到独立集,假设 S S S是图 G G G中的任意一个独立集,现在考察任意一条边 ( u , v ) ∈ E (u,v) \in E (u,v)E,都有: u ∈ V − S u \in V - S uVS 或者 v ∈ V − S v \in V - S vVS,因此, V − S V - S VS 覆盖了边 ( u , v ) (u,v) (u,v),既 V − S V- S VS G G G的一个点覆盖。

②独立集可以规约到点覆盖,假设 S ′ S' S是图 G G G中的任意一个点覆盖,现在考察 V − S ′ V - S' VS中的任意两个点 u , v u,v u,v,都有: ( u , v ) ∉ E (u,v) \notin E (u,v)/E理由如下,如果 ( u , v ) ∈ E (u,v)\in E (u,v)E,根据点覆盖的定义,有 u ∈ S ′ u \in S' uS 或者 v ∈ S ′ v \in S' vS,而 u , v ∈ V − S ′ u,v \in V-S' u,vVS,显然矛盾,故 ( u , v ) (u,v) (u,v)不是图中的边。因此, V − S ′ V-S' VS中的任意两点都不存在边,故 V − S ′ V - S' VS G G G的一个独立集。

斜体字部分不记,能理解就好

  1. 点覆盖 ≤ p \leq_p p 集合覆盖

在这里插入图片描述

证明的总体思路:

对于点覆盖的任意一个实例 G = ( V , E ) G=(V,E) G=(V,E),构造一个 集合覆盖大小 等于 点覆盖大小 的集合覆盖实例。

证明:

对于任意一个点覆盖,假设它的大小为

  • 3
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
首先,哈密顿回路问题是指在一个无向图中是否存在一个简单回路,使得该回路经过图中的每个点恰好一次。而哈密顿问题则是指在一个有向图中是否存在一个简单路径,使得该路径经过图中的每个点恰好一次。 我们需要证明的是,无向图的哈密顿回路问题可以在多项式时间规约到有向图的哈密顿问题。也就是说,我们可以将任意一个无向图的哈密顿回路问题转化为一个有向图的哈密顿问题,并且这个转化过程可以在多项式时间内完成。 具体的转化方法如下: 1. 对于给定的无向图G=(V, E),构造一个有向图G'=(V', E'),其中V' = V,E' 包含两部分边: - 对于无向图G中的每条边(u, v),在G'中添加两条有向边(u, v)和(v, u)。 - 对于无向图G中的每个节点v,在G'中添加一个与v相同的节点v',并且对于每个与v相邻的节点u,在G'中添加一条有向边(v, u')和一条有向边(u', v)。 2. 现在我们需要证明,如果无向图G存在哈密顿回路,则有向图G'存在哈密顿路径;反之亦然。 - 如果无向图G存在哈密顿回路,那么这个回路必然经过每个节点。在有向图G'中,我们可以通过沿着每个节点的对应节点v',然后依次沿着它们对应的边(u', v)和(v, u)走过每个节点,从而构造出一条哈密顿路径。 - 反之,如果有向图G'存在哈密顿路径,那么这个路径必然经过每个节点的对应节点v'。如果这个路径依次经过了每个节点的对应节点v',然后依次沿着它们对应的边(u', v)和(v, u)走过每个节点,那么我们就得到了一个简单回路,它经过了图G中的每个节点,因此G存在哈密顿回路。 由此可见,无向图的哈密顿回路问题可以在多项式时间规约到有向图的哈密顿问题,证毕。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值