反復対数

計算機科学において、反復対数(テンプレート:Lang-en-short)は、結果が 以下となるまでに必要とする対数関数の適用回数である[1]。
概要
についての反復対数は (ログスター )と表記され、単純には次のように再帰的に定義される。
関数の反復を用いれば、次のようにも定義できる。
正の実数においては、連続性のテンプレート:仮リンクに等しい。
言い換えれば、 を反復対数の底として、 が区間 にあるとき、その反復対数は で表される。ここで はテトレーションである。ただし、負の実数 について、反復対数の値は であるが、 であるので、負の実数においては先に示した関係は成り立たないことになる。
反復対数は実数全体で定義され、非負整数を値域にとる。正の実数に対しては、 平面の図1において 軸上の区間 に到達するために必要なジグザグの数として図式的に理解できる。
計算機科学においては、自然対数の代わりに二進対数を反復する反復対数 も用いられている。数学的には、 や だけでなく、 より大きい任意の底に対してwell-definedである。
アルゴリズム解析
| ︙ | |
反復対数はアルゴリズム解析や計算複雑性理論の分野でよく用いられている。以下に示すアルゴリズムでは、時間計算量とテンプレート:仮リンクの限界値が反復対数で表されている。
- テンプレート:仮リンクが分かっている点の集合に対してドロネー三角形分割を行うアルゴリズム - [2]。
- 整数乗算のテンプレート:仮リンク - 。
- 近似的な最大値を求めるアルゴリズム - から 回の演算[3]。
- テンプレート:Langとテンプレート:Langによるグラフの3彩色問題の分散アルゴリズム - 回の同期通信ステップ[4]。
反復対数の成長は非常に遅く、対数関数よりもはるかに遅い。実装されている実際のアルゴリズムの実行時間を数えるのに十分な のすべての値(すなわち 、この最大値は観測可能な宇宙内の原子数 を優に超える)に対して、底 の反復対数の値はたったの 以下である。
より高い底の反復対数は、より小さい値を返す。計算の複雑さの分野で使われるものでいえば、逆アッカーマン関数だけである。
他の応用例
反復対数は、テンプレート:仮リンクテンプレート:訳語疑問点で用いられるテンプレート:仮リンクと密接に関係している。加法についてのテンプレート:仮リンク(ある数が数字根に到達するまでに、数字をすべての桁の和で置き換える回数)は、 である。
計算複雑性理論において、テンプレート:Lang[5]によれば、計算資源のDTIME(決定性チューリング機械での計算時間)とNTIME(非決定性チューリング機械での計算時間)とが区別できるのは までである。