Chứng minh rằng DPDA được đóng dưới sự bổ sung của xây dựng


8

Tôi đã cố gắng trong một thời gian dài để tìm một công trình để tôi có thể chính thức chứng minh rằng một thiết bị PDA xác định được đóng lại dưới sự bổ sung. Tuy nhiên, điều xảy ra là mọi ý tưởng tôi có đều có thứ gì đó cuối cùng không phù hợp. Bạn có thể giúp tôi một tay không?

Vấn đề chính xảy ra với các động tác . Một thiết bị PDA có thể đọc xong đầu vào của nó ở trạng thái không phải là cuối cùng (từ chối) nhưng vẫn có thể chuyển sang trạng thái (chấp nhận) cuối cùng thông qua di chuyển and và cuối cùng chấp nhận chuỗi. Điều này có nghĩa là chỉ cần thêm một trạng thái chết và bổ sung cho các trạng thái không hoạt động. Tôi đã giải quyết vấn đề về chuỗi di chuyển vô hạn có thể có , vì vậy đó không phải là một phần chính trong câu hỏi của tôi.

EDIT: Theo như tôi hiểu, nếu DPDA đạt đến cuối đầu vào và ở trạng thái chấp nhận và chuyển sang trạng thái từ chối thông qua ε-di chuyển, nó vẫn sẽ chấp nhận nó (vì nó đạt đến trạng thái cuối cùng không còn ký hiệu đầu vào đọc).

Xin vui lòng cho tôi biết nếu tôi có thể rõ ràng hơn.


Tôi đoán bạn quan tâm đến tài sản đóng cửa của DCFL chống lại sự bổ sung? Phrasing của bạn "chính thức chứng minh rằng một PDA xác định được đóng dưới sự bổ sung" có ý nghĩa rất nhỏ đối với tôi.
Raphael

Câu trả lời:


3

Tôi không có thời gian để viết điều này trước đây nhưng tôi đã tìm thấy câu trả lời. Đây là những gì tôi đã làm:

Đặt là gốc . Chúng tôi sẽ xây dựng một mới , gọi nó là ( là viết tắt của sửa đổi).OPDAPDAMM

Để tìm phần bù của , chúng ta có thể lật các trạng thái cuối cùng thành trạng thái không cuối cùng và ngược lại. Đây là quy trình tương tự như đối với máy tự động hữu hạn. Tuy nhiên, có một sự tinh tế. Vấn đề chính là trong PDA gốc , đầu vào có thể dẫn đến trạng thái không phải là trạng thái cuối cùng nhưng có thể thực hiện và sang trạng thái chấp nhận . Các trạng thái lật như đã đề cập ở trên, sẽ khiến kết thúc bằng với đầu vào sẽ là trạng thái cuối cùng (khiến chấp nhận chấp nhận đầu vào) ngay cả khi sau đó nó sẽ tạo ra một đếnOOwSϵmoveSS w M ϵ - m o v e S O M w S S S ϵ - m o v eMSwMϵmoveS, một trạng thái không chấp nhận. Do đó, cả và sẽ chấp nhận . Một cái gì đó tương tự xảy ra nếu là trạng thái cuối cùng và là trạng thái không cuối cùng có thể tiếp cận được từ thông qua một động tác .OMwSSSϵmove

Để khắc phục vấn đề này, chúng tôi phải đảm bảo rằng tất cả -move xảy ra trước khi chúng tôi đọc biểu tượng tiếp theo. Đó là, chúng tôi sẽ chỉ vào trạng thái đọc khi có đường dẫn của -move và chúng tôi đạt đến trạng thái không có -move. Chúng tôi gọi các trạng thái sau này là các trạng thái đọc , vì chúng cần một biểu tượng thực tế để thực hiện chuyển đổi mới.ε εϵϵϵ

Xác định các trạng thái của là các bộ dữ liệu có dạng trong đó ( là tập hợp các trạng thái của gốc ) và .< q , n > q Q Q P D A n { 1 , 2 , 3 , 4 }M<q,n>qQQPDAn{1,2,3,4}

  • Nếu trong , hãy để trong nếu .O δ ( < q , 3 > , ε , X ) = < < q ' , 2 > , α > M q F Oδ(q,ϵ,X)=<q,α>Oδ(<q,3>,ϵ,X)=<<q,2>,α>MqFO

  • Nếu trong , hãy cho trong nếu .O δ ( < q , 3 > , ε , X ) = < < q ' , 3 > , α > M q F Oδ(q,ϵ,X)=<q,α>Oδ(<q,3>,ϵ,X)=<<q,3>,α>MqFO

  • Nếu trong , hãy để trong .O δ ( < q , 2 > , ε , X ) = < < q ' , 2 > , α > Mδ(q,ϵ,X)=<q,α>Oδ(<q,2>,ϵ,X)=<<q,2>,α>M

  • Nếu được trong , trongu n d e f i n e d O δ ( < q , 2 > , ε , X ) = < < q , 1 > , X > Mδ(q,ϵ,X)undefinedOδ(<q,2>,ϵ,X)=<<q,1>,X>M

  • Nếu được trong , trongu n d e f i n e d O δ ( < q , 3 > , ε , X ) = < < q , 4 > , X > Mδ(q,ϵ,X)undefinedOδ(<q,3>,ϵ,X)=<<q,4>,X>M

