Documentation

Atlas.AnAlgorithmistsToolkit.code.PageRank

noncomputable def PageRank.pageRankVec {n : } (α : ) (W : Matrix (Fin n) (Fin n) ) (s : Fin n) :
Fin n
Instances For
    theorem PageRank.pageRankVec_fixed_point {n : } (α : ) (W : Matrix (Fin n) (Fin n) ) (s : Fin n) (hW : IsUnit (1 - (1 - α) W)) :
    pageRankVec α W s = α s + (1 - α) W.mulVec (pageRankVec α W s)
    theorem PageRank.pageRankVec_unique {n : } (α : ) (W : Matrix (Fin n) (Fin n) ) (s : Fin n) (hW : IsUnit (1 - (1 - α) W)) (x : Fin n) (hx : x = α s + (1 - α) W.mulVec x) :
    x = pageRankVec α W s
    theorem PageRank.pageRankVec_comm_W {n : } (α : ) (W : Matrix (Fin n) (Fin n) ) (s : Fin n) (hcomm : Commute W (1 - (1 - α) W)⁻¹) :
    pageRankVec α W (W.mulVec s) = W.mulVec (pageRankVec α W s)
    theorem PageRank.pageRankVec_comm_W_of_isUnit {n : } (α : ) (W : Matrix (Fin n) (Fin n) ) (s : Fin n) (hW : IsUnit (1 - (1 - α) W)) :
    pageRankVec α W (W.mulVec s) = W.mulVec (pageRankVec α W s)
    theorem PageRank.pageRankVec_eq2 {n : } (α : ) (W : Matrix (Fin n) (Fin n) ) (s : Fin n) (hW : IsUnit (1 - (1 - α) W)) (hcomm : Commute W (1 - (1 - α) W)⁻¹) :
    pageRankVec α W s = α s + (1 - α) pageRankVec α W (W.mulVec s)
    theorem PageRank.pageRankVec_add {n : } (α : ) (W : Matrix (Fin n) (Fin n) ) (s₁ s₂ : Fin n) :
    pageRankVec α W (s₁ + s₂) = pageRankVec α W s₁ + pageRankVec α W s₂
    theorem PageRank.pageRankVec_smul {n : } (α : ) (W : Matrix (Fin n) (Fin n) ) (c : ) (s : Fin n) :
    pageRankVec α W (c s) = c pageRankVec α W s
    theorem PageRank.pageRankVec_linear {n : } (α : ) (W : Matrix (Fin n) (Fin n) ) (c d : ) (v w : Fin n) :
    pageRankVec α W (c v + d w) = c pageRankVec α W v + d pageRankVec α W w
    theorem PageRank.pageRankVec_sub {n : } (α : ) (W : Matrix (Fin n) (Fin n) ) (s₁ s₂ : Fin n) :
    pageRankVec α W (s₁ - s₂) = pageRankVec α W s₁ - pageRankVec α W s₂
    theorem PageRank.pageRankVec_invariant_preserved {n : } (α : ) (W : Matrix (Fin n) (Fin n) ) (s p r : Fin n) (u : Fin n) (hW : IsUnit (1 - (1 - α) W)) (hcomm : Commute W (1 - (1 - α) W)⁻¹) (hinv : p = pageRankVec α W (s - r)) :
    have χ_u := Pi.single u 1; have p' := p + (α * r u) χ_u; have r' := r - r u χ_u + ((1 - α) * r u) W.mulVec χ_u; p' = pageRankVec α W (s - r')
    noncomputable def PageRank.l1norm {n : } (f : Fin n) :
    Instances For
      theorem PageRank.l1norm_add_le {n : } (f g : Fin n) :
      theorem PageRank.l1norm_smul {n : } (c : ) (f : Fin n) :
      l1norm (c f) = |c| * l1norm f
      theorem PageRank.sum_mul_pi_single {n : } (W : Matrix (Fin n) (Fin n) ) (i u : Fin n) :
      x : Fin n, W i x * Pi.single u 1 x = W i u
      theorem PageRank.l1norm_sub_single {n : } (r : Fin n) (u : Fin n) (hr : ∀ (i : Fin n), 0 r i) :
      have χ_u := Pi.single u 1; l1norm (r - r u χ_u) = l1norm r - r u
      theorem PageRank.l1norm_mulVec_single_le {n : } (W : Matrix (Fin n) (Fin n) ) (u : Fin n) (hW : W Matrix.colStochastic (Fin n)) :
      have χ_u := Pi.single u 1; l1norm (W.mulVec χ_u) 1
      theorem PageRank.residual_decrease_bound {n : } (α : ) (W : Matrix (Fin n) (Fin n) ) (r : Fin n) (u : Fin n) ( : 0 < α) (hα1 : α < 1) (hW : W Matrix.colStochastic (Fin n)) (hr : ∀ (i : Fin n), 0 r i) :
      have χ_u := Pi.single u 1; have r' := r - r u χ_u + ((1 - α) * r u) W.mulVec χ_u; l1norm r' l1norm r - α * r u
      noncomputable def PageRank.vol {n : } (d : Fin n) (S : Finset (Fin n)) :
      Instances For
        noncomputable def PageRank.vecSupp {n : } (f : Fin n) :
        Instances For
          theorem PageRank.telescope_decrease {T : } (a : Fin (T + 1)) (b : Fin T) (h : ∀ (i : Fin T), a i + 1, a i, - b i) :
          a T, a 0, - i : Fin T, b i
          theorem PageRank.pageRank_iteration_bound {n : } (α ε : ) ( : 0 < α) ( : 0 < ε) (T : ) (d : Fin n) (hd : ∀ (v : Fin n), 1 d v) (residual_norms : Fin (T + 1)) (h_nonneg : ∀ (i : Fin (T + 1)), 0 residual_norms i) (vertices : Fin TFin n) (residual_vals : Fin T) (h_select : ∀ (i : Fin T), ε * d (vertices i) residual_vals i) (h_decrease : ∀ (i : Fin T), residual_norms i + 1, residual_norms i, - α * residual_vals i) :
          T * (α * ε) residual_norms 0,
          theorem PageRank.pageRank_degree_sum_bound {n : } (α ε : ) ( : 0 < α) (T : ) (d : Fin n) (residual_norms : Fin (T + 1)) (h_nonneg : ∀ (i : Fin (T + 1)), 0 residual_norms i) (vertices : Fin TFin n) (residual_vals : Fin T) (h_select : ∀ (i : Fin T), ε * d (vertices i) residual_vals i) (h_decrease : ∀ (i : Fin T), residual_norms i + 1, residual_norms i, - α * residual_vals i) :
          α * ε * i : Fin T, d (vertices i) residual_norms 0,
          theorem PageRank.vol_supp_le_degree_sum {n : } (d : Fin n) (hd : ∀ (v : Fin n), 0 d v) (p : Fin n) (T : ) (vertices : Fin TFin n) (h_supp_covered : vvecSupp p, ∃ (i : Fin T), vertices i = v) :
          vol d (vecSupp p) i : Fin T, d (vertices i)
          theorem PageRank.pageRank_output_quality {n : } (ε : ) (d r : Fin n) (hd_pos : ∀ (v : Fin n), 0 < d v) (h_term : ∀ (v : Fin n), r v < ε * d v) (v : Fin n) :
          r v / d v < ε
          theorem PageRank.pageRank_termination {n : } (α ε : ) ( : 0 < α) ( : 0 < ε) (T : ) (d : Fin n) (hd : ∀ (v : Fin n), 1 d v) (p r_final : Fin n) (residual_norms : Fin (T + 1)) (h_init : residual_norms 0, = 1) (h_nonneg : ∀ (i : Fin (T + 1)), 0 residual_norms i) (vertices : Fin TFin n) (residual_vals : Fin T) (h_select : ∀ (i : Fin T), ε * d (vertices i) residual_vals i) (h_decrease : ∀ (i : Fin T), residual_norms i + 1, residual_norms i, - α * residual_vals i) (h_term : ∀ (v : Fin n), r_final v < ε * d v) (h_supp_covered : vvecSupp p, ∃ (i : Fin T), vertices i = v) :
          T * (α * ε) 1 (∀ (v : Fin n), r_final v / d v < ε) α * ε * vol d (vecSupp p) 1