Tìm các ví dụ về các ngôn ngữ là tiếng Anti-palindromic


15

Đặt . Một ngôn ngữ được cho là có sự "chống palindrome" tài sản nếu cho mỗi chuỗi đó là một palindrome, . Bên cạnh đó, đối với mỗi chuỗi đó là không một palindrome hoặc hoặc , nhưng không phải cả hai (!) (Không bao gồm hoặc).Σ={0,1}LΣwwLuuLReverse(u)L

Tôi hiểu thuộc tính chống palindrom, nhưng tôi không thể tìm thấy bất kỳ ngôn ngữ nào có thuộc tính này. Gần nhất mà tôi có thể tìm thấy là , nhưng nó không có độc quyền hay một phần ... có nghĩa là, ví dụ, cả hai và là trong .ΣL0110L

Bất cứ ai có thể cho tôi một ví dụ về một ngôn ngữ có sự phù hợp này? Hoặc thậm chí có thể nhiều hơn một ví dụ duy nhất, bởi vì tôi không thấy loại hạn chế này đặt lên một ngôn ngữ. (Phải là không thường xuyên? Bối cảnh miễn phí? Hoặc thậm chí không ở ? Và vv)R


"Tôi không thể tìm thấy bất kỳ ngôn ngữ nào có tài sản này." - bạn vừa xác định một bằng cách đưa ra tài sản, giả sử rằng có bất kỳ ngôn ngữ nào đáp ứng điều kiện.
Raphael

7
Tôi không đồng ý, những gì anh định nghĩa là một lớp ngôn ngữ. Điều đó không tạo thành một định nghĩa được xác định rõ ràng cho một ngôn ngữ.
Shreesh

Câu trả lời:


12

Một ví dụ sẽ là .L={x  |  binary(x)<binary(xR),x[0,1]}

Và một ví dụ khác .L={x  |  binary(x)>binary(xR),x[0,1]}

Ý tưởng là, nếu bạn thực hiện quy tắc chỉ chọn một trong số họ. Bạn cần chọn quy tắc sao cho palindromes nên bị từ chối ( , đối với palindromes bạn phải có ). Bạn cũng có thể thay đổi bảng chữ cái, Tôi lấy bảng chữ cái nhị phân chỉ để có được một câu trả lời nhanh chóng. f ( x ) < f ( x R ) f ( x ) = f ( x R )xxRf(x)<f(xR)f(x)=f(xR)

L và ở trên không thường xuyên. Và mọi ngôn ngữ chống palindromic sẽ không thường xuyên và có thể tệ như ngôn ngữ không phải RE. Kiểm tra ngôn ngữ không thể sử dụng được: sao cho nếu cả và Halt hoặc cả và Dừng lại, nếu không thì HaltLL={x  |  binary(x)<binary(xR)xxR xxR x}

Klaus Draeger đã giải thích trong bình luận bên dưới rằng ngôn ngữ chống palindromic được đưa ra ở đầu câu trả lời là không có ngữ cảnh:L={x0y1xR | x,y{0,1}}


Tôi hiểu, vì vậy đúng là mọi ngôn ngữ chống palindrom đều không đều đặn. Nhưng có thể nói rằng nó phải ở trong ? bởi vì ngay cả việc mở rộng ý tưởng này, mọi đơn hàng / chức năng chúng ta sẽ sử dụng đều có thể được tính toán với một TM trong R .. đúng không? RR
Marik S.

@Marik Có các chức năng được xác định rõ nhưng không thể tính toán được . Ví dụ ánh xạ từ các số đại diện cho M, w trong bài toán Dừng thành [0,1].
Shreesh

Có, nhưng sẽ chức năng như vậy có thể xác định một trật tự tổng trên ? Σ
Marik S.

1
Đúng. Ví dụ: nếu cả xx R hoặc Halt, nếu không thì x hoặc x R tùy theo giá trị nào trong Halt } . Dừng lại là tất cả ( M , w ) sao cho ML={x|xxR,binary(x)<binary(xR)xxRxxR}(M,w)Mdừng lại trên . w
Shreesh

1
Và nếu bạn sử dụng ngôn ngữ chéo thì nó trở thành không phải là RE.
Shreesh

10

Về việc tạo một vài ví dụ:

