
数学において、計算可能数とは、有限で終了するアルゴリズムによって任意の所望の精度で計算できる実数のことである。これらは、再帰数[ 1 ] 、有効数[ 2 ]、計算可能実数[ 3 ]、または再帰実数[ 4 ]とも呼ばれる。計算可能実数の概念は、1912年にエミール・ボレルによって、当時利用可能であった計算可能性の直感的な概念を用いて導入された[ 5 ] 。
同等の定義は、μ再帰関数、チューリングマシン、またはλ計算をアルゴリズムの形式的表現として用いることによっても与えることができる。計算可能な数は実閉体を形成し、多くの数学的目的において実数の代わりに用いることができるが、すべての目的に用いることはできない。
以下では、マービン・ミンスキーは、 1936年にアラン・チューリングが定義したのと同様の方法で計算される数値を定義しています。 [ 6 ]つまり、0から1の間の「小数として解釈される数字の列」として定義されています。 [ 7 ]
計算可能な数とは、初期テープにnを与えられたときに、その数のn番目の桁をテープにエンコードして終了するチューリングマシンが存在する数のことである。
定義における重要な概念は、(1)開始時に何らかのnが指定されること、(2)任意のnに対して計算は有限のステップ数しか必要とせず、その後マシンは目的の出力を生成して終了することである。
(2)の別の形式、すなわち機械がテープにn桁の数字を順次印刷し、 n桁目を印刷した後に停止するという形式は、ミンスキーの観察(3)を強調している。チューリングマシンを使用することで、機械の状態表という形で有限の定義が、潜在的に無限の10進数の列を定義するために使用されている。
しかし、これは現代の定義とは異なり、数値が所定の精度内で達成されればよいというものではありません。上記の非公式な定義は、表作成者のジレンマと呼ばれる丸め誤差の問題を抱えていますが、現代の定義はそうではありません。
実数a は、何らかの計算可能な関数によって近似できる場合に計算可能であるという。次のようにして、任意の正の整数nが与えられたとき、関数は次の条件を満たす整数f ( n ) を生成します。
複素数は、その実部と虚部がともに計算可能な場合、計算可能であるという。
同等の類似した定義が2つあります。
計算可能なデデキントカットによる計算可能数の別の同等の定義がある。計算可能なデデキントカットは計算可能な関数である。有理数が与えられた場合入力として返されるまたは以下の条件を満たすこと:
例として、 3の立方根を定義するプログラムDが挙げられます。これは以下のように定義されます。
実数が計算可能であるのは、それに対応する計算可能なデデキント切断Dが存在する場合に限る。関数D は、計算可能な各実数に対して一意である(ただし、もちろん、2つの異なるプログラムが同じ関数を提供する可能性はある)。
各チューリングマシン定義にゲーデル数を割り当てると、部分集合が生成されます。計算可能な数に対応する自然数の を特定し、からの全射を識別します計算可能な数へ。チューリングマシンは可算個しか存在しないため、計算可能な数は可算個以下であることがわかる。しかし、これらのゲーデル数のうち、計算上列挙可能なものは存在しない(したがって、(それによって定義される)これは、計算可能な実数を生成するチューリングマシンに対応するゲーデル数を決定するアルゴリズムが存在しないためです。計算可能な実数を生成するには、チューリングマシンは全関数を計算する必要がありますが、対応する決定問題はチューリング次数0 ′ ′です。したがって、自然数から集合への全射計算可能関数は存在しません。計算可能な実数を表す機械は数多く存在し、カントールの対角線論法はそれらの無数の数を証明するために構成的に用いることはできない。
実数の集合は非可算集合であるが、計算可能な数の集合は古典的には可算集合であり、したがってほとんどすべての実数は計算可能ではない。ここで、任意の計算可能な数に対して整列原理は、最小要素が存在することを規定している。これは以下に対応しますしたがって、写像が全単射となる最小要素からなる部分集合が存在する。この全単射の逆写像は計算可能な数の自然数への単射であり、それらが可算であることを証明する。しかし、計算可能な実数自体は順序付けられているにもかかわらず、この部分集合は計算可能ではない。
計算可能な数に対する算術演算は、実数aとb が計算可能であるときはいつでも、次の実数も計算可能であるという意味で、それ自体が計算可能です。 a + b、a - b、ab、およびbがゼロでない場合はa / b 。 これらの演算は実際には一様に計算可能です。たとえば、入力 ( A、B、) は出力rを生成する。ここで、Aはa を近似するチューリング マシンの記述、Bはb を近似するチューリング マシンの記述、rはa + bの近似値。
計算可能な実数が体を形成するという事実は、1954年にヘンリー・ゴードン・ライスによって初めて証明された。[ 8 ]
しかし、計算可能な実数は計算可能な体を形成しない。なぜなら、計算可能な体の定義には有効な等号が必要とされるからである。
計算可能な数上の順序関係は計算可能ではない。Aを、数を近似するチューリングマシンの記述とする。入力Aに対して「YES」を出力するチューリングマシンは存在しない。そして「いいえ」の場合はその理由を理解するために、 Aで記述される機械が0を出力し続けると仮定します。近似。機械がa を正に強制する近似値を決して出力しないと判断するまでに、どのくらい待つべきかは明らかではありません。したがって、機械は最終的に、出力を生成するために、その数が 0 に等しいと推測する必要があります。シーケンスは後で 0 と異なる可能性があります。この考え方は、機械が全関数を計算する場合に、いくつかのシーケンスで機械が間違っていることを示すために使用できます。計算可能な実数がデデキントカットとして表現される場合にも、同様の問題が発生します。等号関係についても同じことが言えます。等号テストは計算できません。
完全な順序関係は計算不可能だが、それを異なる数のペアに限定すれば計算可能である。つまり、数を近似する2つのチューリングマシンAとBを入力として受け取るプログラムが存在する。そして、 どこ、そして出力しますまたは使用すれば十分です-近似値ますます小さなものを取ることで(0に近づく)最終的には、または
計算可能な実数は、解析で使用される実数のすべての性質を共有するわけではありません。たとえば、有界増加計算可能実数列の最小上界は、計算可能な実数である必要はありません。[ 9 ]この性質を持つ数列は、 1949 年にエルンスト・スペッカーによって初めて構成されたことから、スペッカー数列として知られています。 [ 10 ]このような反例が存在するにもかかわらず、微積分と実解析の一部は計算可能数の分野で展開することができ、計算可能解析の研究につながります。
計算可能な数はすべて算術的に定義可能ですが、その逆は必ずしも成り立ちません。算術的に定義可能でありながら計算不可能な実数は数多く存在し、例えば以下のようなものがあります。
実際、これら二つの例はいずれも、定義可能ではあるものの計算不可能な数の無限集合を定義しており、それぞれの集合は普遍チューリングマシンごとに一つずつ存在します。実数が計算可能であるのは、それが表す自然数の集合(二進数で表され、特性関数として見なされた場合)が計算可能である場合に限ります。
チューリングの原著論文では、計算可能な数を次のように定義している。
実数は、その桁列が何らかのアルゴリズムまたはチューリングマシンによって生成できる場合に計算可能である。アルゴリズムは整数を入力として受け取る。入力として、そして生成する実数の十進数展開の 番目の桁を出力します。
( aの小数展開は、小数点以下の数字のみを指します。)
チューリングはこの定義が-上記の近似定義。議論は次のように進む:ある数がチューリングの意味で計算可能であれば、それはまた、意味: もしすると、 aの10進数展開の最初のn桁は、aの近似値。逆の場合、 を選択します。計算可能な実数aに対して、小数点以下n桁目が確定するまで、より精度の高い近似値を生成します。これにより、常にaに等しい小数展開が生成されますが、不適切に 9 が無限に続く場合があり、その場合は有限の (したがって計算可能な) 適切な小数展開を持つ必要があります。
実数の特定の位相的性質が関係しない限り、多くの場合、(合計 0、1 値関数)実数の代わりに. メンバーバイナリ十進展開で識別できますが、十進展開はそして同じ実数を表す区間は、 の部分集合とのみ全単射的に(かつ部分集合トポロジの下で同相的に)同一視される。末尾がすべて1ではない。
小数展開のこの性質は、小数展開で定義された計算可能な実数と、近似の意味。ハーストは、チューリングマシンの記述を入力として受け取り、それを生成するアルゴリズムは存在しないことを示した。計算可能数aの近似値を求め、チューリングの定義の意味でaの桁を列挙するチューリングマシンを出力します。 [ 11 ]同様に、これは、計算可能実数に対する算術演算が、10 進数の加算のように、その 10 進数表現に対して有効ではないことを意味します。 1 桁を生成するには、現在の位置に繰り上がりがあるかどうかを判断するために、任意の右端まで調べる必要がある場合があります。 この統一性の欠如は、現代の計算可能数の定義が を使用する理由の 1 つです。小数展開ではなく、近似値を用いる。
しかし、計算可能性理論または測度論の観点からは、2つの構造はそしては本質的に同一である。したがって、計算可能性理論家はしばしばメンバーを現実として。完全に接続が切れています。質問についてはクラスやランダム性の方が作業しやすい。
要素実数とも呼ばれ、同相像を含むが、、は局所的にコンパクトですらない(完全に不連結であることに加えて)。これは計算特性に真の差異をもたらします。例えば、満足、 と量化子を含まず、計算可能でなければならないが、一意である普遍的な公式を満たすことは、超算術階層において任意に高い位置を占める可能性がある。
計算可能な数には、実際に現れる特定の実数、すなわちすべての実代数的数、 e、π 、およびその他多くの超越数が含まれます。計算可能な実数は、計算または近似できる実数を網羅していますが、すべての実数が計算可能であるという仮定は、実数について大きく異なる結論を導きます。実数の完全な集合を処分して、数学のすべてに計算可能な数を使用することが可能かどうかという疑問が自然に生じます。この考えは構成主義の観点から魅力的であり、ロシアの構成的数学学派によって追求されてきました。[ 12 ]
計算可能な数に関する解析を実際に展開するには、いくつかの注意が必要です。例えば、数列の古典的な定義を用いる場合、計算可能な数の集合は、有界数列の上限を取るという基本的な操作に関して閉じていません(例えば、スペッカー数列を考えてみましょう。上記のセクションを参照してください)。この困難は、収束係数が計算可能な数列のみを考慮することによって解決されます。結果として得られる数学理論は、計算可能解析と呼ばれます。
実数を近似計算を行うプログラムとして表現するコンピュータパッケージは、1985年にはすでに「厳密な算術」という名称で提案されていました。[ 13 ]現代の例としては、CoRNライブラリ(Coq)[ 14 ]やRealLibパッケージ(C++)[ 15 ]などがあります。関連する研究分野としては、実際のRAMプログラムを取り出し、 iRRAMパッケージのように十分な精度を持つ有理数または浮動小数点数で実行する方法があります。[ 16 ]
{{cite journal}}: CS1 maint: 複数の名前: 著者リスト (リンク)