好好的一门专业课TCS怎么一点时间都没花

\def\set{\Set}

\def \sube{\subseteq}

\def \sub{\subset}

\def \and{\wedge}

\def \or{\vee}

完蛋了,感觉真要挂科了,这学期活得像个傻逼。

球球了,能不能不要挂科啊。

update1/14:虽然六十多但是没挂科,虽然绩点没了但是至少没挂科……

TCS笔记2:时间,空间,非确定性

Slide 1 (virginia.edu) Theory of Computation (virginia.edu)

-/@ Computational Complexity A Modern Approach.pdf at main · EMOAIRX/- (github.com)

  • 一个语言是可判定的,当且仅当该语言和该语言的补集都是图灵可识别的。

  • 二教316考试

复杂性类

  • LNLNCPNPcoNPNPcoNPPHPHPSPACEEXPEXPSPACEPP/polyNC1LNLNC2NCPNSPACE(f(n))SPACE(f2(n))PSPACE=NPSPACENSPACE(f(n))=coNSPACE(f(n)),f(n)lognNL=coNL(¯PATHNL)SAT:NPCPATH:NLCTAUT:coNPCCIRCUIT_VALUE:PCTQBF:PSPACECEQREX:EXPSPACEC
  • 递归定理:你可以递归

归约

  • 泵引理,正则语言版

    • 存在常数 p,如果 sA,|s|ps=xyz 满足以下条件
    • i0,xyizA
    • |y|>0
    • |xy|p
  • 下推自动机PDA 与 CFG 等价,这个语言是CFL。

  • 泵引理,上下文无关语言版
    • 存在常数 p,如果 sA,|s|ps=uvxyz,满足
    • i0,uvixyizA
    • |vy|>0
    • |vxy|p

