Xác định khả năng của một máy trạng thái heap min (hoặc ngoại lai khác)


44

Xem phần cuối của bài đăng này để biết một số giải thích về định nghĩa của automata heap heap.

Người ta có thể tưởng tượng sử dụng một loạt các cấu trúc dữ liệu để lưu trữ thông tin để sử dụng bởi các máy trạng thái. Ví dụ, tự động đẩy xuống lưu trữ thông tin trong một ngăn xếp và máy Turing sử dụng băng. Các máy trạng thái sử dụng hàng đợi và các máy sử dụng hai ngăn xếp hoặc băng, đã được chứng minh là có sức mạnh tương đương với các máy Turing.

Hãy tưởng tượng một máy min-heap. Nó hoạt động chính xác như một máy tự động đẩy xuống, với các ngoại lệ sau:

  1. Thay vì xem xét điều cuối cùng bạn đã thêm vào heap, bạn chỉ có thể xem xét phần tử nhỏ nhất (với thứ tự được xác định trên cơ sở mỗi máy) hiện tại trên heap.
  2. Thay vì phải xóa điều cuối cùng bạn đã thêm vào heap, bạn chỉ có thể xóa một trong các phần tử nhỏ nhất (với thứ tự được xác định trên cơ sở mỗi máy) hiện tại trên heap.
  3. Thay vì nhận thêm một phần tử vào đầu heap, bạn chỉ có thể thêm một phần tử vào heap, với vị trí của nó được xác định theo các phần tử khác trong heap (với thứ tự được xác định trên cơ sở mỗi máy).

Máy này có thể chấp nhận tất cả các ngôn ngữ thông thường, chỉ đơn giản bằng cách không sử dụng heap. Nó cũng có thể chấp nhận ngôn ngữ {anbn{a,b}n0} bằng cách thêm a 's để đống, và loại bỏ a là từ đống khi nó đọc b 's. Nó có thể chấp nhận một loạt các ngôn ngữ không ngữ cảnh khác. Tuy nhiên, nó không thể chấp nhận, ví dụ, {w{a,b}w=wR}(nêu mà không có bằng chứng). EDIT: hoặc nó có thể? Tôi không nghĩ nó có thể, nhưng tôi đã rất ngạc nhiên trước đây và tôi chắc chắn rằng tôi sẽ luôn ngạc nhiên khi những giả định của tôi tiếp tục làm cho tôi trở nên ... tốt.

Nó có thể chấp nhận bất kỳ ngôn ngữ nhạy cảm ngữ cảnh hoặc Turing-Complete nào không?

Tổng quát hơn, nghiên cứu nào, nếu có, đã được theo đuổi theo hướng này? Kết quả là gì, nếu có? Tôi cũng quan tâm đến các loại máy trạng thái kỳ lạ khác, có thể là các máy sử dụng cấu trúc dữ liệu khác để lưu trữ hoặc các loại hạn chế khác nhau đối với quyền truy cập (ví dụ: cách LBA bị hạn chế TM). Tài liệu tham khảo được đánh giá cao. Tôi xin lỗi trước nếu câu hỏi này thể hiện sự thiếu hiểu biết.


Định nghĩa chính thức:

Tôi cung cấp một số định nghĩa chi tiết hơn về automata heap ở đây để làm rõ thêm thảo luận trong các câu hỏi tham khảo tài liệu này.

Chúng ta định nghĩa một loại-1 không xác định min-đống automaton như 7-tuple nơi ...

(Q,q0,A,Σ,Γ,Z0,δ)
  1. là tập hợp hữu hạn, không rỗng của các trạng thái;Q
  2. là trạng thái ban đầu;q0Q
  3. là tập hợp các trạng thái chấp nhận;AQ
  4. là một hữu hạn, không có sản phẩm nào bảng chữ cái đầu vào;Σ
  5. là một hữu hạn, không có sản phẩm nào bảng chữ cái đầu vào, nơi trọng lượng của một biểu tượng γ Γ , w ( γ ) N , là như vậy mà w ( γ 1 ) = w ( γ 2 )ΓγΓw(γ)N ;w(γ1)=w(γ2)γ1=γ2
  6. là biểu tượng đặc biệt đáy-of-the-đống;Z0Γ
  7. là chức năng chuyển đổi.δ:Q×(Σ{ϵ})×(Γ{Z0})P(Q×Γ)

