このDifference Engine No.2の建造であるが、その凝り方は半端ではない。使用されている材料は鉄、真鍮、青銅などであるが、バベッジが残した部品を分析して同じ組成の材料を製造して使用したという。また、当時の加工技術は、1/1000インチ(約25ミクロン)程度の精度であるが、現在のコンピュータ制御のCNCマシンでは容易に1ミクロン以下の精度が出せてしまう。そこで、バベッジの図面からCADデータを作り、個別の部品ごとにCADデータベースの値に乱数を足したり引いたりして、最大誤差が+/-25ミクロン程度になるようにして加工したという。このため、組み上げると完全には嵌合しない部分が出てきて、その部分は当時と同様にヤスリで削って寸法を合わせたという。従って、このマシンは形だけを真似たレプリカではなく、バベッジの設計当時の材料、加工技術で150年後に作られた本物のDifference Engine No.2である。
このマシンは計算部とプリンタ部の合計で8000個の機械部品から構成されている。これは私の勝手な推定であるが、Difference Engine No.1の建造には、当時の最高の加工技術を持つ工房と契約し最高の技術を持つ職人を使ったのであるから、今で言えば高級エンジニアを使うようなものである。従って、現在の貨幣価値で言えば、1人月で100万円とか150万円程度掛かったと思われる。それでどの程度の生産性があったのか分からないが、高精度を要求されるので、オシャカになるものもあり、一人当たり5個/月の生産性であったと仮定すると、8000個の部品の製造には1600人月が必要であり、Difference Engine No.2の製造には、現在の貨幣価値では16億円~24億円掛かる計算になる。これは、まさしく、当時のスーパーコンピュータである。また、1600人月の仕事を30人の職人でこなすには、53ヶ月が必要であり、部品の製造だけで4年以上かかることになる。Difference Engine No.1は25,000個の部品を使う設計であり、当時、バベッジが完成できなかったのも無理からぬところである。
Difference Engineは多項式を計算するマシンである。多項式
をマクローリン展開すると、
と表わされ、n次の多項式の場合はn+1項の和で表わすことができる。
ここでf(0)、f(Δ)、f(2Δ)、…、f(nΔ)を計算し、f'(0)=Δf(Δ)-f(0)、f'(Δ)=f(2Δ)-f(Δ)、…のように隣接した差分を計算し、更に、f''(0)=f'(Δ)-f(0)、f''(Δ)=f'(2Δ)-f'(Δ)、…のように次々と差分を取って行くと、n回目の差分(Difference)は定数になる。
多項式の計算を、
のように計算すると積和演算が必要になるが、f((n+1)Δ)をf(nΔ)+f'(nΔ)、f'(nΔ)をf'(nΔ)+f''(nΔ)、…と順に差分の和として表わすと、n回目の差分は定数であるので、加算だけで次々と多項式の値を計算できる。
バベッジの時代には関数電卓などという便利なものは無かったので、三角関数や対数は多項式近似してその値を計算していた。(実は、関数電卓も中では同じようなことをやっている) しかし、毎回、この作業を繰り返して値を求めるのは大変であるので、機械や建築設計などで必要となる三角関数や対数などは、数表を使って求めていた。数表はこれらの関数の値が並んだ本で、関数電卓が普及する前には使われており、少し古い読者ならご覧になったことがあるのではないかと思う。最近使うことは全く無いのであるが、筆者の本棚にも丸善の7桁対数表が、まだ、残っている。
バベッジの時代には、数表は人手で近似多項式の値を計算し、それを書いたものを基にして、活字を拾って版を作り、活版印刷で作られていた。しかし、人手の計算や書き写しには間違いが入りやすいし、一文字づつ鉛の活字を拾う工程でも間違いが入る。このため、当時の数表は平均的に1ページに数箇所の間違いがあったという。
更に、鉛の活字が詰まった版は重いので、運搬の途中でひっくり返したりして活字がこぼれ、それを勘で、この辺というあたりの空きポジションに戻すので、数表は再版を重ねるごとに間違いが増えるという状況であったという。
そのような数表を使って設計が行われていたので、数表の間違いから蒸気機関などの設計にエラーが入り事故が起こるのは時間の問題と心配されていた。バベッジは、このような問題を解決して正しい数表を作ることを目指し、自動的に多項式を計算し、そしてその結果を印字するマシンを設計した。さらに、このマシンのプリンタは、紙に計算結果を印字するだけでなく、トレイに載せた軟らかい石膏に印字する機構をもっており、この石膏型に鉛を流し込めば活版ができるという画期的なものである。
Difference Engine No.2でプリントされた石膏板 |