なんだか雲行きの怪しい雑記帖

ぐだぐだ日記とメモと,あと不定期更新

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

週アレ(14) スタックマシンとレジスタマシン

週に一回アレしてアレすると思われた記事:十四回目

時間が空きました
分かってたつもりですが,本当に一回やらなくなるとその先もずっと手を付けられなくなりますね
主に私が新しいものに手をつける理由が最近ないからなのですが,それが何に起因するのか(あるいは起因しないからなのか)については言及しようとしてもしょうがないことですね
…意味不明だな…

それはさておき,今回は仮想機械(VirtualMachine:VM)の設計寄りの話でスタックマシンとレジスタマシンについてです
この辺はオレオレ言語の為に自分でVM作ろうとかそういうことを思わない限り個人で関わることはない話だと思います
”仮想機械”という単語だけだと,VirtualBoxやVMWarePlayerなどOSなどの大規模なシステムごと仮想化するシステム仮想機械(SystemVirtualMachines)も含まれてしまうのですが,今回はそちらではなく言語の実装などに使われるプロセス仮想機械(ProcessVirtualMachines)に焦点を絞ります

最初は仮想機械全体についての話も少し入れてありますが,それよりもスタックマシンとレジスタマシンの話を聞きたいんよという方は最初の方は飛ばして頂ければと思います 続きを読む
スポンサーサイト

相互的齟齬解消会

なんで程度問題を人に説明するときは極論による説明が有用なのかなぁ,とどうでもいいことを考えていた

単純に0.999999…が1であるように

そもそも0.9999…自体が極限という操作ではあるものの,分解すれば0.9+0.09+0.009+…という形になる
これに対して極限をとると1に収束するし,私達はその通りに「1に収束するもの」として認識する

人が程度問題を程度にしたがって説明する過程が,この後者の形に類似しているとしよう
すなわち,まず0.9を説明し,次に0.09を説明し,…という風にだ
人によって説明の順番が異なると思うが,そういう場合はとりあえずはこういった説明の仕方をする人が居る,という仮定だとしてもらっても構わない
johodentatsu_riso.png

なぜ最初から1として説明しないのかというと,それは1ではなく0.9999…であることを伝えたいからだ,としよう
ここが通常の説明ではなく,程度問題の説明とした所以なんですが

人の説明が0.9+0.09+0.009+…という風に記述できるという前提をたてただけでは,結局最終的に1となるため,早くも上述の仮定は成り立たないように思える
しかし,人の話が数学と違うところは,人間の伝達時には若干の齟齬がつきまとうところだ
つまり,足している0.9+0.09+0.009+…のそれぞれの値が,伝達時にランダムに増減することを表す

大まかな話をしている時の齟齬は大きい,これはつまり0.9を説明しているときに0.8だと伝わってしまったようなものだ
細かな話をしている時の齟齬は小さい,これはつまり0.00…009を説明しているときに0.00…008だと伝わってしまったようなものだ

こうして情報発信側が「0.9+0.09+0.009+…」とシリアルに情報を送っていても,伝送時のノイズにより受信側では各値がランダムに変化する
例えば「0.8+0.095+0.0088+…」といった具合だ
 (このノイズがどういった分布に従うかなどは,特に前提を置かないが,少なくとも情報発信者と情報受信者それぞれの知識量に依存したものになりそうであるということだけは確かそうに思える
  平均すればうまく0になるような分布かもしれないし,小さく見積もられやすい分布かもしれない)
johodentatsu_genjitsu.png

ここで大事なのは,こういった説明を聞いた受信側が「ああ,0.9+0.09+0.009+…という列だから,この人は1だと言いたいのだな」と理解できるかどうかだ
情報伝達時の齟齬の後の,受信側の(勝手な)修正作業の結果だ
この修正作業が得意な人とそうでない人とで,聞いた側が理解できるか否かが変わる

しかし問題なのは,こうした「0.9+0.09+0.009+…」という伝達仮定において,ランダムにノイズが混じった値が観測されることであり,そうした受信信号列からただしく元の値を推定(予測)できるかということである
つまり,情報発信者が発した情報列が「0.9+0.09+0.009+…」であるかということを見抜けるかということになる
もし受信側の修正作業が一歩間違えば,0.8に収束してしまうかもしれないし,1.1に収束してしまうかもしれない
この辺が程度問題の説明で難しいところだ

ここでは程度問題を最初から程度ありで話すことが「0.9+0.09+…」という形に似ているという仮定だったが,極論の場合はどうだろう?
これはずばり,「1」と伝えていることになるのではないだろうか
本当は程度の問題なので,詳しく言うと「0.9999999…」なんだけど,もう思い切って極限に持っていってしまった後の値を伝える
この場合は,ノイズが加わろうと二度か三度言えば大体1だと伝わるように思える
「1だ」「1だ!」「1だ!!」と言っているわけだから,ノイズがのる箇所が一箇所しかないし,そのノイズ分に対してだけ反応すればいいわけだから
johodentatsu_kyokuron.png


ところで,途中で『人の説明が”0.9+0.09+0.009+…”という風に記述できる』という前提を用いていたが,これが違う形であった場合はどうだろうか
私には,更に情報伝達が難しいような信号列に変形されるように思える

例えば,最初から事の仔細にまで踏み込んで話をしてくるような人の発信情報列はどんな感じだろう
途中で仔細な情報によって話がきれるので,「0.9」を伝えようとしている部分が「0.4+0.1+0.4」みたいな感じになるんじゃないだろうか
あるいは,話を盛ってから下げてくるような人もいる
その場合は「0.9」という信号は「1.1-0.2」とかに変形されるんじゃないだろうか
johodentatsu_random.png


確かに,これらは数値としては同じだ,客観的に見た時に言ってることは変わらないのだろう
ただ,これらの信号列を見る受信者がいて,重要なのは受信者にとって「それらが足して1に見えるか」という観点である
確かに,「0.4+0.1+0.4+0.09+0.009+…」という信号列は極限をとって「1」かもしれない
しかし,(この場合は)最初の3つの値の規則性とそれ以降の規則性が一致しないため,その後の信号を予測しづらく,うかつに極限をとりづらいという点だ
それを聞いて「1」だと理解できるのは,その答えを知っている本人か,極めて推測力の高い天才か,当てずっぽうで1だと予測したか,その辺だと思う



この話,自分にとってブーメランで帰ってくる批判とも捉えられるので辛い
人に分かってもらえるように説明するの,とても難しい…

特に理由はなかったが,丁度良く都合よく暇だったため図付きにしてみた
パワポ,図を作るのに楽

FC2Ad

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。