Hàm chuyển đổi hoạt động bằng cách giả sử một đống trống ban đầu chỉ bao gồm . Chức năng chuyển đổi có thể thêm vào đống một bộ sưu tập tùy ý (hữu hạn, nhưng có thể có sản phẩm nào hoặc với lặp đi lặp lại) của các nguyên tố g 1 , γ 2 , . . . , Γ kgamma . Ngoài ra, chức năng chuyển tiếp có thể loại bỏ một thể hiện của các yếu tố γ với trọng lượng thấp nhất w ( γ )Z0γ1,γ2,...,γkΓγw(γ)của tất cả các phần tử còn lại trên heap (nghĩa là phần tử trên đỉnh heap). Hàm chuyển đổi chỉ có thể sử dụng thể hiện ký hiệu trên cùng (nghĩa là có trọng lượng tối thiểu) trong việc xác định bất kỳ chuyển đổi nào.

Hơn nữa, xác định một loại-1 xác định automaton min-đống là một loại-1 không xác định automaton min-đống mà thỏa mãn các tài sản sau đây: cho tất cả các chuỗi như vậy | x | = Nσ Σ , | δ n + 1 ( q 0 , x σ y , Z 0 ) | 1 .xσyΣ|x|=nσΣ|δn+1(q0,xσy,Z0)|1

Xác định cũng là một máy tự động min-heap loại không đặc biệt loại 2 hoàn toàn giống với máy tự động min-heap loại không đặc biệt loại 1, ngoại trừ các thay đổi sau:

  1. là một hữu hạn, không có sản phẩm nào bảng chữ cái đầu vào, nơi trọng lượng của một biểu tượng γ Γ , w ( γ ) N , là như vậy mà w ( γ 1 ) = w ( γ 2 ) không nhất thiết phải bao hàm γ 1 = γ 2 ; nói cách khác, các biểu tượng heap khác nhau có thể có cùng trọng lượng.ΓγΓw(γ)Nw(γ1)=w(γ2)γ1=γ2
  2. Khi các thể hiện của các ký hiệu heap khác nhau có cùng trọng lượng được thêm vào heap, thứ tự tương đối của chúng được giữ theo thứ tự giống như ngăn xếp trước, xuất trước (LIFO).

Cảm ơn Raphael đã chỉ ra định nghĩa tự nhiên hơn này, trong đó nắm bắt (và mở rộng) các ngôn ngữ không ngữ cảnh.


Một số kết quả đã được chứng minh cho đến nay:

  1. Kiểu tự động heap loại 1 nhận ra một tập hợp các ngôn ngữ không phải là tập hợp con cũng không phải là siêu ngôn ngữ của các ngôn ngữ không ngữ cảnh. [ 1 , 2 ]
  2. Theo định nghĩa của họ, loại 2-heap automata, nhận ra một tập hợp các ngôn ngữ là một siêu ngôn ngữ thích hợp của các ngôn ngữ không ngữ cảnh, cũng như một siêu ngôn ngữ thích hợp của các ngôn ngữ được chấp nhận bởi automata loại 1 min-heap.
  3. Các ngôn ngữ được chấp nhận bởi automata heap loại 1 dường như bị đóng dưới sự kết hợp, ghép và sao Kleene, nhưng không được bổ sung [ 1 ], giao nhau hoặc khác biệt;
  4. Các ngôn ngữ được chấp nhận bởi automata min-heap không phân biệt loại 1 dường như là một siêu ngôn ngữ thích hợp của các ngôn ngữ được chấp nhận bởi automata min-heap xác định loại 1.

Có thể có một vài kết quả khác mà tôi đã bỏ lỡ. Nhiều kết quả hơn (có thể) trên đường.


Câu hỏi tiếp theo

  1. Đóng cửa dưới đảo ngược? -- Mở
  2. Đóng cửa dưới sự bổ sung? - Không!
  3. Có phải nondeterminism tăng sức mạnh? -- Đúng?
  4. HALCSL
  5. Việc thêm heaps có làm tăng sức mạnh cho loại 1 không? - với (?)HAL1HAL2=HALkk>2
  6. Việc thêm một ngăn xếp có tăng sức mạnh cho loại 1 không? -- Mở

