Xét ngôn ngữ
(trong đó # 0 ( x ) biểu thị số lượng không trong x ).
L×2={x⊥y⊥z∣x,y,z∈{0,1},#0(x)=#0(y) and |x|+|y|=z}
#0(x)x
Thật dễ dàng để quyết định bằng máy HAL - quan sát rằng máy cần theo dõi hai thuộc tính: số lượng không trong x so với y và độ dài của x , y (so với z ). Nó có thể đẩy a vào heap cho mọi số 0 mà nó nhìn thấy trong x (và sau đó bật cho bất kỳ số 0 nào nhìn thấy trong y ); ngoài ra, nó đẩy cho bất kỳ bit nào trong x , y (và sau đó bật lên cho bất kỳ bit nào của z ). Vì tất cả các s đều bị đẩy xuống đống, chúng không can thiệp vào số đếm. các ⊥L×2xyx,yz0
x0
y1
x,y1
z1
0
⊥ phục vụ như một dấu phân cách, và thực tế có thể bị bỏ qua.
Bây giờ, đặt , là ngôn ngữ đảo ngược. Nghĩa là,
L = { z ⊥ y ⊥ x ∣ x , y , z ∈ { 0 , 1 } , # 0 ( x ) = # 0 (L=LR×2
Chúng tôi sẽ chứng minh rằng không có máy HAL có thể quyết định L .
L={z⊥y⊥x∣x,y,z∈{0,1},#0(x)=#0(y) and |x|+|y|=z}
L
trực giác thì nên nghe theo. Như trên, máy phải theo dõi cả chiều dài của và số không trong x , y . Tuy nhiên, trong trường hợp này cần theo dõi chúng đồng thời . Điều này không thể được thực hiện thông qua một đống. Chi tiết hơn, sau khi đọczx,y , heap chứa thông tin về độ dài của | x | + | y | . trong khi đọc y , máy cũng phải giữ trong đống số không trong y . Tuy nhiên, thông tin này không thể can thiệp vào thông tin mà heap đã có trên độ dài chúng ta mong đợi xz|x|+|y|yyxđược. Rất trực quan, thông tin về số lượng số 0 sẽ "bên dưới" thông tin về độ dài của , và sau đó chúng ta không thể truy cập nó trong khi đọc x , hoặc thông tin "ở trên", hiển thị thông tin sau không thể truy cập được hoặc hai thông tin sẽ bị "trộn lẫn" và trở nên vô nghĩa.xx
Chính thức hơn, chúng ta sẽ sử dụng một số loại đối số "bơm". Nghĩa là, chúng ta sẽ mất một đầu vào rất dài và cho thấy "trạng thái" của máy phải lặp lại trong quá trình xử lý đầu vào đó, điều này sẽ cho phép chúng ta "thay thế" đầu vào sau khi máy lặp lại "trạng thái".
Đối với các bằng chứng chính thức, chúng tôi yêu cầu đơn giản hóa cấu trúc của máy HAL, cụ thể là nó không chứa một "vòng" của -transitions 1 . Với giả định này, chúng ta có thể thấy rằng với mỗi ký hiệu đầu vào mà máy xử lý, nội dung của heap có thể tăng / giảm tối đa c (đối với một số hằng số đủ lớn c ).ε1cc
Bằng chứng.
Giả sử quyết định L , và xem xét một thời gian đủ dài đầu vào (ví dụ, chiều dài 4 n , do đó | x | = | y | = n , | z | = 2 n , bỏ qua ⊥ s sau đây). Để cụ thể, hãy sửa z , y và giả sử rằng # 0 ( y ) = n / 2 . Quan sát rằng có ( nHL4n|x|=|y|=n|z|=2n⊥z,y#0(y)=n/2khác nhaux's sao choz⊥y⊥x∈L.(nn/2)xz⊥y⊥x∈L
Hãy xem xét nội dung của heap ngay sau khi xử lý . Nó chứa tối đa 3 n c c (trong đó mỗi ký hiệu là từ một bảng chữ cái cố định Γ ), theo giả định của chúng tôi. Tuy nhiên, có ( nz⊥y3ncΓkhác nhaux'smà nên được chấp nhận (đó là lớn hơn đáng kể so với số lượng nội dung khác nhau có thể cho đống, như tăng này theo cấp số nhân, trong khi số khác nhau của đống tăng đa thức, xem dưới đây). Lấy hai đầu vàox1,x2nên được chấp nhận, sao cho các lần giữ sau:(nn/2)x′sx1,x2
- Tiền tố có độ dài của x 1 có số 0 khác nhau so với tiền tố của x 2 có cùng độ dài.n/2x1x2
- Vào thời điểm máy đọc tiền tố có độ dài của phần x , heap trông giống nhau cho cả x 1 và x 2 , và đồng thời, máy ở trạng thái tương tự (điều này phải xảy ra với một số x 1 , x 2 , cho n đủ lớn , vì có nhiều hơn 2 0,8 n tùy chọn khác nhau 2 cho x 1 ,n/2xx1x2x1,x2n20.8n2 , và nhiều nhất ( 3,5 c n ) | gamma | | Qx1,x2các tùy chọn khác nhau cho nội dung heap và trạng thái 3 ).(3.5cn)|Γ||Q|3
Rõ ràng là máy phải chấp nhận từ , trong đó x p 1 là tiền tố của x có độ dài n / 2 và x s 2 là hậu tố của x 2 có cùng độ dài. Lưu ý rằng số lượng số không trong x p 1 x s 2 khác với số lượng số không trong x 1 và x 2 (nghĩa là từ số 0 ( yz⊥y⊥xp1xs2xp1xn/2xs2x2xp1xs2x1x2 ), do cách chúng tôi chọn x 1 và x 2 , do đó chúng tôi đã đạt được một mâu thuẫn.#0(y)x1x2
Giả định này có làm hỏng tính tổng quát không? Tôi không nghĩ vậy, nhưng điều này thực sự cần một bằng chứng. Nếu ai đó thấy làm thế nào để vượt qua giả định thêm này, tôi rất muốn biết. 2 Hãy sửa x 1 để tiền tố của nó (có độ dài n / 2 có chính xác n / 4 số không). Hãy nhớ lại rằng sử dụngxấp xỉ của Stirling,chúng ta biết rằng nhật ký đó ( n1
2 x1n/2n/4nơiH()làentropy funciton Binary. Kể từ khiH(1/4)≈0,81chúng ta có ( nlog(nk)≈nH(k/n)H()H(1/4)≈0.81chonđủ lớn. (nn/4)>20.8nn3Giả sử bảng chữ cáiΓ, có| Γ| nchuỗi khác nhau có độ dàin, vì vậy nếu đây là một ngăn xếp, chúng tôi đã bị vặn. Tuy nhiên, đẩy "01" thành một đống tương đương với đẩy "10" - heap chỉ lưu trữ phiên bản được sắp xếp của nội dung. Số lượng cácchuỗi đượcsắp xếpkhác nhauvề kích thước
3 Γ|Γ|nn là ( n + 1n, cho một hằng| Γ| .(n+1|Γ|−1)≈n|Γ||Γ|