タグ付けされた質問 「halting-problem」

特定のプログラムが特定の入力で停止するかどうかを決定することである停止問題に関する質問。

12
なぜ、本当に、停止問題がそれほど重要なのでしょうか?
プログラムが停止するかどうかを判断する可能性を却下するために停止問題が頻繁に使用される理由がわかりません。ウィキペディア[記事] [1]は、有限のメモリを備えた決定論的なマシンが以前の状態を停止または繰り返すことを正しく説明しています。リンクされたリストがループしてO(1)のスペースの複雑さでホールティング関数を実装するかどうかを検出するアルゴリズムを使用できます。 Halting Problemの証明は、いわゆる「パラドックス」、つまり、嘘つきのパラドックスと同じように(少なくとも周期的な)自己参照の矛盾にすぎないように思えます。唯一の結論は、停止機能がそのような不正な質問の影響を受けやすいということです。 したがって、逆説的なプログラムを除き、停止機能は決定可能です。それでは、なぜそれを反対の証拠として保持するのでしょうか? 4年後:これを書いたとき、私はちょうどこのビデオを見ました。プログラマーはいくつかのプログラムを取得し、どのプログラムが終了するかを判断する必要があり、ビデオではそれが不可能な理由を説明しています。欲求不満だったのは、arbitrary意的なプログラムがあれば、主人公がそれらが終了したかどうかを証明できる可能性があることを知っていたからです。一般性の概念はどういうわけか失われました。「一部のプログラムは終了することが証明できない」と言うことと、「プログラムが終了することが証明できない」と言うことの違いです。そのための多くのアルゴリズムが正式に実証されています。私がオンラインで見つけたすべての参考文献によってこの区別をすることができなかったのは、この質問のタイトルにどのように来たかでした。このため、私はその答えに本当に感謝しています これにより、停止関数がブール値ではなく3項として再定義されます。

5
ゲーデルの不完全性定理、停止問題、普遍的なチューリングマシンの間に具体的な関係はありますか?
私は常に、上記の質問に対する答えは以下の線に沿って肯定的であると漠然と考えてきました。ゲーデルの不完全性定理と停止問題の決定不能性は、決定可能性についての否定的な結果であり、対角線の議論によって確立されました(そして1930年代)。したがって、それらは何らかの形で同じ問題を見る2つの方法でなければなりません。そして、私はチューリングが普遍的なチューリング機械を使用して、停止の問題が解決できないことを示すと思った。(このmath.SEの質問も参照してください。) しかし、今(計算可能性のコースを教える)私はこれらの問題をより詳しく見て、私が見つけたものにかなり困惑しています。だから私は私の考えをまっすぐにするのに助けが欲しい 一方で、ゲーデルの対角論は非常に微妙であることに気付きます。それは、それ自体の導出可能性について何かを言うと解釈できる算術ステートメントを作成するために多くの作業が必要です。一方、私がここで見つけた停止問題の決定不能性の証明は非常に単純であり、普遍的なチューリングマシンの存在は言うまでもなく、チューリングマシンについても明示的に言及していません。 ユニバーサルチューリングマシンに関する実際的な質問は、ユニバーサルチューリングマシンのアルファベットが、シミュレートするチューリングマシンのアルファベットと同じであることが重要であるかどうかです。適切な対角引数を作成するためにそれが必要だと思っていました(マシンにそれ自体をシミュレートさせる)が、ネット上で見つけたユニバーサルマシンの説明の戸惑うコレクションでこの質問に注意を見つけていません。停止の問題ではない場合、普遍的なチューリングマシンは対角線の引数で有用ですか? 最後に、私はこのさらなるセクションに混乱しています同じWP記事の中で、ゲーデルの不完全性のより弱い形式は、停止する問題から生じていると述べています。矛盾を導き出せなければ理論は一貫していることを知っています。自然数に関する完全な理論は、自然数に関するすべての真の記述がそこから導き出せることを意味するように思えます。私はゲーデルがそのような理論は存在しないと言っていることを知っていますが、そのような仮説の獣がどのように健全である可能性があるのか​​を見ることができません。 、したがって完全性によっても導出可能であり、一貫性と矛盾します。 これらの点のいずれかについて明確化をお願いします。

10
人間の計算能力:人間はチューリングマシンの停止問題を決定できますか?
チューリングマシンでは(チューリングマシンでの)停止の問題は決定できないことがわかっています。人間の心がこの問題にどれだけうまく対処できるか、チューリングマシンや汎用コンピューターの助けを借りて、何らかの研究がありますか? 注:明らかに、最も厳密な意味では、ノーと言うことができます。チューリングマシンは非常に大きく、1人の人間の寿命には読めないためです。しかし、これは無意味な制限であり、実際の質問には寄与しません。したがって、物事を均一にするためには、任意の寿命を持つ人間を想定する必要があります。 チューリングマシンTが適切な方法で表され、任意の長寿命の人間Hと任意の量のバッファー(紙+ペン)が与えられた場合、HはTが空の単語で停止するかどうかを判断できますか? 結果:答えが「はい」の場合、チューリングテストに合格する可能性のあるコンピューターがあれば解決しませんか?

