崩せない時の壁への挑戦

計算科学では、「問題を解くために何ステップの時間が必要か」「どれだけのメモリ空間を使うか」という視点が大きな焦点でした。
たとえば1970年代にはすでに「実際にXステップかかる計算は、X/logXのメモリで実行できる」ことが示され、たとえば100ステップを要するプログラムなら、log100=2なので常に50メモリスロット内で実行できる、という目を引く成果が存在しました。
具体的には、時間Xの計算をX/logXの平方根ほどの空間に押し込められる可能性を示唆しています。
つまり、今まで「100ステップの問題なら50スロット」という見方に慣れていた私たちに対し、研究者たちは「いえ、100や50ですらなく、100ステップなら実は15スロットに縮まる可能性があります」とまで語るのです。
このような手法の鍵になっているのは、クックとマーツらが開発した「木構造評価(Tree Evaluation)」という特殊なアルゴリズムです。
膨大な手続きが行われる計算を“ブロック化”し、それらを木のかたちで整理して再帰的に評価することで、想像以上に省メモリを実現できるといいます。