InformationTheory.Shannon.ParallelGaussian.KKT
Water-filling KKT level and optimality #
The KKT water level and the optimality of the water-filling allocation for the parallel Gaussian channel (Cover–Thomas).
Main statements #
exists_waterFillingKKT_of_pos— forP > 0and at least one coordinate, a water levelνexists withIsWaterFillingKKT P N ν(the allocation uses up the budget).isWaterFillingOptimal_of_kkt— given a KKT water level, the water-filling allocation maximizes the constrained per-coordinate log-sum, i.e.IsWaterFillingOptimal P N ν.
Implementation notes #
The existence of the KKT water level is the intermediate value theorem applied to the
continuous, monotone ν ↦ ∑_i max(0, ν - N_i). The optimality proof uses the common KKT
multiplier λ = 1/(2ν): the per-coordinate tangent upper bound waterFillingCost_tangent_le
(from log u ≤ u - 1) summed over coordinates, with complementary slackness and λ ≥ 0
killing the linear remainder.
Continuity and monotonicity of the water-filling sum #
InformationTheory.Shannon.ParallelGaussian.waterFillingPower_continuous_in_ν
sourcewaterFillingPower ν N i is continuous in ν.
Used by
InformationTheory.Shannon.ParallelGaussian.waterFillingPower_sum_continuous
sourceThe water-filling total sum ∑_i max(0, ν - N_i) is continuous in ν.
Used by
InformationTheory.Shannon.ParallelGaussian.waterFillingPower_sum_eq_zero_of_le_min
sourceAt ν ≤ min_i N_i, every coordinate is inactive, so the sum is 0.
Used by
InformationTheory.Shannon.ParallelGaussian.waterFillingPower_sum_ge_of_all_active
sourceFor ν ≥ Nmax + bound, every coordinate is active and contributes at least
ν - Nmax to the sum, giving a sum ≥ n · (ν - Nmax).
Used by
Existence of the KKT water level #
InformationTheory.Shannon.ParallelGaussian.exists_waterFillingKKT_of_pos
sourceExistence of a KKT water level. For positive total power P > 0 and at least one
coordinate, there is a water level ν whose water-filling allocation exactly uses up the
power, ∑_i max(0, ν - N_i) = P.
Used by
Water-filling optimality #
InformationTheory.Shannon.ParallelGaussian.noise_pos
sourceUsed by
InformationTheory.Shannon.ParallelGaussian.waterFillingKKT_level_pos
sourceThe KKT water level is positive: 0 < ν. If ν ≤ N_i for every i then every
coordinate is inactive and the budget sum is 0 = P, contradicting 0 < P.
Used by
InformationTheory.Shannon.ParallelGaussian.waterFillingCost_tangent_le
sourcePer-coordinate tangent (KKT-stationarity) upper bound. For the common KKT multiplier
λ = 1/(2ν), the per-coordinate cost g_i(t) = (1/2) log(1 + t/N_i) satisfies
g_i(P'_i) ≤ g_i(P*_i) + λ·(P'_i - P*_i) where P*_i = waterFillingPower ν N i.
Used by
InformationTheory.Shannon.ParallelGaussian.isWaterFillingOptimal_of_kkt
sourceWater-filling optimality. Given a KKT water level ν
(h_kkt : ∑ max(0, ν - N_i) = P), the water-filling allocation P_i^* = max(0, ν - N_i)
maximizes the per-coordinate sum ∑ (1/2) log(1 + P_i / N_i) over the feasible set
{P' | ∀ i, 0 ≤ P'_i ∧ ∑_i P'_i ≤ P}, i.e. IsWaterFillingOptimal P N ν.
@audit:ok