Dựa trên câu trả lời của @shreesh, chúng tôi có thể chứng minh rằng mọi ngôn ngữ chống palindrom phải có dạng chomộtsố đơn đặt hàng tổng nghiêm ngặt < .

L={x | x<xR}()
<

Thật vậy, với bất kỳ chống nhạt màu nào , chúng ta có thể định nghĩa một < như sau. Chúng tôi bắt đầu bằng cách dùng bất cứ liệt kê x 0 , x 1 , ... của { 0 , 1 } * , trong đó mỗi chữ xuất hiện đúng một lần. Sau đó, chúng tôi thay đổi phép liệt kê: đối với mỗi cặp không phải là palindromes x , x R , chúng tôi trao đổi vị trí của chúng để làm cho cái thuộc về L xuất hiện trước cái kia. Phép liệt kê mới tạo ra tổng thứ tự < thỏa mãn ( ) .L<x0,x1,{0,1}x,xRL<()

Rằng mỗi định nghĩa là ( * ) là phi palindrome là tầm thường, vì vậy ( * ) là một đặc điểm hoàn toàn ngôn ngữ không phải palindrome.L()()

Trả lời câu hỏi ban đầu, bây giờ chúng ta biết rằng chúng ta có thể có được một số ví dụ về các ngôn ngữ chống palindrom bằng cách tạo ra các thứ tự < . Chúng tôi cũng biết rằng bằng cách đó, chúng tôi không giới hạn bản thân trong một lớp ngôn ngữ, làm mất tính tổng quát.L<


Về câu hỏi "những ngôn ngữ này có thể là thường xuyên không?":

Để chứng minh rằng bất kỳ chống palindrom L là không thường xuyên, giả sử bởi mâu thuẫn nó là thường xuyên.L

  1. tính đều đặn được bảo toàn bằng đảo ngược , cũng là thường xuyên.LR
  2. Kể từ khi đều đặn được bảo quản bằng công đoàn, , mà là tập hợp của tất cả các phi palindromes, cũng là bình thường.LLR
  3. Vì tính đều đặn được bảo toàn bằng bổ sung, nên tập hợp tất cả các palindromes là thường xuyên.

Từ tuyên bố cuối cùng, chúng ta có thể rút ra một mâu thuẫn bằng cách bơm. (Xem ví dụ ở đây để biết giải pháp)


1
Hoặc đơn giản hơn, bạn có thể quan sát rằng để DFA chấp nhận ngôn ngữ của palindromes, nó cần xem xét nửa đầu của chuỗi trong khi phân tích nửa sau - nhưng DFA có số lượng trạng thái hữu hạn và không thể lưu trữ một trạng thái hữu hạn chuỗi dài tùy ý. Đó là lý do tương tự cho thấy ngôn ngữ của dấu ngoặc đơn cân bằng là không thường xuyên (độ sâu paren có thể lớn tùy ý).
Kevin

Tôi thấy, nhưng nếu bất kỳ nào có thuộc tính này nếu từ mẫu L = { x | x < x R } có chỉ ra rằng mọi ngôn ngữ cũng không có ngữ cảnh không? Hoặc nếu không phải CFL, thì nó phải ở R ? vì mỗi đơn hàng < có thể được tính bằng R với TM. LL={x|x<xR}R<R
Marik S.

@MarikS. Ngữ pháp của rici dưới đây chứng minh rằng có thể không có ngữ cảnh. Tôi khá chắc chắn rằng một số L không đệ quy, vì có vô số ngôn ngữ như vậy - theo bằng chứng của tôi ở trên, chúng tôi có thể đưa ra vô số lựa chọn vô hạn về việc đặt đầu tiên giữa xx R , và mỗi kết hợp cho một L khác biệt . Vì vậy, số lượng của các ngôn ngữ như vậy là giống nhau của { 0 , 1 } N , không thể đếm được. LLxxRL{0,1}N
chi

9

Đối với những gì nó có giá trị, đây là một ngữ pháp không ngữ cảnh đơn giản cho một ngôn ngữ chống palindromic:

S0S01S10X1XϵX0X1

(Trên thực tế, đây là ngôn ngữ chống palindromic được đề xuất bởi @shreesh, sử dụng so sánh từ vựng cho toán tử ít hơn.)


8
Điều này dẫn đến một mô tả thậm chí rõ ràng hơn: . L={x0y1xR | x,y{0,1}}
Klaus Draeger
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.