計算理論・ラムダ計算の問題
とし、 を空列 を含む有限 2 進列全体、 を列 の長さ、 を長さ の列全体とする。万能チューリング機械 を 1 つ固定し、 が計算する部分関数 は、任意の に対して となる が存在するものとする。 のコルモゴロフ複雑性を
で定める( は、入力 で が停止して を出力することを表す)。
任意の正の整数 に対して
が成り立つことを証明せよ。
この問題で使うもの
- 記述複雑性とカウンティング論法(説明と入口の問題)
- 等差・等比数列の和と Σ(説明と入口の問題)
この問題を解けるようになるまで(11 技能)
読み込み中…
右端(太枠)がこの問題で使う技能です。左へドラッグすると、さらに前の前提をさかのぼれます。技能を押すと、そこまでの道筋が光ります。
ヒント
行き詰まったら、上から順に 1 つずつ開いてください。
ヒント 1
「短いプログラムは少ない」ので「複雑性の小さい列も少ない」というカウンティング論法を使う。平均を直接計算するのではなく、 となる列の個数で評価する。
ヒント 2
各 に最短プログラムを 1 つ対応させる写像は単射なので、 となる は長さ 以下の列の個数 個以下である。また、非負整数 は と書ける。
ヒント 3
とおくと であり、補題から が得られる。あとはこれを で足し合わせる。
採点の観点と模範解答
自分で証明を書いてから、採点の観点で見比べてください。
採点の観点を見る
各 に最短プログラムを対応させる写像が単射であることを、 が関数であることから示している(2 点)
長さ 以下の列が 個であることから、 となる が 個以下であることを導いている(2 点)
を となる列の個数 の和で表し、 の範囲で下から評価している(2 点)
補題を に使い、 を得ている(2 点)
で和をとって平均が 以上になることを計算し、 より大きいと結論している(2 点)
どこでつまずきましたか?(選ぶと、戻る場所を案内します)
模範解答を読む
方針: 「複雑性が小さい列は少ない」ことをプログラムの個数で押さえ(補題)、平均を「 となる列の個数」の和に書き直して評価する。
補題. 任意の整数 に対して 。
証明. 仮定より各 に対し となる が存在するので は有限な非負整数として定まる。各 について、 かつ となる を 1 つ選ぶ。 ならば であり、 は(部分)関数なので同じ入力に異なる値を返さないから 。よって写像 は単射である。 のとき だから、この単射は を長さ 以下の列全体へ移す。長さ の列は 個なので、長さ 以下の列は
個。したがって 。
本題. を正の整数とし、 とおく。
(1) 和の書き換え. 非負整数 について ( は条件が真なら 、偽なら )が成り立つ(右辺は の 個の の和)。これを に用いて について和をとると、有限和と非負項の和の順序交換により
( なので の項を捨てても値は増えない)。
(2) 各 の評価. とする。 でない は を満たすので、補題()より
だから
(3) 合計. (1), (2) より
両辺を で割ると
より なので、右辺は より大きい。
以上より、任意の正の整数 に対して が成り立つ。