オンラインアルゴリズム
出典: フリー百科事典『ウィキペディア(Wikipedia)』
オンラインアルゴリズム(英: Online algorithm)は、入力全体を最初からアクセス可能にしなくても、先頭から順に処理していけるアルゴリズムを指す。これに対して、オフラインアルゴリズム(英: Offline algorithm)は、問題を解くのに最初からデータ全体へのアクセスが必要なアルゴリズムを指す。例えば、挿入ソートはオンラインアルゴリズムで、選択ソートはオフラインアルゴリズムである。
また、時系列データをリアルタイムに処理して未来を予測するようなアルゴリズムを特に「オンラインアルゴリズム」と呼ぶ場合もあり、その場合単に入力を蓄積せずに逐次的に処理するアルゴリズムを「ストリームアルゴリズム」と呼ぶ。
例として、有限な連結グラフにおける最短経路問題を考えてみよう。ひとつのノードが入力され、そこから次の連結されたノードが辿れるようなデータ形式の場合、単純かつ完全な探索をしないと問題が解けないのは明らかである。そこで、オンラインアルゴリズムの性能と理想的なオフラインアルゴリズムの性能(全てのデータが最初からわかっている状態)とを比較する Competitive Analysis という手法が新たに生まれた。
関連項目
参考文献
- Borodin, A.; El-Yaniv, R. (1998年). Online Computation and Competitive Analysis. Cambridge University Press. ISBN 0-521-56392-5.
外部リンク