证精确的4SAT是NP-完全问题

8.8 证明精确4SAT是NP完全问题 3SAT规约到4SAT 3SAT规约到4SAT 阅读详情

证精确的4SAT是NP-完全问题

此题源于《算法概论》(清华大学出版社)课后习题8.8


题目解释

精确4SAT(EXACT 4SAT)问题是这样的:输入为一组字句,每个字句都是恰好4个文字的析取,且每个变量最多在每个字句出现一次。目标是求它的满足赋值——如果该赋值存在。

总结下来,EXACT 4SAT问题是SAT的一个变种,即有约束条件的SAT。但是,我们仍然可以进行SAT -> EXACT 4SAT的归约,归约过程如下。


SAT -> EXACT 4SAT归约

首先,证明任意一个SAT问题都能映射成EXACT 4SAT问题:

设函数F表示字句的变量数目,例如:F(a∨b)=2

对任意一个SAT问题,先将字句中的相同变量约去,很明显,a∨a可以约成a ,a∨a¯恒为真,可以约去。约去相同变量后,它的任意一个字句p可能有三种情况:

  1. F(p)<4 :

    对该字句,新加入一个变量x,可得:

    p≡p∧(x∨x¯)≡(p∨x)∧(p∨x¯)

    我们因此就可以把一个字句p转换成两个字句q1,q2,其中F(q1)=F(q2)=F(p)+1

    反复几次上述操作,即可将一个F(p)<4的字句转换成多个字句q1…qn,其中F(q1)=F(q2)=...=F(qn)=4

  2. F(p)=4:

    该字句符合EXACT 4SAT的字句,无需转换。

  3. F(p)>4 :

    假设该字句其中有两个变量,分别为a,b,即p=(a∨b ∨ ...)

    新加入一个变量x,让x替代a∨b ,得到新的字句q=(x∨ ...)

    目前出现了一个新的问题,即x和a∨b并不等价,接下来我们通过新加入额外的字句来解决这个问题。

    由于SAT问题中,变量只能取使最终结果为T的布尔值,当变量取值使最终结果为F则无法取值,我们利用这个特点,当x,a,b 的取值使x≠a∨b时,最终结果为F,这样剩下的x,a,b取值必定满足x=a∨b 。

    先构造出x,a,b的真值表:

xabx=a∨b
TTTT
TTFT
TFTT
TFFF
FTTF
FTFF
FFTF
FFFT

用析取范式表达该真值表,可得:

(x¯∨a∨b)∧(x∨a¯∨b¯)∧(x∨a¯∨b)∧(x∨a∨b¯)

因此,字句p就能用五个其他字句代替:(四个字句分别命名为q1, q2, q3, q4)
p≡q∧q1∧q2∧q3∧q4≡q∧(x¯∨a∨b)∧(x∨a¯∨b¯)∧(x∨a¯∨b)∧(x∨a∨b¯)

其中F(q)=F(p)−1 ,F(q1)=F(q2)=F(q3)=F(q4)=3

对q反复进行1和3中的操作,即可将一个F(p)>4的字句转换成多个字句q1…qn,其中F(q1)=F(q2)=...=F(qn)=4

对SAT问题中的每一个字句都进行上述转换,任意一个SAT问题都能映射成EXACT 4SAT问题,证毕。

其次,证明映射的EXACT 4SAT问题的解可转化为原SAT的解:

这个步骤很好证明,由于我们新加入的变量仅仅是用于填补和制约,因此新加入的变量的解对原SAT问题的解没有影响,当我们得到EXACT 4SAT问题的解,抛弃掉所有新加入的变量,即为原SAT问题的解。

最后,证明该问题转换的时间复杂度是多项式时间的:

设原SAT问题有n个字句,每个字句都有数量不等的不同变量,字句里总共有m个变量(包含相同变量)。

定义p1,p2...pn为SAT问题中的不同字句,t1=F(p1),t2=F(p2)...tn=F(pn) ,即m=∑ni=1ti

同理,对其中任意字句pi∈{p1,p2...pn} ,:

  1. ti<4 :

    由于F(pi)每加1就需要翻倍,因此,字句p最多转换成8个符合EXACT 4SAT的字句,所花的时间复杂度不超过O(8⋅ti)

  2. ti=4 :

    无需转换。

  3. ti>4 :

    由于F(pi)每减1就需要生成4个辅助字句,将4个辅助字句转换成符合EXACT 4SAT的字句又需要翻倍,因此,F(pi)每减1就需要生成8个符合EXACT 4SAT的字句,所花的时间复杂度也不超过O(8⋅ti)

因此,将所有的字句转换后,所花的时间复杂度不超过O(8⋅m) ,证毕。


总结

