Query complexity of monotone functions #
For a monotone Boolean function, certificate complexity, block sensitivity and sensitivity
coincide: C(f) = bs(f) = s(f) [Nis91]. Let f(x) = 1 and let y ≤ x be an input of value
1 of least weight below x. Clearing any true bit of y gives a lighter input below x, which
has value 0, so every true bit of y is sensitive at y. Conversely every input agreeing with
x on the true bits of y lies above y, so has value 1. So the true bits of y certify x,
and C(f, x) ≤ s(f, y) ≤ s₁(f). Dually C(f, x) ≤ s₀(f) when f(x) = 0, using an input of value
0 of largest weight above x. With D(f) ≤ C₀(f) C₁(f) this gives D(f) ≤ s₀(f) s₁(f) ≤ s(f)²
for monotone f.
Main results #
Cslib.QueryComplexity.certificateComplexityFor_le_sensitivityFor_of_monotone:C_b(f) ≤ s_b(f)for monotonef.Cslib.QueryComplexity.certificateComplexity_eq_sensitivity_of_monotone,Cslib.QueryComplexity.blockSensitivity_eq_sensitivity_of_monotone:C(f) = s(f)andbs(f) = s(f)for monotonef.Cslib.DecisionTree.complexity_le_sensitivityFor_mul_sensitivityFor_of_monotone,Cslib.DecisionTree.complexity_le_sensitivity_sq_of_monotone:D(f) ≤ s₀(f) s₁(f) ≤ s(f)²for monotonef.
References #
For a monotone function, C(f, x) ≤ s_{f(x)}(f).
For a monotone function, C_b(f) ≤ s_b(f).
Certificate complexity of monotone functions [Nis91]: C(f) = s(f).
Block sensitivity of monotone functions [Nis91]: bs(f) = s(f).
For a monotone function, D(f) ≤ s₀(f) s₁(f).
For a monotone function, D(f) ≤ s(f)².