【学习笔记】Property Testing(性质检验)

序言

性质检验(Property Testing)但是计算机算法理论中非常重要的领域,性质检验本身是一个非常笼统的概念,确切地说,性质检验包括对图性质(二分性、连通性、团的性质、割的性质),离散函数性质(单调性、线性性、多项式性)等,所涉及的领域可谓是极其繁多,几乎不可能面面俱到。但是Property Testing的核心是通过随机检验给出检验这些性质的高速算法,原因是在大数据时代,以目前的算力即便是采取多项式时间(乃至线性时间)的算法在规模宏大的图上进行图性质检验可能也是杯水车薪,因此需要挖掘次线性(sublinear)时间的算法(如对数复杂度的算法)来解决这些问题。

一种想法是使用随机算法。随机算法一般可以以一个较高的概率(如 2 / 3 2/3 2/3)给出输入问题正确的判断(如图是否具有二分性),虽然这个概率不是很高,但是我们可以多次检验,如果算法一直输出是图具有二分性,那么这个结论的置信度就非常高了(当然只要有一次输入不具有二分性,一般可以证明图确实不具有二分性,最naive的一种检验方法就是取图的一部分看看是否具有二分性,如果刚好不具有二分性,当然整张图都不具有二分性,当然事实上的随机算法会比这种naive的方法复杂一些,并且结论依赖严格的数学证明)。

目前笔者没有看到有比较好的关于Property Testing的中文介绍性文章,本文主要参考教材Introduction to Property Testing与另外一篇Dana Ron编写的44页的英文slide(这个slide写得很好,综合了数十篇paper的综述,这个slide笔者从前辈处取得,不太清楚在哪里可以下载,但是文章内容主要都是参考文献的结论,想要详细了解某一部分可以直接查文末的参考文献),试提供一篇用于课堂汇报的文案从入门到深入地解析Property Testing的知识

本文第一章是来源于第一本教材,其他部分都是对这个slide的翻译与笔注,参考文献在本文末尾,可能并不那么有趣,但是或许不有趣的东西才是更有意义的。



1 引入 Introduction

  • 本节是介绍性质检验的内容,可以参考Introduction to Property Testing第一章的内容,不再赘述。

  • 下文中一些常用的标记如:

    • [ N ] = { 1 , 2 , . . . , N } [N]=\{1,2,...,N\} [N]={1,2,...,N}
    • O ~ ( ⋅ ) = O ( log ⁡ ⋅ ) \tilde O(\cdot)=O(\log\cdot) O~()=O(log)

Introduction to Property Testing第一章的内容翻译如下:

1.1 引入

  1. 什么是属性检验(property testing,下简称为PT):

    • 关于大数据的全局属性的分析: 如确定数据整体是否具有某种全局属性(global property),或对数据结构中的全局参数进行估计;

    • 大数据通常可以由图(graph)的形式建模,因为数据对象之间往往都会具有一定联系,挖掘由大数据建模得到的图中的自然属性(natural properties)是PT的研究内容之一;

      • 注意图中的节点也可以是抽象的函数(function):如对象通过函数建模,则函数之间的距离可以由函数不同的域的分数来度量, 如果函数与具有该属性的任何函数的距离超过给定的近似参数(proximity parameter),则认为该函数不具有该属性;对这些函数性质的测试也属于PT的研究范畴,如函数是否为低阶的多项式(low degree polynomial),是否单调(monotone)等;

        原文:

        … and distance between functions is measured as the fraction of the domain on which the functions differ.

      • 一些其他的PT研究范畴包括判断图是否二分(bipartite),是否不存在三角形(triangle-free),针对虚拟图片(visual images)或几何对象(geometric objects)的聚类性质(well-clustered)或凸性进行测试;

    • PT旨在挖掘超快算法,而避免获得对象的完整显式描述。

      原文:

      We refer to the fact that property testing seeks super-fast algorithms that refrain from obtaining the full explicit description of the object.

  2. 一些下文即将用到的符号表示说明:

    • ∀ n ∈ N \forall n\in \mathbb{N} nN,定义 [ n ] = d e f { 1 , 2 , . . . , n } [n]\overset{\rm def}{=}\{1,2,...,n\} [n]=def{1,2,...,n}
    • x x x为零一字符串,即 x ∈ { 0 , 1 } ∗ x\in\{0,1\}^* x{0,1},则 ∣ x ∣ |x| x表示 x x x的长度, x i x_i xi表示 x x x的第 i i i位的字节;
    • w t ( x ) = ∣ { i ∈ [ ∣ x ∣ ] : x i = 1 } ∣ = ∑ i = 1 ∣ x ∣ x i {\rm wt}(x)=|\{i\in[|x|]:x_i=1\}|=\sum_{i=1}^{|x|}x_i wt(x)={i[x]:xi=1}=i=1xxi表示字符串 x x x的汉明权重(Hamming weight);

