人生最良アルゴリズム

 以下の問題文を読み、問いを考えてみてください。皆さんは、どのような答えを考え出すでしょうか?

 ちなみに、背景として、コンパイラインタプリタを作るときに用いるような、プログラミングの変数環境を想像しました。もちろん、プログラミングをまったく知らない方でも、理解をすることができる内容になっています。

 

 

人生最良アルゴリズム

 以下の5つの事柄を仮定する。ここで、カギ括弧に囲まれている単語は、辞書でなされる定義と異なるような定義をして使用されているので、留意をしていただきたい。

 

  1.  「行為」とは、主体が、ある意思をもってする行いのことである。「行為」から有限時間が経過すると、その「行為」をした主体はその「行為」の「結果」を知る。
  2. 「知識」とは、主体が、ある時点までに知った内容の集合のことである。「知識」のすべての要素は、時間の経過により失われることがない。
  3.  「価値観」とは、任意の自らの「行為」の「結果」に対し、その「行為」が「成功」であったか「失敗」であったかを、自らの「知識」に基づいて出力するような、主体に固有の関数である。「価値観」は時間の経過により変化することがない。
  4. 「知識」と「価値観」をもつ主体は、「行為」をする前に、自らの「知識」に基づいて、その「行為」の「結果」が「成功」となるか「失敗」となるかを予測することができる場合がある。
  5.  「人間」とは、「知識」と「価値観」をもち、「行為」をすることができる主体のことである。「人間」の「知識」の初期値は、空集合である。

 

 これらの仮定のもとで、「人間」について、以下のようなアルゴリズムを考える。このアルゴリズムを「人生最良アルゴリズム」と名づける。

 

  1. 「行為」の「結果」を知り、自らの「価値観」に基づいて、その「結果」が「成功」であったか「失敗」であったかを判断した後、この「一連の流れ」(「行為」、「結果」、「成功」または「失敗」という3つの値の組)を、「知識」の要素にする。
  2. 「行為」をする前に、自らの「知識」を検索して、今しようとしている「行為」と同様の「行為」に関する「一連の流れ」がひとつ以上存在した場合、その「行為」が過去に「成功」したならばその「行為」を実行し、その「行為」が過去にN回以上「失敗」したならばその「行為」を実行するのをやめることにする。ただし、Nは0以外の自然数であるとする。今しようとしている「行為」と同様の「行為」に関する「一連の流れ」が存在しない場合、その「行為」を実行することにする。

 

 以下の問いに答えよ。ただし、Nにはあなたの好きな0以外の自然数を当てはめ、以下の問いに答える際には、あなたが選んだNの値を用いよ。

 

問1. 「人生最良アルゴリズム」を加算無限回繰り返した「人間」には、どのような特徴が現れると期待できるか。500字以内で論述せよ。

問2. 「人生最良アルゴリズム」を加算無限回繰り返した「人間」は、問1で見たような特徴を持つはずであるが、現実に存在する人間は、年齢が上昇したとしてもそのような特徴をもたないことがある。現実に存在する、そのような特徴をもたない人間の例を、ふたつ挙げよ。1000字以内で述べよ。

問3. 一般的に、「人生最良アルゴリズム」を一生実行し続けても、現実に存在するすべての人間が、問1で見たような特徴をもつようになる訳ではない。その原因は、人生が有限時間であること以外にも存在する。「人生最良アルゴリズム」が現実に即さない原因を、人生が有限時間であること以外に、できるだけ挙げよ。その際、仮定の不適切さについても言及してよい。さらに、「人生最良アルゴリズム」を、現実に即する形で、実現させる(問1で述べた特徴を「人間」にもたせる)ためには、仮定やアルゴリズムをどのように改善すればよいか。30000字以内で述べよ。