证精确的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

从零构建:ESP32S3无线DAP-Link调试器的硬件与软件协同设计

本文详细介绍了基于ESP32S3的无线DAP-Link调试器的硬件与软件协同设计,涵盖关键元器件选型、无线通信协议优化、双核任务处理及低功耗调试方案。通过ESP-NOW协议实现低延迟无线调试,结合USB协议栈与双核协同,为嵌入式开发提供高效灵活的调试解决方案。

gitlab7runner的博客 859

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

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

Alliyou的博客 2023

提升RAG效果:为何 JSON 格式远胜 Markdown?

在构建强大的 RAG (检索增强生成) 系统时,文档解析是至关重要的第一步。它直接影响着后续的检索效率和生成质量。在众多文档格式中,JSON (JavaScript Object Notation) 格式正逐渐展现出其相对于传统 Markdown 格式的巨大优势。本文将深入探讨 JSON 在 RAG 系统文档解析中的卓越之处,并结合具体案例,让你理解为何 JSON 才是构建下一代智能应用的更优选择。RAG 系统的核心目标是让模型能够利用外部知识库,生成更精准、更贴合实际的答案。

simoncool23的博客 2718

CMN-700组件全解析:从XP路由器到HN-F主节点的实战配置指南

本文深入解析Arm CMN-700片上网络IP的核心组件与实战配置。重点剖析了XP网格路由器的拓扑规划与CHI通道管理,以及HN-F全一致性主节点在维护缓存一致性、管理SLC和地址映射中的关键作用。通过一个12×12网格的配置案例,为硬件工程师提供了从组件布局、地址映射到性能调优的系统级设计指南。

weixin_29313423的博客 284

【算法概论习题】8.8解答

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

WaverDn的博客 530

2016域控服务器迁移,WIN Server2016 域服务器迁移出错

各位大神: 这几天刚安装了一台windows server 2016做域迁移时出现错误:1、默认SYSLOG、NETLOGON共享文件重启后自动取消共享,即使手动打开后依然会出现自动取消2、组策略中编辑策略时出现以下报错 policys.png (19.29 KB)2017-2-7 13:52操作此动作之前可以访问本机的共享(NETLOGON)3、使用DCDIAG检测多个报错:C:\Use...

weixin_31833039的博客 3314

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

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

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

STM32:TTL串口调试

TTL只需要两个线就可以完成两个设备之间的双向通信,一个发送电平的I/O称之为TX,与另一个设备的接收I/O口RX相互连接。两设备之间还需要连接地线(GND),这样两设备就有相同的0V参考电势。

superSmart_Dong的博客 5640

解锁PyCharm+Deepseek:本地部署AI编程超能力

在本次探索中,我们成功地在 PyCharm 中实现了 DeepSeek 的本地化部署,这一过程虽然涉及多个步骤,但每一步都为我们开启 AI 编程大门奠定了基础。从安装最新版 PyCharm,确保我们拥有一个功能强大且兼容性良好的开发环境,到注册 DeepSeek 账号并获取 API Key,这是连接我们与强大 AI 能力的关键纽带。接着,在 PyCharm 中安装 Continue 插件并进行精细配置,让 DeepSeek 能够深度融入我们的编程流程。

远程部署调试 运行安装 项目调试 二次开发 项目技术新 持续迭代 部分源码免费分享 5550

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

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

qq_40844444的博客 1万+

逆强化学习:从专家示范中学习策略

逆强化学习(Inverse Reinforcement Learning,简称IRL)是强化学习(Reinforcement Learning,简称RL)的一个子领域,它的目标是从专家的行为中学习策略。在传统的强化学习中,智能体通过与环境交互,根据奖励信号来学习一个策略。而在逆强化学习中,我们没有直接的奖励信号,而是通过观察专家的行为来推断出奖励函数,从而学习到一个与专家类似的策略。逆强化学习作为强化学习的一个重要子领域,在许多实际应用场景中都取得了显著的成功。

AI天才研究院 1453

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万+

第154章 点云大规模并行处理(GPU加速)

优化点云处理✨ 使用。

yumeiguo的博客 374

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

几个NP-完全问题的证明

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

kufaaa的专栏 2万+

STM32F407中文手册

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

什么是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万+

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

证明精确的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、付费专栏及课程。

余额充值