Class FSRSAlgorithm

Hierarchy (view full)

Constructors

Properties

_seed?: string
forgetting_curve: ((elapsed_days: number, stability: number) => number) = forgetting_curve

Type declaration

    • (elapsed_days, stability): number
    • The formula used is : R(t,S)=(1+FACTOR×t9S)DECAYR(t,S) = (1 + \text{FACTOR} \times \frac{t}{9 \cdot S})^{\text{DECAY}}

      Parameters

      • elapsed_days: number

        t days since the last review

      • stability: number

        Stability (interval when R=90%)

      Returns number

      r Retrievability (probability of recall)

intervalModifier: number

Accessors

  • set seed(seed): void
  • Parameters

    • seed: string

    Returns void

Methods

  • If fuzzing is disabled or ivl is less than 2.5, it returns the original interval.

    Parameters

    • ivl: number

      The interval to be fuzzed.

    • elapsed_days: number

      t days since the last review

    Returns int

    • The fuzzed interval.
  • The formula used is : min{max{D0,1},10}\min \lbrace \max \lbrace D_0,1 \rbrace,10\rbrace

    Parameters

    • difficulty: number

      D[1,10]D \in [1,10]

    Returns number

  • The formula used is : D0(G)=w4e(G1)w5+1D_0(G) = w_4 - e^{(G-1) \cdot w_5} + 1 D0=min{max{D0(G),1},10}D_0 = \min \lbrace \max \lbrace D_0(G),1 \rbrace,10 \rbrace where the D0(1)=w4D_0(1)=w_4 when the first rating is good.

    Parameters

    • g: Grade

      Grade (rating at Anki) [1.again,2.hard,3.good,4.easy]

    Returns number

    Difficulty D[1,10]D \in [1,10]

  • The formula used is : S0(G)=wG1 S_0(G) = w_{G-1} S0=max{S0,0.1}S_0 = \max \lbrace S_0,0.1\rbrace

    Parameters

    • g: Grade

      Grade (rating at Anki) [1.again,2.hard,3.good,4.easy]

    Returns number

    Stability (interval when R=90%)

  • The formula used is : w7init+(1w7)currentw_7 \cdot \text{init} +(1 - w_7) \cdot \text{current}

    Parameters

    • init: number

      w2:D0(3)=w2+(R2)w3=w2w_2 : D_0(3) = w_2 + (R-2) \cdot w_3= w_2

    • current: number

      Dw6(R2)D - w_6 \cdot (R - 2)

    Returns number

    difficulty

  • The formula used is : deltad=w6(g3)\text{delta}_d = -w_6 \cdot (g - 3) nextd=D+linear damping(deltad,D)\text{next}_d = D + \text{linear damping}(\text{delta}_d , D) D(D,R)=w7D0(4)+(1w7)nextdD^\prime(D,R) = w_7 \cdot D_0(4) +(1 - w_7) \cdot \text{next}_d

    Parameters

    • d: number

      Difficulty D[1,10]D \in [1,10]

    • g: Grade

      Grade (rating at Anki) [1.again,2.hard,3.good,4.easy]

    Returns number

    nextD\text{next}_D

  • The formula used is : Sf(D,S,R)=w11Dw12((S+1)w131)ew14(1R)S^\prime_f(D,S,R) = w_{11}\cdot D^{-w_{12}}\cdot ((S+1)^{w_{13}}-1) \cdot e^{w_{14}\cdot(1-R)} enable_short_term = true : Sfmin{max{Sf,0.01},Sew17w18}S^\prime_f \in \min \lbrace \max \lbrace S^\prime_f,0.01\rbrace, \frac{S}{e^{w_{17} \cdot w_{18}}} \rbrace enable_short_term = false : Sfmin{max{Sf,0.01},S}S^\prime_f \in \min \lbrace \max \lbrace S^\prime_f,0.01\rbrace, S \rbrace

    Parameters

    • d: number

      Difficulty D \in [1,10]

    • s: number

      Stability (interval when R=90%)

    • r: number

      Retrievability (probability of recall)

    Returns number

    S^\prime_f new stability after forgetting

  • The formula used is : Sr(D,S,R,G)=S(ew8(11D)Sw9(ew10(1R)1)w15(ifG=2)w16(ifG=4)+1)S^\prime_r(D,S,R,G) = S\cdot(e^{w_8}\cdot (11-D)\cdot S^{-w_9}\cdot(e^{w_{10}\cdot(1-R)}-1)\cdot w_{15}(\text{if} G=2) \cdot w_{16}(\text{if} G=4)+1)

    Parameters

    • d: number

      Difficulty D \in [1,10]

    • s: number

      Stability (interval when R=90%)

    • r: number

      Retrievability (probability of recall)

    • g: Grade

      Grade (Rating[0.again,1.hard,2.good,3.easy])

    Returns number

    S^\prime_r new stability after recall

  • The formula used is : Ss(S,G)=Sew17(G3+w18)S^\prime_s(S,G) = S \cdot e^{w_{17} \cdot (G-3+w_{18})}

    Parameters

    • s: number

      Stability (interval when R=90%)

    • g: Grade

      Grade (Rating[0.again,1.hard,2.good,3.easy])

    Returns number

  • Calculates the next state of memory based on the current state, time elapsed, and grade.

    Parameters

    • memory_state: null | FSRSState

      The current state of memory, which can be null.

    • t: number

      The time elapsed since the last review.

    • g: number

      Grade (Rating[0.Manual,1.Again,2.Hard,3.Good,4.Easy])

    Returns FSRSState

    The next state of memory with updated difficulty and stability.

""