时间复杂性

  • TIME(t(n))=LO(t(n))_DTML
  • 时间复杂性与模型有关,单带与多带是平方关系,非确定性和确定性是指数关系。
  • 定理7.8 设函数 t(n)n ,则每个 t(n) 时间多带 TM 都与某个 O(t2(n)) 时间单带 TM 等价。
    • 每个带子活跃部分长度是 t(n),模拟一次移动也就是 O(t(n)) 步的。(不够了扩展)
  • 定理7.10 ,设函数 t(n)n, 则每个 t(n) 时间 单带NTM都与某个2O(t(n))时间单带DTM 等价
    • 模拟每个分支,bt(n) 个分支,b是所有节点做大分支数。
  • P类 P=kTIME(nk)
  • PATH=(G,s,t)Gst
  • 定理7.12 PATHP
  • RELPRIME=(x,y)xy
  • 定理7.13 RELPRIMEP
  • 定理7.14LCFL ,则 LP

    • 上下文无关语言,可以用动态规划算法
  • NP=\SetLL
    • $A=\set{w\mid \exist 字符串c,算法V接受 \left}$
      • 算法V是验证机,c为w是A的成员的资格证书
    • 如果是多项式时间验证机,要求 |c||w| 的多项式(短证明),在|w| 的多项式时间内运行(容易验证)。
    • 也等价于非确定性多项式时间判定。
      • 证明:如果是属于NP的,也就是有验证机,通过验证机构造判定机,通过非确定性选择 c
      • 如果是有NTM判定机的,把每个符号看成是非确定性的描述。
    • NTIME(t(n))=\SetLO(t(n))NTML
    • NP=kNTIME(nk)
  • HAMPATH=(G,S,T)()GstNP

    • 搜索可以规约为判定
    • 其补不清楚
  • COMPOSITES=\Setx|x=pq,p,q>1NP

  • PRIMESNP,不知道,不知道,是对的,AKS也说是对的,但是不知道不会做啊啊啊
  • CLIQUE=\Set(G,k)GKkkNP
  • SUBSETSUM=\Set(S,t)StNP
  • PNPcoNP

  • P与NP问题
    • P=成员资格可以快速判定
    • NP=成员资格可以快速验证
    • PNPEXP
  • 多项式时间 m 归约

    • ApmB via f 说明
      • xAf(x)B 等价,
      • f 是多项式时间可计算函数。
    • 满足传递性,P 对归约其满足封闭性,NP 对归约封闭
  • SAT 给定布尔公式,确定这个公式是否可满足。

    • cnf合取范式指的是子句(文字的析取 ) 的合取
    • cnfSATpm3SAT
      • 通过增加变元,使得前后两个公式同时可满足或同时不可满足。
      • a1a2a3a4(a1a2z)(¬za3a4)
    • 3SAT 是可满足的三元合取范式。
  • 3SATpmCLIQUE

    • 证明思路是把一个公式转化为一个图和一个数
    • 对于两个子句不矛盾的就可以连起来,如果有一个团说明每个子句都可以两两不矛盾。
    • 证明正确性是双向的。同时要证明复杂性
  • 库克定理 任何NP语言都多项式时间归 约到cnf-SAT

    • 任何单带图灵机的判定过程都可以看作是上下一个2*3的格子发生了变化,只有一部分是合法窗口。
    • 构造方法为:
      • 利用 Xi,,j,k 表示 i,j 这个各自是不是 k
      • 每个单元恰好包含一个符号。
      • 第一行为初始格局。
      • 下一行是上一行的合法转移。也就是每个窗口都是合法的,
      • 某一行是接受格局。
    • 这个归约是多项式的。ϕ 的二进制串长度为 O(n2klogn)
  • NP完全,NP难
    • 若 NP 中的每个语言 A 都多项式时间归约到B,则B是NP难的。
    • 若 B 是 NP 难的并且 B 属于NP,则 B 是 NP 完全的。
    • 若 B 是 NP 完全的,B 多项式时间归约到 C,C 属于 NP,则 C 是 NP 完全的。
  • 几个 NP 完全问题

    • VERTEXCOVER=(G,k)|Gk
      • 根据选不选这个放0还是1,剩下的用三角阵。
    • HMAPATH
      • 从左往右走是选1,从右往左走是选0
    • SUBSETSUM
      • 搞一个选 x1=1,x1=0 的几个子句是什么。增加一些补充的凑数的变量。
  • 按照可近似性分类

    • 完全多项式时间近似方案FPTAS,关于n和1/ϵ 的多项式
    • 多项式时间近似方案PTAS,关于 nf(1/ϵ) 的多项式。
    • 常数近似比APX
    • 对数近似比log-APX
    • 多项式近似比poly-APX

