算法分析与设计(证明NPC问题的方法)

一、限制&约束(restrict)

1)说明对于问题A有一个已知的NPC问题B作为其特殊实例;

2)对于问题A增加某些限制使其为NPC问题;

(前者是证明有一个特殊的NPC实例,后者是追加限制使得其为NPC问题)

注:此方法是证明NPC问题最简单、最常用的方法;

二、局部替换(local replacement)

1)选取一个已知的正确的NPC问题,作为证明另一个问题的基础单元;

2)根据目标实例,将对应的基础单元部分变换(局部替换)成目标证明实例;

在之前证明的SAT规约为3SAT就是使用的局部替换的方式;

三、组件设计(component design)

设计特定的组件去证明,通常主要由三种类型的组件

1)选择组件; 2)测试组件; 3)通信(连接)组件; 

在之前由3SAT规约VC的时候就是通过组件设计来证明的,其直线边,联络边,三角边分别对应上述组件;

四、通常证明一个问题是NPC的过程

1)定义证明:对于NPC问题集合中的任意问题P’,存在一个多项式时间转换(归约)将P’转换(归约)为P。

2)从一个已知的NPC问题在多项式时间内转换(归约)到P。

1.证明P属于NP问题。(通常问题都可以在多项式时间内得到验证

2.选取一个已知的NPC问题P’。(SAT为起点

3.建立一个从P’到P的转换(归约)。 

4.证明转换(归约)是多项式转换(归约)。(证明可以在多项式时间内变换,且变化前后等价

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值