之前已经证明,SAT问题可以归约成EXACT 4SAT问题,由于SAT问题是NP-完全问题,因此EXACT 4SAT问题也是NP-完全问题,证毕。

算法概论习题8.8——证明精确的4SAT是NP-完全问题 题目: 在精确的4SAT(EXACT 4SAT)问题中,输入为一组自居,每个字句都是恰好4个文字的析取,且每个变量最多在每个字句中出现一次。目标是求它的满足赋值——如果该赋值存在。证明精确的4SAT是NP完全问题。 证明如下: 由于3SAT问题是NP-完全问题,若能将3SAT问题归约到精确的4SAT问题,则可证明精确的4SAT问题也是NP-完全问题。 以下是将3SAT问题归约到精确的4SA 阅读详情

相关推荐

NP完全问题——证明EXACT 4SAT是NP完全问题

8.8 In the EXACT 4SAT problem, the input is a set of clauses, each of which is a disjunction of exactly four literals, and such that each variable occurs at most once in each clause. The goal is to

fredahu的博客 569

算法概论课后题8.14

原题意如下所示: Prove that the following problem is NP-complete: given an undirected graph G = {V,E} and an integer k, return a clique of size k as well as an independent set of size k, provided both exis

Dora_Yh的博客 721

P类问题 VS NP问题 VS NP完全问题

简单了解一下P类问题、NP类问题和NP完全问题 P 类问题 一个问题可以在多项式时间(polynimal time)内解决,就是P类问题,时间复杂度为O(n),O(n^2)…多项式时间求解 NP类问题(nondeterministic polynomial) 一个问题在多项式时间判断一个值是不是该问题的解,即多项式时间验证 举栗子: 一个数组求最大值,是P类问题 一个很大的数组,判断x是不是该数...

qq_33880788的博客 1630

8.8 精确4SAT问题

8.8 在精确的4SAT(EXACT 4SAT)问题中,输入为一组子句,每个子句都是恰好4个文字的析取,且每个变量最多在每个子句中出现一次。目标是求它的满足赋值——如果该赋值存在。证明精确的4SAT是NP-完全问题。 首先,显然EXACT 4SAT同SAT问题类似,因为每一个解都可以在多项式时间内验证是否正确,所以我们可以得出EXACT 4SAT问题是NP的。 然后,我们通

yangb25的博客 423

NP完全问题习题证明

NP-完全问题 一、概述 1.1 P问题 如果一个问题可以找到一个能在多项式的时间里解决它的算法,那么这个问题就属于P问题,P(olynominal) 问题。 1.2 NP问题 能在多项式时间内验证给出的一个解的问题属于NP问题,Nondeterministic Polynominal,非确定性多项式问题。 NP 问题不是非 P 类问题,NP问题的另一个定义是,可以在多项式的时间里猜出

chenshx_sysu的博客 3788

Algorithms.算法概论.习题答案

Algorithms.算法概论.习题试解

证明精确4SAT问题是NPC问题

证明精确4SAT问题是NPC问题问题:在精确的4SAT(EaACT 4SAT)问题中,输入为一组子句,每个子句都是4个文字的析取,且每个变量最多在每个子句中出现一次。目标是求它的满足赋值—-如果该赋值存在。证明精确的4SAT是NP-完全问题。分析:证明某个问题是NPC问题,一般思路是找一个已知的NPC问题来归约带该问题。其中3SAT问题是已知的NPC问题,所以接下来只要证明3SAT问题可以归约到精确

sysu_xiaoming的博客 1857

Jetson AGX Orin 新手避坑:解决‘找不到nvidia-jetpack包’的完整修复指南

本文详细介绍了Jetson AGX Orin设备在安装JetPack开发套件时遇到的'nvidia-jetpack包缺失'问题的完整解决方案。通过分析问题根源、提供分步修复指南以及系统优化建议,帮助开发者快速解决这一常见问题,充分发挥Jetson AGX Orin的边缘计算性能。

weixin_42520909的博客 461

证明精确4SAT问题为NP完全问题

