Documentation

Atlas.AnAlgorithmistsToolkit.code.RandomWalks

noncomputable def RandomWalks.stationaryDist {V : Type u_1} [Fintype V] (G : SimpleGraph V) [DecidableRel G.Adj] (v : V) :
Instances For
    theorem RandomWalks.stationaryDist_sum_eq_one {V : Type u_1} [Fintype V] (G : SimpleGraph V) [DecidableRel G.Adj] (hpos : 0 < ∑ u : V, ↑(G.degree u)) :
    ∑ v : V, stationaryDist G v = 1
    noncomputable def RandomWalks.walkMatrix {V : Type u_1} [Fintype V] (G : SimpleGraph V) [DecidableRel G.Adj] :
    Instances For
      noncomputable def RandomWalks.stationaryVec {V : Type u_1} [Fintype V] (G : SimpleGraph V) [DecidableRel G.Adj] :
      V → ℝ
      Instances For
        theorem RandomWalks.adjMatrix_row_sum {V : Type u_1} [Fintype V] (G : SimpleGraph V) [DecidableRel G.Adj] (k : V) :
        ∑ i : V, SimpleGraph.adjMatrix ℝ G k i = ↑(G.degree k)
        theorem RandomWalks.degree_pos_of_adj {V : Type u_1} [Fintype V] (G : SimpleGraph V) [DecidableRel G.Adj] {k x : V} (h : G.Adj k x) :
        0 < G.degree x
        theorem RandomWalks.walkMatrix_stationaryVec_term {V : Type u_1} [Fintype V] (G : SimpleGraph V) [DecidableRel G.Adj] (k x : V) (S : ℝ) :
        SimpleGraph.adjMatrix ℝ G k x / ↑(G.degree x) * (↑(G.degree x) / S) = SimpleGraph.adjMatrix ℝ G k x / S
        theorem RandomWalks.eigenspace_conj_eq {R : Type u_1} {M : Type u_2} [CommRing R] [AddCommGroup M] [Module R M] (e : M ≃ₗ[R] M) (f : Module.End R M) (μ : R) :
        (e.conj f).eigenspace μ = Submodule.map (↑e) (f.eigenspace μ)
        theorem RandomWalks.hasEigenvalue_conj_iff {R : Type u_1} {M : Type u_2} [CommRing R] [AddCommGroup M] [Module R M] (e : M ≃ₗ[R] M) (f : Module.End R M) (μ : R) :
        noncomputable def RandomWalks.rwMatrixGen {V : Type u_3} [Fintype V] [DecidableEq V] (G : SimpleGraph V) [DecidableRel G.Adj] :
        Instances For
          noncomputable def RandomWalks.normWalkMatrix {V : Type u_3} [Fintype V] [DecidableEq V] (G : SimpleGraph V) [DecidableRel G.Adj] :
          Instances For
            noncomputable def RandomWalks.lazyRwMatrixGen {V : Type u_1} [Fintype V] [DecidableEq V] (G : SimpleGraph V) [DecidableRel G.Adj] :
            Instances For
              noncomputable def RandomWalks.normLazyWalkMatrix {V : Type u_1} [Fintype V] [DecidableEq V] (G : SimpleGraph V) [DecidableRel G.Adj] :
              Instances For
                noncomputable def RandomWalks.lazyRwMatrix {V : Type u_1} [DecidableEq V] (G : SimpleGraph V) [DecidableRel G.Adj] (d : ℕ) :
                Instances For
                  noncomputable def RandomWalks.l2Norm {V : Type u_1} [Fintype V] (f : V → ℝ) :
                  Instances For
                    noncomputable def RandomWalks.l2Dist {V : Type u_1} [Fintype V] (p q : V → ℝ) :
                    Instances For
                      theorem RandomWalks.lazy_rw_convergence_bound {V : Type u_1} [Fintype V] [DecidableEq V] [Nonempty V] (G : SimpleGraph V) [DecidableRel G.Adj] (p₀ : V → ℝ) (μ₂' : ℝ) (hμ₂'_nn : 0 ≤ μ₂') (hμ₂'_lt : μ₂' < 1) (t : ℕ) :
                      (l2Dist ((lazyRwMatrixGen G ^ t).mulVec p₀) fun (v : V) => ↑(G.degree v) / ∑ u : V, ↑(G.degree u)) ≤ μ₂' ^ t * √((Finset.univ.sup' ⋯ fun (v : V) => ↑(G.degree v)) / Finset.univ.inf' ⋯ fun (v : V) => ↑(G.degree v))
                      theorem RandomWalks.lazy_rw_pointwise_convergence {V : Type u_1} [Fintype V] [DecidableEq V] [Nonempty V] (G : SimpleGraph V) [DecidableRel G.Adj] (hpos : ∀ (v : V), 0 < G.degree v) (μ₂' : ℝ) (hμ₂'_nn : 0 ≤ μ₂') (hμ₂'_lt : μ₂' < 1) (h_spectral_bound : ∀ (i : V), ⋯.eigenvalues i ≤ μ₂' ∨ ⋯.eigenvalues i = 1) (p₀ : V → ℝ) (hp_sum : ∑ v : V, p₀ v = 1) (hp_nn : ∀ (v : V), 0 ≤ p₀ v) (t : ℕ) (v : V) :
                      |(lazyRwMatrixGen G ^ t).mulVec p₀ v - ↑(G.degree v) / ∑ u : V, ↑(G.degree u)| ≤ μ₂' ^ t * √(↑(G.degree v) / Finset.univ.inf' ⋯ fun (y : V) => ↑(G.degree y))
                      theorem RandomWalks.sqrtDeg_mul_sqrtDeg_inv {V : Type u_1} [Fintype V] [DecidableEq V] (G : SimpleGraph V) [DecidableRel G.Adj] (hpos : ∀ (v : V), 0 < G.degree v) :
                      ((Matrix.diagonal fun (v : V) => √↑(G.degree v)) * Matrix.diagonal fun (v : V) => (√↑(G.degree v))⁻¹) = 1
                      theorem RandomWalks.sqrtDeg_inv_mul_sqrtDeg {V : Type u_1} [Fintype V] [DecidableEq V] (G : SimpleGraph V) [DecidableRel G.Adj] (hpos : ∀ (v : V), 0 < G.degree v) :
                      ((Matrix.diagonal fun (v : V) => (√↑(G.degree v))⁻¹) * Matrix.diagonal fun (v : V) => √↑(G.degree v)) = 1
                      noncomputable def RandomWalks.sqrtDegEquiv {V : Type u_1} [Fintype V] [DecidableEq V] (G : SimpleGraph V) [DecidableRel G.Adj] (hpos : ∀ (v : V), 0 < G.degree v) :
                      (V → ℝ) ≃ₗ[ℝ] V → ℝ
                      Instances For
                        theorem RandomWalks.rwMatrixGen_eq_sqrt_mul_normWalkMatrix_mul_sqrt_inv {V : Type u_1} [Fintype V] [DecidableEq V] (G : SimpleGraph V) [DecidableRel G.Adj] (hpos : ∀ (v : V), 0 < G.degree v) :
                        rwMatrixGen G = (Matrix.diagonal fun (v : V) => √↑(G.degree v)) * normWalkMatrix G * Matrix.diagonal fun (v : V) => (√↑(G.degree v))⁻¹
                        theorem RandomWalks.expander_matching_contraction_ratio {L : Type u_1} {R : Type u_2} [Fintype L] [Fintype R] [DecidableEq L] [DecidableEq R] (G : SimpleGraph (L ⊕ R)) [DecidableRel G.Adj] {d : ℕ} {α β : ℝ} (hbip : G.IsBipartiteOn) (hreg : G.IsRegularOfDegree d) (hexp : G.IsBipartiteExpander α β) (hd : 0 < ↑d) (Si : Finset L) (hSi : ↑Si.card ≤ α * ↑(Fintype.card L)) (hSi_pos : 0 < ↑Si.card) (Si1_card : ℝ) (hSi1 : Si1_card ≤ ↑Si.card - ↑(G.uniqueNeighbors Si).card / ↑d) :
                        Si1_card / ↑Si.card ≤ 2 * (1 - β / ↑d)
                        theorem SimpleGraph.rw_convergence_conductance_bound {V : Type u_1} [Fintype V] [DecidableEq V] (G : SimpleGraph V) [DecidableRel G.Adj] (hconn : G.Connected) (S : Finset V) (t : ℕ) (p₀ : V → ℝ) (m : ℕ) (hm : m = G.edgeFinset.card) (x : ℝ) (hx : x = ∑ w ∈ S, ↑(G.degree w)) (φ : ℝ) (hφ : φ = ↑(G.setConductance S)) :
                        |∑ w ∈ S, ((RandomWalks.lazyRwMatrixGen G ^ t).mulVec p₀ w - RandomWalks.stationaryDist G w)| ≤ min √x √(2 * ↑m - x) * (1 - φ ^ 2 / 2) ^ t