Quantcast
Channel: 気功師から見たバレエとヒーリングのコツ~「まといのば」ブログ
Viewing all articles
Browse latest Browse all 3544

bitの苦い味

$
0
0

コンピュータのイメージというのは、グリム童話の「靴屋のこびと」です。

夜中にこびとが素晴らしい靴をつくってくれるという他愛もない話のこびとです。
寝ている間に作業してくれます。


このこびと(コンピュータ)は小さな手と小さな脳で小さな作業を積み重ねます。

小さな手に乗るのは数bitで、脳の中にある論理ゲートはたかだか4つだけです。

4つの論理ゲートというのは恐ろしく小さな数です。DNAのプログラム言語がA,G,C,Tの4つであり、物理学の相互作用もまた4つしかない(重力、弱い力、電磁気力、強い力)というのと似て、驚くほど小さな数です。生命にせよ、物理宇宙にせよその複雑さと秩序を考えると、あまりに心もとない少なさに思えます。

4つしかないことを明確に示したのはブール論理学のブールであり、Not, Copy, And, Orのたった4つですべての数学の計算も、どんな論理式も組み立てられることを示しました(論理学としては、その後、フレーゲが登場し、ラッセルとホワイトヘッドが登場したのが寺子屋で学んだとおりです)。

いわばこの4つはすべての論理ゲートの原子であり、すべてのソフトウエアの原子にあたります。ブラックボックスの中のブラックボックスの中のブラックボックスを探って、マトリューシカの中のマトリューシカをさぐると、最後の最後はちいさなこびとが小さな手に数個のbitを持ち、脳とされるたった4つの回路を駆使しているだけの姿が見れるということです。


昨日の寺子屋でのゴールは3つありました。

1つ目は小人の手の小ささを体験するというものです。bitの感触です。
bitがわからないとこびとの気持ちは分かりません。
2のn乗を考えると(実際に手を使って計算することが大切です)、その数は指数関数的に増大します。それがビットです。nビットです。bitとはたかだか2進数の桁数だと思ってもOKです(といううかそれが定義だし)。

100,000,000,000,000と言われれば、大きい数であるように(10進法でも2進法でも)、そしてbitとは桁の数のことでしかないと考えれば、それほど難しいことはないように思います。

3ビットは101などの3桁の2進数のことであり、そのパターンというか数を10進法であらわせば、2の3乗で8となります。3桁で8通りの数字が示せるということです。10進法で言えば0~7です。ちなみに101=5です(2進数の101は10進数の5です)。これも丁寧に二進法から十進法に翻訳するなら、2^2+0+2^0=4+0+1=5です。
ビットというのはその意味で考えるのが楽です。nビットとは二進法でn桁ということであり、n桁でどれだけ概念空間を分割できるかと言えば、2のn乗です。

ビットは一つ一つが十分に小さいので、こびとの小さな手にちょうどいいのです。


2つ目は小人の気持ちになることです。小人の脳回路(4つしかなく非常にシンプル)を知り、実際に小人がしている単純で単調な作業をすることです。
これはかなり楽しい作業だと思うのですが、パスカルの三角形を応用しました。エクスクルーシブORで計算することでフラクタルを作りました。カラクリはシンプルでパスカルの三角形の偶数奇数を識別するとシェルピンスキーのギャスケットが出てきます。フラクタルですね。三角形の曼荼羅みたいなものです。偶数奇数というのは、結局は2で割った余りで分類したということに過ぎません。1が余ると奇数。0が余ると偶数です。剰余であり、ここから群論の考え方までは1歩です。パスカルの三角形の計算の作業は、こびとの盲目的な作業そのものです。こびとは何も考えていないですが、美しい描画が可能です。
$気功師から見たバレエとヒーリングのコツ~「まといのば」ブログ

単調な作業の繰り返しで、フラクタルがあらわれます。厳密にはフラクタルの近似ですが。そしてこれはそのままセル・オートマトンの導入にもなります。セル・オートマトンのGifは一番下に。

ちなみにこびとの世界の九九は簡単です。0×0=0、0×1=0、1×1=1です。
足し算も簡単です。0+0=0、0+1=1、1+1=10です。引き算は足し算に¬(NOT)の記号を使えばいいし、掛け算は足し算を繰り返せば良いことです。割り算も繰り返しの引き算です。


3つ目はユニバーサルコンピュータの感触です。コンピュータとは機械ではなく、概念の総称です。計算する機械であれば、コンピュータです。電卓もiPhoneもMacもPCもそろばんも計算する機械という意味ではコンピュータと言えます。
ファインマンはこの万能性を言語という比喩で説明しました。どの言語もほかの言語で言い換えることができる(どのアプリケーションも他のプログラム上で書いて走らせることができる。シュミレーション可能)ということです。「犬が走っている」という日本語を英語やフランス語、ラテン語で記述することができます(クワインの翻訳の不可能性など持ち出さないように。ここでは比喩として言語を持ちだしています)。これが言語のユニヴァサリティーであり、ひるがえってコンピュータの汎用性を示します。


ビットの感触を手に感じつつ、こびとの作業を体感したうえで、その単調で退屈な単純作業の集積が思いもよらない秩序と調和を産むというのがコンピュータサイエンスで学ぶことの半分です。


もう半分は、計算量の爆発(チェス盤と小麦粉の喩えと冪集合で少し扱いました)、停止問題(ゲーデルで前回やりましたが)、そして量子コンピューターと宇宙の関係(こちらも少し)です。こちらも講義ではちらっと触れましたが、より厳密に理解したいところです。

この感覚を維持しながら、セル・オートマトンの感触を身体に入れると、生命科学が分かり、宇宙の開闢以来の成り立ちが臨場感を持って理解できるように思います。その視点で脳科学や哲学(分析哲学)、認知科学に踏み込んでいく場として「塾」をスタートさせます。

*クリックして拡大するとスタートします。これはWikipediaからです。
$気功師から見たバレエとヒーリングのコツ~「まといのば」ブログ


Viewing all articles
Browse latest Browse all 3544

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>