2011-12-21 (水)
*Cornwells life game
そのうち作ろうと思っていたもののひとつに,広さが無限のライフゲームがあったのを,会社の某IRCチャンネル見て思い出した.
無限のメモリを用意することは物理的に不可能だけれど,開始時点で生きているセルの数を制限してメモリに載せることはできる.
もちろん,動かしていくと必要なセルが増えていくのでいつかメモリが溢れそうだけど,PCに搭載されているメモリも年々増えていくことを考えると,必ず溢れるとは限らない.
ライフゲームのセル数の増加は,時間の自乗より多くなり得ないので,メモリがムーアの法則かそれに近い形で指数関数的に容量の増加を続けるならば,近いうちに,実メモリの増加が,必要な量の増加より多くなるはず.
18年前に15*15のセルのライフゲームを1fpsで動かしたことがあったけれど,もしそのまま動かしていれば,1セル1ビットで表しても,最大で40PBになっている可能性がある.
たとえ理論上最大の速度で大きくなっても,実際は,かなり疎な構造になっているはずなので,圧縮すると数百分の1とかにできるかも.
それでもまだメモリに載りそうもないですが,今同じプログラムを走らせ始めたとして,18年後に数PBのメモリを何らかの形で使えるか考えると,実現する気がする.
ただ,グラフ描いてみると分かるけど,まだ必要なメモリが上回ってしまう期間がかなりありそうなので,やるなら10年後とかかなあ.上手く圧縮できればどうにかなるか微妙なところ.
実際はライフゲームじゃなくても何でも良いのだけど.
PCのメモリの容量の増加は今は秒間あたりだと数百バイトだけど,40年後には数MB/sになってるはずだし,できることがかなり広がりそう.問題は,アプリケーションが消費するメモリの量も今のところ指数関数的に増えてることですが….