Tôi muốn biết lý do tại sao để nhận dạng các ngôn ngữ không ngữ cảnh, chỉ có automata đẩy xuống không xác định (DPA = NPDA) hoạt động. Tại sao automata đẩy xuống xác định (DPDA) không nhận ra các ngôn ngữ như vậy?
Tôi muốn biết lý do tại sao để nhận dạng các ngôn ngữ không ngữ cảnh, chỉ có automata đẩy xuống không xác định (DPA = NPDA) hoạt động. Tại sao automata đẩy xuống xác định (DPDA) không nhận ra các ngôn ngữ như vậy?
Câu trả lời:
Tôi không chắc chắn hương vị của "tại sao" bạn đang tìm kiếm. Một lý do cho sự gia tăng sức mạnh khi cho phép thuyết không điều kiện có thể được nhìn thấy trong ví dụ sau:
Đặt là tập hợp các palindromes w ˉ w trên một số bảng chữ cái (có ít nhất hai ký hiệu), trong đó ˉ w là mặt trái của w . Một NPDA cho ngôn ngữ này chỉ có thể tiếp tục đẩy các biểu tượng lên ngăn xếp của nó, và sau đó tại một số điểm đoán rằng nó đã đạt đến giữa đầu vào và dần dần làm trống ngăn xếp. Lưu ý rằng điều kiện chấp nhận hoàn toàn mang tính tồn tại - đủ để có một dự đoán chính xác cho từ được chấp nhận.
Một PDA xác định sẽ phải chọn vị trí mà nó xem là giữa theo một cách nào đó chỉ phụ thuộc vào tiền tố hiện tại. Giả sử là DPDA như vậy. Với mọi k ∈ N , cho u k = a b 2 k a ; Đặt v 0 là từ trống và v k + 1 = v k u k v k . Đây là một chuỗi các palindromes, mỗi tiền tố của tiếp theo, do đó A phải ở trạng thái chấp nhận q k , với ngăn xếp trống, sau khi đọc v . Theo nguyên tắc lỗ chim bồ câu, phải có một số k , l sao cho k ≠ l và q k = q l (có một số trạng thái hữu hạn, và vì vậy một số phải được 'tái sử dụng' vì có vô số k s ). Nhưng sau đó A không thể phân biệt v k u k v k , đó là một palindrom, với v l u k v k , không.
FA xác định hoặc không xác định chấp nhận cùng một ngôn ngữ (ví dụ: Lang thường xuyên).
Nhưng trong trường hợp của PDA , nếu chúng tôi hạn chế nó hành xử một cách xác định thì nó sẽ không chấp nhận một số CFL (CFL không có thuộc tính tiền tố (trừ RL)).
Tại sao như vậy?
Hãy xem xét một ví dụ về CFL không có thuộc tính tiền tố (Thuộc tính tiền tố của một lang: không có chuỗi nào là tiền tố thích hợp của một chuỗi khác trong lang).
L = viết
ví dụ. chuỗi 00 và 0000 . (00 là tiền tố thích hợp của 0000 do đó wwr không có thuộc tính pref.).
Khi xảy ra 00 DPDA sẽ chuyển sang trạng thái cuối cùng. Bây giờ vì DPDA không có lựa chọn giữa chấp nhận và liên tục , nên nó không thể chấp nhận 0000 sau khi chấp nhận 00 . Đây là nơi mà PDA yêu cầu không xác định .
Quan sát : Trong trường hợp FA, lang (RL) không có pref. thuộc tính có thể được chấp nhận một cách xác định (ví dụ: chuỗi bắt đầu bằng 0). Điều này cho thấy tác động của thuộc tính tiền tố của RL và CFL là khác nhau . Sự khác biệt giữa tính xác định và tính không xác định đối với PDA tạo ra một họ lang mới. được DPDA chấp nhận. Lang này được gọi là DCFL .