Bounded-error randomized approximation of the clique number
Lax323828.RandomizedApproximation · concepts/Lax323828/RandomizedApproximation.lean · lax-323828
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 Lax323828.Approximation |
| 2 | import Lax323828.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 Lax323828.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 Lax323828.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