Bounded-error randomized approximation of the clique number
Lax253009.RandomizedApproximation · concepts/Lax253009/RandomizedApproximation.lean · lax-253009
No public endorsements yet.
Loading review…
Sign in with ORCIDNatural Language Statement
Definition
A randomized polynomial-time approximation has a polynomial-length tape of independent fair bits and a deterministic polynomial-time evaluator in the registered stack-machine model. On every nonempty graph it returns an integer satisfying both approximation inequalities with probability at least . Its answer on the remaining tapes is unrestricted.
The input to the evaluator is the registered pairing of the graph encoding and the random tape. Both the machine and the polynomial are uniform and chosen before the input graph. The tape has polynomial length in the graph encoding, so the total runtime is polynomial in that encoding. Integer outputs are binary words on the output stack and need not have bounded size.
Concept map
Lean source view on GitHub
| 1 | import Lax253009.Approximation |
| 2 | import Lax253009.FiniteProbability |
| 3 | import Lax434930.Certificates |
| 4 | |
| 5 | /-! |
| 6 | --- |
| 7 | title: Bounded-error randomized approximation of the clique number |
| 8 | type: definition |
| 9 | --- |
| 10 | A randomized polynomial-time approximation has a polynomial-length tape of |
| 11 | independent fair bits and a deterministic polynomial-time evaluator in the |
| 12 | registered stack-machine model. On every nonempty graph it returns an |
| 13 | integer satisfying both approximation inequalities with probability at least |
| 14 | . Its answer on the remaining tapes is unrestricted. |
| 15 | |
| 16 | The input to the evaluator is the registered pairing of the graph encoding |
| 17 | and the random tape. Both the machine and the polynomial are uniform and |
| 18 | chosen before the input graph. The tape has polynomial length in the graph |
| 19 | encoding, so the total runtime is polynomial in that encoding. Integer |
| 20 | outputs are binary words on the output stack and need not have bounded size. |
| 21 | -/ |
| 22 | |
| 23 | namespace Lax253009.RandomizedApproximation |
| 24 | |
| 25 | open Graphs FiniteProbability Lax434930.PolynomialTime |
| 26 | |
| 27 | def Good {n : ℕ} (ε : ℝ) (G : Graph n) (a : ℕ) : Prop := |
| 28 | a ≤ G.cliqueNumber ∧ |
| 29 | (G.cliqueNumber : ℝ) ≤ Real.rpow (n : ℝ) (1 - ε) * (a : ℝ) |
| 30 | |
| 31 | def Approximable (ε : ℝ) : Prop := |
| 32 | ∃ (coins : Polynomial ℕ) (estimate : Word → ℕ), |
| 33 | Nonempty (Turing.TM2ComputableInPolyTime id Computability.encodeNat estimate) ∧ |
| 34 | ∀ (n : ℕ), 0 < n → ∀ G : Graph n, |
| 35 | (2 / 3 : ℝ) ≤ probability (fun r : Fin (coins.eval G.encode.length) → Bool ↦ |
| 36 | Good ε G (estimate (Lax434930.Certificates.pair G.encode (List.ofFn r)))) |
| 37 | |
| 38 | end Lax253009.RandomizedApproximation |
| 39 |
From Mathlib
none
Discussion
Ask a question or add context. Endorsements and structured flags are kept in the review panel above.
0 comments