1
Bằng cách này, câu hỏi tuyệt vời. Tôi muốn đào bới một bổ đề bơm cho các automata này.
Raphael

@Raphael: Tôi nghĩ rằng bạn có thể sử dụng bằng chứng (đã cập nhật) của tôi cho một bổ đề như vậy: bất kỳ ngôn ngữ nào bạn cần 'nhớ' nhiều hơn một lượng thông tin tuyến tính trong một chuỗi con để khớp chính xác với một chuỗi con tiếp theo máy tự động heap tối thiểu. Tôi không chắc liệu một bổ đề kiểu bơm thực sự có khả thi hay không - nó cũng có thể là một trường hợp đặc biệt của bổ đề của tôi.
Alex ten Brink

@AlextenBrink Vì sự kết hợp của các số ký hiệu heap có thể được sử dụng để mã hóa công cụ, tôi không chắc chắn có đủ các ràng buộc tuyến tính.
Raphael

Câu trả lời:


25

Bạn có thể nhận ra ngôn ngữ không chính xác (nhưng nhạy cảm với ngữ cảnh) với loại máy trạng thái này. Điểm mấu chốt là bạn thêm thẻ để đống cho mỗi nhân vật, và trong khi phân tích các ký tự, bạn thêm thẻ 'lớn' để đống, vì vậy họ chỉ kết thúc ở dưới cùng của đống khi bạn đã phân tích tất cả các nhân vật.{anbncn | n1}abb

Ký hiệu heap là và , trong đó . Chúng ta tiêu thụ tất cả các ký hiệu trên đầu vào và thêm biểu tượng để đống. Nếu chúng ta gặp một , chúng ta sẽ chuyển đổi chiến lược: cứ mỗi chúng ta gặp phải sau đó chúng ta sẽ xóa khỏi heap và thêm vào heap. Khi chúng ta gặp một chúng ta sẽ hết s để xóa, và sau đó với mỗi trong đầu vào còn lại, chúng ta xóa một khỏi heap. Nếu heap trống ở cuối, chuỗi nằm trong ngôn ngữ. Rõ ràng, chúng tôi từ chối nếu có sự cố.aba<baabbabcacb

Cập nhật:

Ngôn ngữ không thể được nhận ra bởi automata heap. Giả sử rằng chúng ta có một máy tự động heap min có thể nhận ra . Chúng tôi xem xét 'trạng thái' của máy tự động sau khi đọc (phần đầu tiên của đầu vào, vì vậy là tiếp theo). Tiểu bang duy nhất chúng tôi có được các nội dung của heap và tình trạng cụ thể của automaton nó là trong. Có nghĩa là sau khi nhận , đây nhu cầu 'nhà nước' để giữ đầy đủ thông tin để phù hợp .EPAL={wwR|w{a,b}}EPALwwRwwR

Đặc biệt, để làm điều này, phải có có thể khác 'trạng thái (trong đó ), vì có từ có thể bao gồm các ký tự và . Vì chỉ có một số trạng thái hữu hạn và chỉ có một số hữu hạn các ký tự heap, nên điều này ngụ ý rằng tồn tại một số từ mà heap chứa một số mũ của một số ký tự heap, giả sử .2nn=|w|2nabwx

Trước tiên, chúng tôi chứng minh định lý cho automata min-heap xác định, và sau đó mở rộng bằng chứng này sang automata heap heap không xác định. Cụ thể, automata mang tính xác định nhận ra một số ngôn ngữ sẽ không đặt mình vào một vòng lặp vô hạn, đây là một thuộc tính hữu ích.

Chúng tôi sẽ chứng minh rằng heap chỉ có thể chứa tối đa một số mã thông báo heap là tuyến tính trong số lượng ký tự được đọc từ đầu vào. Điều này ngay lập tức quy định rằng xuất hiện số lần theo cấp số nhân trên heap, điều này hoàn thành bằng chứng rằng không thể được nhận ra bởi automata min-heap.xEPAL

