Powered by SmartDoc

コンピュータ概論(2002/11/27)
Ver. 1.1

2002年11月27日
栗野 俊一
kurino@math.cst.nihon-u.ac.jp
http://edu-gw2.math.cst.nihon-u.ac.jp/~kurino/comp/index.html
コンピュータ概論2002/11/27 の資料

目次

お知らせ

  1. すみません、現在、手元にNote-PCがない(修理中)なので、確実なことがいえないのですが、おそらく、今回のsecurity updateは、結構、重要な気がしますので、是非、行っておきましょう。
  2. 休講ではありません。なお、教室変更の案内は、コンピュータ概論のページで行います。

演習

万能シミュレーションマシンとコーディング

計算機:万能シミュレーションマシン

計算機を見る一つの観点として、「万能シミュレーションマシン」というものがあります。

つまり、「任意の出来事を模倣する機能を持つ機械」ということです。

しかし、その一方、計算機は、文字通り「計算を行う機械」です。

どうして、「計算」が、「模倣機能」になるのでしょうか?

実は、「コーディング」にそのマジックが隠されているのです。

コーディング:現実世界から記号への写像

コーディングを日本語に直訳すると、「符号化すること」となります。符号というのは、要するに記号列(3)のことであり、例えば「ここに事件の犯人がいる、これを仮にXとしよう..」などという時に、「事件の犯人→X」として、以下、「事件の犯人」の代わりに記号の「X」を利用しようということに他なりません。

「事件の犯人」などのような、「意味を持つ言葉」を、「X」のような(それ自身は無意味だが、単純な.. )記号で表現することを「符号化」と呼んでいるわけです。

この符号化によって、記述が単純化されるというメリットがあります。

例えば、「ルパンは、アリバイがない」、「不二子にはアリバイがある」、「アリバイがないのは事件の犯人である」なども、同様に「ルパン→L」、「不二子→F」「アリバイがない人物→A」と符号化を行うと、実は、これらの明言は、L=A, A=Xと単純化されます。

このように「現実の物事(事件、犯人など.. )」を、「記号(列) (X, L, A.. )」に対応させることを「コーディング」と呼んでいるわけです。

  1. A,B,C,...とか0,1,2,..など、それ自身やそれらを組み合わせたもの。

記号操作:抽象化された汎用操作

しかし、符号化のメリットはそれだけではありません、これによって実は、「記号操作」が行えるようになります。

実際、L=A, A=Xの二つの式(4)から、直ちに、L=Xすなわち、「犯人はルパンだ!!」という結論を得ることができます。

ここで、重要なことは、「L=A, A=XならばL=X」という性質(書き換え規則)が、そこに含まれている記号( L, A, X )の表している対象(ルパン、アリバイのない人物、犯人)と、余り関係なく(5)成立することです。

そして、このような形で、「与えられた記号列を別の記号列に書き換える」ことを、「記号操作」と呼んでいるわけです。

ここで重要な点は、「アリバイの無い人間が犯人だ」というのは、推理小説を読んでいるような人間にしか分かりませんが、一旦、「A=X」という式にしてしまえば、(「アリバイ」のような)特殊な知識の無い人間でも、「L=X」と判断(操作)できるということです(「犯人」という言葉の意味が分からなくても!! )。


                                                          (推理)
[現実の世界] ルパンはアリバイがない, アリバイがないのは犯人 → ルパンが犯人

             ----- ↓ψ ------------------ ↓ψ ---------------- ↑invψ ----

                                                          (操作)
[記号の世界]        L=A,                    A=X             →    L=X


                    『凡例』
                              ψ は[現実の世界]から[記号の世界]への写像
                           invψ はψ の逆写像

つまり、「現実の世界」の対象を、全て、「記号の世界」にマップ(写像ψで写像)し、その世界で操作(記号操作)を行い、現実の世界に逆マップ(写像ψの逆写像invψで写像)することによって、「現実の世界の操作を記号の世界の操作で表現」しているわけです。

