GEBを読む:記述のレベルとコンピュータシステム(3)
GEBはたまに物理の話が出るから困る。気まぐれで20周年版で追加された著者からのメッセージを読んでみるとなかなかおもしろかった。この本は意識はゲーデル的な不思議の環なしに語れないということを信じているという告白本らしいです。ホフスタッターはノーベル物理学者の息子で、自身も物理学の博士号持ってるらしい。すごいわ。
天候
地表の大気を「ハードウェア」、天候を「ソフトウェア」に例える。人間が理解できるのはこの天候の範囲で、もっと低レベルなとこまではよくわからない。竜巻とか、かみなりとか完璧に予測しようと思ったら原子レベルまでシミュレートしないといけない。天候をアセンブリ言語に相当する中間層(局所的な日照りとか竜巻とか)が存在すればそれを理解すれば、天候が予測できるのか。中間層っぽいのはなんとなくわかるけど、問題は天候におけるこの層では記述レベルがきっちり分けられた層ではないということだ。層が完全に分かれていないと高レベル層の理解が低レベル層に依存してしまう。
そういや地球シミュレータってあったけど、あれは何やってるんだろ。
原子
P305
「システムとは相互に働きあう部分の一群のことである」
社会システムでは色々見方あると思うけど、例えば消費者か生産者かとか、そういう部分的なものがお互いがなくてはならない存在になる。これがシステム。
原子核は陽子と中性子からなる。原子核となってるときはお互いが引き合って、各要素は孤立していない。しかしあまりに密接に繋がっているために原子を主に研究する核物理学者は原子より低いレベルのことをモデルとしてまとめたものを扱う。分子生物学者は原子をモデルとして扱うし、細胞学者は分子をモデルとして扱う。全く無視できるわけじゃないし正確ではないけど、そうしておくことで自分の研究分野に専念できる。
「コンピュータはしろといわれたことしかできない」
「コンピュータに『しろ』といったことの結果は、あらかじめわかってはいない」
高レベルになればなるほど、どういう結果になるのかわからなくなる。関数は写像だし、入力が与えられれば出力は決まる。事実としてはわかってるはずなのに観測する人にとってはまだわかっていない。
なんか奇妙だ。
システムの二つの型
あるシステムでは、ある部分の行動に他の部分の行動を打ち消す傾向があり、その結果、低いレベルで何が起こっているかをあまり深く考えなくてよい
ガスの容器、ミクロ的に分子は非常に複雑な動きするけど、マクロ的に温度・圧力・容積から正確な法則(PVT関係)で説明できる。この法則を使って低レベルな面を無視できる。
家を購入するのに建築技術は知らなくてもいい。餅は餅屋。その下位システムが信頼できるものであればいいのだけど…。
以上をソフトウェア設計の話に適用してみる
いわゆる凝集性と結合性で、あるまとまりを高凝集にして、単一のAPI等から操作できるようにする。低レベル層を意識せずともその機能を享受できる。高結合は悪い設計、何が悪いか。人間にとってわかりにくいから。じゃあ超人的記憶力を持ちさえすればそういうのは関係なくなるのか。
モデル化というのは人間にとってわかりやすいようにするだけ。だけどそうしないと人間自身が処理できなくなる。それに、他人に伝えるという点でも重要な役割を果たす。しかしモデル化は機械が処理する場合や真理的には関係がない、むしろ不正確なもの。
コメント
コメントできません (ログインするとコメントできます)
コメントはまだありません