Quyết định xem một ngôn ngữ không ngữ cảnh có thể được chấp nhận bởi một máy tự động đẩy xuống xác định


22

Đưa ra một ngữ pháp G không ngữ cảnh, tồn tại một Pushdown Automaton Nondeterministic Pushdown Automaton N chấp nhận chính xác ngôn ngữ mà G chấp nhận. (và ngược lại visa)

Cũng có thể tồn tại một Máy tự động đẩy xuống xác định D cũng chấp nhận chính xác ngôn ngữ G cũng chấp nhận. Nó phụ thuộc vào ngữ pháp.

Bằng thuật toán nào trên các sản phẩm của G, chúng ta có thể xác định được liệu D có tồn tại không?


4
Ngay cả khi bạn biết trước rằng có DPDA cho G, không có thuật toán để tìm thấy nó. Xem tại đây .
sdcvvc

Câu trả lời:


20

Không có thuật toán nào đưa ra một ngữ pháp không ngữ cảnh, quyết định xem DPDA có nhận ra cùng một ngôn ngữ hay không và tính toán nếu nó tồn tại.

Bởi vì nếu một thuật toán như vậy tồn tại, chúng ta sẽ có thể quyết định vấn đề không thể giải quyết được về tính phổ quát của ngữ pháp không ngữ cảnh, tức là liệu một ngữ pháp không có ngữ cảnh G trên nhận ra toàn bộ ngôn ngữ .Σ *ΣΣ

Giả sử có một thuật toán như vậy . Đặt là một số ngữ pháp không ngữ cảnh. Đặt là . Sau đó, các thuật toán sẽ quyết định nếu có một DPDA nhận . G L L ( G ) A D P D A A LADPDAGLL(G)ADPDAAL

  • Nếu không có DPDA như vậy, thì không thể nhận ra bởi DPDA, đặc biệt là nó không thường xuyên, vì vậy nó không thể là .Σ *LΣ

  • Nếu DPDA tồn tại thì chúng ta có thể quyết định xem có bằng vì tính phổ quát có thể quyết định đối với DPDA. Tại sao? Bởi vì:L Σ *ALΣ

    • Các ngôn ngữ DPDA được đóng lại dưới sự bổ sung (vì DPDA mang tính quyết định)
    • sự trống rỗng có thể quyết định đối với DPDA (vì nó dành cho các thiết bị PDA )

Sử dụng chúng tôi đã xây dựng một thuật toán quyết định liệu cho bất kỳ ngữ pháp ngữ cảnh nào , điều này đã được chứng minh là không thể. Do đó không tồn tại. L ( G ) = Σ * G Một D P D MộtADPDAL(G)=ΣGADPDA


Tôi không hiểu điều này xin lỗi. Bạn đang sử dụng để chỉ bảng chữ cái được sử dụng bởi G? Và ý của bạn là "L có phải là ngôn ngữ đầy đủ " không? Bạn có nói rằng chúng tôi sẽ thực hiện thuật toán trên một ngữ pháp G tạo ra , ngôn ngữ của bất kỳ chuỗi nào trên Σ? Chúng tôi rõ ràng sẽ tìm thấy không chỉ DPDA, mà là một DFA đơn giản cho ngôn ngữ này. Phần bổ sung của là ngôn ngữ trống rỗng, điều này cũng dễ dàng được nhận ra bởi cả DPDA và DFA - vì vậy tôi rõ ràng đang thiếu một cái gì đó trong lời giải thích của bạn. Σ * Σ *ΣΣΣ
Andrew Tomazos

Tôi hy vọng điều này là rõ ràng hơn bây giờ. Lưu ý rằng tôi trả lời một câu hỏi hơi khác: Tôi sẽ thề rằng bạn đã hỏi liệu chúng tôi có thể tính không, không chỉ quyết định liệu nó có tồn tại hay không. D
jmad
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.