Trong các định nghĩa đó, chúng tôi cho phép các trạng thái có dạng và tiêu thụ -move bắt chước -move của cho đến khi không còn nữa. Sau đó, thực hiện chuyển sang trạng thái đọc. Bây giờ cho các trạng thái đọc,< q , 3 > ε ε O ε<q,2><q,3>ϵϵOϵ

  • Nếu trong , hãy trong .O δ ( < q , 1 > , một , X ) = δ ( < q , 4 > , một , X ) = < < q ' , 3 > , α > Mδ(q,a,X)=<q,α>Oδ(<q,1>,a,X)=δ(<q,4>,a,X)=<<q,3>,α>M

Bằng cách đưa ra định nghĩa này, chúng tôi sử dụng một biểu tượng của đầu vào và chuyển sang trạng thái có dạng để bắt đầu một loạt -move mới.ε<q,3>ϵ

Cuối cùng, làm cho các trạng thái có dạng được chấp nhận trạng thái của nếu . Ngoài ra, hãy tình trạng ban đầu của nếu là tình trạng ban đầu của .M q F O < q 0 , 3 > M q 0 O<q,4>MqFO<q0,3>Mq0O


Những gì chúng tôi đã làm là như sau:

Tạo 4 "tầng" trạng thái (yếu tố thứ hai của bộ dữ liệu ở trạng thái xác định chúng ta ở tầng nào). Tầng 3 bắt chước -moves của có thể đạt đến một trạng thái chấp nhận của . Nếu đó là trường hợp, chúng tôi chuyển sang tầng 2; mặt khác, chúng tôi vẫn ở tầng 3. Khi không còn -move để theo , chúng tôi xác định -move của để đạt đến trạng thái đọc. Tầng 1 và 4 tương ứng với trạng thái đọc. Nếu chúng tôi ở tầng 3, chúng tôi lên tầng 4. Nếu chúng tôi ở tầng 2, chúng tôi đạt đến tầng 1. Chỉ các bang (tiểu bang ở tầng 4) mới chấp nhận trạng thái củaϵ O q O ϵ O ϵ M < q , 4 > M q OMϵOqOϵOϵM<q,4>M , với điều kiện là không phải là một nhà nước chấp nhận của .qO

Xin vui lòng cho tôi biết nếu tôi đã viết một lỗi đánh máy khi viết này. Tôi có thể dễ dàng nhầm lẫn. Ngoài ra, tiếng Anh của tôi không tốt lắm nên cứ thoải mái chỉnh sửa và viết lại những thứ tốt hơn.


1

Có một bằng chứng bằng cách xây dựng trong Giới thiệu về Lý thuyết tính toán của Sipser ( phiên bản 3 có một phần trên DCFL) xác định trạng thái đọc của máy tự động bằng cách tách bất kỳ trạng thái nào đọc và bật cùng một lúc. Chỉ những trạng thái đọc này mới có thể là trạng thái cuối cùng và để có được DPDA bổ sung, bạn chỉ đảo ngược hành vi chấp nhận trong tập trạng thái đọc.rd


-2

Bạn có thể giả sử máy tự động không có -transitions mà không mất tính tổng quát.ε

Điều này có thể được thể hiện bằng cách sử dụng cấu trúc tiêu chuẩn từ CFG đến PDA được áp dụng cho dạng thông thường Greibach . Trong Im lặng chuyển tiếp trong Automata với lưu trữ , G. Zetzsche gần đây đã trình bày một công trình trực tiếp trên automata.

Nhắc nhở tiềm năng: Tôi giả định rằng việc xây dựng tiêu chuẩn mang lại DPDA nếu chúng ta áp dụng nó cho một ngữ pháp phù hợp, nghĩa là "xác định", và sự phù hợp này tồn tại trong sự biến đổi ở dạng bình thường Greibach.


2
Xin lỗi, nhưng giả định không giữ được. . {anbmcnm,n1}{anbmdmm,n1}
Hendrik ngày

@HendrikJan Tôi không hiểu bằng cách nào ngôn ngữ của bạn bác bỏ giả định của tôi.
Raphael

Nó không có ngữ cảnh xác định, nhưng cần -transitions. Theo trực giác, người ta cần xếp cả và và để chữ hoặc quyết định sử dụng. Khi đọc chúng ta phải bật tất cả các . n m c d c bεnmcdcb
Hendrik ngày

1
Đó là ví dụ tôi biết rằng cho thấy DPDA "thời gian thực" không phải là một hình thức bình thường. (Để chứng minh, bạn phải bắt đầu một câu hỏi mới :)) Một tính năng hay là bạn chỉ cần -transitions cũng bật ngăn xếp, tránh tính toán vô hạn. ε
Hendrik ngày

3
Raphael, tôi nghĩ @HendrikJan đúng. Điều đó không mâu thuẫn với tổng hợp cho các thiết bị PDA, bởi vì áp dụng cái sau cho DPDA giới thiệu tính không phổ biến. ε
Georg Zetzsche
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.