7
停止の問題と熱力学的エントロピーの間には関係がありますか?
Alan Turingは、計算(数、関数など)を行うマシン(Turing Machine、TM)のモデルを提案し、ホールティング定理を証明しました。 TMは、マシン(または必要に応じてエンジン)の抽象的な概念です。停止定理は不可能な結果です。Carnot Engine(CE)は熱機関の抽象的な概念であり、CarnotはCarnot Theoremを証明しました。これは、熱力学的エントロピーに関連するもう1つの不可能な結果です。 TMが物理的に実現可能であるとすれば(少なくともCEと同じくらいですか、そうでないかもしれませんか?) もちろん、アルゴリズム情報理論(例:Chaitin、Kolmogorovなど)およびエントロピー(そのコンテキスト)の観点から、TMおよびHalting Theoremの定式化があります。質問は、エントロピーのより物理的な概念を求めます(潜在的な答えの過程で、アルゴリズムのエントロピーが生じる場合、それは問題ありませんが、質問が正確に求めるものではありません)。 また、Physics.seで、量子不確実性を熱力学の第2法則に関連付けている別の質問を確認することもできます。参照:エントロピーの代数的特性、エントロピーのアルゴリズムの特性評価、エントロピーの様々な製剤間のレビューとの接続を

7
対角化よりも停止する問題の決定不能性のより直感的な証拠はありますか?
対角化に基づいて、停止問題の決定不能性の証拠を理解します(たとえば、Papadimitriouの教科書で与えられます)。 証明は説得力がありますが(各ステップを理解しています)、問題だけから始めて誰かがそれを導き出す方法がわからないという意味で、私には直感的ではありません。 本の中で、証拠はこのように書きます:「仮定入力上の停止問題解決、つまり、チューリングマシンかどうかを決定し入力のための停止。チューリングマシンの構築チューリングマシンとる入力としての、を実行し、出力を逆にします。」次に、が満足のいく出力を生成できないことを示します。 M ; x M x D M M H(M ; M )D (D )MHMHM_HM; バツM;xM;xMMMバツxxDDDMMMMH(M; M)MH(M;M)M_H(M;M)D (D )D(D)D(D) 一見arbitrary意的な構成、特にを自分自身に送り、次にを自分自身に送り込むという考えが、直観を持ちたいと思っています。そもそもなぜこれらの構成要素と手順を定義するようになったのですか?M DDDDMMMDDD そもそもそのタイプの議論を知らなかった場合、誰かが対角化議論(または他の証拠)にどのように推論するかについての説明はありますか? 回答の最初のラウンドを与えられた補遺: したがって、最初の答えは、停止問題の決定不能性を証明することは、カンターとラッセルの以前の仕事と対角化問題の開発に基づくものであり、「ゼロから」開始することは単にその議論を再発見することを意味することを指摘しています。 けっこうだ。しかし、対角化の議論を十分に理解されているものとして受け入れたとしても、それから停止する問題への「直観のギャップ」があることがわかります。実数の数え難さのカンターの証明私は実際にかなり直感的だと思う。ラッセルの逆説はさらにそうです。 私がまだ見ていないのは、誰かがの「自己適用」に基づいてを定義し、それからを自分自身に適用する動機付けになることです。これは対角化とはあまり関係がないようです(Cantorの議論にはそのようなものがなかったという意味で)。M M ; M DD (M)D(M)D(M)MMMM; MM;MM;MDDD PS @babouは、自分よりも私を悩ませていることを要約しました。「証明の多くのバージョンの問題は、構造が魔法の帽子から引っ張られているように見えることです。」

2
Cのvoid型がempty / bottom型と類似していないのはなぜですか?
ウィキペディアと私が見つけた他のソースはvoid、空のタイプではなくユニットタイプとしてリストCのタイプを見つけました。void空の/下の型の定義によりよく適合するように思えるので、この混乱を見つけます。 void私が知る限り、値は存在しません。 戻り値の型がvoidの関数は、関数が何も返さないため、何らかの副作用しか実行できないことを指定します。 タイプのポインターvoid*は、他のすべてのポインタータイプのサブタイプです。また、void*C との間の変換は暗黙的です。 最後の点voidに、空の型であることの引数としてのメリットがあるかどうかはわかりvoid*ませんvoid。 一方、voidそれ自体は他のすべてのタイプのサブタイプではありません。これは、タイプがボトムタイプであるための要件であると言えます。
28 type-theory  c  logic  modal-logic  coq  equality  coinduction  artificial-intelligence  computer-architecture  compilers  asymptotics  formal-languages  asymptotics  landau-notation  asymptotics  turing-machines  optimization  decision-problem  rice-theorem  algorithms  arithmetic  floating-point  automata  finite-automata  data-structures  search-trees  balanced-search-trees  complexity-theory  asymptotics  amortized-analysis  complexity-theory  graphs  np-complete  reductions  np-hard  algorithms  string-metrics  computability  artificial-intelligence  halting-problem  turing-machines  computation-models  graph-theory  terminology  complexity-theory  decision-problem  polynomial-time  algorithms  algorithm-analysis  optimization  runtime-analysis  loops  turing-machines  computation-models  recurrence-relation  master-theorem  complexity-theory  asymptotics  parallel-computing  landau-notation  terminology  optimization  decision-problem  complexity-theory  polynomial-time  counting  coding-theory  permutations  encoding-scheme  error-correcting-codes  machine-learning  natural-language-processing  algorithms  graphs  social-networks  network-analysis  relational-algebra  constraint-satisfaction  polymorphisms  algorithms  graphs  trees 