Bởi vì chúng ta chỉ có một số trạng thái hữu hạn trong máy tự động của mình và vì máy tự động xác định sẽ không tự đặt mình vào một vòng lặp vô hạn, khi đọc tín hiệu đầu vào, nó sẽ thêm tối đa một số ký tự heap không đổi vào heap. Tương tự, khi tiêu thụ một số ký hiệu heap , nó chỉ có thể thêm tối đa một số ký tự heap không đổi lớn hơn và nó chỉ có thể giảm số lượng các ký hiệu trên ngăn xếp (nếu không chúng ta có một vòng lặp vô hạn).yyy

Do đó, việc sử dụng các biểu tượng heap có thể gây ra sự tích tụ (rất lớn) của các biểu tượng heap lớn hơn, nhưng vì chỉ có một số lượng không đổi các loại biểu tượng heap khác nhau, đây chỉ là một số không đổi không phụ thuộc vào . Điều này ngụ ý rằng số lượng các ký hiệu heap nhiều nhất là một số (lớn) nhân với số lượng các ký hiệu đầu vào được đọc cho đến nay. Điều này hoàn thành bằng chứng cho trường hợp xác định.n

Trong trường hợp không xác định, bằng chứng là tương tự, nhưng phức tạp hơn một chút: thay vì thêm tối đa một số lượng mã thông báo heap không đổi vào heap, nó thêm một số mã thông báo heap tùy ý vào heap. Tuy nhiên, điểm cốt yếu là con số này không phụ thuộc vào . Đặc biệt, nếu chúng ta có thể không xác định chính xác các ký hiệu heap đúng trên heap sau khi nhận ra (quyền nhận ra ), chúng ta cũng có thể chọn một cách không xác định các ký hiệu heap khớp với một số từ khác , và do đó nhận ra , do đó mâu thuẫn với việc máy tự động heap min nhận ra chính xác .nwwRwwwREPAL

Cập nhật 3: Tôi sẽ đưa ra lập luận cuối cùng (về tính không xác định). Theo lập luận trên, phải tồn tại một tập hợp vô hạn các từsao cho với mỗi, sau khi nhận ra, heap chứa các phần tử( lưu ý rằng chúng ta có thể nói vềvì chúng ta có một bộ từ vô hạn). Vì chúng ta không thể có được nhiều phần tử trên heap thông qua các phương tiện xác định, chúng ta phải có một dạng vòng lặp trong đó trước tiên chúng ta không chọn một cách xác định để thêm nhiều phần tử vào heap (mà không tiêu thụ đầu vào), và sau đó đã chọn thoát khỏi phần tử này vòng lặp và chúng ta phải đi qua vòng lặp nàylần.W{a,b}wWwω(|w|)O(f(|w|))ω(1)

Hãy tập hợp tất cả các vòng lặp như vậy được sử dụng bởi . Vì chỉ có các trạng thái , kích thước của tập hợp này là và tập hợp tất cả các tập hợp con của nó cũng là . Bây giờ lưu ý rằng phần 'xác định' của các đường dẫn thực thi chỉ có thể đóng góp cho của các mã thông báo, điều đó có nghĩa là rất nhiều số lượng từ khác nhau phải có các đường dẫn thực thi mà các phần 'xác định' đóng góp giống nhau mã thông báo đến đống. Cụ thể, cách duy nhất để có được nhiều mã thông báo hơn là lấy các vòng lặp mà chúng tôi đã xác định ở trên.WO(1)O(1)O(1)O(|w|)

Kết hợp các quan sát này, điều này có nghĩa là phải có hai từ riêng biệt trong , và nói, phần 'xác định' của các đường dẫn thực thi đóng góp cùng một mã thông báo cho heap và được phân biệt bằng cách lấy một số tập hợp con của các vòng lặp ở trên một số lần khác nhau, nhưng sử dụng cùng một tập hợp các vòng lặp (hãy nhớ chỉ có của các vòng lặp này).Ww1w2O(1)

Bây giờ chúng ta có thể chỉ ra rằng cũng có thể được nhận ra bởi máy tự động heap min: chúng ta đi theo đường dẫn thực thi cho như trên, nhưng chúng ta đi qua các vòng lặp với cùng số lần đường thực hiện cho đi qua chúng. Điều này sẽ lấp đầy đống nhỏ với các mã thông báo sao cho được chấp nhận là hậu tố, do đó hoàn thành bằng chứng.w1w2w1w2w2