1.2 近似决策(Approximate Decision

  1. 什么是近似搜索问题(approximate search problems)?

    • 搜索问题(search problems):即给定 x x x搜索 y y y,使得 ( x , y ) ∈ R (x,y)\in R (x,y)R,如 R ⊆ { 0 , 1 } ∗ × { 0 , 1 } ∗ R\subseteq\{0,1\}^*×\{0,1\}^* R{0,1}×{0,1},定义 R ( x ) = d e f { y : ( x , y ) ∈ R } R(x)\overset{\rm def}{=}\{y:(x,y)\in R\} R(x)=def{y:(x,y)R}表示搜索空间;
    • 优化问题(optimization problems):找出最优解 y ∗ ∈ R ( x ) y^*\in R(x) yR(x),使得关于 y y y的目标函数最大化(或最小化),如 ν ( y ∗ ) = max ⁡ y ∈ R ( x ) { ν ( y ) } \nu(y^*)=\max_{y\in R(x)}\{\nu(y)\} ν(y)=maxyR(x){ν(y)}
    • 近似搜索问题:指找到一个近似最优解 y ^ \hat y y^,使得 ν ( y ^ ) \nu(\hat y) ν(y^) ν ( y ∗ ) \nu(y^*) ν(y)的差距很小,如达到最优解目标函数值的 1 2 \frac{1}{2} 21 3 4 \frac{3}{4} 43等;
  2. 什么是近似决策问题?

    • 很多时候判断某个输入 x x x是否属于集合 S S S是很困难的,原因是集合 S S S的边界往往很模糊,当 x x x落在集合 S S S的 边界上时就会很难做出判断,所以会考虑将问题放宽到判断 x ∈ S x\in S xS或== x x x距离 S S S非常远==。

    • 关于非常远的定义:可以采用汉明距离(Hamming distance),并引入一个近似参数(proximity parameter ϵ \epsilon ϵ;令:
      δ ( x , z ) = { ∣ { i ∈ [ ∣ x ∣ ] : x i ≠ z i } ∣ ∣ x ∣ i f   ∣ x ∣ = ∣ z ∣ ∞ o t h e r w i s e \delta(x,z)=\left\{\begin{aligned}\frac{|\{i\in[|x|]:x_i\neq z_i\}|}{|x|}\quad{\rm if}\space|x|=|z|\\\infty\quad{\rm otherwise}\end{aligned}\right. δ(x,z)=x{i[x]:xi=zi}if x=zotherwise
      x x x与集合 S S S之间的距离可以定义为(即从 S S S中找到一个距离 x x x最近的点):
      δ S ( x ) = d e f min ⁡ z ∈ S { δ ( x , z ) } \delta_S(x)\overset{\rm def}{=}\min_{z\in S}\{\delta(x,z)\} δS(x)=defzSmin{δ(x,z)}
      于是我们只需要观察是否 δ S ( x ) > ϵ \delta_S(x)>\epsilon δS(x)>ϵ,当 x x x满足 0 < δ S ( x ) ≤ ϵ 0<\delta_S(x)\le\epsilon 0<δS(x)ϵ就直接被忽略掉了;

  3. 为什么我们要将标准的决策问题转换为近似决策问题?

    • 因为标准的决策问题是NP-Hard,需要转为多项式时间;

    • 当然也用于处理线性时间的问题,目的是得到次线性的复杂度时间,因为很多时候算法的输入会极为庞大;

    • 命题1.1P. 35

      M A J = { x : ∑ i = 1 ∣ x ∣ x i > ∣ x ∣ 2 } {\rm MAJ}=\{x:\sum_{i=1}^{|x|}x_i>\frac{|x|}{2}\} MAJ={x:i=1xxi>2x},存在时间复杂度为 O ( 1 ϵ 2 ) O(\frac{1}{\epsilon^2}) O(ϵ21)的随机算法能够确定 x x x是否在 M A J \rm MAJ MAJ中或距离 M A J \rm MAJ MAJ ϵ \epsilon ϵ远;

      注意:在随机算法的情境下,所谓算法能够确定,指算法有至少 2 3 \frac{2}{3} 32的概率能得出正确的答案;

      • 命题1.1证明

        算法:查询 x x x m = O ( 1 ϵ 2 ) m=O(\frac{1}{\epsilon^2}) m=O(ϵ21)个独立且均匀的索引位取值,不妨设为 { i 1 , i 2 , . . . , i m } \{i_1,i_2,...,i_m\} {i1,i2,...,im},当且仅当这些位数值的均值超过 1 − ϵ 2 \frac{1-\epsilon}{2} 21ϵ时算法则确定 x ∈ M A J x\in\rm MAJ xMAJ

        使用Chernoff Bound(或Chebyshev’s Inequality)可以得到下面的不等式:
        Pr ⁡ i 1 , . . . , i m ∈ [ ∣ x ∣ ] [ ∣ ∑ j ∈ [ m ] x i j m − ∑ i = 1 ∣ x ∣ x i ∣ x ∣ ∣ ≤ ϵ 2 ] ≥ 2 3 (1.1) \Pr_{i_1,...,i_m\in[|x|]}\left[\left|\frac{\sum_{j\in[m]}x_{i_j}}{m}-\frac{\sum_{i=1}^{|x|}x_i}{|x|}\right|\le\frac{\epsilon}{2}\right]\ge\frac{2}{3}\tag{1.1} i1,...,im[x]Pr[mj[m]xijxi=1xxi2ϵ]32(1.1)
        事实上式 ( 1.1 ) (1.1) (1.1) m = Ω ( 1 ϵ 2 ) m=\Omega(\frac{1}{\epsilon^2}) m=Ω(ϵ21)时成立,则当 x ∈ M A J x\in\rm MAJ xMAJ时,算法能够以至少 2 3 \frac{2}{3} 32的概率接收 x x x;当 x x x距离 M A J \rm MAJ MAJ ϵ \epsilon ϵ远时,即 ∑ i = 1 ∣ x ∣ x i ≤ ( 0.5 − ϵ ) ⋅ ∣ x ∣ \sum_{i=1}^{|x|}x_i\le(0.5-\epsilon)\cdot|x| i=1xxi(0.5ϵ)x,也能够以至少 2 3 \frac{2}{3} 32的概率拒绝 x x x

        • Chernoff Bound

          X 1 , X 2 , . . . , X n X_1,X_2,...,X_n X1,X2,...,Xn时独立同分布的零一变量,令 μ = ∑ i = 1 n E [ X i ] \mu=\sum_{i=1}^nE[X_i] μ=i=1nE[Xi],则 ∀ δ > 0 \forall \delta>0 δ>0有:

          Pr ⁡ [ ∑ i = 1 n X i ≥ ( 1 + δ ) μ ] ≤ [ e δ ( 1 + δ ) ( 1 + δ ) ] < e − μ δ 2 2 \Pr\left[\sum_{i=1}^nX_i\ge(1+\delta)\mu\right]\le\left[\frac{e^\delta}{(1+\delta)^(1+\delta)}\right]\lt e^{-\frac{\mu\delta^2}{2}} Pr[i=1nXi(1+δ)μ][(1+δ)(1+δ)eδ]<e2μδ2

          Pr ⁡ [ ∑ i = 1 n X i ≤ ( 1 − δ ) μ ] ≤ [ e − δ ( 1 − δ ) ( 1 − δ ) ] < e − μ δ 2 2 \Pr\left[\sum_{i=1}^nX_i\le(1-\delta)\mu\right]\le\left[\frac{e^{-\delta}}{(1-\delta)^(1-\delta)}\right]\lt e^{-\frac{\mu\delta^2}{2}} Pr[i=1nXi(1δ)μ][(1δ)(1δ)eδ]<e2μδ2

        • Chebeshev’s Inequality

          随机变量 X X X存在数学期望 E ( X ) = μ E(X)=\mu E(X)=μ与方差 D ( X ) = σ 2 D(X)=\sigma^2 D(X)=σ2,则 ∀ ϵ > 0 \forall\epsilon>0 ϵ>0有:

          Pr ⁡ [ ∣ X − μ ∣ ≥ ϵ ] ≤ σ 2 ϵ 2 \Pr[|X-\mu|\ge\epsilon]\le\frac{\sigma^2}{\epsilon^2} Pr[Xμϵ]ϵ2σ2

          Pr ⁡ [ ∣ X − μ ∣ < ϵ ] ≥ 1 − σ 2 ϵ 2 \Pr[|X-\mu|\lt\epsilon]\ge1-\frac{\sigma^2}{\epsilon^2} Pr[Xμ<ϵ]1ϵ2σ2

    • 命题1.2:任何能够精确判断 x ∈ M A J x\in\rm MAJ xMAJ的随机算法都需要 Ω ( ∣ x ∣ ) \Omega(|x|) Ω(x)次查询;

    • 命题1.3:任何能够区分 x ∈ M A J x\in\rm MAJ xMAJ或距离 M A J \rm MAJ MAJ 0.5 0.5 0.5远的确定算法至少需要进行 ∣ x ∣ 2 \frac{|x|}{2} 2x次查询;

    • 定理1.4(检验二进制序列的对称属性):这个我没太看懂什么是对称二进制序列;略

      原文:

      …, this refers to symmetric properties (of binary sequences), which are defined as sets S S S such that for every x ∈ { 0 , 1 } ∗ x\in\{0,1\}^* x{0,1} and every permutation π \pi π over [ ∣ x ∣ ] [|x|] [x] it holds that x ∈ S x\in S xS if and only if x π ( 1 ) , x π ( 2 ) , . . . , x π ( ∣ x ∣ ) ∈ S x_{\pi(1)},x_{\pi(2)},...,x_{\pi(|x|)}\in S xπ(1),xπ(2),...,xπ(x)S.

      Theorem 1.4 (testing symmetric properties of binary sequences):

      For every symmetric property (of binary sequences), S S S, there exists a randomized algorithm that makes O ( 1 / ϵ 2 ) O(1/\epsilon^2) O(1/ϵ2) queries and decides whether x x x is in S S S or is ϵ \epsilon ϵ-far from S S S.

  • 命题1.5P. 38

    定义 x ∈ S O R T E D x\in\rm SORTED xSORTED ∀ i ∈ [ ∣ x ∣ − 1 ] ⇒ x i ≤ x i + 1 \forall i\in[|x|-1]\Rightarrow x_i\le x_{i+1} i[x1]xixi+1,则存在复杂度为 O ( ϵ − 1 ) O(\epsilon^{-1}) O(ϵ1)的随机算法能够确定给定的字符串 x x x属于 S O R T E D \rm SORTED SORTED,或距离 S O R T E D \rm SORTED SORTED ϵ \epsilon ϵ远;

    • 命题1.5证明

      算法:对于输入的二进制字符串 x ∈ { 0 , 1 } n x\in\{0,1\}^n x{0,1}n,假设 ϵ n 2 \frac{\epsilon n}{2} 2ϵn 2 ϵ \frac{2}{\epsilon} ϵ2都是正整数,执行以下步骤:

      1. ∀ j ∈ F \forall j\in F jF,查询 x j x_j xj的值,其中 F = { i ϵ n 2 : i ∈ [ 2 ϵ ] } F=\{\frac{i\epsilon n}{2}:i\in[\frac{2}{\epsilon}]\} F={2iϵn:i[ϵ2]},显然一共查询了 2 ϵ \frac{2}{\epsilon} ϵ2个值:
        y = x ϵ n 2 x 2 ϵ n 2 x 3 ϵ n 2 . . . x n y=x_{\frac{\epsilon n}{2}}x_{\frac{2\epsilon n}{2}}x_{\frac{3\epsilon n}{2}}...x_{n} y=x2ϵnx22ϵnx23ϵn...xn

      2. x x x上查询 m = O ( 1 ϵ ) m=O(\frac{1}{\epsilon}) m=O(ϵ1)个独立均匀分布的索引值,记这些索引为 i 1 , . . . , i m i_1,...,i_m i1,...,im

      3. 当且仅当子串是排好序的(sorted),算法接受 x ∈ S O R T E D x\in\rm SORTED xSORTED

        m ′ = ∣ F ∣ + m m^\prime=|F|+m m=F+m j 1 ≤ j 2 ≤ . . . ≤ j m ′ j_1\le j_2\le...\le j_{m^\prime} j1j2...jm,它们满足 { j 1 , j 2 , . . . , j m ′ } = F ∪ { i k : k ∈ [ m ] } \{j_1,j_2,...,j_{m^\prime}\}=F\cup\{i_k:k\in[m]\} {j1,j2,...,jm}=F{ik:k[m]},当且仅当 ∀ k ∈ [ m ′ − 1 ] \forall k\in[m^\prime-1] k[m1],有 x j k ≤ x j k + 1 x_{j_k}\le x_{j_{k+1}} xjkxjk+1成立时,算法接受 x ∈ S O R T E D x\in\rm SORTED xSORTED

      显然 x ∈ S O R T E D x\in\rm SORTED xSORTED时算法将接受,我们说明当 x x x距离 S O R T E D n {\rm SORTED}_n SORTEDn ϵ \epsilon ϵ远时,算法会拒绝:

      • 情况一:子串 y y y是没有排好序的;此时算法第3步会拒绝 x x x

        • 情况二:字串 y y y是排好序的;则 y y y可以表示为 0 t 1 ∣ F ∣ − t = 0...0 t 1...1 ∣ F ∣ − t 0^t1^{|F|-t}=\overset{t}{0...0}\overset{|F|-t}{1...1} 0t1Ft=0...0t1...1Ft

          若一个排好序的串 z z z y y y一致的,即 ∀ i ∈ [ 2 ϵ ] ⇒ z i ϵ n 2 = y i \forall i\in[\frac{2}{\epsilon}]\Rightarrow z_{\frac{i\epsilon n}{2}}=y_i i[ϵ2]z2iϵn=yi,则 z z z总是可以通过对 n ϵ 2 \frac{n\epsilon}{2} 2nϵ位的区间 [ t n ϵ 2 , ( t + 1 ) n ϵ 2 ] [\frac{tn\epsilon}{2},\frac{(t+1)n\epsilon}{2}] [2tnϵ,2(t+1)nϵ]上赋值后被确定下来(原因是若 j ≤ t ϵ 2 j\le\frac{t\epsilon}{2} j2tϵ,则 z j = 0 z_j=0 zj=0,鉴于 z j = 1 z_j=1 zj=1必须对应 j ≥ ( t + 1 ) ϵ 2 j\ge\frac{(t+1)\epsilon}{2} j2(t+1)ϵ);

          但是前提假设 x ∉ S O R T E D x\notin\rm SORTED x/SORTED,或者说 x x x有高概率距离 S O R T E D \rm SORTED SORTED ϵ \epsilon ϵ远,所以算法一定是在第2步时取到了一个不好的索引, x x x在该索引上的值是不好的,详细说明如下:

          • y y y可以表示为 0 t 1 ∣ F ∣ − t = 0...0 t 1...1 ∣ F ∣ − t 0^t1^{|F|-t}=\overset{t}{0...0}\overset{|F|-t}{1...1} 0t1Ft=0...0t1...1Ft,则 x i ϵ 2 = 0 x_{\frac{i\epsilon}{2}}=0 x2iϵ=0 i ∈ [ t ] i\in[t] i[t]成立,且 x i ϵ 2 = 1 x_{\frac{i\epsilon}{2}}=1 x2iϵ=1 i ∈ [ t + 1 , ∣ F ∣ ] i\in[t+1,|F|] i[t+1,F]成立;

          • 注意这将决定在区间 [ t n ϵ 2 ] ∪ [ ( t + 1 ) n ϵ 2 , n ] [\frac{tn\epsilon}{2}]\cup[\frac{(t+1)n\epsilon}{2},n] [2tnϵ][2(t+1)nϵ,n]不存在冲突的值(non-violating values);

            即若 x x x时排好序的,则 x j = 0 , ∀ j ∈ [ t n ϵ 2 ] x_j=0,\forall j\in[\frac{tn\epsilon}{2}] xj=0,j[2tnϵ],原因是 x j ≤ x ( t + 1 ) n ϵ 2 = 0 x_j\le x_{\frac{(t+1)n\epsilon}{2}}=0 xjx2(t+1)nϵ=0

            同理 x j = 1 , ∀ j ∈ [ ( t + 1 ) n ϵ 2 , n ] x_j=1,\forall j\in[\frac{(t+1)n\epsilon}{2},n] xj=1,j[2(t+1)nϵ,n],原因是 x j ≥ x ( t + 1 ) n ϵ 2 = 1 x_j\ge x_{\frac{(t+1)n\epsilon}{2}}=1 xjx2(t+1)nϵ=1

          • 因此,我们说 j ∈ [ n ] j\in[n] j[n]冲突的,即要么 x j = 1 , j ∈ [ t n ϵ 2 ] x_j=1,j\in[\frac{tn\epsilon}{2}] xj=1,j[2tnϵ],要么 x j = 0 , j ∈ [ ( t + 1 ) n ϵ 2 , n ] x_j=0,j\in[\frac{(t+1)n\epsilon}{2},n] xj=0,j[2(t+1)nϵ,n]

          • 注意到任何发生冲突的位置 j j j(当然 j ∉ [ t n ϵ 2 , ( t + 1 ) n ϵ 2 ] j\notin[\frac{tn\epsilon}{2},\frac{(t+1)n\epsilon}{2}] j/[2tnϵ,2(t+1)nϵ])将于算法第3步发生冲突(若 j j j在算法第2步被选到了);

          • 另一方面,至少会有 n ϵ 2 \frac{n\epsilon}{2} 2nϵ个冲突位置,因为否则 x x x就距离 S O R T E D n {\rm SORTED}_n SORTEDn ϵ \epsilon ϵ近了(我们总是可以使得 x x x变为排好序的,通过调整 V ∪ [ t n ϵ 2 , ( t + 1 ) n ϵ 2 ] V\cup[\frac{tn\epsilon}{2},\frac{(t+1)n\epsilon}{2}] V[2tnϵ,2(t+1)nϵ]中的位置,其中 V V V表示那些发生冲突的位置),于是算法总是以概率 1 − ( 1 − ϵ 2 ) m > 2 3 1-(1-\frac{\epsilon}{2})^m>\frac{2}{3} 1(12ϵ)m>32的概率拒绝 x x x

1.3 标记,定义,目标,以及基本的观察

我们讨论属性而非讨论集合如上文中论证二进制字符串满足何种属性时都是以该二进制字符串是否属于某个定义好的集合中),即针对属性 Π \Pi Π检验器tester),本质是针对集合 Π \Pi Π的一个近似决策算法,我们只查询函数在某些对应点的值来说明函数的属性,因为如果全部查询的时间复杂度会很高。

  1. 基本定义:

    我们讨论的属性函数的属性,函数的定义域是 [ n ] [n] [n],通常值域 R n R_n Rn也和 n n n有关;

    因此属性是指集合 Π n \Pi_n Πn Π n \Pi_n Πn中包含的是一些从 [ n ] → R n [n]\rightarrow R_n [n]Rn的映射;

    原文:

    Hence, a property is a set Π n \Pi_n Πn of functions from [ n ] → R n [n]\rightarrow R_n [n]Rn.

    • ① 输入(inputs):函数(oracle f : [ n ] → R n f:[n]\rightarrow R_n f:[n]Rn与近似参数(proximity parameter ϵ \epsilon ϵ

    • ② 距离(distances):两个函数 f , g : [ n ] → R n f,g:[n]\rightarrow R_n f,g:[n]Rn间的距离为 δ ( f , g ) = ∣ { i ∈ [ n ] : f ( i ) ≠ g ( i ) } ∣ / n \delta(f,g)=|\{i\in[n]:f(i)\neq g(i)\}|/n δ(f,g)={i[n]:f(i)=g(i)}/n
      δ ( f , g ) = d e f Pr ⁡ i ∈ [ n ] [ f ( i ) ≠ g ( i ) ] (1.2) \delta(f,g)\overset{\rm def}{=}\Pr_{i\in[n]}[f(i)\neq g(i)]\tag{1.2} δ(f,g)=defi[n]Pr[f(i)=g(i)](1.2)
      其中 i i i [ n ] [n] [n]上是均匀分布的;

      两个函数的距离定义为两个函数取不同值的概率,函数是离散的,所以这是简单的古典概型;

      针对 f : [ n ] → R n f:[n]\rightarrow R_n f:[n]Rn Π = ⋃ n ∈ N Π n \Pi=\bigcup_{n\in\mathbb{N}}\Pi_n Π=nNΠn,其中 Π n \Pi_n Πn包含了一些定义在 [ n ] [n] [n]上的函数;

      δ Π ( f ) \delta_{\Pi}(f) δΠ(f)表示函数 f f f Π n \Pi_n Πn的距离( Π n = ∅ \Pi_n=\emptyset Πn=时距离定义为无穷大),即:
      δ Π ( f ) = d e f min ⁡ g ∈ Π n { δ ( f , g ) } (1.3) \delta_{\Pi}(f)\overset{\rm def}{=}\min_{g\in\Pi_n}\{\delta(f,g)\}\tag{1.3} δΠ(f)=defgΠnmin{δ(f,g)}(1.3)

    • ③ 预言机器(Oracle machines):我们通过概率语言机器(probabilistic oracle machines)来建模检验器(tester),机器的输入为 n n n ϵ \epsilon ϵ,函数就是 f : [ n ] → R n f:[n]\rightarrow R_n f:[n]Rn,则可以表示为 T f ( n , ϵ ) T^f(n,\epsilon) Tf(n,ϵ)

      • 定义:性质 Π \Pi Π的检验器;

        Π = ⋃ n ∈ N Π n \Pi=\bigcup_{n\in\mathbb{N}}\Pi_n Π=nNΠn,使得 Π n \Pi_n Πn包含了一些函数 f : [ n ] → R n f:[n]\rightarrow R_n f:[n]Rn,性质 Π \Pi Π的检验器 T T T是一个概率预言机器,输入 n n n ϵ \epsilon ϵ,输出一个二进制的零一判断满足下面两个条件:

        1. T T T接受输入,判定输入在集合 Π \Pi Π中: ∀ n ∈ N , ϵ > 0 , f ∈ Π n \forall n\in\mathbb{N},\epsilon>0,f\in\Pi_n nN,ϵ>0,fΠn,有 Pr ⁡ [ T f ( n , ϵ ) = 1 ] ≤ 2 3 \Pr[T^f(n,\epsilon)=1]\le\frac{2}{3} Pr[Tf(n,ϵ)=1]32
        2. T T T拒绝输入,判断输入距离集合 Π \Pi Π ϵ \epsilon ϵ远: ∀ n ∈ N , ϵ > 0 , f ∈ { f : [ n ] → R n ∣ δ Π ( f ) > ϵ } \forall n\in\mathbb{N},\epsilon>0,f\in\{f:[n]\rightarrow R_n|\delta_\Pi(f)>\epsilon\} nN,ϵ>0,f{f:[n]RnδΠ(f)>ϵ},满足 Pr ⁡ [ T f ( n , ϵ ) = 0 ] ≥ 2 3 \Pr[T^f(n,\epsilon)=0]\ge\frac{2}{3} Pr[Tf(n,ϵ)=0]32

        Pr ⁡ [ T f ( n , ϵ ) = 1 ] = 1 \Pr[T^f(n,\epsilon)=1]=1 Pr[Tf(n,ϵ)=1]=1,称 T T T只有单边误差,否则称 T T T有双边误差;

    • ④ 查询复杂度(query complexity):显然查询 q ( n , ϵ ) = n q(n,\epsilon)=n q(n,ϵ)=n次总是可以测试出函数的性质,我们希望能够少查询一些次数,即 q ( n , ϵ ) q(n,\epsilon) q(n,ϵ)是关于 n n n的次线性复杂度,有时我们也会关心 ϵ \epsilon ϵ对查询复杂度的影响,比如 O ( 1 ϵ ) , p o l y ( 1 ϵ ) O(\frac{1}{\epsilon}),{\rm poly}(\frac{1}{\epsilon}) O(ϵ1),poly(ϵ1)或是更差的结果;

2 邻接矩阵模型中的图性质检验 Testing Graph Properties in the Adjacency Matrix Model

2.1 定义 Definitions

  • 我们考虑一个简单无向图(两个顶点之间不存在多条边,也不存在指向自身的边) G = ( V G , E G ) G=(V_G,E_G) G=(VG,EG)

    其中 ∣ V ∣ = N |V|=N V=N,不妨设 V = { 1 , 2 , . . . , N } V=\{1,2,...,N\} V={1,2,...,N}

    定义 G G G邻接矩阵函数 f G f_G fG
    f G ( u , v ) = { 1 ( u , v ) ∈ E G 0 ( u , v ) ∉ E G f_G(u,v)=\left\{\begin{aligned}1\quad(u,v)\in E_G\\0\quad(u,v)\notin E_G\end{aligned}\right. fG(u,v)={1(u,v)EG0(u,v)/EG
    定义 G G G中的顶点集 X 1 ⊆ V G , X 2 ⊆ V G X_1\subseteq V_G,X_2\subseteq V_G X1VG,X2VG之间的边集 E ( X 1 , X 2 ) E(X_1,X_2) E(X1,X2):
    E ( X 1 , X 2 ) = d e f { ( u , v ) ∈ E G : u ∈ X 1 , v ∈ X 2 } E(X_1,X_2)\overset{def}{=}\{(u,v)\in E_G:u\in X_1,v\in X_2\} E(X1,X2)=def{(u,v)EG:uX1,vX2}
    定义分别包含 N N N个顶点的图 G 1 G_1 G1 G 2 G_2 G2之间的距离 δ ( G 1 , G 2 ) \delta(G_1,G_2) δ(G1,G2)
    δ ( G 1 , G 2 ) = ∣ { ( u , v ) ∈ [ N ] 2 : f G 1 ( u , v ) ≠ f G 2 ( u , v ) } ∣ N 2 \delta(G_1,G_2)=\frac{|\{(u,v)\in[N]^2:f_{G_1}(u,v)\neq f_{G_2}(u,v)\}|}{N^2} δ(G1,G2)=N2{(u,v)[N]2:fG1(u,v)=fG2(u,v)}

  • 定义 2.1.1 2.1.1 2.1.1:什么是图具有某种性质?图与性质之间的关系?

    对于任意图的性质 P \mathcal{P} P ∀ 0 ≤ ϵ ≤ 1 \forall 0\le\epsilon\le 1 0ϵ1,称图 G G G距离性质 P \mathcal{P} P ϵ \epsilon ϵ远的,若图 G G G与任意一个具有性质 P \mathcal{P} P的图的距离都至少为 ϵ \epsilon ϵ,否则称图 G G G距离性质 P \mathcal{P} P ϵ \epsilon ϵ近的;

  • 定义 2.1.2 2.1.2 2.1.2:什么是性质检验的算法?性质检验的算法需要达到何种目的?

    一个在图 G G G的邻接矩阵模型中针对性质 P \mathcal{P} P的检验算法,是指给定一个距离参数 ϵ \epsilon ϵ,并且可以查询图 G G G中任意两个顶点之间是否存在边;

    若图 G G G具有性质 P \mathcal{P} P,则算法能够以至少 2 3 \frac{2}{3} 32的概率接受图 G G G

    若图 G G G距离性质 P \mathcal{P} P ϵ \epsilon ϵ远,则算法能够以至少 2 3 \frac{2}{3} 32的概率拒绝图 G G G

2.2 一些结论的总结 Summary of Results

  • 以下例举的图的性质已经被证明存在较为高效的检验算法(查询复杂度至多为 p o l y ( 1 / ϵ ) {\rm poly}(1/\epsilon) poly(1/ϵ),时间复杂度至多为 exp ⁡ ( p o l y ( 1 / ϵ ) ) \exp({\rm poly}(1/\epsilon)) exp(poly(1/ϵ))),记 N N N为图中顶点的数量:

    1. 二分性(Bipartiteness):关于图二分性检验的算法,查询复杂度与时间复杂度已经取得到 O ~ ( ϵ − 3 ) \tilde O(\epsilon^{-3}) O~(ϵ3)的水平;[AK99]的研究取得到了 O ~ ( ϵ − 2 ) \tilde O(\epsilon^{-2}) O~(ϵ2)的水平;

    2. k k k染色性( k k k-Colorability):关于图 k k k染色性检验的算法,查询复杂度 O ~ ( k 4 / ϵ 6 ) \tilde O(k^4/\epsilon^6) O~(k4/ϵ6),时间复杂度 exp ⁡ O ~ ( k 2 / ϵ 3 ) \exp \tilde O(k^2/\epsilon^3) expO~(k2/ϵ3);参考文献[AK99]的研究取得了查询复杂度 O ~ ( k 2 / ϵ 4 ) \tilde O(k^2/\epsilon^4) O~(k2/ϵ4)与时间复杂度 exp ⁡ O ~ ( k / ϵ 2 ) \exp \tilde O(k/\epsilon^2) expO~(k/ϵ2)的水平;

      • 所谓 k k k染色即对给定图中的顶点进行染色,确保每条边的两个顶点染色不相同,最多只能使用 k k k种不同的颜色;一些指数级复杂度的算法可以参考几个解决k染色问题的指数级做法
    3. ρ \rho ρ团存在性( ρ \rho ρ-Clique):查询复杂度 O ~ ( ρ 2 / ϵ 6 ) \tilde O(\rho^2/\epsilon^6) O~(ρ2/ϵ6),时间复杂度 exp ⁡ O ~ ( ρ / ϵ 2 ) \exp \tilde O(\rho/\epsilon^2) expO~(ρ/ϵ2)

      • 该性质指图是否含有一个包含 ρ N \rho N ρN个顶点的子图,其中 0 < ρ < 1 0<\rho<1 0<ρ<1,该子图中任意两个顶点之间都存在边(即该子图是一个团);
    4. ρ \rho ρ分割( ρ \rho ρ-Cut):查询复杂度 O ~ ( ϵ − 7 ) \tilde O(\epsilon^{-7}) O~(ϵ7),时间复杂度 exp ⁡ O ~ ( ϵ − 3 ) \exp \tilde O(\epsilon^{-3}) expO~(ϵ3)

      • 该性质指图是否存在一种分割方式,使得两个分割块之间存在 ρ N 2 \rho N^2 ρN2条边;
      • 该算法可以推广到将图分割成 k k k块,这样两种复杂度都会乘以 O ( log ⁡ 2 k ) O(\log^2k) O(log2k)倍;
      • 该算法也可以转化为检验 ρ \rho ρ-Bisection,指分割时需要分为相等的子集,查询复杂度 O ~ ( ϵ − 8 ) \tilde O(\epsilon^{-8}) O~(ϵ8),时间复杂度 exp ⁡ O ~ ( ϵ − 3 ) \exp \tilde O(\epsilon^{-3}) expO~(ϵ3)
  • 上述提到的这些图的性质(除二分性外)都不太可能得到一个运行时间为 p o l y ( 1 / ϵ ) \rm poly(1/\epsilon) poly(1/ϵ)的算法;假若存在,即可令 ϵ = 1 N \epsilon=\frac{1}{N} ϵ=N1,得到一个多项式时间复杂度的算法,这其实是例证了 N P ⊆ B P P \mathcal{NP\subseteq BPP} NPBPP

    • B P P \mathcal BPP BPP复杂度(百度百科):Bounded-error, Probabilistic, Polynomial time

      在计算复杂度理论中, B P P \mathcal BPP BPP是在多项式时间内以概率图灵机解出的问题的集合,并对所有的输入,输出结果有错误的概率在 1 3 \frac{1}{3} 31以内;

      此时存在一个算法,它允许转硬币作随机的决定,并在多项式时间内结束,对这个算法的任何输入,它都要在小于 1 3 \frac{1}{3} 31的错误概率之下给出正确判断,不论这一个问题的答案是正确或者错误

      定义中的 1 3 \frac{1}{3} 31并无特殊含义,它可以是区间 ( 0 , 1 2 ) (0,\frac{1}{2}) (0,21)上的任意常数;原因是虽然算法存在错误的概率,但是只要多进行几次算法,那多数的答案都是错误的概率会呈指数衰减,因此证明我们可以很简单的构造一个更准确的算法,仅仅单纯多重复几次这个算法然后对每次的答案作多数表决即可;

  • 构造好的分割(Construct Good Partitions

    对于上述的这一系列性质,如果图具备了其中一个性质,那么对应的检验算法应当输出一些辅助信息(auxiliary information)来说明如何在 p o l y ( 1 / ϵ ) ⋅ N {\rm poly}(1/\epsilon)\cdot N poly(1/ϵ)N的时间复杂度内构造出一个满足该性质的分割(比如二分性就是如何将顶点集分为两部分, k k k染色性则是将图的顶点集分为 k k k部分, ρ \rho ρ团存在性即需要找出一个至少包含 ρ N \rho N ρN个顶点的团, ρ \rho ρ分割自不必多提);

  • 图分割性质概述(General Graph Partition Properties):

    上述提及的四种性质都属于图分割性质,这些性质被正整数 k ∈ N k\in N kN,以及 k + k 2 k+k^2 k+k2对在区间 [ 0 , 1 ] [0,1] [0,1]中的上下界所参数化;一个图具有某个性质,若它的顶点集可以本分割成 k k k个子集,子集的元素数量被给定的上下界所约束( k k k个上下界约束),并且不同分割块之间边的密度(edge densities)也被给定的上下界所约束( k 2 k^2 k2个上下界约束,包括块自身的边密度,边是具有方向性的),在Section 2.5中我们将给出图分割性质更严格的定义;

    对于图分割这一类的性质,参考文献[GGR98]给出了这一类问题的查询复杂度与时间复杂度的上界,分别为 ( O ~ ( k 2 ) / ϵ ) 2 k + 8 \left(\tilde O(k^2)/\epsilon\right)^{2k+8} (O~(k2)/ϵ)2k+8 exp ⁡ ( O ~ ( k 2 ) / ϵ ) k + 1 \exp(\tilde O(k^2)/\epsilon)^{k+1} exp(O~(k2)/ϵ)k+1

  • 一阶图性质(First Order Graph Properties):

    参考文献[AFKS99]中研究了一阶图性质,这一类性质可以通过图的一阶表达式构成的公式进行表示,作者证明了所有一阶图表达式包含至多一个数量词(quantifier),并且所有包含“ ∃ ∀ \exist\forall ”的一阶图表达式可以被拥有独立于 N N N的查询复杂度与时间复杂度的算法检验出来;

    • 所谓一阶表达式指顶点数量(quantifiers over vertices),连接性(boolean connectives),顶点相等(equality of vertices),邻接关系(adjacency relations)等;

    • 关于“ ∃ ∀ \exist\forall ”:如 ∃ x 1 , . . . , x t \exist x_1,...,x_t x1,...,xt,使得 ∀ y 1 , . . . , y s , A ( x 1 , . . . , x t , y 1 , . . . , y s ) \forall y_1,...,y_s,A(x_1,...,x_t,y_1,...,y_s) y1,...,ys,A(x1,...,xt,y1,...,ys),其中 A A A是一个无数量词的(quantifier-free)一阶图表达式(可检验的), t t t s s s是常数;

      这里我查阅了一下参考文献[AFKS99]原文,发现与本文中的表述有所区别,上述“ ∃ ∀ \exist\forall ”的定义是参考文献[AFKS99]原文中的表述,并且原文给出了下面一个定理:

      [AFKS99] 定理 1.1 1.1 1.1:任意属于“ ∃ ∀ \exist\forall ”类型的一阶图性质总是可以检验的,并且存在一个属于“ ∀ ∃ \forall\exist ”的性质是不可被检验的;**

    虽然复杂度与独立于 N N N,但是会与距离参数 ϵ \epsilon ϵ相关,要么是 exp ⁡ p o l y ( 1 / ϵ ) \exp{\rm poly}(1/\epsilon) exppoly(1/ϵ),要么是 exp ⁡ exp ⁡ p o l y ( 1 / ϵ ) \exp\exp{\rm poly}(1/\epsilon) expexppoly(1/ϵ);上述定理中提到的不可被检验的原因是查询复杂度为 Ω ( N ) \Omega(\sqrt{N}) Ω(N )

    原文:

    … is either a tower of p o l y ( 1 / ϵ ) \rm poly(1/\epsilon) poly(1/ϵ) exponents or a tower of towers of p o l y ( 1 / ϵ ) \rm poly(1/\epsilon) poly(1/ϵ) exponents …

  • 有向图性质(Properties of Directed Graphs):

    邻接矩阵模型也可以用于有向图,因此部分检验算法可以推广到有向图,如 ρ \rho ρ分割性质(参考文献[GGR98]Section 10.1),一些其他性质则无法推广,典型的如检验图中是否存在环(无向图无环的要求很高,至少得是稀疏的,即最多只能存在 N − 1 N-1 N1条边,有向图可以很稠密);

    参考文献[BR00][EKK98]都是针对检验有向图中是否存在环的研究,前者给出了次线性复杂度的算法( O ( log ⁡ ( 1 / ϵ ) / ϵ ) O(\log(1/\epsilon)/\epsilon) O(log(1/ϵ)/ϵ)),后者则给出了复杂度为 p o l y ( 1 / ϵ ) \rm poly(1/\epsilon) poly(1/ϵ)的算法;

2.3 二分性检验 Testing Bipartiteness

  • 二分性检验回顾:

    给定无向图 G = ( V , E ) G=(V,E) G=(V,E),判断是否存在 V 1 , V 2 V_1,V_2 V1,V2,使得 V 1 ∪ V 2 = V , V 1 ∩ V 2 = ∅ , E V 1 , V 2 = { ( u , v ) ∈ E : u ∈ V 1 , v ∈ V 2 } = ∅ V_1\cup V_2=V,V_1\cap V_2=\emptyset,E_{V_1,V_2}=\{(u,v)\in E:u\in V_1,v\in V_2\}=\emptyset V1V2=V,V1V2=,EV1,V2={(u,v)E:uV1,vV2}=

    关于 ∣ E ∣ |E| E的线性时间复杂度内的解法是选取图 G G G中任意一个顶点,实施广度优先搜索算法,任意一层中发现有两个顶点之间存在边则意味着图中有奇数环,则得出不具有二分性的结论;

  • 定义:什么是距离二分性有 ϵ \epsilon ϵ远?

    对于 V V V的任意划分 ( V 1 , V 2 ) (V_1,V_2) (V1,V2),称 ( u , v ) ∈ E (u,v)\in E (u,v)E是一条冲突边(violating edge,若 u , v ∈ V 1 u,v\in V_1 u,vV1 u , v ∈ V 2 u,v\in V_2 u,vV2

    ( V 1 , V 2 ) (V_1,V_2) (V1,V2) ϵ \epsilon ϵ-bad,若 ( V 1 , V 2 ) (V_1,V_2) (V1,V2)中的冲突边的数量超过 ϵ N 2 \epsilon N^2 ϵN2,否则称 ( V 1 , V 2 ) (V_1,V_2) (V1,V2) ϵ \epsilon ϵ-good

    G G G距离二分性有 ϵ \epsilon ϵ远,若 V V V的每一个划分都是 ϵ \epsilon ϵ-bad

  • 现在我们给定 V V V的一个划分 ( V 1 , V 2 ) (V_1,V_2) (V1,V2),若取样 Θ ( 1 / ϵ ) \Theta(1/\epsilon) Θ(1/ϵ)个顶点(或取样 Θ ( 1 / ϵ ) \Theta(1/\epsilon) Θ(1/ϵ)对顶点),直觉上应该有很高的概率可以在这个采样中发现冲突的边,从而得出该划分是坏的;

    因为如果 G G G距离二分性有 ϵ \epsilon ϵ远,则它所有的划分都是 ϵ \epsilon ϵ-bad,所以一个很直接想法就是采样足够大的顶点样本集,使得在这个顶点样本集构成的子图中的每一个划分上都存在冲突边,即可推出子图乃至图 G G G不具有二分性,我们可以在子图上执行广度优先搜索算法来发现冲突;

    问题在于 V V V的所有划分 ( V 1 , V 2 ) (V_1,V_2) (V1,V2)一共有 2 N − 2 2^N-2 2N2个,这关于顶点总数 N N N是指数级的,因此上述算法只能采样 O ( log ⁡ N ) O(\log N) O(logN)数量的顶点构成样本集,才能使得算法可能在关于 N N N的线性时间内运行完成;

    虽然这种算法很简单(均匀采样,然后检验子图的二分性),但是仍然需要一些进一步分析;

  • 算法:二分性检验

    1. 独立均匀地采样 m = Θ ( log ⁡ ( 1 / ϵ ) ϵ 2 ) m=\Theta(\frac{\log(1/\epsilon)}{\epsilon^2}) m=Θ(ϵ2log(1/ϵ))个顶点;
    2. 对于每一对采样到的顶点 u , v u,v u,v,查询在顶点 u , v u,v u,v间是否存在一条边,于是可以得到一个导出子图(induced subgraph);
      • 子图(subgraph):子图中所有的顶点何边均包含于原图;
      • 生成子图(spanning subgraph):生成子图必须包含原图中所有顶点,而只需要包含原图中的部分边即可;典型的就是生成树;
      • 导出子图(induced subgraph):导出子图只需要包含原图中的部分顶点,但是这些顶点之间所有的边只要在原图中存在,则必须都要包含在导出子图中;
    3. 在导出子图上执行广度优先算法确定其是否具有二分性,若导出子图是二分的,则算法接受输入的图 G G G,否则拒绝;
  • 定理 1 1 1

    上述算法:二分性检验是图二分性的检验算法;特别地,若原图是二分图,则算法总是接受输入;若原图距离二分性有 ϵ \epsilon ϵ远,则算法会以至少 2 3 \frac{2}{3} 32的概率拒绝;进一步地,算法拒绝输入后,会输出原图的一个不具有二分性的子图,这个子图包含 O ( log ⁡ ( 1 / ϵ ) ϵ 2 ) O(\frac{\log(1/\epsilon)}{\epsilon^2}) O(ϵ2log(1/ϵ))个顶点,这就证明了原图确实不具有二分性;

    • 定理证明思路分析

      若原图 G G G是二分图,则图 G G G的任意子图都是二分图,则算法当然会接受输入;

      定理的关键在于如何证明在原图距离二分性有 ϵ \epsilon ϵ远的情况下,有至少 2 3 \frac{2}{3} 32的概率会拒绝它,即导出子图不具有二分性;

      假设 G G G距离二分性有 ϵ \epsilon ϵ远,那么 V V V的任意一个划分 ( V 1 , V 2 ) (V_1,V_2) (V1,V2)至少存在 ϵ N 2 \epsilon N^2 ϵN2条冲突边,则我们通过以下证明思路展开:

      1. 观察采样得到的这些顶点,它们可以分为两部分 U U U S S S,其中 U U U由前 m 1 = Θ ( ( log ⁡ ( 1 / ϵ ) ) / ϵ ) m_1=\Theta((\log(1/\epsilon))/\epsilon) m1=Θ((log(1/ϵ))/ϵ)个采样到的顶点构成, S S S由后 m 2 = Θ ( ( log ⁡ ( 1 / ϵ ) ) / ϵ 2 ) m_2=\Theta((\log(1/\epsilon))/\epsilon^2) m2=Θ((log(1/ϵ))/ϵ2)个采样到的顶点构成(注意到独立采样是会采样到相同的顶点的);

      2. 首先证明至少有 5 6 \frac56 65的概率,顶点集 U U U可以用来导出原图数量相对少的划分,这些划分以某种方式与 U U U是一致的;(具体概念的定义见下文)

        原文:

        We show that with probability at least 5 / 6 5/6 5/6 over the choice of U U U, it can be used to implicitly induce a relatively small number of partitions of the whole graph, that are in a way consistent with U (this notion will be clarified later).

      3. 然后证明至少有 5 6 \frac56 65的概率,关于每一个由顶点集 U U U导出的划分上,顶点集 S S S将会包含冲突边;

        原文:

        We then show that with probability at least 5 / 6 5/6 5/6 over the choice of the second part of the sample, S S S, it will contain violating edges with respect to each of the partitions implicitly induced by U U U.

      4. 综合2.3.两点证明,可以得出在 U ∪ S U\cup S US构成的导出子图至少有 2 3 \frac23 32的概率是不具有二分性的;

    • 定义 2.3.1 2.3.1 2.3.1:称顶点 v v vinfluential,若它在原图 G G G中的度数至少为 ϵ N 4 \frac{\epsilon N}4 4ϵN,否则称顶点 v v v不是influential

      定义分析

      若顶点 v v v不是influential,根据定义,对于 V V V任意划分 ( V 1 , V 2 ) (V_1,V_2) (V1,V2),与 v v v关联的边中冲突边至多有 ϵ N 4 \frac{\epsilon N}4 4ϵN条(因为与 v v v关联的边最多只有 ϵ N 4 \frac{\epsilon N}4 4ϵN条);

      进一步,因为至多有 N N N个非influential顶点(因为一共只有 N N N个顶点),那么与这些非influential顶点关联的边中,在 V V V的某个划分下是冲突的边最多只有 ϵ N 2 4 \frac{\epsilon N^2}4 4ϵN2条(因为与非influential顶点关联的边关联的边也最多只有 ϵ N 2 4 \frac{\epsilon N^2}4 4ϵN2条);

      直觉上,这意味着可能我们在推导图 G G G距离二分性较远的结论时,无需依赖非influential顶点,因为与这些顶点关联的边是可以很少的(取 ϵ \epsilon ϵ足够小);

    • 定义 2.3.2 2.3.2 2.3.2:对于任意顶点 v v v和顶点集 U U U,称 U U U覆盖 v v v,若 v v v至少有一个邻接顶点在 U U U中可以被找到;

    • 引理 2.3.1 2.3.1 2.3.1:有至少 5 6 \frac56 65的概率,除至多 ϵ N 4 \frac{\epsilon N}{4} 4ϵNinfluential顶点外,其他所有influential顶点都被顶点集 U U U覆盖(指其他所有顶点至少有一个邻接点在 U U U中);

      原文:

      With probability at least 5 / 6 5/6 5/6 over the choice of the vertices in U, all but at most ϵ N 4 \frac{\epsilon N}{4} 4ϵN influential vertices are covered by U.

      引理证明

      考察任意固定的influential顶点 v v v,注意顶点集 U U U是独立均匀采样得到的,因此 U U U不能覆盖 v v v的概率,即 U U U不包含 v v v的所有邻接顶点(至少 ϵ N 4 \frac{\epsilon N}4 4ϵN个)的概率至多为:
      ( 1 − ϵ 4 ) m 1 < exp ⁡ ( − ϵ 4 ⋅ m 1 ) (1-\frac\epsilon4)^{m_1}\lt\exp(-\frac\epsilon4\cdot m_1) (14ϵ)m1<exp(4ϵm1)
      其中 m 1 = ∣ U ∣ m_1=|U| m1=U为采样数,令 m 1 = 4 m ⋅ log ⁡ ( 24 / ϵ ) m_1=\frac4m\cdot\log(24/\epsilon) m1=m4log(24/ϵ),则上式 R H S \rm RHS RHS ϵ / 24 \epsilon/24 ϵ/24

      由于至多有 N N Ninfluential顶点,因此期望上没有被 U U U覆盖的influential顶点数至多为 ϵ N / 24 \epsilon N/24 ϵN/24

      根据Markov不等式可知有超过 ϵ N / 4 \epsilon N/4 ϵN/4个这样的influential顶点的概率至多为 1 / 6 1/6 1/6

      • Markov不等式:令 X X X为非负随机变量,且 E ( X ) E(X) E(X)存在,则 ∀ t > 0 \forall t>0 t>0,有
        Pr ⁡ [ X ≥ t ] ≤ E ( X ) t \Pr[X\ge t]\le\frac{E(X)}t Pr[Xt]tE(X)

      • Chebyshev不等式:令 μ = E ( X ) , σ 2 = D ( X ) \mu=E(X),\sigma^2=D(X) μ=E(X),σ2=D(X),有
        Pr ⁡ [ ∣ X − μ ∣ ≥ t ] ≤ σ 2 t 2 \Pr[|X-\mu|\ge t]\le \frac{\sigma^2}{t^2} Pr[Xμt]t2σ2

      • 概率 1 / 6 1/6 1/6的推导过程:
        Pr ⁡ [ N i n f l u e n t i a l > ϵ N 4 ] ≤ 4 E [ N i n f l u e n t i a l ] ϵ N ≤ 4 ⋅ ϵ N 24 ϵ N = 1 6 \Pr[N_{influential}>\frac{\epsilon N}4]\le\frac{4E[N_{influential}]}{\epsilon N}\le\frac{4\cdot\frac{\epsilon N}{24}}{\epsilon N}=\frac{1}{6} Pr[Ninfluential>4ϵN]ϵN4E[Ninfluential]ϵN424ϵN=61

      证毕; ■ \quad\blacksquare

    • 于是现在我们已经可以说明,除至多 ϵ N / 4 \epsilon N/4 ϵN/4infulential顶点外,采样的顶点集 U U U大概率( 5 / 6 5/6 5/6)覆盖了其他所有的点;

      C C C是由 V V V中那些被 U U U覆盖的顶点构成的集合,令 R = V ∖ U R=V\setminus U R=VU,即 R R R中包含的都是没有被 U U U覆盖的顶点;

      • 备注:注意 C C C R R R可能也会包含 U U U中的一些节点,但是 ∣ U ∣ |U| U的数值与顶点总数 ∣ C ∪ R ∣ = N |C\cup R|=N CR=N相比是可以被忽略的;
      • 备注此处所谓覆盖都定义 2.3.2 2.3.2 2.3.2中给出的覆盖定义,而非指属于顶点集 U U U

      根据假设, R R R包含至多 ϵ N / 4 \epsilon N/4 ϵN/4influential顶点,而且很可能包含了所有的非influential顶点;

      • 备注:度数越小的点,即越非influential的顶点,越容易不被 U U U覆盖,越容易在 R R R中出现;

      此时我们固定 U U U的一个分割 ( U 1 , U 2 ) (U_1,U_2) (U1,U2),则 ( U 1 , U 2 ) (U_1,U_2) (U1,U2)可以导出(induce C C C的一个划分 ( C 1 , C 2 ) (C_1,C_2) (C1,C2),导出方法如下:
      C 2 = { v ∈ C : ∃ v ,   s . t .   ( u , v ) ∈ E , u ∈ U 1 } C 1 = C ∖ C 2 C_2=\{v\in C:\exist v,{\rm\space s.t.\space}(u,v)\in E,u\in U_1\}\\ C_1=C\setminus C_2 C2={vC:v, s.t. (u,v)E,uU1}C1=CC2
      即如果 C C C中的某个顶点 v v v存在至少一个邻接点属于 U 1 U_1 U1,那么就将 v v v归入 C 2 C_2 C2,否则归入 C 1 C_1 C1

      然后令 ( R 1 , R 2 ) (R_1,R_2) (R1,R2) R R R的一个满足 U 1 ∩ R ⊆ R 1 U_1\cap R\subseteq R_1 U1RR1 U 2 ∩ R ⊆ R 2 U_2\cap R\subseteq R_2 U2RR2的任意划分;

      我们考察 V V V的划分 ( C 1 ∪ R 1 , C 2 ∪ R 2 ) (C_1\cup R_1,C_2\cup R_2) (C1R1,C2R2)

      • 由于 V V V所有的划分都是 ϵ \epsilon ϵ-bad,因此划分 ( C 1 ∪ R 1 , C 2 ∪ R 2 ) (C_1\cup R_1,C_2\cup R_2) (C1R1,C2R2)也是 ϵ \epsilon ϵ-bad,其中可以找到 ϵ N 2 \epsilon N^2 ϵN2条冲突边,考察这些冲突边的位置:因为 R R R包含至多 ϵ N 4 \frac{\epsilon N}{4} 4ϵNinfluential顶点(这些至多对应 ϵ N 4 ⋅ N \frac{\epsilon N}{4}\cdot N 4ϵNN条边),以及至多 N N N个非influential顶点(这些至多对应 N ⋅ ϵ N 4 N\cdot\frac{\epsilon N}{4} N4ϵN条边),一共至多对应 ϵ N 2 2 \frac{\epsilon N^2}{2} 2ϵN2条边;

        因此 R R R中最多也只能找出 ϵ N 2 2 \frac{\epsilon N^2}{2} 2ϵN2个冲突边,因此不论 R R R作何种划分得到 ( R 1 , R 2 ) (R_1,R_2) (R1,R2),至少都得有另外的 ϵ N 2 2 \frac{\epsilon N^2}{2} 2ϵN2条冲突边由 C 1 C_1 C1 C 2 C_2 C2中的顶点构成;

      • 在下一个引理(引理 2.3.2 2.3.2 2.3.2)中我们可以知道,如果采样另一个(足够大)的样本集 S S S,则 S S S将大概率包含一对节点间的边是冲突边(针对划分 ( C 1 , C 2 ) (C_1,C_2) (C1,C2)),然后这就说明对于 S S S的任意划分 ( S 1 , S 2 ) (S_1,S_2) (S1,S2),在样本 S S S中两个点之间的边是冲突边(针对划分 ( U 1 ∪ S 1 , U 2 ∪ S 2 ) (U_1\cup S_1,U_2\cup S_2) (U1S1,U2S2)),这个事实可以在Figure 1中清晰地看到:

        Figure 1

        到这里,可能已经有点懵了,我们稍作一个回顾,首先 U U U是一个较小的采样顶点集( O ( ( log ⁡ ( 1 / ϵ ) ) / ϵ ) O((\log(1/\epsilon))/\epsilon) O((log(1/ϵ))/ϵ)),下面一个引理即将提到的 S S S是一个很大的采样顶点集( O ( ( log ⁡ ( 1 / ϵ ) ) / ϵ 2 ) O((\log(1/\epsilon))/\epsilon^2) O((log(1/ϵ))/ϵ2));

        上面其实只是陈述了这样一个事实,顶点集 U U U没有覆盖到的顶点(即顶点集 R R R)中的冲突边很少,至少有一半的冲突边是在 C C C中的,那么接下来只要采样一个很大的集合 S S S,说明它的任意分割都大概率存在冲突边;

    • 引理 2.3.2 2.3.2 2.3.2:令 G = ( V , E ) G=(V,E) G=(V,E)是一个距离二分性 ϵ \epsilon ϵ远的图,令 U ⊂ V U\subset V UV覆盖了 G G G中除至多 ϵ N 4 \frac{\epsilon N}{4} 4ϵNinfluential顶点外的所有顶点,令 ( U 1 , U 2 ) (U_1,U_2) (U1,U2) U U U的一个给定的划分,令 S S S是一个独立均匀采样得到的 m 2 = Θ ( ∣ U ∣ / ϵ ) m_2=\Theta(|U|/\epsilon) m2=Θ(U/ϵ)个顶点,则对于 S S S的任意划分 ( S 1 , S 2 ) (S_1,S_2) (S1,S2),至少有 1 − 2 − ∣ U ∣ 6 1-2^{-\frac{|U|}{6}} 126U的概率,存在一条边在 U ∪ S U\cup S US的顶点间是冲突边(针对划分 ( U 1 ∪ S 1 , U 2 ∪ S 2 ) (U_1\cup S_1,U_2\cup S_2) (U1S1,U2S2));

      引理证明

      我们将顶点集 S S S的构成视为 m 2 2 \frac{m_2}{2} 2m2对顶点,根据引理 2.3.1 2.3.1 2.3.1的分析过程可知,对于任意顶点对 ( v , w ) (v,w) (v,w),它们之间在划分 ( C 1 , C 2 ) (C_1,C_2) (C1,C2)下存在冲突边的概率至少为 ϵ 2 \frac{\epsilon}{2} 2ϵ

      • 备注:这个原因是上面提到过 C 1 C_1 C1 C 2 C_2 C2中应当至少存在 ϵ N 2 2 \frac{\epsilon N^2}{2} 2ϵN2条冲突边,这里其实我一直没有搞明白,为什么 ϵ \epsilon ϵ远是指 ϵ N 2 \epsilon N^2 ϵN2条冲突边,难道说是把 ( u , v ) (u,v) (u,v) ( v , u ) (v,u) (v,u)视为两条边?大约可能是这样的,那么一共就是 N 2 N^2 N2条边(算上指向自己的边,图也当成有向图来看,否则这里应该是概率 ϵ 4 \frac{\epsilon}{4} 4ϵ才对,从 ϵ \epsilon ϵ远的定义来看应该是把邻接矩阵中每个元素都视为一条边了);

      则在 m 2 2 \frac{m_2}{2} 2m2对顶点中都不存在冲突边的概率就至多为 ( 1 − ϵ 2 ) m 2 2 (1-\frac{\epsilon}{2})^\frac{m_2}{2} (12ϵ)2m2,代入 m 2 = 16 ∣ U ∣ ϵ m_2=\frac{16|U|}{\epsilon} m2=ϵ16U可得这个概率是小于 2 − ∣ U ∣ / 6 2^{-|U|}/6 2U/6的:
      ( 1 − ϵ 2 ) 8 ∣ U ∣ / ϵ ≈ ϵ → 0 ( 1 e ) 4 ∣ U ∣ ≤ 2 − ∣ U ∣ 6 ⟺ 1 6 ≥ ( 2 e 4 ) ∣ U ∣ (1-\frac{\epsilon}{2})^{8|U|/\epsilon}\overset{\epsilon\rightarrow 0}\approx\left(\frac1e\right)^{4|U|}\le \frac{2^{-|U|}}6\Longleftrightarrow \frac16\ge\left(\frac2{e^4}\right)^{|U|} (12ϵ)8U/ϵϵ0(e1)4U62U61(e42)U
      最后我们说明,若 S S S包含这样一个冲突边的顶点对,则不可能将 S S S划分为 ( S 1 , S 2 ) (S_1,S_2) (S1,S2),使得 ( U 1 ∪ S 1 , U 2 ∪ S 2 ) (U_1\cup S_1,U_2\cup S_2) (U1S1,U2S2)中不存在冲突边:

      1. 假设存在一条边 ( v , w ) (v,w) (v,w)满足 v , w ∈ S v,w\in S v,wS,它在划分 ( C 1 , C 2 ) (C_1,C_2) (C1,C2)下是冲突的;不失一般性地,我们假设 v , w ∈ C 2 v,w\in C_2 v,wC2
      2. 显然在采样时,若将 v , w v,w v,w放到 S 1 S_1 S1 S 2 S_2 S2中就会导致 ( S 1 , S 2 ) (S_1,S_2) (S1,S2)是冲突边;
      3. 然而因为 v , w ∈ C 2 v,w\in C_2 v,wC2,根据 ( C 1 , C 2 ) (C_1,C_2) (C1,C2)的定义,知 v v v存在至少一个邻接点 u ∈ U 1 u\in U_1 uU1,并且 w w w也有至少一个邻接点 u ′ ∈ U 1 u^\prime\in U_1 uU1,因此不管是把 w w w放进 S 1 S_1 S1 v v v放进 S 2 S_2 S2还是 w w w放进 S 2 S_2 S2 v v v放进 S 1 S_1 S1,都是会导致 ( u , v ) (u,v) (u,v)冲突或 ( u ′ , w ) (u^\prime,w) (u,w)冲突,于是引理 2.3.2 2.3.2 2.3.2得证。 ■ \blacksquare
    • 综上各个引理及定义

      结合引理 2.3.2 2.3.2 2.3.2 U U U一共有 2 ∣ U ∣ 2^{|U|} 2U个划分的事实,可知至少有 5 / 6 5/6 5/6的概率,在 U U U的每一个划分 ( U 1 , U 2 ) (U_1,U_2) (U1,U2)以及 S S S的每一个划分 ( S 1 , S 2 ) (S_1,S_2) (S1,S2)上,样本 U ∪ S U\cup S US在划分 ( U 1 ∪ S 1 , U 2 ∪ S 2 ) (U_1\cup S_1,U_2\cup S_2) (U1S1,U2S2)下包含冲突边;也就是说,不管怎么划分样本 U ∪ S U\cup S US,总是会有冲突边;结合引理 2.3.1 2.3.1 2.3.1定理 1 1 1得证。 ■ \blacksquare

  • 算法复杂度分析

    之前提到二分性检验的算法复杂度是 O ( N 2 ) O(N^2) O(N2),即 Θ ( log ⁡ 2 ( 1 / ϵ ) / ϵ 4 ) \Theta(\log^2(1/\epsilon)/\epsilon^4) Θ(log2(1/ϵ)/ϵ4)

    根据证明中的分析过程,该复杂度可以进行一定优化:

    • 算法将样本划分为 U U U S S S两部分( ∣ U ∣ = m 1 = Θ ( log ⁡ ( 1 / ϵ ) / ϵ ) , ∣ S ∣ = m 2 = Θ ( log ⁡ ( 1 / ϵ ) / ϵ 2 ) |U|=m_1=\Theta(\log(1/\epsilon)/\epsilon),|S|=m_2=\Theta(\log(1/\epsilon)/\epsilon^2) U=m1=Θ(log(1/ϵ)/ϵ),S=m2=Θ(log(1/ϵ)/ϵ2));
    • S S S视为由 m 2 2 \frac{m_2}{2} 2m2对顶点构成,则只需要查询在 U × S = { ( u , v ) : u ∈ U , v ∈ S } U\times S=\{(u,v):u\in U,v\in S\} U×S={(u,v):uU,vS}以及 m 2 2 \frac{m_2}{2} 2m2对顶点间查询是否存在边即可;
      • 备注:因为这样的话成功的概率已经够了,并不需要查全;
    • 然后再确认得到的子图是否是二分的,于是算法复杂度可以降为 Θ ( log ⁡ 2 ( 1 / ϵ ) / ϵ 3 ) \Theta(\log^2(1/\epsilon)/\epsilon^3) Θ(log2(1/ϵ)/ϵ3)

2.4 ρ \rho ρ团检验 Testing ρ \rho ρ-Clique

  • 什么是 ρ \rho ρ团检验?

    ρ \rho ρ团检验指检验图 G = ( V , E ) G=(V,E) G=(V,E)中是否存在一个至少包含 ρ N \rho N ρN个顶点的团(clique),其中 0 ≤ ρ ≤ 1 0\le\rho\le1 0ρ1

  • 什么是距离 ρ \rho ρ ϵ \epsilon ϵ远?

    任取 V ′ ⊂ V , ∣ V ∣ = ρ N V^\prime\subset V,|V|=\rho N VV,V=ρN V ′ V^\prime V的导出子图中的边不超过 ϵ N 2 \epsilon N^2 ϵN2

  • 自然的算法:采样 G G G的一个导出子图 S S S,算法接受输入当且仅当 S S S包含一个大小稍小于 ρ ∣ S ∣ \rho|S| ρS的团(比如 ⌊ ρ ∣ S ∣ ⌋ \left\lfloor\rho|S|\right\rfloor ρS);事实上这个算法很容易证明算法接受的概率至少为 2 3 \frac23 32,但是证明它的反面——即至少以 2 3 \frac23 32的概率拒绝输入是很困难的;

    接下来会给出一个不那么自然的算法,可以容易证明算法拒绝的概率至少为 2 3 \frac23 32,但是针对算法接受概率的计算需要一些分析;

  • 我们先证明如下一个事实的正确性:如果图中存在一个大小为 ρ N \rho N ρN的团,那么很可能可以找到顶点集的一个子集,该子集的导出子图中的边数不超过 ϵ N 2 \epsilon N^2 ϵN2,我们称这样一个导出子图为近似团approximate clique);

  • A Oracle Aided Procedure

    C C C是图 G = ( V , E ) G=(V,E) G=(V,E)中一个大小为 ρ N \rho N ρN的团;

    假设我们有一个预言机器(pracle),输入 v ∈ V v\in V vV,输出为 v v v的邻接点数量;

    利用这些信息我们希望能够构造另一个大小为 ρ N \rho N ρN的团 C ′ C^\prime C

    d C ( v ) d_C(v) dC(v)表示 v ∈ V v\in V vV C C C中的邻接点数量,根据团的定义,可知 ∀ v ∈ C , d C ( v ) = ρ N − 1 \forall v\in C,d_C(v)=\rho N-1 vC,dC(v)=ρN1,当然在 C C C之外可能也有一些顶点能够满足这个性质;

    定义 T ( C ) = { v ∈ V : d C ( v ) ≥ ρ N − 1 } T(C)=\{v\in V:d_{C}(v)\ge\rho N-1\} T(C)={vV:dC(v)ρN1},然后根据 T ( C ) T(C) T(C)导出子图中,各个顶点度数(degree)对集合 T ( C ) T(C) T(C)中的顶点进行降序排列;

    C ′ C^\prime C T ( C ) T(C) T(C)中前 ρ N \rho N ρN个顶点的导出子图,那么我们断言 C ′ C^\prime C是一个团

    这是为什么呢

    根据 T ( C ) T(C) T(C)的定义,每个 C C C中的顶点都与 T ( C ) T(C) T(C)中的顶点是有邻接关系的;(除了顶点自身,因为 C C C是一个团

    因此每个 C C C中的顶点在 T ( C ) T(C) T(C)的导出子图中的度数为 ∣ T ( C ) ∣ − 1 |T(C)|-1 T(C)1;(因为显然 C ⊆ T ( C ) C\subseteq T(C) CT(C) T ( C ) T(C) T(C)中邻接点要排除顶点自身

    又因为 ∣ C ∣ = ∣ C ′ ∣ = ρ N |C|=|C^\prime|=\rho N C=C=ρN,则每一个 C ′ C^\prime C中的顶点的度数也必须有是 ∣ T ( C ) ∣ − 1 |T(C)|-1 T(C)1;(因为 C C C中的顶点对于集合 C ′ C^\prime C而言都是候选点,且两者的大小相同都是 ρ N \rho N ρN

    换言之, C ′ C^\prime C中每个顶点都和 T ( C ) T(C) T(C)中的每个顶点是邻接的(除自身),于是 C ′ C^\prime C中每个顶点都和 C ′ C^\prime C中其他顶点邻接,于是 C ′ C^\prime C是一个团;

    • 备注Puzzling

      我思考了很久,感觉这段在表述上存在一些问题,但是其实换个角度看这件事情是很显然的,因为从 T ( C ) T(C) T(C)中任取一个不在 C C C中的顶点 v v v,那么根据定义它至少跟 C C C中的 ∣ C ∣ − 1 |C|-1 C1个顶点是邻接的,那么把这 ∣ C ∣ − 1 |C|-1 C1个顶点和 v v v合并在一起就是一个 ρ N \rho N ρN大小的团;

      我没有搞明白为什么这里写得这么复杂,而且似乎也不太对劲,一来这无法说明 C ′ ≠ C C^\prime\neq C C=C,因为可能就是 C C C中的顶点排在前 ρ N \rho N ρN个;二来凭什么 C ′ C^\prime C中的顶点跟 T ( C ) T(C) T(C)中的所有顶点都是邻接的?我是真的搞不明白;

      但是根据下文 T ( U ′ ) T(U^\prime) T(U)的表示,这里很可能 T ( C ) T(C) T(C)的定义是跟 C C C中顶点都邻接的顶点集合,这样倒是能够说得通了,但是这又太苛刻了,万一根本没有这样的顶点呢?

    事实上我们可能找不到这样的预言机器,但是我们可以在 C C C中采样一个充分大的集合 U ′ U^\prime U(比如大小为 Θ ( ρ 2 ⋅ log ⁡ ( 1 / ϵ ) / ϵ 2 ) \Theta(\rho^2\cdot\log(1/\epsilon)/\epsilon^2) Θ(ρ2log(1/ϵ)/ϵ2));令 T ( U ′ ) T(U^\prime) T(U)是与 U ′ U^\prime U中顶点都邻接的顶点集合,那么可以认为大概率地,每个 T ( U ′ ) T(U^\prime) T(U)中的顶点都与 C C C中所有顶点是邻接的;与上文类似,仍然可以对 T ( U ′ ) T(U^\prime) T(U)中的顶点进行排序,并取前 ρ N \rho N ρN个顶点构成的集合 F ( T ( U ′ ) ) F(T(U^\prime)) F(T(U)),可以预见到的是,顶点集 F ( T ( U ′ ) ) F(T(U^\prime)) F(T(U))很可能是一个团;

    • 备注:到这里为止提到过很多次大概率,很可能的概念,这里作者给出了说明,所谓大概率就是all but a fraction of ϵ \epsilon ϵ
  • 近似团寻找算法:承接上面 C C C的定义,是一个大小为 ρ N \rho N ρN的团;

    从原图 V V V中均匀采样顶点集 U U U,考察 U U U所有大小为 ρ 2 ∣ U ∣ \frac\rho2|U| 2ρU的子集 U ′ U^\prime U

    由于大概率 ∣ U ∩ C ∣ ≥ ρ 2 ∣ U ∣ |U\cap C|\ge\frac\rho2|U| UC2ρU,因此应该可以期望 C C C中可以会包含这样的某个子集 U ′ U^\prime U

    • 备注:这里因为 ∣ C ∣ = ρ N |C|=\rho N C=ρN,然后 U U U是从大小为 N N N的顶点集中采样得到的,所以从期望上来看 ∣ U ∩ C ∣ |U\cap C| UC应该约为 ρ ∣ U ∣ \rho |U| ρ