言語
(ここでにおけるゼロの意味数)。#0(x )x
L×2={x⊥y⊥z∣x,y,z∈{0,1},#0(x)=#0(y) and |x|+|y|=z}
#0(x)x
HALマシンを使用してを決定するのは簡単です—マシンが2つのプロパティを追跡する必要があることに注意してください: vsゼロの数と(vs)の長さ すべてのゼロに対してa をヒープにプッシュできます(その後、すべてのゼロに対してポップします)。さらに、任意のビットをプッシュします(そして、後で任意のビットをポップします)。すべてのがヒープにプッシュダウンされるため、カウントに干渉しません。区切り文字として機能し、実質的に無視することができます。、X 、Y 、X 、Y 、Zは、xは、Y 、X 、Y 、Zを⊥L×2xyx,yz0
x0
y1
x,y1
z1
0
⊥
次に、逆言語にします。つまり、
HALマシンがを決定できないことを示します。 L = { Z ⊥ Y ⊥ X | X 、Y 、Z ∈ { 0 、1 } 、#0(X )= #0(Y ) と | x | + | y | = z } LL=LR×2
L={z⊥y⊥x∣x,y,z∈{0,1},#0(x)=#0(y) and |x|+|y|=z}
L
直観は次のとおりです。上記のように、マシンはの長さとゼロの数の両方を追跡する必要があります。ただし、この場合、それらを同時に追跡する必要があります。これはヒープ経由ではできません。より詳細には、を読み取った後、ヒープには長さに関する情報が含まれます。を読み取る間、マシンはのゼロの数をヒープに保持する必要があります。ただし、この情報は、が期待する長さでヒープがすでに持っている情報と干渉することはできません。非常に直感的に、ゼロの数に関する情報は、長さに関する情報の「下」になりますx 、y z | x | + | y | y y x x xzx,yz|x|+|y|yyxx、そして読みながら、私たちはそれにアクセスすることはできません、またはそれは、その情報「上」でレンダリング後者アクセスできない、または二つの情報は、「混合」と無意味になるだろう。x
より正式には、ある種の「ポンピング」引数を使用します。つまり、非常に長い入力を受け取り、その入力の処理中にマシンの「状態」が繰り返される必要があることを示します。これにより、マシンが「状態」を繰り返すと入力を「置換」できます。
正式な証明のために、HALマシンの構造の単純化、つまり -transitions「ループ」が含まれていないことを要求します。この仮定により、マシンが処理するすべての入力シンボルについて、ヒープのコンテンツは最大で増加/減少できることがわかり (十分に大きい定数)。1、C 、Cε1cc
証明。が決定する
と仮定し、十分な長さの入力(たとえば、長さ、したがって、、以下の無視)を考慮します。具体的には、を修正し、と仮定します。あることを観察異なるようの。L 4 n | x | = | y | = n | z | = 2 N ⊥ Z 、Y #0(Y )= N / 2 ( NHL4n|x|=|y|=n|z|=2n⊥z,y#0(y)=n/2(nn/2)Z ⊥ Y ⊥ のx ∈ Lxz⊥y⊥x∈L
処理した直後のヒープのコンテンツを考慮します。想定により、最大シンボル(各シンボルは固定アルファベット)が含まれています。ただし、受け入れられるべき異なるがあります(これは、ヒープの可能な異なるコンテンツの量よりもかなり大きく、これは指数関数的に増加しますが、ヒープの異なる数は多項式で増加します。以下を参照) )。受け入れられる2つの入力を取得します。これにより、次のことが成り立ちます。3 N C Γ ( nはz⊥y3ncΓx′sx1、x2(nn/2)x′sx1,x2
- の長さのプレフィックスは、同じ長さののプレフィックスとは異なる数のゼロを持ちます。n/2x 2x1x2
- マシンが部分の長さプレフィックスを読み取るまでに、ヒープはと両方で同じように見え、また、マシンは同じ状態にあります(これはで発生する必要があります。十分に大きな、あるとして以上異なるオプションため、及び最大でヒープコンテンツおよび状態のためのさまざまなオプション)。n/2xx1x2x1,x2n20.8n2x1,x2(3.5cn)|Γ||Q|3
マシンが単語受け入れる必要があることは明らかです。ここで、は長さの接頭辞であり、は同じ長さのの接尾辞です。ゼロの数ように注意におけるゼロの数と異なるおよび(からである、、我々が選択した方法による)、および、このように我々は矛盾に達し。z⊥y⊥xp1xs2xp1xn/2xs2x2xp1xs2x1x2#0(y)x1x2
1 この仮定は一般性を損ないますか?私はそうは思いませんが、これには確かに証拠が必要です。誰かがこの余分な仮定を回避する方法を見つけたら、私は知りたいです。修正して、接頭辞(長さに正確にゼロがある)にします。スターリングの近似を使用すると、であることがわかりここで、はバイナリエントロピー関数です。以来、我々は十分な大きさのために。アルファベット想定
2 x1n/2n/4H()H(1/4)≈0.81( nはlog(nk)≈nH(k/n)H()H(1/4)≈0.81N(nn/4)>20.8nn3Γ| Γ| nnn(n+1
3 Γ、長さ異なる文字列があるため、これがスタックである場合はねじ込みました。ただし、「01」をヒープにプッシュすることは「10」をプッシュすることと同じです。ヒープには、コンテンツのソートされたバージョンのみが格納されます。異なる数ソートサイズの文字列である 定数の。|Γ|nnn| Γ|(n+1|Γ|−1)≈n|Γ||Γ|