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:
- 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.
- 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.
- 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ữ bằng cách thêm 's để đống, và loại bỏ là từ đống khi nó đọc '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ụ, (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 ...
- là tập hợp hữu hạn, không rỗng của các trạng thái;
- là trạng thái ban đầu;
- là tập hợp các trạng thái chấp nhận;
- là một hữu hạn, không có sản phẩm nào bảng chữ cái đầu vào;
- 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 ) ;
- là biểu tượng đặc biệt đáy-of-the-đống;
- là chức năng chuyển đổi.
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 , . . . , Γ k ∈ gamma . 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 ( γ )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 và σ ∈ Σ , | δ n + 1 ( q 0 , x σ y , Z 0 ) | ≤ 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:
- 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.
- 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:
- 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 ]
- 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.
- 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;
- 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