二つのアルゴリズム論的情報量の関係

【 二つのアルゴリズム論的情報量の関係 】

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)の定義として、第二のものを使うことにしましょう。


コメント

このブログの人気の投稿

初めにことばありき

Google翻訳での日本語の点数の低さについて

宇宙の終わりと黒色矮星