問題教育の計算可能性


22

計算可能な関数の概念を教えるのは困難です。Hilbert / Ackermann / Godel / Turing / Church / ...のような研究者が「計算可能性」の概念を発明した理由の考えを発展させようとしました。学生たちはすぐに「計算可能性とはどういう意味ですか」と尋ねました。そして、チューリングマシンを教えるまで答えられず、「チューリングマシンが計算すれば関数は計算可能です」と答えます。

そう、

チューリングマシン、λ計算、または同様の計算モデルに頼る必要のない計算可能性の説明はありますか?直感的な説明でも十分です。


10
「コンピューターが計算できるすべての機能」通常、私はプログラミング言語に頼ります。学生は言語を知っている可能性が高いからです。また、アルゴリズムの直感的な定義として、「関数を計算するための任意のレシピ」を試してみました。
ミカエルカディルハック

5
問題は、有限のステップ数で離散動的システムの進化を支配するルールの有限セットによって解決できる場合、計算可能です。
モハマッドアルトルコ

1
また、ヒルベルトの10番目の問題を使用して、数学の計算可能性の概念を形式化するなど、それが解決不可能である理由と解決不能の証明が必要であることを生徒に説明できます。
モハマドアルトルコ

別の質問:Church-Turing Thesisは、他の「合理的で一般的な」計算モデルのマシンで計算できる場合にのみ、チューリングマシンで関数を計算できると述べています[Goldreich、2008]。それでは、モデルに依存しない計算可能性の概念は考えられますか?
MS Dousti

回答:


37

75年前、コンピューターはありませんでした。そのため、コンピューターの数学的アイデアを非常に慎重に説明する必要がありました。

今日、誰もがコンピューターが何であるかを知っており、おそらくほとんどの時間を持ち歩いています。これは、テープを備えたマシンというかなり時代遅れのアイデアをスキップできるため、教育で非常にうまく使用できます。つまり、誰がテープを使うのですか?(私はあなたがin辱されたと感じていることを知っています、そして、チューリングは偉大な人であり、すべてのものであり、あなたに同意します)。

クラスに足を踏み入れて尋ねるだけです。それでは、iPhoneで計算できないものはありますか。これにより、すぐに制限されたリソースについての質問が表示されます。あなたは言う:あなたのマシンが実際に無制限のメモリを持っていたと仮定すると、計算できないものはありますか?そして、もう少し理想化して、数論関数に注意を向けます(現時点ではFacebookに興味がないので)。コンピューターの仕組みを少し説明する必要があります(コメントに記載されているように、ハードウェアを記述する代わりにプログラミング言語を使用できるため、学生はプログラミング言語を知っていると良いでしょう)が、その後、計算可能性のすべての古典的な引数を使用できます結果を導き出す理論。生徒のマシンの心象がiPhoneであることは関係ありません。実際、それは重要です:iPhoneが特定のことを実行できないことを知るためにより関連性があります。


2
私はこの議論がとても好きです。なぜなら、それは具体的なもの(iPhone)から抽象的なものになるからです。
スレシュヴェンカト

2
ここに興味深いパズルがあります:Haskellのsmnとutmの定理は何ですか?
アンドレイバウアー

18
「75年前にはコンピューターはありませんでした。」これは単純に偽です。75年前には、たくさんのコンピューターがありました。彼らは人間であり、ほとんどが女性でした。彼らは高度な数学の学位、いくつかの初歩的な機械計算ツール(機械やスライドルールの追加など)、そしてたくさんの紙を持っていました。これらのコンピューターは、第二次世界大戦中のマンハッタンプロジェクトとブレッチリーパークの両方のバックボーンでした(爆弾とボンベにもかかわらず)。これは、チューリングがモデル化していたコンピューティング環境です。鉛筆と紙を持った人間です。
ジェフ

10
@ジェフ:さあ、あなたは私の意味を知っています。
アンドレイバウアー

8
@JeffE:仮説を検証できます。同僚に行って、「短いスカートをはいたコンピューター」の絵を描いてもらいます。何人が人間を描いたかを報告してください。
アンドレイバウアー

12

「関数は、入力から出力に進むための「効果的な手順」があれば計算可能です。」このトピックを紹介するとき、私は過去に彼ら(学生)が二次方程式を解くための効果的な手順を持っているが、5次以上の方程式を解くための手順を持っていないことを指摘しました。これは、「効果的な手順」をどのように形式化するかについての議論につなげることができますが、その議論はあなたが起こしたいものですので、それはバグではなく機能だと思います。


3
Nitpicking:Abel-Ruffiniの定理は、5次以上の多項方程式に対する一般代数的解法、つまりラジカルの解法は存在しないと述べています。ただし、Bring radicalなど、5次方程式の閉形式の解を取得する方法があります。
MS Dousti

あなたのnitpickingは実際に正しいです。計算可能性について議論するとき、「許可された操作」のようなものについて話したいと思う。そして、多項式の解は、それを詳しく見るほど複雑になるものの一つである。しかし、導入のために、「効果的な手順」という言葉と二次式の言及が大きな出発点になると思います。それらは完全に正しいわけではありませんが、直感はかなり正しいです、IMO。
ピーターブース

8

おそらくポイントは、これらのモデルのすべてが計算可能性の概念が何であるかをキャプチャすることを目的としたということです。それらのすべてが同等であるという事実は、彼らがキャプチャしようとしている概念が堅牢であることを意味します。したがって、これはジレンマを免れませんが、この堅牢性は、「関数を計算するチューリングマシンがあれば関数は計算可能」という概念に信gives性を与えます。


6

「コンピュータには納得のいく答えが得られないという質問はありますか?」そして、「木が森に落ちた場合、それは音を立てますか?」などの哲学的な質問に向けて議論をリードします または「来世はありますか?」私たちはすぐに、人間の言語は数学的に表現できないパラドックスや概念を含むyes / noの質問を表現できるというコンセンサスを得るので、計算できない質問があります。

それから、整数やグラフなど、コンピュータで表現できる概念について計算不可能な質問があるかどうかを修辞的に尋ねます。はい、1つの例は有名な停止問題です。これは、プログラムの説明を調べて、無限ループがあるかどうかを言うことです。直感的には、無限ループはブラックホールのようなものであり、無限ループを監視するプログラムは無限ループ自体に閉じ込められる可能性があります。したがって、その問題に答える手順は永遠に実行される可能性があるため、「アルゴリズム」の定義により、停止する問題に答えることのできるアルゴリズムはありません。

次に、チューリングマシンの証明に戻ります。


0

まあ、特定のパターンによって形成または生成される入力を受け入れる場合、関数は計算可能です。特定のパターンとは、すべての入力に関係があることを意味します。特定の入力は、前または次の入力によって生成できます。入力にこのタイプのシーケンスがない場合、受け入れることができるモデルまたは関数を開発する可能性はありません。もっと言いたいのは、機械と人間の間には基本的な違いがあるということです。非シーケンシャル入力用にマシンを形成することはできませんでしたが、人間はできます。また、これは実際の人間の動作ロボットの作成の大きな中断です。


問題は計算可能性を教えることです。その質問に答える材料に答えを制限するとよいでしょう。OPは学部生を教えているため、個人的な意見(最後の3つの声明など)が範囲に含まれない可能性があることに注意してください。
ビジェイD
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.