日本でハリウッドVFXを制作! 「経産省アイディアボックス」 結果:  
●まとめエントリはこちら ●FAQ ●お問い合わせは左のメールフォームから

2009年2月15日日曜日

変数とはなにか (7): チューリングマシン その1


今回はチューリングマシンに絞ってみた。
題材が「変数とは何か」のはずが「コンピューターとは何か」に変わってしまっている。(^^;)


コンピュータ偉人伝

アラン・チューリング 
難解な数学論文に初めて出現したコンピュータ

シャノンとほぼ同じ時期にチューリングマシンがうまれた。


アラン・チューリング(wiki)
チューリングマシンは現在のコンピュータを先取りした概念で、今日から見ればコンピュータを抽象化したものであるともいえる。
この論文でチューリングはまず、チューリングマシンを適切に設計すれば、いかなるアルゴリズムもチューリングマシンで実行可能である事を証明した。


すべてのアルゴリズムを実行可能にするには、チューリングマシンにある機能が必要だと言うことになる。
ということは、アルゴリズムには、「メモリ」と部品は不可欠ということと考えて良いのかもしれない。
普通のコンピュータはチューリングマシンほど単純ではないかもしれないが、
アルゴリズムを細かくかみ砕いてけばチューリングマシンで実行可能な状態におとしこまなくてはいけない。


生物アルゴリズム:生命は計算できるか第5回
ここにはチューリングマシンと最初のコンピュータについてもうすこし詳しく書いてある。
原典は、「2000年12月~2001年6月の間に月刊アスキーに連載された、 『生命は計算できるか? チューリングへの旅』(著者:星野 力:ほしの つとむ)」

第一章、計算手
チューリングマシンこそコンピュータの定義そのものである。
大数学者ヒルベルトは,誰もが納得する単純な理屈から数学全体を導き出そう(公理主義という)と呼びかけていた。そのためには数学者がやっているメンタルな作業とは何なのか,数学者の心の中をモデル化しないといけない。それがチューリングの思考の原点だった。

コンピュータの歴史をみてくるとブール代数を中心とし、数学的思考に深く関係していることはわかっていたつもりだが、チューリングの思想の原点もそうだったのかと納得。
このページには、もっとチューリングマシンのテープとオートマトン部を人間の計算中の状態との類似性を説明してある。
チューリングマシンを理解する上でもわかりやすい説明だ。

ある人が紙と鉛筆をもって何かを計算しようとしている場面を想像してほしい。
「計算している人」とは英語でコンピュータ(Computer:計算手)と言う。
運転している人をドライバ(Driver:運転手)というのと同じだ。
当時(1934年頃),今われわれが持っているような「コンピュータ」はまだ出現していなかったことに注意してほしい。

 計算している人(計算手,数学者)の心理状況はどうなっているのだろう?
まず計算手は紙の上の注目点にかかれている記号(一目で読み取れる範囲内にあれば複数の記号群でもいい)を読み,その記号に従って自分の「心の状態」を変え,それと同時にある記号を紙に書き,目を隣へ移す。
または同じ場所に目を留めておく。
これを繰り返して,ある結果がでたときに「やった!」という心の状態になって計算を終える。
もちろんいつまでも悩んで堂々巡りをして計算が終わらないこともある。
心の中には,有限個の状態とその間を移り変わる(遷移する)ときの方法(手順)が入っている。
この手順は有限の長さだろう。
なぜなら無限に長い手順は頭に入らないから。これが人間がやっている計算だ。
計算というと数字を扱うものと思われがちだが,相手は記号でも式でも定理でもいい。




チューリング・テスト再考

途中まで拾い読みをしただけなので、あとでじっくり読んでみたいが、
チューリングテストの論文を解説を含めてかいてあっておもしろい。
DigitalComputerのところでデジタル計算機について説明がされている。

デジタル計算機は、
1:記憶装置(store)、
2:実行ユニット(Executive unit)、
3:制御装置(Control)
の3つの部分から成り立ち、これによって、記憶装置に与えられた命令表に従って処理を行っていく。
処理内容は、演算、入出力、分岐、条件判断などである。

デジタル計算機は、これまで述べてきた原理によって作ることが可能であり、また実際にそのように作られてきたのだということ

デジタル計算機に命令表を与える作業、つまりプログラミングについては、次のように述べている。
機械に複雑な操作を行う人間計算機の行動を真似させたいときには、
計算機である人にどのように行っているのかを尋ねたうえで、
その回答を命令表の形に翻訳しなければならない。

命令表を組み立てることは通常は「プログラミング」と呼ばれている。
「機械が操作Aを実行するようにプログラムする」というのは、
機械が操作Aを行うように適切な命令表を機械に入力するということである。

バベッジの分析機関がすべてメカニカルなものだった(つまり電気的/電子的ではなかった)という事実は、我々の中にある思い込み(=電気的でなければならないということ)を取り除くのに役立つだろう。

すべてのデジタル計算機はある意味で等価である以上、我々は、電気を使用するということは理論的には全く重要なことではないということが分かる。

…。電気を用いるという特徴は、(デジタル計算機と神経系との)極めて表面的な類似でしかない。もしデジタル計算機と神経系との間の類似性を見いだしたいのであれば、我々は、(両者の)機能の数学的なアナロジー(類似性)を検討するべきである。

(以下略)



計算する機械と知性


アランチューリングの論文の日本語訳

0 件のコメント:

コメントを投稿