Là phần bổ sung của {www | Vấu} không ngữ cảnh?


12

Điều nổi tiếng là phần bổ sung của là không có ngữ cảnh. Nhưng còn phần bổ sung của thì sao?{wwwΣ}{wwwwΣ}


1
Tôi đã phát hiện ra rằng đây là Định lý 4 trong P. Dömösi, S. Horváth, M. Ito, L. Kászonyi, M. Katsura: Các ngôn ngữ chính thức bao gồm các từ nguyên thủy. link.springer.com/ch CHƯƠNG / 10.1007/3-540-57163-9_15
domotorp

Câu trả lời:


11

Tôi vẫn tin CFL, với sự thích nghi của bằng chứng cổ điển. Đây là một bản phác thảo.

Xét , là phần bổ sung của , với các từ có độ dài không mod bị xóa.L={xyz:|x|=|y|=|z|(xyyz)}{www}03

Đặt . Rõ ràng, là CFL, vì bạn có thể đoán vị trí và xem xét rằng kết thúc sau đó. Chúng tôi chỉ ra rằng .L={uv:|u|3|v|30u2|u|/3v|v|/3}Lpup/2L=L

  • LL : Hãy . Giả sử có một sao cho . Sau đó viết cho ký tự đầu tiên của và cho phần còn lại. Đương nhiên, . Bây giờ gì? Đầu tiên: w=xyzLpxpypu3p/2wvu2|u|/3=xpv|v|/3

|v|/3=(|w|3p/2)/3=|w|/3p/2.

Do đó, trong , đây là vị trí: hay nói cách khác, vị trí trong . Điều này cho thấy .w

|u|+|v|/3=3p/2+|w|/3p/2=|w|/3+p,
pyu2|u|/3=xpyp=v|v|/3

Nếu , thì hãy để là ký tự của , sao cho là ; là phần còn lại của . Sau đó: do đó tương tự, .ypzpu32(|w|/3+p)wu2|u|/3ypvw

|u|+|v|/3=2|w|/3+p
v|v|/3=zp

  • LL : Chúng tôi đảo ngược quá trình trước đó. Đặt . Viết . Khi đó: Do đó và (vì nếu có dạng , thì nó phải giữ rằng cho tất cả ).w=uvLp=2|u|/3
    p+|w|/3=2|u|/3+|uv|/3=|u|+|v|/3.
    wp=u2|u|/3v|v|/3=wp+|w|/3wLwxxxwp=wp+|w|/3p

2
Wow, thật không thể tin được! Tôi không khẳng định rằng tôi đã theo dõi từng chi tiết trong cuộc tranh luận của bạn, như tôi không thấy ý của bạn ở dòng cuối cùng ('Đối với bit cuối cùng') hoặc tại sao bạn không phân tách trường hợp khi , nhưng giải pháp của bạn cuối cùng cũng hoạt động. Tôi sẽ tóm tắt thủ thuật chính là . Thủ thuật tương tự cũng hoạt động để bổ sung cho bất kỳ . Tôi tự hỏi liệu có ngữ cảnh hay không. 3 a + 3 b = 2 a + ( b - a ) + 2 a + 2 b L r = { w r } L = { x y z : | x | = | y | = | z | ( x y )|w|/3<p/23a+3b=2a+(ba)+2a+2bLr={wr}L={xyz:|x|=|y|=|z|(xy)}
domotorp

1
@domotorp: Chúc mừng! Được rồi, "chút cuối cùng" là không cần thiết, cảm ơn! Đối với "trường hợp khi ", tôi không chắc bạn muốn nói điều đó ở đâu. Tôi đã bỏ lỡ một cái gì đó? Đối với của bạn , tôi tự hỏi tương tự làm "bằng chứng" này! Vẫn chưa chắc chắn :)L '|w|/3<p/2L
Michaël Cadilhac

2
Ôi, xấu quá, luôn giữ! p/2|w|/3
domotorp

