読書メモ「生物化するコンピュータ」

原題は「Natural Computing」。この本については邦題がすごく良いと思う。本書はいわゆる「IT」「デジタル」な感じとは一線を画す形でコンピュータと関わっている人々に焦点を当てている。

偶然にも、今僕は「遺伝的アルゴリズム」を使ってネットワークからの攻撃を検知するコードを最適化している。この本を読むタイミングとしてはちょうどいい。

生物そのものを研究し、そこから得たヒントやアイデアをコンピューティングに活かすパターン(「遺伝的アルゴリズム」や「ニューラルネットワーク」など)と、生物を使ってコンピュータで行うような処理をしようとするパターン(「DNAコンピューティング」など)が存在している。僕は後者については知識ゼロの状態だったので、この本でとりあえずの入り口を知ることができたという感じ。

20代の頃の一時期、東京大学でバイオインフォマティクスのお手伝いをしていたことがあるので、AGCTなどが出てきたのは懐かしかった。当時は今と比べたら本当に何もできないプログラマだったのでまったくお役に立てなかったことが悔やまれる。研究室の先輩と、秋葉原で30万円くらいでできるだけ高速な自作マシンを組み立て、Perlを使ってゲノムの検索処理などをしていた。今はクラウドが使えるようになったし、きっとバイオインフォマティクスの技術は格段に進化しているんだろうなと思う。当たり前かもしれないがHadoopなども使われているらしい。

p57より引用

コンピュータの授業でといた簡単なパズルの解法は、今の彼の設計技法を予見させるものだった。
(中略)
プロログというプログラミング言語を使って、この課題を書いた。

ちょうど本書のこの部分を読む前の日に、僕はまったく同じパズルを、子供と遊んでいた。「きっとこういうパズルはPrologとかで解けるんだろうな」なんて考えていたら、次の日にまるっきり同じパズルが本に出て来たのでニヤリとした。何かの縁だろうか、などと思ってしまう。宣言型プログラミング言語はとても興味深い存在だと思う。

p70より引用

データベース・プログラムは、K言語として知られるプログラミング・システムに基づいている。ラヴレスはC言語とよく似たプログラミングの授業は落第したが、すぐにこのK言語のパワーに夢中になった。

K言語などというものがあるのか…
Wikipediaの例を見た感じでは、「K言語については見なかったことにしよう」という印象だが、いつかもう少し調べてみる予定。

p77より引用

見つけたかったのは、過去数分間の市場の動きを参考に、次の五分間までの市場の動きを予測できる法則だ。しかし、どのような種類の法則を探せばいいのかがわからない。法則は、例えば一分間隔、五分間隔の市場価格の変動を示す線の勾配といった「属性」で形成される。

普段あまり目にしない、いわゆる「ウォール街のボットたち」を作り上げている人々に関する貴重な情報。僕は金融の世界でコンピュータを使って利益を稼ぐという発想は悪だと思っているが、中でどのような技術が使われているのかについては興味がある。

p96より引用

事故は「非同時的な改良」のために起こることが多い。
(中略)
例えば、1994年、米国の二機の戦闘機が、米国のヘリコプターを撃墜した。その戦闘機は通信システムがアップデートされていたが、ヘリコプターは古いシステムのままだったため、ヘリコプターのパイロットたちには戦闘機からの警告が聞こえなかったのだ。

「非同時的な改良」「局所的な最適化」がもたらす負の側面について。ソフトウェア開発者として心当たりがありすぎる要素である。気をつけるよう自らの肝に銘じておきたい。

p122より引用

彼が提案したのは、DNA鎖を切り貼りする方法でコンピュータをつくり、もっとも古典的な計算モデルである万能チューリング・マシンの動きをシミュレートすることだった。

僕はチューリング・マシンについてろくに理解できておらず、する必要も特にないかと考えていた。しかしこの例のように、非常に基礎的な部分を知っていればこそ応用を思いつく場合がある。やはり基礎は大事だな…と思わされた部分。

本書は部分部分で専門的な単語や解説が登場するため、まったく知識がない場合にはかなり眠くなるというか読むのが厳しいというのが正直な感想。だいぶ飛ばしたページもあるので、そのうち、もう少し知識を付けてから読み直したい。こんなマニアックな書籍を翻訳・出版してくれた講談社の人ありがとうございます。

Advertisements


Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s