ここで、現実の世界の対象を記号の世界の記号に置き換える写像ψがコーディングを行なっている(6)と言えます。

  1. ここで、「式」は、「記号(何らかの対象を表現する)」を「演算子(何らかの関係を表現する)」で組み合わせたものという程度の意味..
  2. さすがに、全く無関係とは言えない。何故なら「=」という記号が表している意味(等しい)が成立するようなものでなければならない。

    例えば、「L→ルビー, A→雨」などとすると、「L=A」は「ルビーは雨」といった、「意味のない」表現になってしまう。

    しかし、「事件の犯人」の例では、X, A, Lなどは、それぞれ「特定の人物」を表現しているため「=」で結ぶことには、常に意味がある。

  3. ここで注意して置きたいことは、任意のコーディングがこのように「都合良く」ゆくわけではないということです。

    今回の場合、この性質が成り立つのは、「=(等号)」に関して、「可換性( a = b→ψ(a)=ψ(b) )が成立するようにコーディングした」ということです。

    いってみれは、ψは、「=」に関する、「同型写像」になっているということです。

計算:記号化の記号化

今、更に、次のような対応関係を考えてみましょう。

記号の数値化
記号の意味 数値
a=bが成立する 1 φ(a=b) := 1
a=bが成立しない 0 φ(a=b) := 0
PとQが共に成立する φ(P)×φ(Q) φ(P,Q) :=φ(P) ×φ(Q)

すると、「ルパンはアリバイがない」は、「L=A」となり、これは成立するので、「1」に、「不二子はアリバイがない」は、「F=A」となり、これは成立しないので「0」になります。また、「アリバイのないのが犯人」は、「A=X」であり、これも成立するので「1」となります。

更に、「A=Bが成立するのは、A=CとB=Cの双方が成立すること」とすれば、「φ(A=B) :=φ(A=C) ×φ(B=C)」となります。

さて、このような状況で、「ルパンは犯人」を考えてみましょう。

記号の世界では「ルパンは犯人」は、「L=X」です。そこで、φ(L=X)を考えてみます。これは、「φ(L=A) ×φ(X=A)」と書き換えることができます。ところが、φ(L=A)とφ(X=A)は、共に「1」ですので、1 × 1 = 1となり、「φ(L=A) ×φ(X=A) = 1 =φ(L=X)」と計算できます。

つまり、φ(L=X)=1なので、「L=Xは成立」する、すなわち「ルパンが犯人である」が分かるわけです。

ついでだから、「不二子は犯人である」も確認してみましょう。

φ(F=X) =φ(F=A) ×φ(X=A) = 0 × 1 = 0

つまり、「不二子は犯人である」は成立しない(φ(F=X)=0 )ので、「不二子は犯人でない」わけです。


                                                          (推理)
[現実の世界] ルパンはアリバイがない, アリバイがないのは犯人 → ルパンが犯人

             ----- ↓ψ ------------------ ↓ψ ---------------- ↑invψ ----

                                                          (操作)
[記号の世界]        L=A,                    A=X             →    L=X

             ----- ↓φ ------------------ ↓φ ---------------- ↑invφ ----

                                                          (計算)
[数値の世界]        1 ×                    1               →      1


                    『凡例』
                              ψ は[現実の世界]から[記号の世界]への写像
                           invψ はψ の逆写像
                              φ は[記号の世界]から[数値の世界]への写像
                           invφ はφ の逆写像

つまり、現実の世界を数値の世界にマップすることにより、「推理」が「計算」できるわけです。

実は、原理的に「解る」こと(7)は、全て「計算できる」ことが解っているので、計算( +その流れの制御+コーディング)で、「何でもできる」と言えるわけです。

これが、計算機を持って、「万能シミュレーション」と言わせることを可能にしている原理だったわけです。

  1. かなり、いい加減な表現です。本来「解るとはどうゆうことか」ということを厳密に誰でも納得できる形で定義し、その定義の下に、このような表明をすべきです。

    しかし、ここでは、日本語の普通の意味で考えても、それほど間違ってはいません。

xlisp の演習

lispを参照して、先週に引き続き、2章の演習問題( [演習問題2.x.y]とある問題)を全て(8)解いてみてください。

  1. 演習2.3.9は、除く。これに関しては、来週説明の予定。

課題提出

今週は提出なしです。