Có lẽ nó không phải là một vấn đề, nhưng có thể là số lẻ, vì vậy bạn nên xử lý các trường hợp Khi là số lẻ. | bạn | = 3 p / 2 ( ? ) Pp|u|=3p/2(?)p
Marzio De Biasi

@MarzioDeBiasi: Vâng, đó chính xác là lý do tại sao đây là một bản phác thảo :-)
Michaël Cadilhac

10

Đây là cách tôi nghĩ về việc giải quyết vấn đề này, với một chiếc PDA. Theo tôi, nó trực quan rõ ràng hơn.

Một từ không phải là dạng iff (i) (mod 3), dễ kiểm tra hoặc (ii) có một số ký hiệu đầu vào khác với ký hiệu tương ứng xảy ravị trí sau. xwww|x|0ab|w|

Chúng tôi sử dụng thủ thuật thông thường là sử dụng ngăn xếp để duy trì số nguyên bằng cách có ký hiệu "dưới cùng của ngăn xếp" mới , lưu trữ giá trị tuyệt đốilà số lượng bộ đếm trên ngăn xếp và sgn ( ) theo trạng thái của PDA. Do đó chúng ta có thể tăng hoặc giảm bằng cách thực hiện thao tác thích hợp.tZ|t|tt

Mục tiêu là sử dụng thuyết không điều kiện để đoán vị trí của hai biểu tượng bạn đang so sánh và sử dụng ngăn xếp để ghi , trong đó là khoảng cách giữa hai biểu tượng này. t:=|x|3dd

Chúng tôi thực hiện điều này như sau: tăng cho mỗi biểu tượng được nhìn thấy cho đến khi biểu tượng đoán đầu tiên được chọn và ghi lại trong trạng thái. Đối với mỗi biểu tượng đầu vào tiếp theo, cho đến khi bạn quyết định bạn đã nhìn thấy , sụt lần bởi ( cho độ dài đầu vào và cho khoảng cách). Đoán vị trí của ký hiệu thứ hai và ghi lại xem . Tiếp tục tăng cho các ký hiệu đầu vào tiếp theo. Chấp nhận nếu (có thể phát hiện bởi ở trên cùng) và .taabt213babtt=0Zab

Điều tốt đẹp về điều này là nó phải hoàn toàn rõ ràng làm thế nào để mở rộng điều này thành quyền hạn tùy ý.


2
Thật vậy, rất gọn gàng!
domotorp

1
Ah, thực sự đẹp hơn nhiều :-)
Michaël Cadilhac

4

Chỉ là một phối cảnh khác ("định hướng ngữ pháp") để chứng minh rằng phần bù của là CF cho mọi cố định sử dụng các thuộc tính đóng.{wk}k

Lưu ý đầu tiên rằng trong phần bổ sung của luôn có sao cho . Chúng tôi tập trung vào và bắt đầu với một ngữ pháp CF đơn giản tạo ra:{wk}iwiwi+1w1w2

L={a00...0w1b00...0w2...000...0wk|wi|=n}={a0n1b0n(k1)1}

Ví dụ: với , chúng ta có ,k=3L={ab0,a0b000,a00b00000,...}GL={Sab0|aX00,X0X00|0b0}

Sau đó áp dụng đóng cửa theo phép đồng hình nghịch đảoliên kết :

Phép đồng hình thứ nhất:φ(1)a,φ(0)b,φ(1)0,φ(0)0

Phép đồng hình thứ hai:φ(0)a,φ(1)b,φ(1)0,φ(0)0

L=φ1(L)φ1(L) vẫn không có ngữ cảnh

Áp dụng đóng cửa theo ca tuần hoàn cho để có được chuỗi chuỗi có độ dài không phải dạng :Lknwk

L=Shift(L)={uuwk|u|=kn} .

Cuối cùng, thêm bộ chuỗi thông thường có độ dài không chia hết cho để có được chính xác phần bù của :k{wk}

L{{0,1}nnmodk0}={uuwk}

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.