<チューリング機械>
- 今回は、チューリングマシンについて興味を持ちました。計算をする機械ではなく可能かどうかを知る機械を作るとはなかなかやるなと思いました。さらに計算可能とはどういうことかを調べ、アルゴリズムのようなことをして、昔から今のプログラムの基礎ができていたことを実感しました。昔は高度な技術はなくとも高度な知能はあったんだと思います。
- 本日の講義で最も興味を持った事は、チューリングの考えです。普通だったら、普段何気何の疑問も持たずに何気なくしている計算の事を、改めて再確認しようとは思わない。また、チューリング機械に関しても、たった4つの動作だけで計算が出来てしまう事も凄いと思うが、コンピュータが開発される以前にこのような事を思いついたと言うのはとても凄い事だと思います。しかも、アルゴリズムにも対応しているので、プログラミングの理解を深めるにはとてもいい例だと思います。
- 今日の講義で興味を持ったことは、チューリング機械です。当初、チューリング機械は大きな発明だったと思います。チューリングの狙いとして、個々の問題の証明ではなく、「一般に計算可能とはどういうことか?」という点を追求していたことに興味を持ちました。適当な状態遷移関数を定義することによって計算できるという点が理解しやすかったです。
- 今日の講義で最も興味を持ったのはアラン・チューリングが計算理論のモデルとして提唱したチューリング機械です。チューリングの「紙に書かれた記号を読み、それに基本的な思考操作を加えて新しい記号書く。この操作の繰り返し」という考えはとても印象に残りました。そしてその考えを実行するチューリング機械もとても単純な行動で動いているのもちょっとした驚きでした。このチューリング機械がコンピュータの原型を取り、今でも使われているのにはアラン・チューリングの偉大さを感じました。
- 今回の講義で最も興味を持ったのは、チューリング機械です。計算を機械的に実行、計算過程を理想的な機械で表現というチューリングの考えに関心を持ちました。その中でも、テープを記憶装置・ヘッドを入出力装置・制御部をCPUと、コンピュータの原型モデルとなっていたのには驚きました。そして、有限状態制御部(状態移関数)の規則がアルゴリズムに対応しているという点は非常に大きなメリットと思いました。
- 興味を持ったのは、コンピュータの原型といえるチューリング機械である。この機械は、テープに書かれた記号を読み取って、それに基本的な思考操作を加えて新しい記号を書くことの繰り返しという、一見単純そうに見えるが、これだけで状態遷移関数によりどんな計算もできるということに驚いた。またアルゴリズムにも対応しているので、現在のコンピュータもチューリング機械の原理に近いと思った。
<オートマトン理論>
- 僕はオートマトンに最も興味を持ちました。僕はプログラミングは「文法が集合したもの」と思っています。今日講義の中に出てきた有限オートマトンの例の中でも「形式文法と似ている…?」とありますが、スペルミスが許されない、文字の順番がおかしいと受理されないといった所はまさに文法だと思います。
しかし、きちっと文法通りに当てはめれば、チューリング機械に代表される様々なオートマトンが定義できるというところにものすごい可能性を感じました。
- 今回の講義で一番興味を持ったのはオートマトンというものについてです。人間の思考の過程を状態の変化ととらえ、その状態というものを記号に置き換えれば、人間の思考を数学的に表すことができるという考えが面白いと思います。
そしてこのオートマトンの更に興味を引くところは、形式言語理論の中で分けられている4つの言語それぞれに(対応して)、オートマトンも4つの種類を持っているということです。こういったものの存在を知っただけでも面白く感じました。
- 今日の講義では、チューリング機械が少し難しかったです。でも、有限オートマトンの例で入力記号abと入力記号baが受理されるかされないのか、についてはよく理解できました。オートマトンの考えの中で、人間が頭の中、もしくは紙の上での計算過程(思考)を状態とし、それを記号で表現する、というこの発想そのものがすごいと思いました。
さらにすごいと感心したのが、その計算過程(思考)・数値を記号で表現できるのなら、言語・文字も思考の一部だと関連付けたことがすごいことだと感じました。だから、オートマトンの考えの中で計算だけでなく、文字・文章である英語の翻訳などにもこれらに応用がきくと考え付いたところに驚きました。
- 今日の講義で一番興味を持てた点は、コンピュータの原型モデルであるチューリングもオートマトンも一見するとまったくわからず見る気もおきないような計算過程も、ちゃんと順を追って見ていけばきっちりと理解できるわかりやすさを持ち合わせている点です。これはいっけん当たり前のように思えることですが、・・・(中略)このような繰り返しの計算法(状態遷移関数)を思いつくというのはとてもすごいと感心しました。
- 適当な状態遷移関数を定義すればチューリング機械で計算できるその種類によって色々なオートマンが定義可能となりオートマン理論と形式文法理論の融合によって1960年代はコンパイラ開発時代になったのはすごく興味を持ったし、状態遷移関数で思考を数学的に表現できる、それを言語の思考の一例として考えたのが一般人でが到底考えられない考えだと思った。
- 今回の授業で私が興味を持ったのはオートマトンについてです。やはり機械が感情などを理解する、といった表現に興味を持ったからです。
もし実際に機械が感情をもっているかというと違いますが、そういう感情などを状態変化などといった形で表せるというのは今後の発展しだいでは非常に社会に役立つだろうと考えますし、人類の発展にもかかわってくるからと考えたからです。やはりこの部分は人工知能などロボットの製作にもかかわってくると思いますので私は非常に関心を持ちました。
- 私はオートマトンに興味を持ちました。人間の計算過程などの状態を記号で入力すれば記号の変化規則を状態遷移関数で表現でき、その関数で思考を数学的に表現したりプログラム言語も理解可能という考えがとてもおもしろいと思いました。
<形式文法とオートマトンの関係>
- 形式言語理論とオートマトン理論を融合させてプログラミング言語論の基礎ができ、プログラミングというものがより分かりやすく、そして処理しやすくなったのだということを理解した。
- 今回の講義で興味をもったことは形式言語理論との関係です。言語の種類によって受理するオートマンが違うということにも興味を持ちました。オートマンの種類には講義の中ではプッシュダウンオートマン・線形有界オートマン・有限オートマン・チューリング機械やコンパイラもオートマンの一種と学びました。
<最適化について>
- 前回からの続きになってしまいますが、最適化のデメリットにも興味を持ちました。前回は、最適さのメリットばかりに目がいってしまって、デメリットの存在を全く考えていませんでした。確かに、するどくその通りだと思います。簡単な構文にはあまりみられませんが、長くなれば長くなるほど間違える可能性が出てきます。しかし、長い文にこそ最適化は必要です。その場の状況によって、工夫しうまく使いこなさないといけないものなのだなと納得しました。
- プログラムを最適化する際、コンピュータの方で式を並べ変えたときに自分が望んだものとは違う結果が出てしまうことがあるということに驚きました。 確かに機械が判断して並べ替えるのだから人間の望むものとは異なる場合があってもおかしくはありませんが、そうならないようにプログラムを組むように注意しなければならないのですね。
- 今回の講義の内容で興味を持ったのは、前回と同じくコンパイルです。始めは、機械が最適化を行っているからといって、プログラミングをする側も、より最適化をしたものを作ったほうが良いと思っていたが、逆に最適化をして、人が見てもわかりにくいものになってしまったら、プログラミングを人が行う意味がなくなってしまうと思う。やはり、プログラミングとは、人間が行うものなのだから、人にわかりやすいものを作る必要があると思う。
<ALGOL60(プロジェクト)の背景>
- 今回の授業で興味・関心をもった点は、単純にALGOL60プロジェクトの背景のところが興味を持ちました。形式文法理論、オートマトン理論、形式文法理論とオートマトン理論の融合、プログラミング言語理論の基礎が確立し、60年代には、コンパイラ開発の時代、70年代はプログラミング方法の研究と、社会がいろんなことで発展するのは、こういう背景も大きく関わっているのだろうなあと思い、関心を持ちました。
- 前回興味を持ったのはコンパイラだったが、コンパイラ開発以前に、形式文法理論→チューリング機械→オートマトン理論→形式文法理論とオートマトン理論の融合などがあり、そこからコンパイラが開発されたんだということに興味を持った。これから、プログラミング言語理論の基礎が開発され、プログラミング方法への研究へと発展していった。つまり、コンパイラが開発され利用されるようになったのは、オートマトンが鍵を握っていたということになる。考えた以上に根元が深く、こういう理論の流れになっているというのにも関心を持てる。
<感想>
- 有限オートマトンで、入力記号のabとbaについてどちらが受理されて、どちらが受理されないかということについて、先生のabという記号は受理されるがbaという記号は受理されない、I
have a penは受理されHave I a penは受理されないという説明がわかりやすく、さらに、abとbaを自分で紙に書いて考えて理解しプログラムとの関係を理解することができた。
- 授業中関心を持ったというか、特にわかったのが「チューリング機械」です。他の授業でチューリング機械について説明があったのですが、いまいち中途半端な感じがしてよくわからなかったのですが、今日の説明で有限状態制御部の規則がアルゴリズムに対応するなど、今までの知識でわかるような説明でわかりやすかった。
- チューリングマシンについてはこの講義の後にやってるシステム基礎論で触れてたことがある。チューリングマシンのことを前より理解できたのではないだろうか。
磁気テープを用いていたと聞いた記憶があるのだが(ちょっと記憶が曖昧)、個人的視点だと磁気テープにデータを保存するというのはちょっと考えれない。
CD-Rを音楽CDにするかデータCD-ROMにするかと言ったような感覚に近かったのだろうか。そう考えてみるとちょっと面白い。・・・あれ?チューリングマシンの話題が磁気テープの話題になってる。
- アラン・チューリングさんのチューリング機械はわかりやすかった。一見高校のときの数学とかを思い出しちゃったりするけど、「紙に書かれた記号を読み、それに基本的な思考操作を加え新しい記号を書く。の繰り返し、と例などを見ても意外と理解しやすかった。でも「フェルマーの定理」での「約350年間証明不能で1995年に解決」とすごく最近なことに驚いた。オートマンのほうではちょっと記号がたくさんで難しかったけど、なんとなく理解できた。
- オートマトンの考えを学んでつくづく思ったが、プログラムはやはり数学的な思考で成り立っており、言語・思考も数式として表すことが出来ることはすごいことである。それをどうプログラムにするかは、やはりそれを書く人間がどれだけ数学的な思考でいられるかが重要であるだろう。ただ、現在のプログラムはある程度人間に近い言語を用い、コンパイルの点でこの考え方が使われているが、上記でも述べたように私はその過程を知りたいから、数学的な思考をしっかりともたないといけないと、つくづく実感した。
- 今日の講義で、チューリング機械の動作と有限オートマトンに興味を持ちました。有限オートマトンはヘッドが一方向のみにしか動かないけど、チューリング機械のほうは左右に移動できるので使いやすいのかなと思いました。どちらも数学的な表現だったのわかりやすい内容で、理解しやすいものでした。
- 今回の講義を受けて思ったのだが、有限オートマトンの例のように計算でしくみを説明できるものは、できるだけ具体例(簡単な計算式など)を挙げて説明してもらえるとわかりやすいのではないだろうか。
<質問>
- 質問で、他にもあった線形有界オートマトンやプッシュダウンオートマトンといったものはどういったものなのでしょうか?
- 1995年にフェルマーの最終定理が証明されるまでに、コンピュータで証明しようという人は現れなかったのだろうか。コンピュータで証明しようとした人がいたとして、証明できなかったのだろうか。 現在、証明されてはいないが計算可能である定理などがあったとしたら、コンピュータで証明してみたい。「ある問題が計算可能かどうかをコンピュータでの処理が可能かどうか」というプログラムを作ることはできるのだろうか。
- 私が今日の講義で最も興味を持った点は、チューリング機械とオートマトンです。理由は、チューリング機械は開発された当時はどんな人がどんな用途で使っていたのか知りたいと思ったからです。チューリング機械の説明を聞いていたのですが、テープ、ヘッド、制御部などがあるということはわかりましたが、いまいちどんな機械なのかイメージできませんでした。