Theorem 3.1 — the LP-rounding-and-splitting algorithm is a 3k-approximation, k = ⌊3 log m / log log m⌋, for complement-free bidders
ProvedComplementFreeCA.CFRounding.cf_rounding_approximationThere is such that the following holds for every number of items and every number of bidders . Let be normalized, monotone, complement-free valuations, let be an optimal solution of the LP relaxation with value , and let . Write for the welfare of any allocation .
- Step (i) succeeds. If , then with probability greater than the randomized-rounding preallocation satisfies both: every item appears in at most of the , and .
- The guarantee. For every preallocation with these two properties, every best layer of step (iii), and every admissible bidder of step (iv), the algorithm's output is an allocation, and its welfare satisfies
- The small case. If , then giving all of to a bidder maximizing has welfare for every allocation .
This is Theorem 3.1 of the paper: for complement-free bidders the algorithm produces an allocation that is an -approximation to the optimal one.
Formalization Note The paper writes ; its proof yields the explicit ratio with (natural logarithm), for , and is existential because Lemma 3.1 holds for sufficiently large . The paper's w.l.o.g. scaling with the case split / is replaced by the scale-free split / , written as for all . Step (i) is a randomized search; part 1 is the success probability of one rounding, and the probability is the finite-sum rounding law of the LP definition file. The choices of in step (iii) and of the bidder in step (iv) are left open by the paper and are universally quantified. Running time is not modeled.
import Mathlib import Definitions.Def_ComplementFreeCA_CFRounding_Auction import Definitions.Def_ComplementFreeCA_CFRounding_LP import Definitions.Def_ComplementFreeCA_CFRounding_Algorithm
namespace ComplementFreeCA.CFRounding
theorem cf_rounding_approximation :
∃ m₀ : ℕ, ∀ m : ℕ, m₀ ≤ m → ∀ (n : ℕ) (v : Fin n → Finset (Fin m) → ℝ),
(∀ i, IsNormalized (v i)) → (∀ i, IsMonotone (v i)) → (∀ i, IsSubadditive (v i)) →
∀ x : Fin n → Finset (Fin m) → ℝ, IsOptimalLP v x →
-- (a) step (i) succeeds with probability greater than 1/6
((∀ i, 3 * v i Finset.univ < lpValue v x) →
1 / 6 < roundProb x
(fun σ => (∀ j, count σ j ≤ kOf m) ∧ lpValue v x / 3 ≤ welfare v σ)) ∧
-- (b) from any such preallocation, every admissible run of steps (ii)–(iv) outputs
-- an allocation whose welfare is at least OPT / (3k)
(∀ σ : Fin n → Finset (Fin m), (∀ j, count σ j ≤ kOf m) →
lpValue v x / 3 ≤ welfare v σ →
∀ r : ℕ, IsBestLayer v σ (kOf m) r →
∀ i₀ : Fin n, IsStepFourChoice v (fun i => layer σ i r) i₀ →
IsAllocation (algOutput v σ r i₀) ∧
∀ O : Fin n → Finset (Fin m), IsAllocation O →
welfare v O / (3 * kOf m) ≤ welfare v (algOutput v σ r i₀)) ∧
-- (c) the small case: giving all items to a bidder maximizing vᵢ(M) is a
-- 3-approximation
(∀ i₀ : Fin n, (∀ i, v i Finset.univ ≤ v i₀ Finset.univ) →
lpValue v x ≤ 3 * v i₀ Finset.univ →
∀ O : Fin n → Finset (Fin m), IsAllocation O → welfare v O / 3 ≤ v i₀ Finset.univ) := by sorry
end ComplementFreeCA.CFRounding
Confirmed by the mission captain (proposal self-audit).
Confirmed by the moderator at approval.