Làm thế nào tôi có thể chứng minh ngôn ngữ này không có ngữ cảnh?


11

Tôi có ngôn ngữ sau

{0i1j2k0ijk}

Tôi đang cố gắng xác định lớp ngôn ngữ Chomsky nào phù hợp với nó. Tôi có thể thấy làm thế nào nó có thể được thực hiện bằng cách sử dụng một ngữ pháp nhạy cảm theo ngữ cảnh để tôi biết nó ít nhạy cảm với ngữ cảnh. Có vẻ như sẽ không thể thực hiện được với ngữ pháp không ngữ cảnh, nhưng tôi gặp vấn đề khi chứng minh điều đó.

Nó dường như vượt qua bổ đề bơm ngã ba vì nếu tất cả được đặt trong phần thứ ba của bất kỳ từ nào (phần có tất cả 2 giây). Nó có thể bơm vx bao nhiêu lần bạn muốn và nó sẽ giữ nguyên ngôn ngữ. Nếu tôi sai, bạn có thể cho tôi biết tại sao, nếu tôi đúng, tôi vẫn nghĩ ngôn ngữ này không có ngữ cảnh, vậy làm thế nào tôi có thể chứng minh điều đó?2 v xuvwxy2vx


Tôi không chắc làm thế nào để biến nó thành một bằng chứng chính thức, nhưng đảm bảo i <= j <= k yêu cầu bối cảnh (giá trị của biến trước đó).
Kevin


@Raphael, tôi đã đọc bài đăng đó trước bài này và không biết làm thế nào để áp dụng nó vào ví dụ của mình vì nó trừu tượng. Với mối quan hệ của mỗi nhân vật là> = số lượng nhân vật trước đó, tôi không thể thấy cách chia uxyzv thành từ để sử dụng bổ đề của Ogden. BlueMagister và jmad đã mở rộng trên bài đăng khác để làm rõ cho ví dụ của tôi.
justausr

@Raphael Tôi không đồng ý rằng đây là một ứng dụng tầm thường của vụ án chung. Chọn phương pháp nào để sử dụng và ví dụ nào để áp dụng nó không phải là quá dễ dàng.
Gilles 'SO- ngừng trở thành ác quỷ'

Câu trả lời:


7

Ví dụ, bạn có thể buộc bơm ở một số nơi, sử dụng bổ đề của Ogden bằng cách đánh dấu tất cả các số 0.

Giả sử nó không có ngữ cảnh, thì bổ đề của Ogden cung cấp cho bạn , bạn cho nó trong ngôn ngữ và bạn "đánh dấu" tất cả 0. Sau đó, bất kỳ hệ số phải sao cho có trong hoặc . Bạn cũng có thể giả sử và vì và phải là chuỗi con của ngôn ngữ của bạn.w = 0 p 1 p 2 p w = u x y z v 0 x z x = a k z = b m x xp>0w=0p1p2pw=uxyzv0xzx=akz=bmxxzz

  1. Nếu thì có nhiều hơn 0 so với 1w = u x 2z=0...0w=ux2yz2v

  2. Nếu và thì có nhiều hơn 1 .z = 1..1 w = u x 2 y z 2 vx=0..0z=1..1w=ux2yz2v

  3. Nếu và thì có nhiều hơn 0 so với 1.z = 2..2 w = u x 2 y z 2 vx=0..0z=2..2w=ux2yz2v

Vì vậy, không phải là một từ trong ngôn ngữ của bạn. Do đó, nó không có ngữ cảnh.ux2yz2v

Đối với các kỹ thuật khác, hãy xem thảo luận: Làm thế nào để chứng minh rằng một ngôn ngữ không có ngữ cảnh?


Đây có phải là ngôn ngữ tương tự mà tôi có? Nó dường như dành cho ngôn ngữ tương tự trong đó tất cả các 0 và 1 của 0 có độ dài bằng nhau. Ngôn ngữ này có số lượng 2's> = số lượng 1's> = số 0's
justausr

1
Đúng vậy, nhưng sử dụng bất kỳ bổ đề bơm nào, bạn có thể chọn từ này (và tôi đã chọn ): Bổ đề của Ogden có nghĩa là hoạt động cho tất cả chúng. 0p1p2p
jmad

Gotcha, tôi chưa bao giờ nghe nói về bổ đề của ogden vì vậy tôi sẽ phải xem xét nó. Tôi có đúng không khi nói rằng nó không thực hiện được bổ đề bơm?
justausr

@justausr không có tôi, cho đến gần đây (và nhờ vào cuộc thảo luận mà tôi đã đề cập). Và đúng vậy, bạn đã đúng: bổ đề bơm thực hiện gần như điều tương tự nhưng không chọn nơi để bơm khiến nó trở nên vô dụng ở đây.
jmad

5

Bổ đề bơm sẽ giải quyết vấn đề của bạn về phần thứ ba của từ này; lưu ý rằng khi bạn tách , mọi kết hợp của cũng có trong ngôn ngữ, kể cả khi . Hãy thử điều đó.u v n w x n y n =z=uvwxyuvnwxnyn=0

EDIT: Như jmad tuyên bố , Pumping Lemma giống như một trò chơi:

  1. Bổ đề bơm cung cấp cho bạn mộtp
  2. Bạn cho một từ của ngôn ngữ có độ dài ít nhấtsp
  3. Bổ đề bơm viết lại như thế này: với một số điều kiện ( và )| v x y | p | v ys=uvxyz|vxy|p|vy|1
  4. Bạn cho một số nguyênn0
  5. Nếu không ở , bạn thắng, không có ngữ cảnh.LuvnxynzLL

Vì vậy, những gì bạn phải làm là nêu một từ, chia 3 thành các trường hợp và chỉ ra rằng với mỗi trường hợp, bạn có thể tìm thấy một sao cho từ kết quả không có trong ngôn ngữ.n

Khi bạn chia , hãy nghĩ đến tất cả các trường hợp mà có thể rơi vào. Bạn lưu ý rằng nếu không rơi vào 2 thì bạn có thể dễ dàng bơm 0 và 1 cho đến khi chúng vượt trội hơn 2, và sau đó bạn có một từ không có trong ngôn ngữ. Đề nghị của tôi là, nếu rơi vào 2 lãnh thổ, bạn cũng có thể làm cho và biến mất bằng cách đặt , vì vậy . Sau đó, bằng cách loại bỏ 2, bạn có thể đi đến một từ không thuộc ngôn ngữ.v x y v x y v x y v y n = 0 u v n x y n z = u x zs=uvxyzvxyvxyvxyvyn=0uvnxynz=uxz


Bạn đang nói đặt tất cả uvwxy trong phần với 2?
justausr

Nếu nó được đưa ra từ đúng. Tôi sẽ giải thích trong câu trả lời của tôi.
Blue Magister

Ở đây, thử nó ngay bây giờ. Tôi không chắc liệu bổ đề bơm của tôi có giống như bổ đề bơm của bạn không, vì vậy tôi kêu gọi Wikipedia .
Blue Magister
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.