【算法】复杂性理论初步

六、算法复杂性初步


重要的复杂性类

  • P P P 的定义

    • 多项式时间内可解的问题

    • L ∈ P L∈P LP,则存在确定性多项式时间的图灵机 M M M,使得
      M ( x ) = 1 ⟺ x ∈ L M(x)=1⟺x∈L M(x)=1xL

  • N P NP NP 的定义

    • 多项式时间内可验证验证解的正确性

    • (表示非确定性多项式时间而不是非多项式时间)

    • L ∈ N P L∈NP LNP,则存在确定性多项式时间的图灵机 M M M,使得
      x ∈ L ⟺ ∃ w ∈ { 0 , 1 } p l o y ( n ) s . t . M ( x , w ) = 1 x∈L⟺\exist w∈\{0,1\}^{ploy(n)}\ \ s.t.\ M(x,w)=1 xLw{0,1}ploy(n)  s.t. M(x,w)=1
      注:如果 x ∈ L x∈L xL,那么存在一个证书 w w w,使 M M M能够在多项式时间内验证 x ∈ M x∈M xM

  • N P − h a r d NP-hard NPhard

    • 若一个问题属于 N P − h a r d NP-hard NPhard,那么它可以在多项式时间内规约成 N P NP NP 问题
  • N P − c o m p l e t e NP-complete NPcomplete

    • N P NP NP N P − h a r d NP-hard NPhard的交集,即 N P C = N P ∩ N P H NPC=NP∩NPH NPC=NPNPH
    • N P C NPC NPC N P NP NP中最难的问题,如果找到多项式时间解决 N P C NPC NPC,那么 P = N P P=NP P=NP

image-20241229184701985


SAT 问题

定义:给定一个布尔逻辑表达式,判断是否存在一个布尔变量赋值,使得整个表达式的值为真。

合取范式(CNF):一种布尔逻辑表达式的标准化形式,若干个句子合取(AND),每个句子中若干个文字析取(OR)

例如,以下一个CNF公式:
( ¬ a 1 ∨ a 2 ) ∧ ( ¬ a 1 ∨ a 3 ∨ a 4 ) ∧ ( a 1 ∨ ¬ a 2 ∨ a 3 ∨ ¬ a 4 ) (\neg a_1 \lor a_2) \land (\neg a_1 \lor a_3 \lor a_4) \land (a_1 \lor \neg a_2 \lor a_3 \lor \neg a_4) (¬a1a2)(¬a1a3a4)(a1¬a2a3¬a4)
注:存在一种赋值,使其中一个句子为真,整个CNF即为真。

2-SAT问题:每个子句恰好包含2个文字。 P P P 类问题。

3-SAT问题:每个子句恰好包含3个文字。 N P − c o m p l e t e NP-complete NPcomplete 问题。

  • 例如: ( l 1 ∨ l 2 ∨ l 3 ) ∧ ( l 4 ∨ l 5 ∨ l 6 ) ∧ ⋯ (l_1 \lor l_2 \lor l_3) \land (l_4 \lor l_5 \lor l_6) \land \cdots (l1l2l3)(l4l5l6)

当n>2,n-SAT问题就是NP-hard的。任何n-SAT都可以通过引入新变量的方法转化为3-SAT问题。


随机化算法

ZPP类型

  • 保证一定能找到正确答案
  • 需要多次运行,可以在期望的多项式时间内找到结果
  • 即:保证正确性,运行时间随机性
  • 如:随机化快速排序、随机化选择算法

BPP类型

  • 不保证得到正确答案,结果可能出错
  • 时间是确定的多项式时间
  • 即:时间复杂度好,结果不好
  • 如:矩阵恒等式测试

6.1 证明: P ⊆ N P P⊆NP PNP

证明

  • 对于 P P P问题的图灵机 M M M,构造另一个图灵机 M ′ M' M:输入是 w w w x x x,对于相同的 x x x有相同的输出, w w w对输出无影响
  • x ∈ L x∈L xL时, M ( x ) = 1 M(x)=1 M(x)=1,存在 w ′ ∈ 0 , 1 p l o y ( n ) w'∈{0,1}^{ploy(n)} w0,1ploy(n) M ′ ( x , w ′ ) = 1 M'(x,w')=1 M(x,w)=1
  • x ∉ L x ∉L x/L时, M ( x ) = 0 M(x)=0 M(x)=0,对于任意的 w w w M ′ ( x , w ) = 0 M'(x,w)=0 M(x,w)=0
  • 显然 M ′ M' M是确定性多项式图灵机,结合 N P NP NP问题定义,存在 w ′ ∈ 0 , 1 p l o y ( n ) w'∈{0,1}^{ploy(n)} w0,1ploy(n) M ′ ( x , w ′ ) = 1 M'(x,w')=1 M(x,w)=1,验证解是否正确。所以该 P P P问题也是一个 N P NP NP问题,所以 P ⊆ N P P⊆NP PNP

