Xây dựng một thiết bị PDA để bổ sung cho


16

Tôi tự hỏi liệu điều này có khả thi hay không, vì . Do đó, một PDA có thể phân biệt một từ w \ in \ {a ^ nb ^ nc ^ n \ mid n \ geq 0 \} với phần còn lại của \ {a ^ * b ^ * c ^ * \} cũng có thể chấp nhận nó , nghe có vẻ mâu thuẫn với tôi. w { a n b n c nn 0 }{ a b c }{anbncnn0}CFLw{anbncnn0}{abc}

Tôi đoán rằng tôi cần phải tận dụng tính chất không xác định của các thiết bị PDA nhưng tôi không có ý tưởng. Nếu bạn có thể cung cấp một số lời khuyên, tôi sẽ rất đánh giá cao nó.


Điểm thú vị về nó có vẻ mâu thuẫn. Thật vậy, các ngôn ngữ không ngữ cảnh không bị đóng khi lấy phần bổ sung ... vì vậy có rất nhiều ví dụ về các ngôn ngữ không có ngữ cảnh có thể được "chấp nhận" theo nghĩa mà bạn ám chỉ. Tôi không phải là một nhà lý thuyết và, như vậy, không thể thực sự hòa giải được điều này, nhưng có lẽ ai đó có thể nói về lý do tại sao điều này không phải là điều đáng lo ngại?
Patrick87

Lưu ý rằng điều này khái quát hóa: phần bù của {anbncndnen} là một CFG.
sdcvvc

Câu trả lời:


15

Không, đây là bối cảnh miễn phí. Để chấp nhận anbncn , bạn cần đảm bảo rằng ba số bằng nhau. Để chấp nhận abcanbncn , bạn chỉ cần đảm bảo rằng bạn thuộc một trong ba trường hợp sau:

  1. Số lượng của a s khác với số lượng b s; hoặc là
  2. Số lượng của a s khác với số lượng c s; hoặc là
  3. Số lượng s khác với số lượng s.cbc

Viết một PDA cho mỗi trường hợp này, sau đó kết hợp chúng bằng cách nhảy không đặc biệt đến từng trường hợp từ trạng thái bắt đầu.


Tôi đã viết ra những trường hợp này rồi, nhưng tôi đã thiếu ý tưởng kết nối chúng. Cảm ơn bạn!
hauptbenutzer

4
Thật ra bạn chỉ cần bất kỳ hai trường hợp.
sdcvvc

@sdcvvc Điểm tốt. :)
Patrick87

Đối với số lượng ký tự khác nhau, hãy coi đây là nguồn cảm hứng: . Thật đơn giản để dán vào bên trái của cái này hoặc ở bên phải và biến cái này thành một chiếc PDA. Đối với trường hợp khó khăn (mà bạn không cần) . a + c + S a S c | Một | C ; A a B | a A ; C B c | C c ; B ε | b BSxSy|X|Y;Xx|xX;Yy|yYa+c+SaSc|A|C;AaB|aA;CBc|Cc;Bε|bB
Jonas Kölker
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.