(チューリングの意味で)計算可能な数値が列挙可能なのはなぜですか?


9

(チューリングの意味で)計算可能な数値が列挙可能なのはなぜですか?それは非常に明白なはずですが、私は現在それを見ていません。


3
すべてのTMが列挙可能だからというだけではありませんか?
yo

それはそれでなければなりません。

2
列挙可能であることは、(定義により)すべてのyes-instanceに対してyes-answerで停止するTuringマシンがあることを意味します。計算可能であることは、すべての入力に対して正しい答えで停止するチューリングマシンが存在することを意味するため、計算可能であることは列挙可能であることを意味します(サブケースです)。
Jonas G. Drange

この場合、これは「計算可能」の意味ではないと思います。これは決定の問題ではなく、建設の問題です。
lvella

回答:


5

私は計算可能な数値の定義がこれだと仮定しています:入力で、数値のn番目のビットで停止するチューリングマシンがあります。

計算可能な数を生成するチューリングマシンの再帰的な列挙があると仮定します。対角化を使用して、この再帰的な列挙の一部ではない新しい計算可能な数値を考え出すことができます。

チューリングマシンを列挙することで計算可能な数を列挙するのは魅力的ですが、すべてのチューリングマシンが計算可能な数に対応しているわけではありません。ただし、クロックドチューリングマシンを使用して、すべての効率的な計算可能な数値、たとえば実行時間が多項式である数値を列挙することは可能です。


したがって、セットのカーディナリティー(この場合、計算可能な数値のセット)は、リスト可能な別のセット(すべてのTMのセット)のカーディナリティーよりも大きくなくても、最初のセットが記載されています。
アンドレ・ソウザ・レモス

2

列挙可能である場合、自然数(つまり、可算)を持つ全単射があることを意味し、計算可能数は列挙可能ではありません。

問題をより正確に定義してみましょう。「数値印刷チューリングマシン(NPTM)」は、すべての状態遷移に対して何も印刷しないか、10進数、マイナス記号、またはピリオドを印刷する可能性があるチューリングマシンです。これは、実数の10進表現を印刷するには十分です。

空のテープから始まるNPTMによって、十分な時間を与えられ、任意の長い表現で印刷できる任意の実数として計算可能な実数を定義してみましょう。また、数値は所定のNPTMによって計算され、整形式の実数を出力した後に停止する(この場合、数値は有限の10進表記を持っている)か、有限の時間で整形式の数値を出力する小数点付きで、これまでより多くの時間を与えられて、より多くの桁を印刷することにより、数値の精度を向上させます。

この後の条件が必要になるのは、たとえば、ある数字の無限のシーケンスを出力するマシンがある場合、たとえば1111111111111111111...は、実数は右への無限表現しか持たないため、実数を計算しているとは言えません。小数点の側。一方、マシン3.14が印刷してから印刷を停止しても停止しない場合、数値の精度が向上していないという理由だけで実数を計算しているとは言えないため、この特定のマシンはそれを構築しません。さらに。

これらは、いくつかの数値を計算するNPTMの例です。以下のNPTM:

  • 印刷1してから停止します。1を計算します。
  • 印刷1.0してから停止します。また、1を計算します。
  • 印刷し1.0000000、ゼロを永久に印刷し続けます。これも1を計算します。
  • 印刷3.14してから停止します。3.14を計算します。
  • 3.14159ππ
  • 印刷-42.してから停止します。数値-42を計算します。

そして、これらは数値を計算しない NPTMの例です。以下のNPTM:

  • 印刷し123123123た後、一連の印刷に行く123永遠に。この無限シーケンスは実数を表さないため、数値を計算していません。
  • 印刷1.0.0してから停止します。これは、この有限シーケンスが適切に形成されていないためではありません。
  • 印刷....-..---してから停止します。これも整形式の実数ではないからではありません。
  • 印刷することはありませんが、停止することはありません。構築中の数はありません。
  • 何も出力せず、すぐに停止します。番号は作成されませんでした。
  • prints 3.14、停止しませんが、それ以外は何も出力しません。精度が時間とともに増加しないため、数値を計算していません。

あなたはアイデアを持っています。次に、NPTMには2つのクラスがあります。実数を計算するクラスと計算しないクラスです。

計算可能な数値の列挙を見つける際の問題は、NPTM自体がカウント可能であっても、ある種類のNPTMを別の種類のNPTMから分離する手順を使用できないことです。

SFNS

計算可能な数が計算可能であることを「証明」するために、NPTMの計算からそのような関数を定義したくなるかもしれません(そして、計算可能な数が計算可能であると信じるとき、これは人々がよくやったことです)。このようなもの:

ENPTMN>NPTME計算N計算可能

まあ、私たちはしません。すぐに印刷1.0してから印刷を停止し、Post通信の問題のインスタンスを解決しようとするマシンを考えてみます。それが問題を解決した場合、それは停止し、マシンは数値1を計算しました。しかし、その問題は決定不可能であるため、停止することはなく、停止しない場合は実数を計算しません。しかし、停止の問題も決定できないため、停止するかどうかはわかりません。したがって、この特定のマシン、および他の無限に多くのマシンが計算するか、実数でないかを知る方法がないため、この方法で全単射関数を構築/定義することはできません。

全単射を定義するナイーブな方法は失敗し、それを行う方法がないことを証明することは非常に難しくありません。Yuval Filmusが示唆したように、対角化を使用できます。


「計算可能な数は数えられない」ではなく、「計算可能な数は列挙できない」と言いたがっているでしょう。
IllidanS4はモニカに2015
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.