技能一覧 › 大学院数学 計算理論・ラムダ計算

記述複雑性とカウンティング論法

記述方式 に関する複雑性 について、長さ 未満の記述が 個しかないことから となる の個数の上限を求め、それを達成する (計算可能なものを含む)を構成して、 の個数や圧縮不可能な列の個数の最小値を求められる

前提

この技能までの道筋(10 技能)
算数中学高校大学大学院

読み込み中…

右端(太枠)がこの技能です。左へドラッグすると、さらに前の前提をさかのぼれます。技能を押すと、そこまでの道筋が光ります。

一覧で見る(前提が先)
  1. 四則の混じった計算の順序 (算数 計算と数のきまり)
  2. 等間隔にならんだ数の和 (算数 計算と数のきまり)
  3. 分数のたし算・ひき算 (算数 計算と数のきまり)
  4. 小数の四則計算 (算数 計算と数のきまり)
  5. 正負の数の加法・減法 (中学数学 数と式)
  6. 分数のかけ算・わり算 (算数 計算と数のきまり)
  7. 正負の数の乗除・累乗と四則混合 (中学数学 数と式)
  8. 分配法則を使った計算のくふう (算数 計算と数のきまり)
  9. 文字式の計算(同類項・分配法則) (中学数学 数と式)
  10. 等差・等比数列の和と Σ (数学B 数列)

説明

とし、 を空列 を含む有限 2 進列全体、 を長さ の列全体とします。記述方式とは、一部の列 (記述・プログラム)に列 を対応させる部分関数 のことで、 の記述複雑性 は「 を書き表す最短の記述の長さ」です(記述が 1 つもなければ とします)。この技能では、短い記述の個数が限られていることだけを使って、どんな記述方式でも「複雑な列」が必ずたくさんあることを示し、その個数の最小値を正確に求めます。圧縮できないデータが存在することの証明や、情報理論・計算理論での下界の議論の基本となる論法です。

なぜそうしてよいのか

長さ の 2 進列は 個あるので、長さ 未満(長さ )の記述の総数は等比数列の和

です。 とは「長さ 未満の記述 で となるものがある」ことです。 は関数なので 1 つの記述は高々 1 つの列しか表せません。したがって、 となる は全部合わせても高々 個です(鳩の巣の考え方: 記述の個数より多くの列を表すことはできない)。これは が何であっても、計算可能かどうかにも関係なく成り立ちます。

長さ の列は 個あるので、そのうち となるものは少なくとも 個あります( のとき)。特に とすると、どんな記述方式に対しても となる長さ の列、すなわち圧縮不可能な列が少なくとも 個あります。

この下限は改善できません。長さ 未満の 個の記述を短い順(同じ長さなら辞書式順)に と並べ、 の列を辞書式順に と並べて、()、それ以外の では未定義と定めます。 なら なので は足ります。この は順番に列を数えるだけの計算可能な方式で、 がちょうど 個の列で成り立ちます。よって となる の個数の最小値はちょうど です。

手順

  1. 記述の長さの上限を読み取る。「」なら長さ から までの記述が対象( なら と読み替える)

  2. 長さ 未満の記述の個数を等比数列の和で求める: (空列の分の を忘れない)

  3. 1 つの記述は高々 1 つの列を表すので、 となる は高々 個であると結論する

  4. 対象の列の総数から引く: の個数は 以上

  5. 最小値を問われたら、短い記述を の相異なる列に 1 対 1 に割り当てる を作り、下限が達成されることを確かめる

例題

とし、記述方式 (部分関数)に対して (そのような がなければ )と定める。記述の長さ には空列(長さ 0)も含める。 をあらゆる記述方式にわたって動かすとき、 を満たす長さ 10 の列 の個数の最小値を求めよ。

例題の解答

(手順 1) でない列は 、すなわち長さ から の記述をもつ列である。

(手順 2)長さ 7 未満の記述の個数は

(手順 3)1 つの記述は高々 1 つの列しか表さないので、 となる は( の中に限らず全体でも)高々 127 個。

(手順 4) は 個の列からなるので、 となる は少なくとも 個。

(手順 5)長さ 6 以下の 127 個の記述を、 の相異なる 127 個の列に 1 つずつ対応させ、他の記述では未定義とする を考える( なので可能)。このとき となる はちょうど 127 個で、 となるものはちょうど 897 個。よって最小値は 897。

答え:

よくある誤り

この説明は AI が書き、別の AI が例題を独立に解いて答えを確かめ、説明を一歩ずつ査読しました。

入口の問題

この技能を使う問題