2013年7月2日火曜日

選ばれたのは…SuffixArrayでした…

最終製品版ではなく、短期に確実に動作するプロトタイプを作成する必要性から、今回は(とりあえず) SuffixArray を採用しました。
それでも、さすがにSAISを実装しました。MultikeyQuicksortでは、ある特定の条件下で致命的な遅さが観測されたので却下です。

実際問題としては、様々なしがらみとの調整の上で、ベストな選択を行うことになると思います。
たとえば、実際に実用的な速度で動いているものを改良するための工数を確保できるのか、というような問題があります。
研究室とは異なって、開発の現場では必ずしもベストな性能のものが選択されるわけではありません。良い悪いという話ではなく、プロジェクト全体がベスト(ベター)になるような選択がなされます。納期までに所定の製品ができなければ、それは何もないのと同じだからです。

良い技術であることと、それが製品/プロジェクトにとってベストの選択であるかどうかは、必ずしも一致しないということです。

(とはいえ、技術者としてはベストの技術を使えないのは悔しいので、いつかどこかで何とかならないか画策するつもりではいるのですが。)