編集:私は答えていたという議論は間違っていなかったが、それが唯一の上限は、のためにタイトでなければならなかったことを示したという点で、それは、少し誤解を招くだったいくつか それは時にタイトなければならないため、実際には些細である(nは= 2、境界は1)。んn = 2
これはより正確な議論です。
特定のnで上限が緩い場合、すべてのnで必要なOracle呼び出しの数はO (1 )です。ログ2んん んO (1 )
(確かにO (1 )ではない ので、上限は決して緩いものではありません!しかし、実際にここで証明することはできません。問題に対する他の答えを考えると、追求する価値がないようです。)O (1 )
最大出力を計算する問題を考えてみましょう。
与えられたタプル(M 1、... 、M N)チューリングマシンのは、(チューリングマシンの上で実行している場合は停止、その最大出力計算εを)。停止しない場合は0を返します。ん(M1、… 、Mん)ε
関数として、この関数の計算に必要なOracle呼び出しの最悪の場合の数は、n個の指定されたマシンのどれを停止するかを決定するのに必要な数と同じです。私はマシンが停止している知っていれば(、私は簡単に最大出力を計算することができます。逆に、私はマシンが停止しているかを知りたい場合は、問題文で構築後、私はマシン構築することができます{ M " 私を } (私は= 1 、2 、... 、N )
ここで、Mは「私はすべての実行N個並列に与えられたマシンを、次いで、停止及び出力Iんん{ M』私} (iは= 1 、2 、... 、N )M』私niもしにそれらのが今まで停止します。最大出力により、停止した数がわかります。それから、どの停止を正確に計算できます。)i
ここで、ように最小の整数n(ある場合)とします。n0n
N nはC(n)=max{k∈Z:2k<n}nn
であるため、明らかにです。実際、であるため、でもありますが、特定のマシンの最大出力を計算することは決定できません(Oracle呼び出しはありません)。次に、より大きい検討します。C (1 )= − 1 n 0 > 2 C (2 )= 0 2 nn0>1C(1)=−1n0>2C(2)=02n
主張: が有限の場合、任意の、 oracle呼び出しで特定のマシンの最大出力を計算できます。 n n C (n 0)n0nnC(n0)(が有限の場合、ことに注意してください。) C( n 0)=O(1)n0C(n0)=O(1)
証明。。帰納法でそれを証明します。基本ケースは、これはと定義により保持されます。、N ≤ N 0 、N 0 Cnn≤n0n0C
ましょう任意のことTMことチューリングマシン、のみ使用して、最大出力を算出 Oracleへの呼び出しを。n 0 C (n 0)Q0n0C(n0)
修正します。任意の与えられたマシン次のように、最大出力を計算します。 n M 1、… 、M nn>n0nM1,…,Mn
最初の マシンにます。これらのマシンでを実行することを検討してください。そのノート作る Oracleへのコールを、及びのみが存在するこれらのコールに対するOracleによって可能な応答。定義により、。してみましょう示す番目の可能性応答。それぞれについて、マシン構築
シミュレート次のようにこれらのマシンには: Q 0 n 0 Q 0 C (n 0)n ′ = 2 C (n 0) n ′ = 2 C (n 0) < n 0M1,…,Mn0Q0n0Q0C(n0)n′=2C(n0)n′=2C(n0)<n0 i i = 1 、… 、n ′ M ′ i Q 0oiii=1,…,n′M′iQ0
TM(入力): ϵM′iϵ
- マシンでをシミュレートしが、オラクルを呼び出す代わりに、オラクルがに従って応答すると仮定し。n 0(M 1、… 、M n 0)o iQ0n0(M1,…,Mn0)oi
- このシミュレーションは停止しない可能性があります(たとえば、がオラクルが実際に返すものでない場合)。oi
- シミュレーションが停止した場合、を、がと言う最大出力とします。Q 0hiQ0
- すべてのマシンます。それらのいずれかが出力する、停止してを出力し。(M 1、… 、M n 0)h i h in0(M1,…,Mn0)hihi
ここで、指定された台のマシンのシーケンスで、最初の台のマシンをこれらの台のマシンます。この台のマシンのシーケンスで再帰的に計算された値を返します。(オラクルは再帰的に呼び出される前に呼び出されるわけではないので、オラクルは基本ケースに達したときにのみ呼び出されることに注意してください。)n 0 M 1、… 、M n 0 n ′ < n 0 M ′ 1、… 、M ′ n ′ n − (n 0 − n ′)< nnn0M1,…,Mn0n′<n0M′1,…,M′n′n−(n0−n′)<n
これがこの計算が正しい理由です。以下のためにようオラクルによって``正しい「」応答であるクエリに、停止し、元の正しい最大出力与えるマシン。したがって、台のマシンの最大出力
は、少なくとも台のマシンの最大出力です。一方、ステップ4では、
はの最大出力よりも大きな出力をできません。したがって、マシンの最大出力o i Q 0 M ′ i n 0 n ′(M ′ 1、… 、M ′ n ′)n 0(M 1、… 、M n 0)M ′ i(M 1、… 、M n 0)n ′(M ′ 1、… 、M ′ nioiQ0M′in0n′(M′1,…,M′n′)n0(M1,…,Mn0)M′i(M1,…,Mn0)n′n0(M′1,…,M′n′)
は、それらが置き換えるマシンの最大出力に等しくなります。QEDn0