久しぶりに、囲碁計算機の話です。
思い込んでいたものから解き放たれ、今まで見えていなかったものがいきなり見えるようになる瞬間があります。
何事も変化するときというのは、そういうものかも知れません。
最初に計算機の構想を思いついたとき、「囲碁の勝負の結果で答えを表す」という形しか思いついていませんでした。
つまり、1+2をすると「3目勝ち」、3×3は「9目勝ち」、という風なシステムです。
しかし、なんだかあまり深まっていきませんでした。割り算が思いつかないし、複雑な仕組みも作れそうにない。
これ以上、進歩しないのではないか。囲碁でコンピュータは無理だったのか。
しかしあるとき。もう覚えていないくらい、何気ない瞬間に思いつきました。
「囲碁は白と黒、0と1だ!!!」
ということに。
囲碁にもともと「十進法」の計算システムが付属していたため、そこで立ち止まっていたのですが
そもそも白と黒の二つの要素で成り立っているのだから
白=0 黒=1
の二進数で全てを説明してもいいじゃないか、と気づいたのです。
このシンプルなものをもとにすれば、複雑な仕組みも作っていけるかもしれない・・・!
マリオメーカー学会の、足元くらいには及ぶかもしれない・・・!
まずは、いくつかの大事な論理演算を作り始めました。
まずは「AND」
AND とは・・・
日本語にしますと「AとBが両方1のときにだけ、1が出る。片方でも0があれば、0が出る」
というものになります。
これだけですと足し算とか引き算とかにはなりませんが、こういった回路を組み合わせて繋いでいくと、いろんな計算ができるわけです。
囲碁で表現したものが、こちらです。
AとBという場所を設けており、ここが「入力」です。
0を入れるときは白石を、1を入れるときは黒石を入れます。
そして、そこから囲碁の最善手を打っていくと、
どちらかの石が取られるようになっています。
その石の色が出力となります。
AB、両方ともに白石を入れてみました。
0、0 という入力です。
こうすると、黒△の黒石たちが危なくなっている。取られそう。
黒1に打って、白石を取るのが最も良いみたいです。
そして左上を白2で守って、終わり。
白石が取られたので、「0」が出力されました。
今度は片方が白、片方が黒の場合。
こちらも黒がピンチなので、黒1で白石を取るしかなく、同じく白2となります。
こちらも白石が取れて「0」を出力しました。
さて、今度はABが両方とも黒の場合ですが・・・
こうなると、黒石が多くなって、心配がなくなりました。
今度は左上に黒1、3とやっていくのが良い手となります(これができたら初段)
白6となり、終わりです。
この結果、黒1の黒石が取られており、「1」が出力されました。
ABにどちらの石が入っているかによって、良い手が変わります。
その結果、どの石が取られるかを操作したわけです。
・・・いかがでしたでしょうか。
お気づきのように、このシステムを動かすには囲碁の力が必要となります。
でも、いいんです。
客観的に正しく成り立っているのが大事なのです。
実際のコンピュータでも、システムを動かすのは手動ではなく電力なのですから。
次回、実際の「足し算」ができる形をご紹介・・・できるかな
「マルシェル」にて販売中
「囲碁の仕組みだけでコンピュータの基礎を作ってみた」
において、二進法の研究成果を解説しております。
出力の様子をわかりやすく書いてみました。
囲碁をご存じないかたでも、一冊読み終えたら
囲碁の沼に片足が入っているはずです・・・笑
お手に取っていただけたら嬉しいです!
※コメント投稿者のブログIDはブログ作成者のみに通知されます