Làm thế nào có thể ws với | w | = | s | và chúng không có ngữ cảnh trong khi w # s thì không?


9

Tại sao (nếu vậy) seperator # tạo ra sự khác biệt giữa hai ngôn ngữ?

Hãy nói:

L={ws:|w|=|s|w,s{0,1},ws}

L#={w#s:|w|=|s|w,s{0,1},ws}

Dưới đây là một bằng chứng và một ngữ pháp đại diện cho LCFL

Và dưới đây Im thêm một bằng chứng cho L#CFL :

Liệu dấu # thực sự tạo ra sự khác biệt? Nếu vậy, tại sao vậy? và nếu không, một trong những bằng chứng là sai và ở đâu?

Bằng chứng cho thấy L#CFL :

Giả sử bằng cách mâu thuẫn mà LCFL . Đặt p>0 là hằng số bơm cho L được đảm bảo bởi bổ đề bơm cho các ngôn ngữ không ngữ cảnh. Chúng tôi xem xét từ s=0m1p#0p1m trong đó m=p!+p để sL . Kể từ |s|>p , theo bổ đề bơm có tồn tại một đại diện s=uvxyz , sao cho |vy|>0 ,|vxy|puvjxyjzL với mỗij0 .

Chúng tôi nhận được một mâu thuẫn bởi các trường hợp:

  • Nếu v hoặc y chứa # : Sau đó cho i=0 , chúng tôi nhận được rằng uxz không chứa # , vì vậy uxzL trong mâu thuẫn.
  • Nếu cả vy đều để lại # : Sau đó, với i=0 , chúng ta nhận được rằng uxz có dạng w#x , trong đó |w|<|x|, Vì vậy uxzL .

  • Nếu cả vy đều đúng # : Tương tự như trường hợp cuối cùng.

  • Nếu v được để lại # , y đúng với nó và |v|<|y|: Sau đó với i=0 , chúng ta nhận được rằng uxz có dạng w#x , trong đó |w|>|x|, Vì vậy uxzL .

  • Nếu v được để lại # , y đúng với nó và |v|>|y|: Tương tự như trường hợp cuối cùng.

  • Nếu v được để lại # , y đúng với nó và |v|=|y|: Đây là trường hợp thú vị nhất. Kể từ |vxy|p , v phải được chứa trong phần 1p của sy trong phần 0p . Vì vậy, nó cho rằng v=1ky=0k cho cùng 1kp (trong thực tế, nó phải làk<p/2 ). Với mỗij0 , nó giữ rằng uvj+1xyj+1z=0m1p+j·k#0p+j·k1m , vì vậy nếu nó xảy ra thìm=p+j·k , sau đó nó giữ rằnguvj+1xyj+1zLtrong mâu thuẫn. Để đạt được điều này, chúng ta phải lấyj=(mp)/k, chỉ có giá trị khimpchia hết chok. Hãy nhớ lại rằng chúng tôi đã chọnm=p+p!, vì vậymp=p!p!chia hết cho1kpkhi muốn.

Câu trả lời:


7

Bằng chứng của bạn là chính xác, và tôi đã sai. Phải mất một thời gian tôi mới hiểu được sự nhầm lẫn của mình, nhưng với sự giúp đỡ của Yuval, tôi nghĩ rằng tôi đã hiểu được.

Hãy xem xét ba ngôn ngữ

L=={xy|x|=|y|,xy},L#={x#yxy}, andL=#={x#y|x|=|y|,xy}.

Như chúng ta đã thấy ở đây , có ngữ cảnh. Thủ thuật là, trong ngữ pháp, để tạo các ký hiệu "ở bên phải" nhưng đếm chúng "ở bên trái" sau (hoặc ngược lại), đảm bảo các ký hiệu không khớp xuất hiện ở các vị trí khớp. Điều kiện độ dài là không đáng kể vì nó giảm xuống còn chiều dài. Bạn có thể xây dựng NPDA với ý tưởng tương tự, sử dụng ngăn xếp để khớp với vị trí.L=

cũng không có ngữ cảnh. Bằng chứng thậm chí còn đơn giản hơn: các biểu tượng không khớp xuất hiện cùng một khoảng cách so với thời gian bắt đầu. dải phân cách. Độ dài không bằng nhau có thể được kiểm tra riêng; không xác định "chọn" giữa hai tùy chọn.L#

Bây giờ, như bạn thấy, không bối cảnh tự do. Đây là lý do tại sao các bằng chứng cho hai ngôn ngữ khác bị phá vỡ.L=#

  1. Trong ngữ pháp cho , nếu chúng ta phải tạo một dấu phân cách ở giữa, chúng ta không thể "gán lại" các ký hiệu từ "trái" sang "phải".L=
  2. Thay vì "chấp nhận nếu độ dài không bằng nhau hoặc không khớp", chúng ta phải "chấp nhận nếu độ dài bằng không khớp". Không xác định không thể giúp chúng tôi với !

Vì vậy, những gì nó hiểu được, theo trực giác, là các điều kiện của dạng " " và " | x | = | y | " đều "không có ngữ cảnh" theo nghĩa là chúng có thể được kiểm tra bằng một ngăn xếp, nhưng không sử dụng kiểm soát hữu hạn. Do đó, một chiếc PDA có thể làm một nhưng không phải cả hai.xy|x|=|y|

PDA cho "cheat" vì nó không thực sự kiểm tra các điều kiện này cho xy ; nó tách từ này theo một cách khác. Điều đó không còn có thể nếu bạn có dải phân cách.L=xy


Phụ Lục: Tôi mạnh dạn tuyên bố rằng vì CFL bị đóng chống lại đồng cấu ngược. Mặc dù đúng là f ( L = # ) = L = với f danh tính ngoại trừ việc xóa # , điều đó không liên quan. f - 1 ( L = ) = L # ; không có gì có thể nói về L = # .L=CFLL=#CFLf(L=#)=L=f#f1(L=)=L#L=#


Phụ lục II: Lưu ý rằng là không có ngữ cảnh tầm thường. Do đó, với L L # = L = #, chúng ta có một ví dụ hay cho việc CFL không bị đóng đối với giao lộ.L={x#y|x|=|y|}LL#=L=#

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.