6.2 证明: 如果存在 N P NP NP 难的问题 Π ∈ P Π ∈ P ΠP,则 P = N P P = NP P=NP

证明

  • 根据 Π ∈ P Π ∈ P ΠP,得 Π Π Π在多项式时间可解决
  • 根据 N P − h a r d NP-hard NPhard 定义,所有 N P NP NP问题 F F F可在多项式时间内规约到 Π Π Π,即 F ∈ N P F∈NP FNP,有 F ≤ p Π F≤_pΠ FpΠ
  • 所以 F F F在多项式时间转化为 Π Π Π,再多项式求解 Π Π Π,整个过程是多项式时间完成的,所以 N P ⊆ P NP⊆P NPP
  • 又已知 P ⊆ N P P⊆NP PNP,所以证得 P = N P P=NP P=NP

6.3 证明:如果 N P = P NP=P NP=P,则单向陷门不存在。

  • 假设算法Invert用来寻找函数 f f f的逆映射:利用一系列语言 L i Li Li,表示是否存在 w w w使得 y = f ( z ∣ ∣ w ) y=f(z||w) y=f(z∣∣w)
  • 根据文本内容, L i Li Li属于 N P NP NP,同依据条件,也属于 P P P
  • 如果 P = N P P=NP P=NP,那么该算法能在多项式内求解,即找到了函数 f f f的逆映射,也就是找到 x x x使得 f ( x ) = y f(x)=y f(x)=y
  • 综上,若 N = N P N=NP N=NP,多项式时间可破坏单项函数的不可逆的性质,则单向陷门不存在

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/65578.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

python爬虫----爬取视频实战

python爬虫-爬取视频 本次爬取,还是运用的是requests方法 首先进入此网站中,选取你想要爬取的视频,进入视频页面,按F12,将网络中的名称栏向上拉找到第一个并点击,可以在标头中,找到后续我们想要…

大数据面试笔试宝典之Flink面试

1.Flink 是如何支持批流一体的? F link 通过一个底层引擎同时支持流处理和批处理. 在流处理引擎之上,F link 有以下机制: 1)检查点机制和状态机制:用于实现容错、有状态的处理; 2)水印机制:用于实现事件时钟; 3)窗口和触发器:用于限制计算范围,并定义呈现结果的…

coturn docker 项目 搭建【一切正常】

业务需求:需要coturn这个服务 定制语音视频连线 请参考"小红的逃脱外星人追踪计划" coturn项目 本地测试连接服务 turnutils_stunclient -p 3478 127.0.0.1turnutils_stunclient -p 3478 -L 127.0.0.1 127.0.0.1telnet localhost 3478turnutils_uclient …

Linux 笔记 /etc 目录有什么用?

在 Linux 系统中,/etc 目录的全称是 "et cetera",中文可以翻译为“其他”或“杂项”。这个目录用于存放系统的配置文件和一些启动脚本。名称来源于早期的 Unix 系统设计,当时它被用来存放那些不属于其他特定类别的系统文件。 随着…

Android 学习小记1

目录 先介绍一下Android Studio 看看常见的模板 1. No Activity 2. Empty Activity 3. Gemini API Starter 4. Basic View Activity 5. Bottom Navigation Activity 6. Empty Views Activity 7. Navigation Drawer Views Activity 8. Responsive Views Activity 9. G…

【Compose multiplatform教程06】用IDEA编译Compose Multiplatform常见问题

当我们从Kotlin Multiplatform Wizard | JetBrains 下载ComposeMultiplatform项目时 会遇到无法正常编译/运行的情况,一般网页和桌面是可以正常编译的, 我这里着重解决如下问题 1:Gradle版本不兼容或者Gradle连接超时 2:JDK版本不兼容 3:Gradle依赖库连…

Python + 深度学习从 0 到 1(02 / 99)

希望对你有帮助呀!!💜💜 如有更好理解的思路,欢迎大家留言补充 ~ 一起加油叭 💦 欢迎关注、订阅专栏 【深度学习从 0 到 1】谢谢你的支持! ⭐ Keras 快速入门: 神经网络的基本数据结…

MySQL 数据库基础