4
停止する問題は、理想的なコンピューター上の純粋なプログラムで決定可能ですか?
停止する問題が不純なプログラム(つまり、I / Oやマシンのグローバル状態に依存する状態を持つプログラム)で決定できない理由を理解するのは非常に簡単です。しかし、直感的には、理想的なコンピューターでの純粋なプログラムの停止は、静的分析などによって決定できるように思われます。 これは事実ですか?そうでない場合、この主張を反証する反例や論文は何ですか?

1
Coqの停止問題の決定不能性を証明することは可能ですか?
Andrej Bauerによる「建設的な数学を受け入れる5つの段階」を見ていましたが、彼は矛盾による2種類の証明(または数学者が矛盾によって証明と呼ぶ2つのこと)があると言っています。 が偽であると仮定します...何とか何とか何とか、矛盾。したがって、は真です。PPPPPP が真であると仮定します...何とか何とか何とか、矛盾。したがって、 は偽です。PPPPPP 1つ目は除外された中間の法則(LEM)と同等であり、2つ目は否定の証明方法です。 停止問題(HP)の決定不能性の証明は、矛盾による証明です。HPを決定できるマシンがあると仮定します...何とか何とか、矛盾。したがって、は存在しません。DDDDDD したがって、を「が存在し、HPを決定できる」とします。が真であると仮定します...何とか何とか何とか、矛盾。したがって、は偽です。PPPDDDPPPPPP これは矛盾による第2種の証明のように見えるので、Coqの停止問題の決定不能性を証明することは可能です(LEMを仮定せずに)? 編集:私は矛盾を使用してこれを証明することについていくつかのポイントを見たいと思います。これは対角化を使用しても証明できることを知っています。


6
チューリングの「ハルティング問題‍」を解決するアルゴリズム
この質問は、コンピューターサイエンススタック交換で回答できるため、理論的なコンピューターサイエンススタック交換から移行されました。 7年前に移行され ました。 「アランチューリングは、1936年に、考えられるすべてのプログラム入力ペアの停止問題を解決する一般的なアルゴリズムが存在できないことを証明しました。」 私はのために停止問題を解決するための一般的なアルゴリズムを見つけることができますいくつかの可能なプログラム入力ペアを? プログラミング言語(複数の言語)を見つけることができます。この言語のすべての種類のプログラムに対して、プログラムが終了するか永久に実行されるかを決定できますか?


5
計算のより高いレベルの説明に逃げることにより、停止問題を「解決」できますか?
最近、停止問題の決定不能性に関するチューリングの証明がラッセルの理髪師のパラドックスに非常に似ているという興味深い類推を聞いたことがあります。 だから私は不思議に思いました:数学者は最終的に、Cantorの素朴な定式化からより複雑な公理系(ZFC集合論)に移行し、重要な除外(制限)と途中での追加を行うことで、集合論を一貫させることに成功しました。 したがって、チューリングマシンよりも強力で表現力のある一般的な計算の抽象的な記述を試してみて、それを使用して、実存的証明または場合によっては停止問題を解決するためのアルゴリズムを取得することもできます任意のチューリングマシン?

6
特定の入力/仮定に対して計算可能な停止問題
プログラムxが停止するかどうかを計算するプログラムP(x)がある場合、Pを入力としてPを与えるとパラドックスが発生するため、停止問題は計算可能ではないという証明の理解から、この問題は計算できません。同じP、P:P(P)、Pが停止するか、P自体を使用しないかを決定しようとする だから私の質問は:P自体以外の入力として使用される他のすべてのプログラムについて、プログラムPによって停止問題を計算できますか?言い換えると、停止の問題はこの特別な場合にのみ計算できないのですか、それとも証明がより一般的で、何かが足りないのですか?

4
ランタイム環境は無限ループを検出できますか?
ランタイム環境で無限ループを検出し、その後関連するプロセスを停止することは可能でしょうか、またはそのようなロジックを実装することは停止問題を解決することと同等でしょうか? この質問の目的のために、「無限ループ」を定義して、実行時にプロセスを以前とまったく同じ状態(データを含む)に戻す一連の命令と関連する開始スタック/ヒープデータを意味します。無限ループを開始します。(言い換えると、piの無限に長い10進展開を生成するプログラムは、「無限ループ」に「スタック」しません。反復ごとに、関連付けられたメモリのどこかにpiの桁が増えるためです。) (/programming//q/16250472/1858225から移植)

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.