Ankiはどのような間隔反復アルゴリズムを使用していますか?

Anki 23.10の時点で、Ankiには2つの利用可能なアルゴリズムがあります。最初のものはSuperMemo 2アルゴリズムに基づいており、2つ目はFSRSと呼ばれます。

Ankiのアルゴリズムはいくつかの点でSM-2と異なります。特に:

  • SM-2は初期間隔を1日、その後6日と定義していますが、Ankiでは初期学習ステップの長さを完全に制御できます。Ankiは、新しいカードを覚える前に何度も見る必要があることがあると理解しており、その初期の「失敗」が数日間にわたって何度も失敗カードを表示する必要があることを意味しないことを理解しています。学習段階でのパフォーマンスは、保持段階でのパフォーマンスを反映しません。

  • Ankiは復習カードに対して4つの選択肢を使用しますが、6つではありません。失敗の選択肢は1つだけで、3つではありません。これは、失敗が総復習のごく一部を占めるため、カードのイーズを調整するには、ポジティブな回答を変えるだけで十分だからです。

  • 予定より遅れてカードに回答した場合、その次の間隔計算に反映されるため、遅れて回答したがまだ覚えていたカードにはブーストがかかります。

  • SM-2と同様に、Ankiの失敗ボタンはデフォルトでカードの間隔をリセットします。しかし、ユーザーはカードの間隔を完全にリセットするのではなく、減少させることを選択できます。また、失敗した成熟カードを同じ日ではなく別の日に復習することも選択できます。

  • 「簡単に覚えた」はイーズファクターを増加させるだけでなく、現在の間隔計算に追加のボーナスを加えます。したがって、「簡単に覚えた」に回答することは、標準のSM-2アルゴリズムよりも少し積極的です。

  • 学習中のカードが連続して失敗しても、カードのイーズがさらに低下することはありません。標準のSM-2アルゴリズムに対する一般的な不満は、カードが繰り返し失敗すると「低間隔地獄」に陥ることです。Ankiでは、初期の習得プロセスがカードのイーズに影響を与えません。

スケジューリングコードはrslib/src/scheduler/statesにあります。ここに概要を示します(_イタリック_で示されているオプションについては、マニュアルのデッキオプションセクションを参照してください)。

学習/再学習カード

次のボタンを押すと…​

  • 再度
    カードを学習/再学習ステップで設定された最初のステップに戻します。

  • 難しい
    最初のステップの後に現在のステップを繰り返し、「再度」と「良い」の平均になります。

  • 良い
    カードを次のステップに進めます。カードが最終ステップにあった場合、カードは復習カードに変換されます(「卒業」します)。

  • 簡単
    カードを即座に復習カードに変換します。

新しいカードにはイーズがないため、「再度」や「難しい」を何度押しても、カードの将来のイーズファクターには影響しません。再学習カードについても同様で、「再度」や「難しい」を押してもカードのイーズには影響しません。

復習カード

SM-2では、カードが卒業するとイーズファクターが設定されます。デフォルトは2.5ですが、デッキオプションを使用して別の値に設定することもできます。

次のボタンを押すと…​

  • もう一回
    カードは再学習モードに入り、イーズが20パーセンテージポイント減少します(つまり、イーズ値から20が引かれます。イーズ値はパーセンテージポイント単位です)。現在の間隔は_新しい間隔_の値で掛けられます(この間隔はカードが再学習モードを終了するときに使用されます)。

  • 難しい
    カードのイーズが15パーセンテージポイント減少し、現在の間隔は_難しい間隔_の値で掛けられます(デフォルトは1.2)。

  • 正解
    現在の間隔は現在のイーズで掛けられます。イーズは変更されません。

  • 簡単
    現在の間隔は現在のイーズに_簡単ボーナス_を掛けた値で掛けられ、イーズは15パーセンテージポイント増加します。

難しい、正解、簡単のいずれの場合も、次の間隔はさらに_間隔修正値_で掛けられます。カードが遅れて復習されている場合、追加の日数が現在の間隔に加算されます。詳細は以前のFAQに記載されています。

制限事項

カードが取ることができるスケジューリング値にはいくつかの制限があります。イーズは130%未満には減少しません。SuperMemoの研究によると、130%未満のイーズはカードが有用以上に頻繁に期日になる傾向があり、ユーザーを苛立たせることが示されています。間隔は_最大間隔_の値を超えて増加することはありません。最後に、すべての新しい間隔(再度を除く)は、常に前の間隔より少なくとも1日長くなります。

なぜAnkiはSuperMemoの最新アルゴリズムを使用しないのですか?

簡単な答えは、SuperMemoの最新アルゴリズムが独自のものであり、ライセンスが必要だからです。Ankiはオープンソースのアプリケーションであるため、FSRSのように自由に利用できるアルゴリズムしか使用できません。予備調査によると、FSRSはSM17とほぼ同等であるようです。