![見出し画像](https://assets.st-note.com/production/uploads/images/67712281/rectangle_large_type_2_eba6d79ad7416716a0f095a465b6c0ea.png?width=1200)
プログラミング進化論(1)(2009)
プログラミング進化論
Saven Satow
Jan. 17, 2009
"Philosophy is written in this grand book, the universe, which stands continually open to our gaze. But the book cannot be understood unless one first learns to comprehend the language and read the letters in which it is composed. It is written in the language of mathematics, and its characters are triangles, circles, and other geometric figures without which it is humanly impossible to understand a single word of it; without these, one is wandering around in a dark labyrinth”.
Galileo Galilei Il Saggiatore
1 コンピュータとは何か
「繊維王」豊田佐吉の長男豊田喜一郎は、1921年、10ヶ月に及ぶ欧米旅行に出かける。この寡黙な青年は、ローリング・トゥエンティーズのアメリカにおいてT型フォードが席巻するモータリゼーションに驚嘆している。まだ大八車が走っている日本とは大違いだ。帰国後の23年、関東大震災の復興のため、東京市はフォード社製トラックのシャーシを800台分輸入し、バスに改造する。このいわゆる「円太郎バス」が大衆の足となり、このアイデアが全国に広がっていく。
その光景を眼にした喜一郎は、アメリカのように、日本もいずれ大衆がクルマを所有する「自動車の時代」が到来することを確信し、自動車会社の創設を心に誓う。彼は、自動車熱をいさめる豊田自動織機製作所の社長豊田利三郎に対し、「自動車産業をつくり上げるために自分が豊田財閥をつぶしても、おやじは文句をいうまいよ」と返答している。
1937年、その豊田自動織機製作所の自動車部が独立し、トヨタ自動車工業が創業され、利三郎が社長、喜一郎は副社長に就任する。社名をカタカナにしたのは、「豊田という人名から離れることによって、個人的企業から社会的存在になる」(本間之英『社名の由来』)ことを目指したからである。翌38年、トヨタは愛知県挙母町に200万平方メートルの工場を完成している。89年、同地域は、この巨大な自動車企業が本社を置いている事情も考慮して、名称を「豊田市」と変更する。現在、豊田自動織機の筆頭株主はトヨタ自動車となっている。
モータリゼーションに関する喜一郎の予見は正しかったが、20世紀後半、その繊維産業で考案されたアイデアが生活の隅々にまでいきわたる。それは今や欠かすべからざる社会的インフラと化し、自動車産業にとってもなくてはならないものである。
それこそがコンピュータである。
コンピュータの起源はその定義にかかわっている。「コンピュータ(Computer)」を「計算器」と考えるなら、それはブレーズ・パスカルやゴットフリート・ライプニッツに遡る。前者は、1642年、歯車式の加減計算器を発明し、後者は、1694年、さらに乗除や平方根まで扱える歯車式の計算器を開発している。電卓が普及するまで日本のオフィスで利用されていた手回し式の「タイガー計算器」はその末裔である。
しかし、計算器とコンピュータとでは決定的に異なる点がある。前者は後者と違い、前もって計算手順を指示することができない。それが可能であるとすれば、操作を変更することができる。コンピュータは、そう考えると、「計算器」ではない。「器」には、一つのことに役立つが、その他には融通が利かないものという意味がある。なぜコンピュータの訳語が「電子計算機」であって、「電子計算器」ではないのかを熟慮する儀津ようがある。
確かに、コンピュータは計算している。一般のユーザーにとってコンピュータ上での計算はEXCEL程度だとしても、それ以外のWordやPaintなどのアプリケーションにおいてもコンピュータは計算している。
コンピュータは、稼動中、人の手が入らなくても自動的に計算を行う。そのためには、前もってそれぞれの処理の手順を厳密に順序よく指示する命令を記述しておかなければならない。「プログラム(Program)」が不可欠である。あらかじめ一連の計算手順をプログラムとして記しておけば、プログラム自身にも計算を施すことができ、それが判断して次の操作を変更できる。そう考えるならば、コンピュータは「データ処理装置」だと言える。計算器よりもシリンダー・オルゴールや目覚まし時計の方がコンピュータに近い。
データと情報はしばしば混同されているが、両者は厳密には異なっている。前者は機械による処理に適した記号の表現であり、後者は一定の約束事に基づいてそれに人間が与える意味である。
コンピュータは杓子定規である。「そんなこと言わないでさあ~ちょっとだけでいいからさ、負けてくれない~」とはいかない。現実的な時間内に有限的な計算手順によってデータを正確に処理するためのアルゴリズムが必須である。計算もプログラム次第だということは、コンピュータによる解決が果たして学問上認められるかどうかという問題を招いてしまう。
その典型が4色問題である。それは、どんな地図も、4色あれば、隣接する領域が異なる色で塗り分けられるはずだという問題である。ただし、統一前の西ベルリンのような飛び地は考えないものとする。1976年に ケネス・アッペル とウルフガング・ハーケン はコンピュータを利用して、この4色定理を証明する。しかし、彼らが書いたのは計算式ではなく、プログラムである。このプログラムは非常に複雑で、第三者による検証が困難であり、また、コンピュータ自体のトラブルもありえたため、当初、彼らの発表に異議をさしはさむ声も少なくない。その後、別のハードウェア上で違うプログラムを用いても同一の結果が出たことから、4色問題は解決され、「4色定理」と認められている。
もっとも、コンピュータは未解決の問題を解き、人類の英知に寄与しなければならないという崇高な使命感、および何が何でも達成するのだという不撓不屈の頑張りに支えられていたわけではない。与えられたプログラムに従って、まさに機械的に計算しただけである。コンピュータは、人間と違い、目的を自ら見出して行動することができない。
4色定理は、数学的には、グラフ理論に含まれる。グラフ理論で言う「グラフ」は地図や設計図など点と線で構成された関係図を指す。その起源は一筆書き問題に遡る。一筆書きは、つながっている線が奇数の「奇点」がなく、すべての点が結んでいる線が偶数である「偶点」という場合で可能になる。このアイデアはさまざまな対象に応用できる。時間割や電車の乗換図などもそうであるが、4色問題もその一つである。
今日のコンピュータの原理的な母体は、1801年にジョゼフ・マリー・ジャカール(Joseph Marie Jacquard)が発明した模様を織りこめる自動織機である。このフランス生まれの機械は、日本に伝わった際に、「ジャカード織機」として定着する。フランス語ではその固有名詞の末尾のdは、本来、発音しない。多色で、複雑な模様の織物を「ジャガード織」と呼ぶが、それが訛ったものである。19世紀の産業革命をリードした繊維産業におけるこの発明が20世紀後半世界を大きく変えることになる。
模様を織り出すには、異なった色に染められた縦糸と横糸の交差を変更させなければならない。縦糸を持ち上げて横糸を下に通し、また横糸をそのままにして横糸を上に通過させる工程によって模様がつけられる。これは従来手作業だったが、ジャカールはカードに横針と縦針を組み合わせた仕掛けにより機械化する。
織物パターンに対応した孔を開けられたカード、すなわちジャカール・カードを用意する。クランク機構によってナイフ箱が引き上げられると、ナイフにひっかかった縦針が持ち上がり、縦糸もつられて上がってその下を横糸が通過する。どの縦針がひっかかるかは横針の動き次第である。カードを入れ替えれば、別の模様を織り出すことができる。ジャカード織機はパンチ・カードによって制御されている。
カードの孔に当たった横針は決まった方向に動き、それによってバネ状になっている縦針が開放され、上部がその方へ振れ、ナイフにひっかかる。こうした織機の動作に伴い、シリンダーが動き出してカードを操り、横糸の位置を次々と指示する。しかも、この過程は反復可能である。孔あきカードを糸でつないでループにしておけば、同じ模様を大量に生産できる。
ジャカールは、その精巧さを人々に納得してもらうために、自分のポートレートを1万4000枚のカードを使って実演している。それを見て、よくできた絵だと誰もが思いこんでしまったと言われている。
ジャカード織機は、1873年、フランスから日本へ輸入される。日本の繊維産業が近代化されるはしりとなっている。1890年、洋式大型力織機が織物工場に導入される。力織機は「動力織機」の略称である。1897年、豊田佐吉はそれらを参考に、木製力織機発明する。これに刺激を受け、明治30年代、石油発動機を使い、安価で、小幅布を生産できる国産力織機が普及し始める。豊田佐吉は、1906年、豊田式織機会社を設立し、26年、自動織機を完成させる。
ジャカード織機をハードウェアとすれば、カードはコマンド、その順序立てがプログラムと見なせる。カード──正確には孔の位置──を変えるだけで、同じ織機で、別の模様を織り出せる。ソフトは孔なのだから、ハードと違い、実体がない。同様に、ソフトウェアを変更すれば、ハードウェアでそのままでも違う作業ができる。ジャカード織機がコンピュータの重要な原型と見なされているのはこのためである。
このアイデアを計算エンジンに応用できないかと考えた人物がドーバー海峡の向こう側に現われる。
つう あたしをわすれないでね。
(木下順二『夕鶴』)