精确4SAT问题是这样的问题。输入为一组子句,每个子句都是析取式,恰好有4个变量,并且每个变量在每个子句中最多出现一次。 现在要证明精确4SAT问题是NP完全问题。首先4SAT问题显然是NP问题,因为验证一个解是否正确的时间复杂度和SAT问题相同。现在我们要把SAT问题归约到精确4SAT问题。 可以参考SAT问题归约到3SAT问题的思路。对于SAT问题的一个子句A=(a1 or a2 or .

Alliyou的博客 2023

Halcon实战:5种边缘检测算子对比(Sobel、Roberts、Prewitt、Kirsch、Canny)

本文深入对比了Halcon中Sobel、Roberts、Prewitt、Kirsch和Canny五大边缘检测算子的实战表现与核心差异。通过工业图像实例与代码解析,提供了基于噪声水平、边缘连续性及实时性要求的场景化选型指南,帮助工程师精准选择最适合的算子以优化视觉检测流程。

weixin_29266007的博客 393

SpringCloudGateway网关高频20个面试题整理

Spring Cloud Gateway 是基于 Spring 5、Project Reactor 和 Spring Boot 2 构建的 API 网关,提供动态路由、监控、弹性、安全等核心功能。Spring Cloud Gateway 是 Spring Cloud 生态中的 API 网关,用于微服务架构中的请求路由、负载均衡、限流、鉴权等。实现@Component@Override// 逻辑处理。

u012024132的专栏 1114

【算法概论习题】8.8解答

题目:   在精确的4SAT(EXACT 4SAT)问题中,输入为一组子句,每个字句都是恰好4个文字的析取,且每个变量最多在每个子句中出现一次。目标是求它的满足赋值——如果该赋值存在。证明精确的4SAT是NP-完全问题。 解答: 在证明精确的4SAT问题是NP-完全问题前,先得证明其属于NP问题。因为EXACT 4SAT和SAT相同,在多项式时间内可以显然地给出一个解得以验证,所以我

WaverDn的博客 530

电荷灵敏前置放大器噪声优化策略:从理论到实践

本文深入探讨了电荷灵敏前置放大器的噪声优化策略,从理论分析到实践应用。文章系统解析了并联电流噪声与串联电压噪声的来源,并引入噪声等效原理与“冷电容”模型作为统一分析工具。通过详解a、b、c三类噪声的频谱特性,为实战优化提供了清晰指导。核心策略包括选用高跨导、低漏电流FET,优化静态工作点,采用共源-共基结构,精心设计反馈网络,以及实施严格的PCB布局、屏蔽与接地,旨在全面提升微弱信号检测系统的信噪比。

weixin_29292431的博客 468

【计算理论】计算复杂性 ( 3-SAT 是 NP 完全问题 | 团问题是 NP 完全问题 | 团问题是 NP 完全问题证明思路 )

一、3-SAT 是 NP 完全问题、 二、团问题是 NP 完全问题、 三、团问题是 NP 完全问题 证明思路

让 学习 成为一种 习惯 ( 韩曙亮 の 技术博客 ) 1万+

RK3568笔记十七:LVGL v8.2移植

若该文为原创文章,转载请注明原文出处。本文介绍嵌入式图形库移植到Linux开发板ATK-RK3568上的步骤。

4232

微信小程序 - 详细解决web-view公众号文章或第三方网站分享转发后打开失败,页面显示“无法打开该页面,不支持打开“、“页面不存在“报错提示,苹果IOS系统手机打开是空白页,安卓手机系统会有提示!

微信小程序,公众号文章,第三方H5网页,内嵌网站分享后打不开,web-view,页面分享,小程序里公众号文章转发后无法打开,白屏,页面空白什么都没有,不支持打开,无法打开该页面,页面不存在,业务域名配置好了还是不行,公众号和小程序已经关联,iOS端苹果真机打开空白页,安卓手机,页面分享后,用户打不开提示错误,提示页面不存在,如何解决页面提示无法打开该页面,微信小程序web-view无法打开该页面不支持打开的解决方法,无法打开该页面不支持打开,最新详细解决方案,分享之后无法打开页面,提示无法打开该页面,不支持

🏆 前端领域优质创作者 1万+

NP完整性理论以及如何证明问题属于NP完全问题

以下是一个简单的C语言代码片段,用于验证给定一个布尔变量赋值后,一个简单的布尔表达式(这里以一个简单的由与、或、非构成的表达式为例)是否为真,用于体现验证解在多项式时间内可完成这一NP问题的特性。需要强调的是,这只是一个极其简单的示例,用于展示对于NP问题中验证解的这一操作可以在多项式时间内完成(这里的这个简单验证函数时间复杂度显然是常数级别的,属于多项式时间复杂度范围内),而真正证明一个问题是NP完全问题涉及复杂的归约等过程,很难通过简单的C语言代码去完整呈现整个证明流程。的具体赋值,然后调用。

qq_40844444的博客 1万+

2026年紫光同创数字IC笔试试卷带答案

FPGA基础知识与设计要点摘要 本文围绕FPGA与数字IC设计核心概念,通过单选题、波形分析题、多选题和简答题形式,系统梳理了以下关键知识点: FPGA基础架构 查找表(LUT)是实现组合逻辑的基本单元(题1) CLB包含LUT、触发器和进位链,后者加速算术运算(题6,10) 布局布线优化是减少关键路径延迟的核心方法(题7) 时序分析要点 建立时间(时钟沿前数据需稳定)与保持时间(时钟沿后需保持)的定义(题2,简答1) 亚稳态成因及两级同步器处理跨时钟域信号的方法(多选题1,波形题5) 特殊设计技术 异步复

Open 114

NP完全问题---3-SAT

1、什么是3SAT问题? SAT是SATISFIABILITY(可满足性)的缩写。SAT问题就是问某一个布尔表达式是不是“可满足”的问题。这里的术语“可满足”的意思是存在一组“真值赋值”(truth assignment)使得布尔表达式为真。举例来说,“a & !b”(a与非b)就是一个"可满足"的布尔表达式,因为存在一组真值赋值(a=1,b=0)使其为真,而"(a | b) & (a | !b) & (!a | b) & (!a | !b)“就是一个"不可满足"的布尔表达式

qq_43796501的博客 1万+

使用STM32制作智能窗帘控制

以上就是一个简单的基于STM32的智能窗帘控制代码案例。通过感知光线强度和控制步进电机的旋转,我们可以实现智能窗帘的自动开启和关闭。通过定时器的中断来控制步进电机的旋转,从而实现窗帘的开启和关闭动作。最后,我们需要实现主函数和中断函数。在主函数中,我们需要初始化硬件资源,然后进入一个无限循环来不断检测光敏电阻的值,并根据其值来控制窗帘的开启和关闭。接下来,我们需要编写功能函数,用于控制窗帘的开启和关闭。然后,我们需要配置STM32开发环境,并创建一个新的工程。接下来,我们初始化相关的硬件资源。

2401_85258012的博客 277

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

几个NP-完全问题的证明

1.吝啬SAT问题8.3吝啬SAT问题是这样的:给定一组子句(每个子句都是其中文字的析取)和整数k,求一个最多有k个变量为true的满足赋值——如果该赋值存在。证明吝啬问题是NP-完全问题。 证明: 易得吝啬SAT问题是NP问题。 已知SAT是NP完全问题,因此,只要能把SAT归约到吝啬SAT问题,即可证明。 归约过程:假设SAT问题有n个变量,即等价于k=n的吝啬SAT问题。命题得证。2.

kufaaa的专栏 2万+

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

什么是NP问题,什么是NP hard问题,什么是NP完全问题。

http://www.cs.pitt.edu/~ztliu/wordpress/2011/05/np-problem/ 首先解释一下什么是NP问题,什么是NP hard问题,什么是NP完全问题。 看下面的图,他们之间的关系表示的比较清楚。 P Problem:这个应该最易理解,就是一个问题可以在Polynominal的时间的得到解决,当然,是对于任意input size。 NP

百川汇海 6万+

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

证明精确的4SAT是NP-完全问题

题目在精确的4SAT(EXACT 4SAT)问题中,输入为一组字句,每个字句都是恰好4个文字的析取,且每个变量最多在每个字句中出现一次。目标是求它的满足赋值——如果该赋值存在。证明精确的4SAT是NP完全问题。证明由于3SAT问题是NP-完全问题,若能将3SAT问题归约到精确的4SAT问题,则可证明精确的4SAT问题也是NP-完全问题。以下是将3SAT问题归约到精确的4SAT问题:3SAT:I=(a

Vent_NCS的博客 1245

算法导论—SAT、NP、NPC、NP-Hard问题

给定布尔 (Boolean) 表达式 (由 AND, OR, NOT, 变量, 和括号构成), 是否存在对变量 TRUE 或 FALSE 的赋值, 使得整个表达式真。SAT 问题 (Propositional satisfiability problem, 命题可满足问题, SAT):给定命题逻辑公式 (propositional formula), 是否可满足 (存在一个模型)。

我们都是被分成两半的人,一边热爱生活,一边憎恨生活。面对生活,我们总是在矛盾的两端摇摆,在反复的矛盾和犹豫中,一边踉跄前行,一边重振旗鼓。我渴望改变,渴望变得更好,渴望找到出口……就像一个溺水人的挣扎,就像一个救生圈。我是一个矛盾集合体,想要变得快乐,但是 6743

【计算理论】计算复杂性 ( NP 完全问题 - 布尔可满足性问题 ★ | 布尔可满足性问题是 NP 完全问题证明思路 ) ★

一、NP 完全问题 - 布尔可满足性问题 ★、 二、布尔可满足性问题是 NP 完全问题证明思路

让 学习 成为一种 习惯 ( 韩曙亮 の 技术博客 ) 8679

NP-完全问题证明

np

u013775900的博客 976
上一篇: LeetCode题目:44. Wildcard Matching
下一篇: 84. Largest Rectangle in Histogram
MyCodecOdecoDecodE
博客等级 码龄10年 66粉丝 29原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值