計算機科学において、反復対数(英: iterated logarithm)は、結果が 1 {\displaystyle 1} 以下となるまでに必要とする対数関数の適用回数である。

概要

n {\displaystyle n} についての反復対数は log n {\displaystyle \log ^{*}n} (ログスター n {\displaystyle n} )と表記され、単純には次のように再帰的に定義される。

log n := { 0 if  n 1 ; 1 log ( log n ) if  n > 1 {\displaystyle \log ^{*}n:={\begin{cases}0&{\mbox{if }}n\leq 1;\\1 \log ^{*}(\log n)&{\mbox{if }}n>1\end{cases}}}

関数の反復を用いれば、次のようにも定義できる。

log n := min { i 0 : log ( i ) n 1 } {\displaystyle \log ^{*}n:=\min \left\{i\geq 0:\log ^{(i)}n\leq 1\right\}}

正の実数においては、連続性の超対数に等しい。

log n = s l o g n {\displaystyle \log ^{*}n=\lceil \mathrm {slog} \,n\rceil }

言い換えれば、 b {\displaystyle b} を反復対数の底として、 n {\displaystyle n} が区間 ( y 1 b , y b ] {\displaystyle (^{y-1}b,\,^{y}b]} にあるとき、その反復対数は log b n = y {\displaystyle \log _{b}^{*}n=y} で表される。ここで y b = b b b y {\displaystyle {^{y}b}=\underbrace {b^{b^{\cdot ^{\cdot ^{b}}}}} _{y}} はテトレーションである。ただし、負の実数 x {\displaystyle x} について、反復対数の値は log x = 0 {\displaystyle \log ^{*}x=0} であるが、 s l o g x = 1 {\displaystyle \lceil \mathrm {slog} \,x\rceil =-1} であるので、負の実数においては先に示した関係は成り立たないことになる。

反復対数は実数全体で定義され、非負整数を値域にとる。正の実数に対しては、 x y {\displaystyle xy} 平面の図1において x {\displaystyle x} 軸上の区間 ( 0 , 1 ] {\displaystyle (0,1]} に到達するために必要なジグザグの数として図式的に理解できる。

計算機科学においては、自然対数の代わりに二進対数を反復する反復対数 lg n := log 2 n {\displaystyle \lg ^{*}n:=\log _{2}^{*}n} も用いられている。数学的には、 e {\displaystyle e} 2 {\displaystyle 2} だけでなく、 e 1 / e 1.444667 {\displaystyle e^{1/e}\approx 1.444667} より大きい任意の底に対してwell-definedである。

アルゴリズム解析

反復対数はアルゴリズム解析や計算複雑性理論の分野でよく用いられている。以下に示すアルゴリズムでは、時間計算量と空間計算量の限界値が反復対数で表されている。

  • ユークリッド最小全域木が分かっている点の集合に対してドロネー三角形分割を行うアルゴリズム - O ( n log n ) {\displaystyle O(n\log ^{*}n)}
  • 整数乗算のフューラーのアルゴリズム - O ( n log n 2 O ( log n ) ) {\displaystyle O(n\log ^{*}n\cdot 2^{O(\log ^{*}n)})}
  • 近似的な最大値を求めるアルゴリズム - lg ( n 4 ) {\displaystyle \lg ^{*}(n-4)} から lg ( n 2 ) {\displaystyle \lg ^{*}(n 2)} 回の演算。
  • Richard ColeとUzi Vishkinによるグラフの3彩色問題の分散アルゴリズム - O ( log n ) {\displaystyle O(\log ^{*}n)} 回の同期通信ステップ。

反復対数の成長は非常に遅く、対数関数よりもはるかに遅い。実装されている実際のアルゴリズムの実行時間を数えるのに十分な n {\displaystyle n} のすべての値(すなわち n 2 65536 10 19660 {\displaystyle n\leq 2^{65536}\sim 10^{19660}} 、この最大値は観測可能な宇宙内の原子数 10 80 {\displaystyle 10^{80}} を優に超える)に対して、底 2 {\displaystyle 2} の反復対数の値はたったの 5 {\displaystyle 5} 以下である。

より高い底の反復対数は、より小さい値を返す。計算の複雑さの分野で使われるものでいえば、逆アッカーマン関数だけである。

他の応用例

反復対数は、symmetric level-index arithmeticで用いられる一般化された対数関数と密接に関係している。加法についての持続係数(ある数が数字根に到達するまでに、数字をすべての桁の和で置き換える回数)は、 O ( log n ) {\displaystyle O(\log ^{*}n)} である。

計算複雑性理論において、Santhanamによれば、計算資源のDTIME(決定性チューリング機械での計算時間)とNTIME(非決定性チューリング機械での計算時間)とが区別できるのは n log n {\displaystyle n{\sqrt {\log ^{*}n}}} までである。

脚注

出典


反復法と対句法の違いとは?【言葉か形か】 たわをブログ

対数 Logarithm JapaneseClass.jp

対数 Logarithm JapaneseClass.jp

複素対数関数の定義とイメージ【複素解析】 YouTube

対数 Logarithm JapaneseClass.jp