目录 什么是数据库 数据库分类 关系型数据库 非关系型数据库 SQL子语言 MySQL MySQL 存储数据的组织方式 数据库操作 显示当前数据库 创建数据库 使用数据库 删除数据库 什么是数据库 数据库 是一个用于存储、管理和检索数据的系统,可以组织和保存大量…

《Vue3 二》Vue 的模板语法

在 React 中,想要编写 HTML,是使用 JSX,之后通过 Babel 将 JSX 编译成 React.createElement 函数调用;在 Vue 中,也支持 JSX 的开发模式,但大多数情况下都是使用基于 HTML 的模板语法,在模板中允…

高级技巧-使用Mysql 实现根据条件过滤整个分组数据

博客-mysql exists实现过滤所属条件对应分组的全部数据 在数据查询中,有时需要根据某一条件来过滤整个分组的数据,尤其是当某条记录满足特定条件时,需要将该组内的所有记录排除。本文将介绍如何使用 MySQL 的 EXISTS 关键字来实现这种分组过滤…

游戏引擎学习第67天

reviewing “apron”概念以更新区域 我们正在进行模拟区域的扩展工作,目标是通过增加一个更大的区域来支持更丰富的互动,尤其是那些可能超出摄像机视野的内容。现有的模拟区域包括摄像机能看到的区域和其周围的环境区域,但为了保证更高效的游…

计算机网络|数据流向剖析与分层模型详解

文章目录 一、网络中的数据流向二、计算机网络通信模型1.OSI 模型2.TCP/IP 模型3.TCP/IP五层模型3.1 分层架构描述3.2各层地址结构3.3UDP数据包报头结构 三、总结 一、网络中的数据流向 在计算机网络中,数据的流向是指数据从发送端到接收端的传输路径。数据流向涉及…

如何在 Spring Boot 微服务中设置和管理多个数据库

在现代微服务架构中,通常需要与多个数据库交互的服务。这可能是由于各种原因,例如遗留系统集成、不同类型的数据存储需求,或者仅仅是为了优化性能。Spring Boot 具有灵活的配置和强大的数据访问库,可以轻松配置多个数据库。在本综…

【Raven1靶场渗透】

文章目录 一、基础信息 二、信息收集 三、暴力破解 四、提权 一、基础信息 Kali IP :192.168.20.146 靶机IP :192.168.20.153 二、信息收集 nmap -sS -sV -p- -A 192.168.20.153 开放了22,80,111,58305端口 访…

视频监控平台:Liveweb视频汇聚融合平台智慧安防视频监控应用方案

Liveweb是一款功能强大、灵活部署的安防视频监控平台,支持多种主流标准协议,包括GB28181、RTSP/Onvif、RTMP等,同时兼容海康Ehome、海大宇等厂家的私有协议和SDK接入。该平台不仅提供传统安防监控功能,还支持接入AI智能分析&#…

Pytorch | 利用SMI-FGRM针对CIFAR10上的ResNet分类器进行对抗攻击

Pytorch | 利用I-FGSSM针对CIFAR10上的ResNet分类器进行对抗攻击 CIFAR数据集SMI-FGRM介绍SMI-FGRM算法流程 SMI-FGRM代码实现SMI-FGRM算法实现攻击效果 代码汇总smifgrm.pytrain.pyadvtest.py 之前已经针对CIFAR10训练了多种分类器: Pytorch | 从零构建AlexNet对CI…

基于PREEvision的UML设计

众所周知,PREEvision是一款强大的电子电气架构协同开发及管理软件,可以很好地帮助架构工程师完成架构开发工作,其功能包括需求管理、定义功能逻辑、系统软件开发、网络设计、线束设计及整体工程的产品线管理和变形管理等。随着工程师们越来越…

闲谭Scala(2)--安装与环境配置

1. 概述 Java开发环境安装,需要两步,第一安装JDK,第二配置环境变量。 Scala的话,也是两步,第一安装Scale环境,第二配置环境变量。 需要注意的是,配置环境变量,主要是想让windows操…

智慧地下采矿:可视化引领未来矿业管理

图扑智慧地下采矿可视化平台通过整合多源数据,提供实时 3D 矿井地图及分析,提升了矿产开采的安全性与效率,为矿业管理提供数据驱动的智能决策支持,推动行业数字化转型。

王鹤棣新剧《大奉打更人》开播 数据亮眼刷新招商纪录

临近年末,各类国产剧集仍频上新,档期竞争格外激烈。而由王鹤棣领衔主演的古装悬疑轻喜剧《大奉打更人》已于12月28日在CCTV-8和腾讯视频同步播出,开播即横扫各大榜单。该剧从定档官宣到开播,热度一路攀升,开播后更是掀…