Cập nhật 2:

Tôi nhận ra rằng điều trên có nghĩa là chúng ta có thể mô phỏng một máy tự động heap min quyết định chỉ sử dụng không gian logarit: chúng ta giữ một bộ đếm cho mọi loại ký tự trong heap min. Như được hiển thị ở trên, bộ đếm này nhiều nhất sẽ là và do đó chỉ có thể được lưu trữ bằng cách sử dụng không gian (vì chỉ có một số lượng không đổi của các bộ đếm này). Điều này cho chúng ta:O(n)O(logn)

DHALL

HALNL

trong đó là tập hợp các ngôn ngữ được công nhận bởi một số máy tự động min-heap xác định.DHAL


1
+1 cho cái nhìn sâu sắc tuyệt vời, dường như bạn đã hiểu ý nghĩa của tôi hoàn toàn. Tôi có đúng trong đánh giá của mình rằng những máy như vậy không thể nhận ra palindromes? Vì thứ tự các biểu tượng được thêm vào không được bảo tồn, nên dường như không thể.
Patrick87

@ Patrick87: Tôi đang nghĩ về vấn đề đó ngay bây giờ :)
Alex ten Brink

@Raphael Quan sát rất tuyệt vời liên quan đến các máy Turing với các ràng buộc tài nguyên logarit, cả hai bạn đã thực hiện một công việc tuyệt vời là điều tra các automata này. Bạn biết đấy, tôi đã loại bỏ máy tự động heap min như một ví dụ về điều mà tôi quan tâm, nhưng nó dường như đã được đón nhận. Những câu hỏi khác có thể được trả lời về automata như vậy? Là DHAL = HAL? Thuộc tính đóng cửa của HAL là gì? Là những khám phá tiếp theo có giá trị, và nếu vậy, họ nên ở lại đây, hoặc được đưa vào một câu hỏi mới? Cảm ơn một lần nữa cho những hiểu biết tuyệt vời.
Patrick87

1
@Raphael: Tôi đã thực hiện phần đó hoàn toàn nghiêm ngặt. Bạn đúng rằng phải đủ lớn - Tôi nhấn mạnh vào một số chi tiết bên trái và bên phải. n
Alex ten Brink

1
@Raphael: Thật vậy, nó có. , do đó, theo định lý phân cấp không gian và một số thể vùi. D H A L C S LCSL=NLINSPACEDHALCSL
Alex ten Brink

19

Đây là những gì chúng tôi (tin tưởng) biết:

  • HALCFL (loại 1, loại 2)
  • CFLHAL (loại 1)
  • CFLHAL (loại 2, theo định nghĩa)
  • CSLHAL (loại 1, loại 2)

Xem chi tiết và một số lưu ý khác dưới đây.


HALCFL

Phần này của câu trả lời liên quan đến cả loại 1 và loại 2.

Một máy tự động heap min-heap với bảng chữ cái heap hữu hạn, được sắp xếp hoàn toàn chấp nhận .L={anbncnnN}CSLCFL

Giả định: Tương tự như PDA, chức năng chuyển tiếp của chúng tôi tiêu thụ biểu tượng heap hàng đầu và ghi lại một số lượng các biểu tượng heap tùy ý. Heap ban đầu chứa một biểu tượng phân biệt lớn hơn tất cả các biểu tượng heap khác.$

Đặt một máy tự động heap tối thiểu vớiA=(Q,ΣI,ΣH,,q0,QF)

  • Q={q0,q1,q2,qf} tập hợp các trạng thái
  • ΣI={a,b,c} bảng chữ cái đầu vào.
  • ΣH=a,b,$ bảng chữ cái heap với thứ tự .a<b<$
  • QF={qf}
  •  (Q×ΣI×ΣH)×(Q×ΣH) với
    • (q0,a,σ)(q0,aσ) cho tất cảσΣH
    • (q0,b,a)(q1,b)
    • (q1,b,a)(q1,b)
    • (q1,c,b)(q2,ε)
    • (q2,c,b)(q2,ε)
    • (q2,c,$)(qf,ε)