空间复杂性

  • DTM M在所有输入上都停机. 设M在长度为n的输入上最多扫描 f(n)个不同带方 格, 则M的空间复杂性是f(n).
  • NTM M在所有输入的所有计算分支上都停机,设M在长度为 n 的输入上在任何计算分支上最多扫描 f(n) 个不同带方格, 则M的空间复杂性是 f(n)
  • SPACE(f(n))=\SetL|LO(f(n))DTM
  • NSPACE(f(n))=\SetL|LO(f(n))NTM
  • SATSPACE(O(n))
  • ALLcNFANSPACE(O(n))
    • 猜测拒绝的串,用非确定性线性空间追踪NFA状态。(如果某个时刻所有标记都不落在接受状态上,则接受;否则拒绝。
      • 所有标记的不同位置组合共有 2q 种,q 是状态数,存放所有标记需要 O(q) 的空间 qn,总空间是 O(n)
  • 已知 NTIME(f(n))TIME(2O(f(n)))

    • 用确定型时间来模拟非确定型时间,要有指数的增长。
    • 所以 NPEXP=EXPTIME
  • Savitch定理NSPACE(f(n))SPACE(f2(n))

    • 用确定型来模拟非确定型空间,只有平方的增长。
    • 推理得到 NPSPACE=PSPACE
    • 证明思路是:

      1. 由于最多只有 f(n) 的空间,也就是 f(n) 的格局大小,所以不同的数量是 2O(f(n)) ,可以运行 2O(f(n)) 步。这样就知道

        • NSPACE(f(n))NTIME(2O(f(n)))
      2. 利用 CANYIELD(c1,c2,t) 表示格局 c1 能否在 t 步内到达格局 c2

        • 这玩意儿可以二分,只需要存一个空间为 O(f(n)) 的中间格局 cm
        • 运行 (c1,cm,[t/2]),(cm,c2,t[t/2]) 。全部枚举一遍。递归深度为 O(f(n)),每次需要把一个 O(f(n)) 的入栈。
  • 所以我们知道了 PSPACE=NPSPACE

    • PNPPSPACEEXP,PEXP
  • 归约
  • 两个复杂性类 AB。定义归约 Am,满足传递性,并且AB两者都封闭。

    • A=BBABA
    • ABBA
  • 复杂性类,完全问题

  • 分离(separate): 常常借助于下界

  • 塌方(collapse): 常常借助于模拟

  • 上界:完成一个任务,有多少资源就足够了;下界:至少要多少资源。

  • PSPACE完全
    • 多项式时间归约
      • 例如 ϕ=x\existy[(xy)(¬x¬y)]
      • 全称带量词布尔公式(不包括自由变元)
    • TQBF=\Set(ϕ)ϕtqbf
    • 定理8.8: TQBFPSPACE
      • 证明思路是用递归算法,把画面分成两半。
        1. 证明是PSPACE的,通过递归代入。
        2. 证明别的被DTM判定的语言,利用PSPACE空间的,都能构造出一个 ϕ
      • 方法就是走一步可以,走多步就对半开,\existm1(c3,c4)\Set(c1,m1),(m1,c2)[ϕ(c3,c4,t/2)]
      • ((c3=c1c4=m1)(c3=m1c4=c2))()
      • 选择常数 d 使得 M 在长度为 n 的输入上不同的格局总数不超过 2df(n)
      • 具体递归的时候,记录 m1 需要 f(n),记录往哪个方向选需要 1,最多递归 O(f(n)) 次。
  • 公式博弈:

    • 一个人选存在,也就是尽可能为真。一个人选所有,也就是尽可能为假。其实就是 TQBF
    • FORMULA GAME=\Set(ϕ)ϕE
  • 广义地理学游戏:

    • 每次可以选一个顶点走,不能扩展的人失败。
    • GG=\Set(G,b)Gb广
    • 是PSPACE完全的,可以拿公式博弈来归约。首先证明PSPACE,模拟即可。其次是用把一个存在任意的公式转化为一个地理游戏。具体方法是先让每个人选,然后考虑合取范式,就是先手要存在真。所以让后手先选一个子句,然后先手选一个变元,这时候如果后手不能选了的话说明先手胜,也就是所有子句都不可能有假。
  • 亚线性空间:一条输入带只读,不计入复杂性,一条输入带可读写考虑复杂性。

  • L=SPACE(logn),NL=NSPACE(logn),考虑 logn 是为了考虑稳健性和丰富性。

  • PATHNL,因为搜索的时候可以存一个节点的编号,也可以选择下一个节点。

    • NSPACE(f)SPACE(f2),条件为 f(n)logn
  • 关于 NL 完全问题,这时候多项式时间归约不太靠谱,要用 对数空间归约。对数空间规约满足传递性。

    • PATHNL 完全的,对数空间 NTM 格局的长度是 O(logn)。所以可以枚举所有串判断是否是合法格局,也可以枚举所有格局对判断是否可以是边。所需要的工作空间是 O(logn)
    • 由于 PATHP ,所以 NLP
  • 确定型复杂性类显然对补封闭。对非确定性有点问题。

    • 不知道 NP=?coNP,但是 NSPACE(f(n))=coNSPACE(f(n)),f(n)logn
    • 这里关于 NL=coNL 的方法是 PATHcNL
      • 方法是如果知道能访问到的点的个数,那么枚举的距离不会超过点的个数。
      • 关于怎么计算有多少个距离不超过 k 的点,因为我们可以求出来距离恰好为 k 的点有多少个。
      • 其实就是枚举一个长度,然后对于每个点 v 判断是否距离不超过 i,换言之 s 出发走距离不超过 i1 步能先到达一个点 u ,然后看 (u,v) 是否可以作为一条边。
      • 算出来有这么多个点之后,如果和之前的相等说明就这么多。

交错式

lect06.pdf (harvard.edu)

这门课好棒啊呜呜呜

  • 交错式图灵机(ATM)是一种NTM,计算树中的非确定性分支点包括全称(universal)和存在(existential)两类,一个全称分支点接受当且仅当它的所有儿子接受,存在就是一个儿子接受。由此定义 Σi 型 ATM和 Πi 型ATM,Σ0 就是根节点为存在。最多i1 次交错。
  • 可以定义交错式时间与空间类
  • ATIME(t(n))=\SetL(M)MO(t(n))ATM
  • ASPACE(f(n)),AP,APSPACE,AL
  • NPcoNPAP
    • 完蛋了咋证明啊
  • TAUT=\Set(ϕ)ϕAP
    • 对于所有输入 (ϕ) ,全称地选择所有变元并赋值,对于一个具体地赋值计算,如果存在则接受。
    • TAUT补是NP的,因为给一个证据就能证明存在不是永真的。TAUT是NP完全的,因为SAT可以归约到TAUP,判断是否可满足,只要加一些存在就可以。
    • TAUT是NP完全的,TAUT补是NP的,那么任何一个coNP的语言A,A补是NP的,A补能归约到TAUT,xˉAf(x)L,同时取补可以发现 A能归约到TAUT补,所以TAUT是补NP完全的。
  • MIN FORMULA=\Set(ϕ)ϕAP
    • 方法是,全称地选择所有比 ϕ 短的公式,然后存在性地选一组变元地赋值,如果存在不同则接受,否则拒接。
  • 定理10.19f(n)n
    • ATIME(f(n))SPACE(f(n))ATIME(f2(n))
    • LP=ALPSPACE=APEXP=APSPACE
    • 证明 lect06.pdf (harvard.edu)
    • 还得是国外的讲义啊。
  • 引理10.20:f(n)n,ATIME(f(n))SPACE(f(n))

    • 考虑递归整个计算树,这样是平方的,但是格局不需要记录下来,只需要记录沿路径的非确定性选择(?)
  • 引理10.12: f(n)n,SPACE(f(n))ATIME(f2(n))

    • CANYIELD(cs,ca,2O(f(n))),存在地分支,每个分支猜一个 cm,然后全称地验证两支。
  • 引理10.22f(n)logn,ASPACE(f(n))TIME(2O(f(n)))
    • 确定型地反向遍历格局图。根据儿子的状态结果推父亲的结果。
  • 引理10.23f(n)logn,TIME(2O(f(n)))ASPACE(f(n))

    • 从接受状态的计算图,从左下方单元开始
    • [a,b,c]
      [-,d,-]
      • 对于单元d, 存在地猜测单元a,b,c的内容,全程地验证三者。
    • 对于第一行直接验证。画面大小为 2O(f(n))×2O(f(n)),只需要保存单元地指针,只需要 O(f(n))
  • 交错式代表一种并行处理能力。

多项式时间层次定理 (PH)
  • ΣiTIME(f(n))=\SetLL(M),where M is f(n) timeΣi ATM
  • ΠiTIME(f(n))
  • 同理定义 ΣiP,ΠiP
  • PH=kΣiP=kΠiP
  • PH 有一些等价的定义,
    • ATM:ΣiP,ΠiP
    • $\rm OTM: \Sigma{i+1}P = NP^{\Sigma_iP} , \Pi{i+1}P=coNP^{\Sigma_iP}$
    • 或者用量词+谓词,量词都是多项式有界的。
    • 约定 Σ0P=Π0P=P

难解性

  • 难解的(intractable) = 不可行的(infeasible) = (outside P) = (hard)
    • 假设难(presumably intractable),例如NP难,PSPACE难。EXP是可证难解的。EXP是真的难。
空间可构造
  • 空间可构造函数是说,f(n)lognf(n)O(f(n)) 空间内可计算。也就是存在 TM 以 f(n) 为空间复杂度。

    • space-constructible function

  • 线性加速定理 TIME(cf(n))=TIME(f(n));SPACE(cf(n))=SPACE(f(n)),通过修改字母表合并相邻格子,合并转移函数即可。

  • 对于 g(n)=o(f(n)),可以定义 带空间限制的通用机,就是对于输入的图灵机和输入串,对于足够长的输入就控制其运行空间不超过 f(n),对于短的串把答案固化在TM中。同时让运行时间不超过 2f(n)

  • Padding引理: 可以padding。识别同一个语言的TM有无穷多个。

  • 所以现在可以定义图灵机 U(M,M10n0),然后做一个对角化。

  • 对角化之后定义图灵机 B,如果运行图灵机超过 f(n) 空间则拒绝,如果超过步数则拒绝,只有当U拒绝的时候接受,在U接受的时候拒绝。之所以要这个B,是为了引出 空间层次定理

空间层次定理
  • 定理9.3 对任何空间可构造函数 f, 存在语言A, 在 O(f) 空间可判定, 但不能在 o(f) 空间内判定
    • A=L(B),其中B 是上面所说的对角化用的图灵机。
    • 如果假设 M 在 g(n) 空间内运行。g(n)=o(f(n)) ,B 需要 dg(n) 的空间模拟 M。设当 n|n0 时,dg(n)<f(n),B可以完成对M的模拟,则 M10n0L(B)L(M) 中不一样,一个接受一个拒绝。这就矛盾了。
  • 能有一些推论。
时间
  • 时间可构造性就是可以在 O(t(n)) 时间内算出 t(n),条件是 t(n)nlogn等价于 存在 TM 以 t(n) 作为时间复杂性。
  • 关于带时间限制的通用机一个方法是维护一个计时器。
时间层次定理
  • 构造一个语言 AATIME(O(t(n)))。证明 ATIME(o(t/logt))
  • 方法是对角化,构造图灵机 B,并且要求最多只执行 t(n)/logt(n) 步,每执行一步移动计数器需要 log 的消耗。所以总的时间不超过 O(t(n)),设 A=L(B),则 ATIME(O(t(n)))
  • 然后考虑 B 是和空间一样的对角化方法,如果 A=L(M)M 可以被 B 模拟,那么 B 可以被 B 模拟,也就是如果 M10n0L(M)M10n0L(B),这就导出一个矛盾。
  • 总的来说就是存在一个限制为 U 的通用模拟机器,能模拟所有用更少的资源的机器但是输出是对角化的,如果它自己能用更少的资源,那么它自己能模拟自己,但是输出不一样。

推论 PEXP

  • EQREXPSPACE
  • EQREXP
  • 定理9.15 EQREX 是 EXPSPACE完全的。
    • 证明方法和前面类似,就是说所有的EXPSPACE能搞的语言,也就是有一个计算历史。就是说 wA 等价于图灵机 M 在输入 w 上无拒绝计算历史。
相对化
  • Oracle Turing Machine
  • PSAT,PNP,若 AD 完全的,CD=CA
  • NPPSAT,coNPPSAT
  • 非极小化布尔公式 属于 NPSAT ,因为可以非确定性地选择是不是有更短的公式。
  • 定理9.19 \existA,PANPA;\existB,PB=NPB
    • 对于 B,设 B=TQBF,则全都是PSAPCE。
    • 对于 A,增量地构造一种语言 A,让 NP^A 包含了 P^A 不包含的内容。
    • 完蛋,这个好难

\color{red} \text{这里开始基本都是瞎写的内容,也即不适合直接观看,妈的怎么这么摆,感觉挂科也不是不可能啊}

电路,门
  • Boolean Circuit: not,and,or
  • Arithmetic Circuit: +-*/,mod,threshold
  • 电路族C是无穷个电路,C=(C0,C1) ,其中 Cn 有 n 个输入变量,如果对于每个字符串 wwACn(w)=1,|w|=n 则称 C 在 (0,1) 上判定 A。
  • 电路的规模是 C 中的门数,短路族的规模复杂度是函数 f(n)=Cn,SIZE(f(n)) 是那些有规模为 f(n) 的判定电路构成的集族。
  • P/poly=PSIZE=kSIZE(nk)
  • 电路的深度 depth 是输入到输出的最长路径长度。电路族 (C0,C1Cn) 的深度复杂性是函数 d:N->N, d(n)=Cn。 DEPTH(f(n)) 是那些有深度复杂性为 f(n) 的判定电路构成的语言。
  • 同样定义了 规模-深度 联合复杂度 SIZEDEPTH(s(n),d(n))
  • 例如 paritynSIZE(O(n))
  • nonuniformity 非一致性
    • 一族电路判定一个语言,Cn 只判定长度为 n 的有穷的输入。电路是非一致性的计算模型。
    • 一个图灵机则判定一个语言,图灵机是一致性的计算模型。
  • 所以给图灵机额外信息,称为advice。 lect03.pdf (mit.edu)
  • 用电路模拟图灵机:TIME(t(n))SIZE(O(t2(n)))
    • 每个单元有 k 盏灯代表一个符号,一个单元只能有一盏灯是开着的。
    • 边界上的单元只受上一行两个单元的影响。
  • 电路可满足性问题:给定一个布尔电路,确定是否存在某个输入使得这个电路输出1.
  • CIRCUIT-SAT是 NP完全 的
  • 3-SAT 是 NP完全的的一个证明方法是,用3cnf模拟电路。即把与或非门用3sat来归约。
Karp-Lipton定理
  • NPP/polyPH=Σp2
  • 假设PH不塌方,则NP完全问题不能用多项式规模的电路计算。
并行计算
  • ATM,NC,PRAM
  • PRAM是指共享存储。
  • NCk 是 poly规模,O(logkn) 深度,对数空间一致性条件。
  • Nick’s Class,窄电路。 NC1LNLNC2NCP
  • CIRCUITVALUE=CVP,布尔电路C在输入x下输出1。 给定一个布尔电路和一个输入,确定这个电路在这个输入下的输出。
  • 这是P完全的。

复杂性理论高级专题

交错式
概率算法
  • 【其实参见kyq随机算法】
  • 多项式恒等问题,多项式零问题,
  • EQROBP 问两个只读一次的分支程序是不是等价的。
  • 概率图灵机(概率TM),
  • PP 多项式运行时间,错误概率为0.5
  • BPP 多项式运行时间,错误概率小于0.5,双边错误
  • RP 多项式运行时间,错误概率小于0.5,单边错误,可能弃真
  • coRP 多项式运行时间,错误概率小于0.5,单边错误,可能取伪
  • ZPP 期望多项式运行时间,错误概率伪0,或者允许 0,1,? 三种输出。
  • MonteCarlo: BPP,RP,coRP,错误有界最坏多项式
  • LasVegas: ZPP,零错误期望运行时间
  • BPPP/poly=PSIZE ,方法是 2n2poly(n)<1,所以可以存在一个随机串对所有长度为n的输入给出正确答案,固化到电路中即可。
  • KL定理说如果PH不塌则随机算法不能解决NP完全问题。
  • 如何判断两张图非同构,随机选一张图,让对方输出同构的图,如果非同构概率为1,同构概率为1/2
交互式证明
  • AM,MA,IP
主要是完全问题,NP完全,NL完全,PSPACE完全

子归约性,复杂度性的包含关系,谁包含谁,出判断题的话就是:对,错,不知道

Powered By Valine
v1.5.2