核心概念
オフラインアルゴリズムからオンラインアルゴリズムを自動的に合成する新しい手法を提案する。この手法は、関係関数シグネチャ(RFS)の概念に基づいており、オフラインアルゴリズムからオンラインアルゴリズムを導出することができる。
要約
本論文は、オフラインアルゴリズムからオンラインアルゴリズムを自動的に合成する新しい手法を提案している。
まず、オフラインプログラムを静的に分析して、関係関数シグネチャ(RFS)を推論する。RFSは、オンラインプログラムの引数とオフラインプログラムの計算結果の関係を表す。
次に、RFSに基づいてプログラムスケッチを生成する。このスケッチには、オフラインプログラムの式を表す未知の部分が含まれている。
最後に、各未知部分について独立に式を合成する。この際、記号推論とサーチの組み合わせを用いることで、実用的なオンラインアルゴリズムを効率的に合成することができる。
提案手法を実装したツールOperaを用いて、統計計算とオンラインオークションの分野の50以上のタスクを評価した結果、98%のタスクでオフラインアルゴリズムからオンラインアルゴリズムを自動的に導出できることが示された。また、提案手法は既存手法と比べて大幅に優れた性能を示した。
統計
foldl(+, 0, xs)は入力リストxsの合計を表す
length(xs)はリストxsの長さを表す
foldl(+, 0, xs) / length(xs)は入力リストxsの平均を表す
foldl(\acc x -> acc + (x - avg)^2, 0, xs)は入力リストxsの分散を計算する