Exact-matchとINexact-match、バックトラッキング

  • Exact-match
    • BW行列は辞書式順序で並んでいる
    • これを利用する
      • あるクエリー配列の末尾の1文字を見て、その文字がBW行列の左端に来ている行を選択する
      • それを満足する行数を数える(それらは固まって存在している)
      • 次いで、クエリー配列の末尾から1、2文字目を見て、一致する行を確認する。このとき、一致する行数は前のステップの一致行数以下である
      • 繰り返しの仮定で、考慮するべき行数が減っていく
  • INexact-match
    • Exact-match探索は上記のように単純で軽くて速いので、実施する
    • そうすると、Exact-matchの断片の集まりになる
    • 合わないところを「合っていることにして」やりなおし
    • 結果としてうまくはまれば、OK
    • ただし、どれだけ「合っていることにしてやりなおす」かを条件で与える
    • この「合っていることにする」ときに、データの質を考慮することで、データの質を取り込むこともできる
  • バックトラッキング
    • やりなおしで行ったり来たりすることは、Exact-matchが「先すぼまりに一致を検出する」という仕組みで「軽い処理」にしていた部分を生殺しにする効果があるので、バックトラッキングをうまくやることは、処理全体の効率に影響する