タグ付けされた質問 「rice-theorem」

2
ライスの定理が当惑
要約:ライスの定理によれば、すべては不可能です。それでも、私はこの不可能と思われることを常にやっています! もちろん、ライスの定理は単に「すべては不可能」とは言いません。「コンピュータープログラムのすべての特性は計算不可能です。」 (ヘアを分割したい場合は、すべての「重要な」プロパティ。つまり、すべてのプログラムが所有する、またはプログラムが所有しないプロパティは、簡単に計算できます。しかし、他のプロパティは計算できません。) それは定理が言うこと、または言うように見えます。そして、おそらく非常に多くの非常に賢い人々がこの定理の正しさを慎重に検証したでしょう。しかし、ロジックを完全に無視しているようです!計算するのは簡単なプログラムの多くのプロパティがあります!! 例えば: 停止する前にプログラムは何ステップ実行しますか?この数が有限であるか無限であるかを決定することは、計算できないホールティング問題です。この数が有限のより大きいか小さいかを判断するのは簡単です!プログラムを最大ステップ実行し、停止するかどうかを確認します。簡単!nnnnnnn 同様に、プログラムは最初の回実行ステップでユニットより多いまたは少ないメモリを使用しますか?簡単に計算できます。mnnnmmm プログラムのテキストはという名前の変数に言及していますか?些細なテキスト分析で答えが明らかになります。kkk プログラムはコマンド呼び出しますか?再度、そのコマンド名を探してプログラムテキストをスキャンします。σσ\sigma 計算できないように見えるプロパティもたくさんあります。たとえば、プログラムの完全な実行は何回追加されますか?まあ、それはプログラムが実行するステップ数を尋ねることとほぼ同じです。これは実質的に停止の問題です。しかし、非常に簡単に計算できるプログラムプロパティが大量にあるようです。それでも、ライスの定理は、それらのいずれも計算可能ではないと主張します。 ここに何が欠けていますか?

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 

1
絞り込みタイプの推測
職場では、動的言語に関する型情報を推論する必要があります。次のように、ステートメントのシーケンスをネストされたlet式に書き換えます。 return x; Z => x var x; Z => let x = undefined in Z x = y; Z => let x = y in Z if x then T else F; Z => if x then { T; Z } else { F; Z } 一般的なタイプ情報から始めて、より具体的なタイプを推測しようとしているので、自然な選択は絞り込みタイプです。たとえば、条件演算子は、trueブランチとfalseブランチの型の和集合を返します。単純なケースでは、非常にうまく機能します。 ただし、次のタイプを推測しようとしたときに、思わぬ障害に遭遇しました。 function …
11 programming-languages  logic  type-theory  type-inference  machine-learning  data-mining  clustering  order-theory  reference-request  information-theory  entropy  algorithms  algorithm-analysis  space-complexity  lower-bounds  formal-languages  computability  formal-grammars  context-free  parsing  complexity-theory  time-complexity  terminology  turing-machines  nondeterminism  programming-languages  semantics  operational-semantics  complexity-theory  time-complexity  complexity-theory  reference-request  turing-machines  machine-models  simulation  graphs  probability-theory  data-structures  terminology  distributed-systems  hash-tables  history  terminology  programming-languages  meta-programming  terminology  formal-grammars  compilers  algorithms  search-algorithms  formal-languages  regular-languages  complexity-theory  satisfiability  sat-solvers  factoring  algorithms  randomized-algorithms  streaming-algorithm  in-place  algorithms  numerical-analysis  regular-languages  automata  finite-automata  regular-expressions  algorithms  data-structures  efficiency  coding-theory  algorithms  graph-theory  reference-request  education  books  formal-languages  context-free  proof-techniques  algorithms  graph-theory  greedy-algorithms  matroids  complexity-theory  graph-theory  np-complete  intuition  complexity-theory  np-complete  traveling-salesman  algorithms  graphs  probabilistic-algorithms  weighted-graphs  data-structures  time-complexity  priority-queues  computability  turing-machines  automata  pushdown-automata  algorithms  graphs  binary-trees  algorithms  algorithm-analysis  spanning-trees  terminology  asymptotics  landau-notation  algorithms  graph-theory  network-flow  terminology  computability  undecidability  rice-theorem  algorithms  data-structures  computational-geometry 

4
境界停止問題は決定可能です。なぜこれがライスの定理と矛盾しないのですか?
ライスの定理の1つのステートメントは、「計算の複雑さ:現代的なアプローチ」(Arora-Barak)の35ページに記載されています。 部分関数{0,1}∗{0,1}∗\{0,1\}^*に必ずしもすべての入力に定義されていない機能です。TMは、が定義されているすべてのあり、が定義されていないすべてのについて、入力時に実行されると Mが無限ループに入る場合、部分関数計算すると言います x。場合 Sは、部分関数の集合であり、我々は定義 fのS入力上のブール関数です α{0,1}∗{0,1}∗\{0,1\}^*MMMfffxxxfffM(x)=f(x)M(x)=f(x)M(x) = f(x)xxxfffMMMxxxSSSfSfSf_Sαα\alpha出力1 IFF MαMαM_\alphaを計算における部分関数SSS。ライスの定理は、すべての自明でないSSSについて、関数fSfSf_Sは計算可能ではないと述べています。 ウィキペディアは、制限付き時間チューリングマシンの言語はEXPTIME完了であると述べています。私は、この言語のようなものに見える期待{(α,x,n):Mα{(α,x,n):Mα\{(\alpha,x,n) : M_\alpha 受け入れxxx以下にnnnのステップ}}\}。したがって、MMMこの有界言語を指数関数的に決定するDTMとしましょう。このDTMはすべてのチューリングマシンのいくつかのプロパティを決定しているようです。そのため、私の直感は、ライスの定理がそのような決定を排除していることを教えてくれます。しかし、明らかにMMMは合計関数を計算します。 この言語とライスの定理との関係について何が欠けていますか?
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.