二つのアルゴリズム論的情報量の関係
【 二つのアルゴリズム論的情報量の関係 】
Xをプログラムの集合、𝑉(𝑥) をプログラムの長さ、𝑁(𝑥)をプログラムxの出力とすると、二つの情報量の定義は、次のようになります、
第一の定義 (コロモゴロフ複雑性)
𝑆𝑓𝑖𝑟𝑠𝑡(𝑛)=min𝑥∈𝑋{𝑉(𝑥):𝑁(𝑥)=𝑛}
第二の定義
𝑆𝑠𝑒𝑐𝑜𝑛𝑑(𝑛)=−log∑𝑥∈𝑋,𝑁(𝑥)=𝑛2−𝑉(𝑥)
𝑆𝑓𝑖𝑟𝑠𝑡(𝑛)と𝑆𝑠𝑒𝑐𝑜𝑛𝑑(𝑛)の関係を考えてみましょうS(𝑛)=−log∑𝑥∈𝑋,𝑁(𝑥)=𝑛2−𝑉(𝑥) で、nを出力とするようなプログラムxが一つしかなかったとしましょう。総和の項は一つしかないということです。
この時、
𝑆𝑠𝑒𝑐𝑜𝑛𝑑(𝑛)=−log2−𝑉(𝑥)=𝑉(𝑥)
となります。
nを出力とするようなプログラムxが一つしかないというのですから、V(x)は、𝑁(𝑥)=𝑛 を満たすプログラムの最小の長さになります。この時、
𝑆𝑠𝑒𝑐𝑜𝑛𝑑(𝑛)=𝑆𝑓𝑖𝑟𝑠𝑡(𝑛)
になります。
もちろん、nを出力するプログラムは、複数存在し得ます。この時、アルゴリズム論的情報量の第二の定義による、 𝑆𝑠𝑒𝑐𝑜𝑛𝑑(𝑛)は、それらのプログラムの長さの項 −log2−𝑉(𝑥)が寄与しますので、その分、𝑆𝑓𝑖𝑟𝑠𝑡(𝑛)より小さくなります。
𝑆𝑠𝑒𝑐𝑜𝑛𝑑(𝑛)≤𝑆𝑓𝑖𝑟𝑠𝑡(𝑛)
1974年に、Leonid Levinは、次のような定理を証明しました。すなわち、prefix free なプログラム言語については、すべてのnについて、次の式が成り立つような定数cが存在すると。
𝑆𝑠𝑒𝑐𝑜𝑛𝑑(𝑛)≥𝑆𝑓𝑖𝑟𝑠𝑡(𝑛)−𝑐
このことは、アルゴリズム論的情報量の定義として、第一の定義(コロモゴロフ複雑性)をとっても、第二のものをとっても、その違いは、高々、定数の範囲内に収まることを意味します。
今後、アルゴリズム論的情報量 S(n)の定義として、第二のものを使うことにしましょう。
コメント
コメントを投稿