For AI agents: the complete documentation index is available at https://open-spaced-repetition.github.io/ts-fsrs/zh-CN/llms.txt, the full documentation bundle is available at https://open-spaced-repetition.github.io/ts-fsrs/zh-CN/llms-full.txt, and this page is available as Markdown at https://open-spaced-repetition.github.io/ts-fsrs/zh-CN/guide/model/fsrs-7.md.
  • 简体中文
  • FSRS-7

    迁移指南

    只重建记忆状态、不重新安排下次复习时间的迁移步骤见 v6 与 FSRS-7 迁移指南。

    FSRS-7 使用 34 个权重和两个记忆分量。记忆状态包含 stability(慢分量)、stabilityFast(快分量)和 difficulty。

    记忆状态与符号

    沿用公共符号,以 SsS_s 表示 stability,SfS_f 表示 stabilityFast。两者单位均为天,但都不等于混合回忆概率降至 90% 时的间隔。难度同时影响慢分量曲线及其混合权重。

    公式使用经过边界限制的复习前状态:两种稳定性均在 [0.0001, 36500] 内,难度在 [1, 10] 内。经过时间 tt 使用小数天,曲线计算采用 max⁡(t,0)\max(t,0)。“快”和“慢”是分量名称,并不保证两种稳定性的大小顺序。

    初始记忆

    对于新记忆状态,令 CsC_s 和 CfC_f 分别表示慢、快稳定性的边界裁剪,CDC_D 表示裁剪到 [1, 10]。

    Ss,0=Cs(wG−1),Sf,0=Cf(0.8Ss,0)S_{s,0}=C_s(w_{G-1}),\qquad S_{f,0}=C_f(0.8S_{s,0})
    
    D0(G)=w4−ew5(G−1)+1,Dinitial=CD(D0(G))D_0(G)=w_4-e^{w_5(G-1)}+1,\qquad D_{initial}=C_D(D_0(G))
    

    双分量遗忘曲线

    快分量:

    df=−clamp⁡(w23Sfw33−0.3,0.01,0.95)d_f=-\operatorname{clamp}(w_{23}S_f^{w_{33}-0.3},0.01,0.95)
    
    Ff=exp⁡(min⁡(ln⁡w25df,60))−1F_f=\exp\left(\min\left(\frac{\ln w_{25}}{d_f},60\right)\right)-1
    
    Rf(t)=(1+FftSf)dfR_f(t)=\left(1+F_f\frac{t}{S_f}\right)^{d_f}
    

    慢分量:

    ds=−clamp⁡(w24,0.01,0.95)d_s=-\operatorname{clamp}(w_{24},0.01,0.95)
    
    Fs=(w261/ds−1)e(D−5)(w32−0.3)F_s=(w_{26}^{1/d_s}-1)e^{(D-5)(w_{32}-0.3)}
    
    Rs(t)=(1+FstSs)dsR_s(t)=\left(1+F_s\frac{t}{S_s}\right)^{d_s}
    

    混合权重与回忆概率

    两个权重均为正的未归一化系数,取决于记忆状态,而非经过时间。分量的原始回忆概率不等于它对混合结果的贡献。

    af=w27Sf−w29,as=w28Ssw30e(D−5)(w31−0.5)a_f=w_{27}S_f^{-w_{29}},\qquad  a_s=w_{28}S_s^{w_{30}}e^{(D-5)(w_{31}-0.5)}
    
    R(t)=afRf(t)+asRs(t)af+as(1−2ε)+ε,ε=10−5R(t)=\frac{a_fR_f(t)+a_sR_s(t)}{a_f+a_s}(1-2\varepsilon)+\varepsilon,\qquad\varepsilon=10^{-5}
    

    algorithm.curve(t, state) 返回 fast、slow、fastWeight、slowWeight、retrievability 和 derivative。前两项是原始回忆概率;组合时应先归一化权重。最后的微小调整使概率避开 0 和 1,因此 R(0)=0.99999R(0)=0.99999。

    复习后的稳定性

    对于某一分量的稳定性 xx、回忆概率输入 qq 和参数偏移 kk,定义遗忘后的值和成功回忆后的更新:

    Lk(x,q)=min⁡(x,wk+3((x+1)wk+4−1)e(1−q)wk+5)L_k(x,q)=\min\left(x,w_{k+3}((x+1)^{w_{k+4}}-1)e^{(1-q)w_{k+5}}\right)
    
    Hk,G={wk+6,G=21,G≠2,Ek,G={wk+7,G=41,G≠4H_{k,G}=\begin{cases}w_{k+6},&G=2\\1,&G\ne2\end{cases},\qquad E_{k,G}=\begin{cases}w_{k+7},&G=4\\1,&G\ne4\end{cases}
    
    Uk(x,q,G)=x[1+ewk−1.5(11−D)x−wk+1(e(1−q)wk+2−1)Hk,GEk,G]U_k(x,q,G)=x\left[1+e^{w_k-1.5}(11-D)x^{-w_{k+1}}(e^{(1-q)w_{k+2}}-1)H_{k,G}E_{k,G}\right]
    
    Tk(x,q,G)={Lk(x,q),G=1max⁡(Lk(x,q),Uk(x,q,G)),G∈{2,3,4}T_k(x,q,G)=\begin{cases}L_k(x,q),&G=1\\\max(L_k(x,q),U_k(x,q,G)),&G\in\{2,3,4\}\end{cases}
    

    慢分量使用 k=7k=7 和混合概率 RR;快分量使用 k=15k=15 和原始快分量概率 RfR_f。所有更新均使用复习前的难度。显式传入 retrievability 会替代慢分量更新和难度更新使用的 RR,但不会替代快分量的 RfR_f。

    评分为 Again 时,先将新的快稳定性限制为新的慢稳定性的 80%,再应用状态边界:

    S~s=T7(Ss,R,G),S~f=T15(Sf,Rf,G)\widetilde S_s=T_7(S_s,R,G),\qquad \widetilde S_f=T_{15}(S_f,R_f,G)
    
    Ss′=Cs(S~s),Sf′=Cf({min⁡(S~f,0.8S~s),G=1S~f,G≥2)S'_s=C_s(\widetilde S_s),\qquad S'_f=C_f\left(\begin{cases}\min(\widetilde S_f,0.8\widetilde S_s),&G=1\\\widetilde S_f,&G\ge2\end{cases}\right)
    

    复习后的难度

    Again 按混合回忆概率缩放难度变化。均值回归系数固定为 0.01:

    ΔD=−w6(G−3){R+0.1,G=11,G≥2\Delta D=-w_6(G-3)\begin{cases}R+0.1,&G=1\\1,&G\ge2\end{cases}
    
    D′=CD(0.01D0(4)+0.99(D+10−D9ΔD))D'=C_D\left(0.01D_0(4)+0.99\left(D+\frac{10-D}{9}\Delta D\right)\right)
    

    实现将三个新状态值四舍五入至小数点后八位,再裁剪到各自边界。FSRS-7 对小数经过时间(包括零)使用同一套更新,没有单独受 enableShortTerm 控制的同日公式。学习步骤调度仍属于 middleware 策略。

    间隔计算

    nextInterval(state, r) 通过数值方法求出混合曲线达到目标概率的经过时间。它依赖全部三个状态字段,返回小数天。

    R(I;Ss,Sf,D)=rR(I;S_s,S_f,D)=r
    

    实现先校验 0<r<10<r<1,将目标限制到 [0.0001, 0.9999],达到上界时返回零。其余情况在对数时间上执行最多七次有界 Newton 更新;回忆概率误差超过 0.001 时回退到二分查找。结果受 sMax 限制,因此极端目标可能无法达到。

    配置与迁移

    FSRS-7 需要独立的 34 个权重。参数迁移函数会为空输入提供默认值,非空输入则必须包含 34 个权重。FSRS-3 至 FSRS-6 的权重和记忆状态无法直接转换为 FSRS-7。迁移卡片数据时,请使用基于 FSRS-7 的调度器,通过 reschedule 重放复习历史、重建记忆状态,并保留小数经过天数。上面的 0.8 系数用于初始化及 Again 更新。