DNAコンピュータの哲学

 去年の4月から7月にかけて、東大の教養学部後期過程の学部聴講生をやっていた。その頃「生体高分子科学」という授業を受けていた。内容はDNAコンピュータの原理を扱うもの。

 世間では「コンピュータ」と言えば電子コンピュータか、せいぜい量子コンピュータが話題になるくらいが関の山だろうけれど、「DNAコンピュータ」というのがあって、タンパク質高分子を使って情報処理を行う。分子生物学情報科学が下敷きになって実現された。これを学んでいて気になったことがあった。人間が頭で考えて解けない問題に「NP困難*1な問題」というのがある。問題を解くための計算の量が膨大になるために、人の頭では限られた時間内*2では解けない問題と考えてもらえばいいだろう。 
 実はこの問題の一つを、タンパク質の高分子は解くことができている。「解く」の主語は脳とか人間とかではなくて「タンパク質の高分子」である。
 人間は日常的に間違いを犯すし、解ける問題だけでなく解けない問題も少なくない。しかしその内側でタンパク質の高分子が日常的に、間違えることは限りなく0%に近い確率でNP困難な問題を解いている。数学で未解決の問題のひとつに「P≠NP問題」がある。もしP=NPで、なおかつあらゆるNPクラスの問題が、タンパク質の高分子が解ける問題(くどいようだが主語は「タンパク質高分子」である)に帰着させることができるならば、かなりの数の未解決な問題が解けるようになる。頭では解けなくても解ける問題は、今は電子コンピュータがその一部を担っている。フェルマーの最終定理の証明にコンピュータが使われ、チェスの対戦にコンピュータが使われるだけでなく、もっと人間にとって日常的で重要に思える問題の多くがコンピュータの計算によって解かれている。
 人間が自分の頭で解くことにこだわらなければ、この傾向はさらに今後も続くだろうし、拡大していくだろう。その市場のプレイヤーが、電子コンピュータの独占(monopoly)状態から、せめて量子コンピュータやDNAコンピュータも参加する寡占(oligopoly)の状態に移っていけば、面白いことになるだろう。
 話の筋を戻すと、脳では解けない問題を、タンパク質の高分子が解けるというのであれば、なぜわざわざ脳なんてものが生まれたのか。脳など生まれずにタンパク質高分子がそのまま進化を遂げた方が、生物は遥かに遠くまで行けたのではないか。私たちが今立っている地点よりもずっと先を、タンパク質の高分子を司令塔とする生命体ーいや、ある意味ではそれは脳が定義した意味での「生物」ですらないかもしれない、そんな存在ですらありうるーがものすごいスピードで走っていたかもしれない世界。そんな世界にならなかったのはなぜか。その方が生存のためには都合が良かったのではないか。
 もちろんこれは進化(evolution)という言葉をどう定義するかということと深く関わる。それが計画的・合理的に、まるでそれ自体として意思をもち、主体的に進むものと考えるなら、タンパク質の高分子を司令塔とするようなタイプの進化が生じてもおかしくはなかった。むしろそちらの方が高い確率で起こり得たとすら言える。
 しかし実際にはそうはならなかった。なぜか。「起きるはずがない」と言えるほど小さい確率でしか起きないことが現実に起きたということなのか、それとも世界はそれとは異なる原理で進化が起きるようにできているということなのか。
 もし後者だとすれば、進化というのは「偶然(coincidence/chance)」の産物であると考える立場が有利になるのかもしれない。つまり脳が司令塔になったのは単なるまぐれだと。タンパク質高分子というポテンシャルが凄まじく高い「頭脳派」を押しのけて、ニューラルネットで構成される「秀才」の脳がたまたまトップにという、なんだかどこかで聞いたような筋書きだ。しかもその秀才は、自分の力を100%出し切っているわけでもない。いわばゆとり秀才である。
  そんなゆとり秀才を頭脳派がどう思っているかは、ゆとり秀才の側にいる自分には全くもって知る由もないが、これと同じ筋書きを現実で、たとえば企業トップや政治家の選出において頭脳派が目の当たりにしたときに、頭脳派は快く思わないことなどを思うにつけ、おそらくは快く思っていないんじゃないかと、ゆとり秀才の側の自分は僭越ながら拝察している。

*1:問題の複雑さを表す「クラス」において、「クラスNP」に分類されるタイプの問題で、有名な例では「巡回セールスマン問題」や「ナップザック問題」、学生に馴染み深いものでは「時間割の作成」なども「クラスNP」に分類される。一つ目の例をもとにすると、あるセールスマンが30の都市を巡回するとき、どの様な順序で各地を回れば最も効率的かを求めよ、という問題。これは可能な経路の数が膨大になるために、「ある限られた時間内」に正解を確実に出すことができない。その困難さを表すのが「NP困難」である。ちなみにある限られた時間内に解ける問題の場合は「クラスP」に分類される。

*2:一つ目の注でも「限られた時間内」という表現を用いた。問題を解くためにかかる時間を「多項式(Polynomial)」を使って表すということを考える。一般に、ある問題を解くのに必要な所要時間が、たかだか多項式で表せる程度の長さの時間ならば、その問題を「クラスP」(P:Polynomial)に、表せない長さの時間ならばその問題を「クラスNP」(NP:Non-Polynomial)に分類する。