Documentation

Complexity.Computability.QueryComplexity.Relations

Relations between block sensitivity, certificate and decision tree complexity #

Block sensitivity bounds certificate and decision tree complexity polynomially, so that the three are polynomially related [BdW02]. For a value b, the one-sided measures s_b(f), bs_b(f) and C_b(f) are the largest sensitivity, block sensitivity and certificate complexity of f at an input of value b.

With D(¬f) = D(f) this turns D(f) ≤ bs₀(f) C₁(f) into its dual D(f) ≤ bs₁(f) C₀(f) (DecisionTree.complexity_le_blockSensitivityFor_not_mul_certificateComplexityFor), hence D(f) ≤ min(C₀(f), C₁(f)) bs(f), and with the one-sided Nisan bound it gives D(f) ≤ bs_{¬b}(f) s_{¬b}(f) bs_b(f), in particular D(f) ≤ bs₀(f) bs₁(f) s(f). With C(f) ≤ s(f) bs(f) ≤ bs(f)² it gives D(f) ≤ s(f) bs(f)² ≤ bs(f)³ (DecisionTree.complexity_le_sensitivity_mul_blockSensitivity_sq, DecisionTree.complexity_le_blockSensitivity_pow_three; [BdW02], Corollary 1).

Main results #

References #

theorem Cslib.BitString.flipBlock_filter_ne {n : ℕ} (x y : BitString n) :
flipBlock {i : Fin n | y i ≠ x i} x = y

Flipping the coordinates on which y differs from x turns x into y.

C(f) ≤ s(f) bs(f) #

A sensitive block contains a minimal sensitive block.

A sensitive block is nonempty.

A minimal sensitive block at x has at most s_{¬f(x)}(f) coordinates: they are all sensitive at x with the block flipped, where f has the other value.

Restricting by answers on a sensitive block #

theorem Cslib.QueryComplexity.blockSensitivityAt_comp_piecewise_add_one_le {n : ℕ} {f : BooleanFunction n} {S B₀ : Finset (Fin n)} (a z : BitString n) (hB₀S : B₀ ⊆ S) (hB₀ : IsSensitiveBlock f (S.piecewise a z) B₀) :
blockSensitivityAt (fun (y : BitString n) => f (S.piecewise a y)) z + 1 ≤ blockSensitivityAt f (S.piecewise a z)

Restricting the coordinates in S lowers block sensitivity at an input whenever the filled input has a sensitive block contained in S. This block can be added to every sensitive family of the restricted function after removing the fixed coordinates from its blocks.

Decision tree complexity from block sensitivity and certificates: D(f) ≤ bs₀(f) C₁(f), a one-sided form of the bound D(f) ≤ C₁(f) bs(f) of Beals, Buhrman, Cleve, Mosca and de Wolf [BBC+01].

Decision tree complexity from one-sided measures: D(f) ≤ bs_{¬b}(f) C_b(f) for either value b. For b = 1 this is D(f) ≤ bs₀(f) C₁(f), a one-sided form of the bound of Beals, Buhrman, Cleve, Mosca and de Wolf [BBC+01]; negating the function gives the dual D(f) ≤ bs₁(f) C₀(f).

D(f) ≤ bs_{¬b}(f) s_{¬b}(f) bs_b(f), from D(f) ≤ bs_{¬b}(f) C_b(f) and the one-sided Nisan bound.

D(f) ≤ s(f) bs(f)², from D(f) ≤ C(f) bs(f) and Nisan's C(f) ≤ s(f) bs(f).

Decision tree complexity is at most the cube of block sensitivity: D(f) ≤ bs(f)³ [BBC+01].