Máy tự động ghi đến một đống cho mỗi trong đầu vào. Khi một xảy ra, nó tiêu thụ nhiều như đã có , viết một vào heap cho mỗi tìm thấy . Điều này không làm phiền việc đếm vì heap thuận tiện giữ đầu. Chỉ sau khi tất cả được lấy từ đống được chấp nhận; chỉ sau khi tìm thấy nhiều như (và sau đó là ), chấp nhận với đống trống và trạng thái cuối cùng.aabbabbaaccbaA

Do đó, .L(A)=L


CFLHAL

Phần này của câu trả lời chỉ liên quan đến loại 1.

Cân nhắc tập các palindromes chẵn và giả sử có HA với .EPAL={wwRw{a,b}}AL(A)=L

Phỏng đoán: chúng tôi tìm thấy với vàsao cho ở cùng trạng thái và có cùng nội dung heap sau khi đọc và , tương ứng. Vì chấp nhận cả và , do đó, nó cũng chấp nhận (và ), đó là một mâu thuẫn với .w 1w 2 | w 1 | = | w 2 | Một w 1w1,w2{a,b}w1w2|w1|=|w2|Aw1w2Aw1w1Rw2w2Rw1w2REPALw2w1RL(A)=EPAL


CSLHAL

Phần này của câu trả lời liên quan đến cả loại 1 và loại 2.

Lý do tương tự mà chúng tôi đã sử dụng trên (cho loại 1) có thể được sử dụng để cho thấy rằng ngôn ngữ nhạy cảm ngữ cảnh không có trong . { w w w { a , b } } H A LEPAL{www{a,b}}HAL


HAL?CSL

Điều này vẫn mở cho cả loại 1 và loại 2.


Thông tin thêm

HA dường như là trực giao với một tập hợp con của các ngôn ngữ bối cảnh nhẹ được chấp nhận bởi Embedded Pushdown Automata : Trong khi HA có thể mô phỏng một số ngăn xếp được xếp chồng lên nhau, chúng không thể mô phỏng nhiều tùy ý (như EPA có thể). Tuy nhiên, HA có thể truy cập vào các biểu tượng hàng đầu của ngăn xếp hiện không nằm trên đỉnh (điều mà EPA không thể).


+1, phản hồi tuyệt vời. Về cơ bản tương đương với phương pháp của Brink, phải không? Tuy nhiên, sự nghiêm ngặt và chính xác là nổi bật. Bạn đã từng suy nghĩ liệu các máy như vậy có thể chấp nhận tất cả các CFL không? Có vẻ như không thể, vì thông tin đơn hàng bị mất bởi đống ...
Patrick87

Đó là ý tưởng tương tự Alex đã có, vâng. Vui vì bạn có thể nhận được một cái gì đó từ nó dù sao. Tôi đã thêm một ý tưởng cho hướng khác nhưng có một khoảng cách (rất lớn?). Cần phải suy nghĩ về nó với một cái đầu rõ ràng vào ngày mai và có thể bắn tỉa một số đồng nghiệp.
Raphael

Tôi cảm thấy mình nên bao gồm một bằng chứng về sự đúng đắn để kiếm thêm tín dụng cho sự nghiêm ngặt. ;) Nó không quá khó bằng cách cảm ứng trên , tôi đoán vậy. n
Raphael

Phác thảo bằng chứng mà bạn gán cho là phỏng đoán là những gì tôi có trong đầu và tôi thấy nó khá thuyết phục ... và, đây là một điểm kỹ thuật nhỏ, tôi nghĩ rằng bạn đang sử dụng ngôn ngữ của các palindromes dài, không phải tất cả palindromes ... mặc dù bằng chứng chắc chắn hoạt động theo cách nào đó (lưu ý rằng nó cũng hoạt động đối với các palindromes đơn giản, vì vậy HAL thậm chí không mạnh bằng DPDA, một kết quả khác).
Patrick87

@ Patrick87 Vấn đề là có thể có nhiều cấu hình có thể có HA hơn sau khi đọc ký hiệu so với các từ, đặc biệt nếu chúng ta cho phép -transitions đưa các ký hiệu vào heap. εnε
Raphael
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.