ハッカーの系譜(10)マービン・ミンスキー (6) MITに集まったハッカーの庇護者

牧野武文

March 3, 2017 08:00
by 牧野武文

ミンスキー率いるハッカーたちは、しだいにMIT人工知能研究所の母体となっていった。といっても、具体的に人工知能を研究していたわけではない。それぞれが自分の好きなプログラムを書くことに没頭していたのだ。

ミンスキー自身はプログラミングがあまり好きではなかったようだ。「プログラムをしていると、別のことを考えてしまうんだよ。帰りに牛乳を買わなきゃとか、そういうつまらないことに気を取られてしまう」という。その意味で、ミンスキーはコンピューターハッカーではなかった。しかし、頭脳の明晰さ、常に湧きでるアイディア、奇想天外な機械づくりに熱中する体質はハッカーそのもので、MITに集まったハッカーたちから尊敬されていた。ミンスキーは第1世代ハッカーたちの庇護者であり、兄貴分であったのだ。

プログラミングがあまり好きではなかったミンスキーだったが、ハッカーたちがPDP-1でさまざまなアルゴリズムを考案するのに惹かれて、彼らの中に入ってプログラミングを楽しんでいる。それだけでなく、そこからミンスキートロンと呼ばれる不思議なプログラムまで発案している。

高速プログラムを書くことにこだわるハッカーたち

ことの起こりは、ハッカーたちが考えだした渦巻きを描くプログラムだった。しだいに広がっていく渦巻きを描くには、X^2+Y^2=r^2という円の方程式のX、Yにそれぞれ三角関数のsinとcosをそれぞれ代入してやればいい。しかし、当時のPDP-1は計算速度が遅かったので、ハッカーたちは三角関数を使わないアルゴリズムを考案していた。
 
LOOP{
NewX=OldX-epsilon*OldY
NewY=OldY+epsilon*OldX
}

というアルゴリズムだ。1回計算するごとに、NewX、NewYの値をOldX、OldYとして、新しいNewX、NewYの値を求め、描画していくと外に発散していく渦巻きが描ける。epsilonは1以下の係数が使われるが、一般的には、1/8、1/16などが用いられる。

このアルゴリズムの素晴らしいところは、整数演算だけで渦巻きが描けることだ。しかも、高速に処理できる加減算しか使っていない。epsilon*OldXのところで乗算が使われているように見えるが、epsilonが1/16などであることに注意していただきたい。実際の処理は、OldXを4桁ビットシフトさせる計算がおこなわれている。つまり、数学で習う円の方程式を考えなしにそのまま使うと、乗算がなんども登場することになり、当時のコンピューター性能では処理速度が遅くなってしまうが、このアルゴリズムでは、処理速度の速い加減算とビット演算だけで渦巻きを描いているのだ。

HAKMEMに残されているミンスキーのアルゴリズム

ミンスキーはあるとき、手下のハッカーたちに混ざって、この渦巻きアルゴリズムを書こうとした。しかし、帰りに牛乳を買うことにでも気をとられていたのだろう。つまらないミスをして、こんなプログラムを書いてしまった。
 
LOOP{
NewX=OldX-epsilon*OldY
NewY=OldY+epsilon*NewX
}

2番目の計算式の最後をOldYとすべきところを、NewXとしてしまった。

不思議なことに、このアルゴリズムを使って描画をしてみると、渦巻きではなく、正円が描けてしまった。周囲にいたハッカーたちが声をあげ、ミンスキー自身はなにが起きたのか把握するまでに時間がかかった。

正円が描けたからといって大喜びしているようなハッカーたちは、現在の目から見れば滑稽かもしれない。しかし、彼らにとってはおおごとだった。なぜなら、円を描くには、円の方程式X^2+Y^2=r^2を利用して、乗算をなんどもおこなうのろまなアルゴリズムしか知らなかったからだ。ところがミンスキーが偶然発見したアルゴリズムでは、高速の加減算とビット演算しか使われていない。

ミンスキーが主催していたMIT AI研では、このようなハッキングの成果をHAKMEMという文書に整理している。そのプログラミングハックの149番目のハックとして、このミンスキーの発見したサークルアルゴリズムが記載されている。

HAKMEMに記録された149番目のハック

次の世代に大きな影響を与えたミンスキートロン

ミンスキーは、すっかりこのアルゴリズムに魅了され、ハッカーたちとさまざまにいじくりまわした。そして、PDP-1のグラフィックモニターに、3つの点が絡み合いながら幻想的な模様を描いていくプログラムをつくりあげた。PDP-1のモニターには、スクロールさせたり、周波数を変化させるトグルスイッチがついている。ミンスキーのプログラムを走らせて、トグルスイッチをオンにしたりオフにしたりすると、幻想的な文様が描かれるのだ。

この美し描画プログラムのイメージは、後のスクリーンセーバーなどにも使われることになる。ミンスキーはこのプログラムを、トライポス(TriPos)と呼んだが、ハッカーたちは発見者であるミンスキーに敬意をこめてミンスキートロンと呼んだ。

このミンスキートロンは、現在でもmass:werkにシミュレーターが残されている。ぜひ、アクセスして、画面下のトグルスイッチをいろいろといじっくってみていただきたい。

ミンスキートロンのシミュレーター http://www.masswerk.at/minskytron/

なお、このミンスキートロンに触発されたスティーブ・ラッセルという学生は、抽象的なミンスキートロンではなく、もっと具体性のあるプログラムをつくりたいと考え、世界初のコンピューターゲーム「Spacewar!」を書きあげた。このSpacewar!を見たノーラン・ブッシュネルは、商品化して販売するためにアタリを起業した。アタリの社員だったスティーブ・ジョブズは、パーソナルコンピューターを商品化するためにアップルを起業した。アップルのパーソナルコンピューターには、ミンスキートロンとはやや趣きが異なるが、幾何学模様が描かれるスクリーンセーバーが必ず搭載されている。
 
(その7に続く)




ハッカーの系譜(11)スタートアップ養成する「Yコンビネーター」 (6) 株式と転換社債を使った「賢い」資金援助

May 23, 2017 08:00

by 牧野武文

養成機関運営の問題点 グレアムは、ビアウェブのときの仲間であるモリスとブラックウェルに声をかけてみた。2人はスタートアップ養成機関というアイディアは実に面白く、成功するだろうと太鼓判を押してくれた。ただ、モリスはすでにマサチューセッツ工科大学の教職の地位を得ており、ブラックウェルも自分のスタートアッ…