Làm thế nào để chứng minh rằng một ngôn ngữ không có ngữ cảnh?


88

Chúng tôi đã học về lớp ngôn ngữ không ngữ cảnh . Nó được đặc trưng bởi cả ngữ pháp không ngữ cảnhtự động đẩy xuống, do đó dễ dàng cho thấy rằng một ngôn ngữ nhất định là không có ngữ cảnh.CFL

Làm thế nào để tôi hiển thị ngược lại, mặc dù? TA của tôi đã kiên quyết rằng để làm như vậy, chúng tôi sẽ phải trình bày cho tất cả các ngữ pháp (hoặc automata) mà họ không thể mô tả ngôn ngữ trong tay. Đây dường như là một nhiệm vụ lớn!

Tôi đã đọc về một số bổ đề bơm nhưng có vẻ rất phức tạp.


Ntpick: không thể xác định được liệu một ngôn ngữ không có ngữ cảnh hay không.
Revierpost

1
@reinierpost Tôi không thấy bình luận của bạn liên quan đến câu hỏi như thế nào. Đó là về việc chứng minh mọi thứ, không phải là quyết định (về mặt thuật toán).
Raphael

Nói chung, chỉ cần nói rằng một ngôn ngữ là không có ngữ cảnh, nói chungkhông dễ dàng . Nếu điều đó dễ dàng đối với frafl, điều đó phải do một số điều kiện đặc biệt không có ngôn ngữ nói chung, chẳng hạn như được cung cấp một máy tự động đẩy xuống mô tả ngôn ngữ.
Revierpost

@reinierpost Dòng lý luận đó dường như cho rằng điều đó không thể giải thích được (bằng?) khó chứng minh. Tôi tự hỏi nếu đó là sự thật.
Raphael

Câu trả lời:


69

Theo hiểu biết của tôi Bổ đề bơmbởi đến nay các kỹ thuật đơn giản nhất và sử dụng nhiều nhất. Nếu bạn thấy khó, hãy thử phiên bản thông thường trước, nó không tệ lắm. Có một số phương tiện khác cho các ngôn ngữ cách xa ngữ cảnh. Ví dụ, các ngôn ngữ không thể giải quyết được tầm thường không phải là bối cảnh miễn phí.

Điều đó nói rằng, tôi cũng quan tâm đến các kỹ thuật khác ngoài bổ đề bơm nếu có.

EDIT: Dưới đây là một ví dụ cho Bổ đề bơm: giả sử ngôn ngữ được bối cảnh tự do ( P là tập hợp các số nguyên tố). Bổ đề bơm có rất nhiều / quantifiers, vì vậy tôi sẽ làm điều này một chút giống như một trò chơi:L={akkP}P/

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

Đối với ngôn ngữ cụ thể này, bất kỳ a k (với k pk là số nguyên tố) sẽ thực hiện thủ thuật. Sau đó bổ đề bơm cung cấp cho bạn u v x y z với | v y | 1 . Không từ chối bối cảnh, bạn cần tìm n sao cho | u v n x y n z | không phải là số nguyên tố.sakkpkuvxyz|vy|1n|uvnxynz|

|uvnxynz|=|s|+(n1)|vy|=k+(n1)|vy|

Và sau đó sẽ làm: k + k | v y | = K ( 1 + | v y | ) không phải là đắc địa nên u v n x y n z L . Bổ đề bơm không thể được áp dụng vì vậy L không có ngữ cảnh.n=k+1k+k|vy|=k(1+|vy|)uvnxynzLL

Một ví dụ thứ hai là ngôn ngữ . Tất nhiên, chúng tôi phải chọn một chuỗi và chỉ ra rằng không có cách nào có thể chia thành năm phần đó và mọi chuỗi được bơm dẫn xuất vẫn còn trong ngôn ngữ.{www{a,b}}

Chuỗi là một lựa chọn phù hợp cho bằng chứng này. Bây giờ chúng ta chỉ cần nhìn vào nơi vy có thể. Các phần chính là v hoặc y phải có một cái gì đó trong đó (có thể là cả hai) và cả vy (và x ) được chứa trong một chuỗi con p dài - vì vậy chúng không thể cách nhau quá xa.s=apbpapbpvyvyvyxp

Chuỗi này có một số khả năng cho nơi y có thể, nhưng hóa ra một số trường hợp thực sự trông khá giống nhau.vy

  1. hoặc v y b * . Vì vậy, sau đó cả hai đều nằm trong một trong các phần của một s hoặc b s. Đây là trường hợp tương đối dễ tranh luận, vì nó không phải là vấn đề mà họ tham gia. Giả sử rằng | v y | = k p . vyavybab|vy|=kp
    • Nếu họ đang ở trong phần đầu tiên của s, sau đó khi chúng ta bơm, nửa đầu của chuỗi mới là một p + k b p - k / 2 , và thứ hai là b k / 2 một p b p . Rõ ràng đây không phải là dạng w w .aap+kbpk/2bk/2apbpww
    • Đối số cho bất kỳ phần nào trong ba phần khác cũng chạy khá giống nhau, đó chỉ là nơi k / 2 kết thúc trong các chỉ số.kk/2
  2. đứng hai trong số các phần. Trong trường hợp này bơmxuốnglà bạn của bạn. Một lần nữa, có một vài nơi điều này có thể xảy ra (chính xác là 3), nhưng tôi sẽ chỉ làm một nơi minh họa, và phần còn lại sẽ dễ dàng tìm ra từ đó. vxy
    • Giả sử rằng nằm giữa biên giới giữa người đầu tiên một phần và là người đầu tiên b phần. Đặt v y = a k 1 b k 2 (không quan trọng chính xác vị trí của ab trong vy , nhưng chúng ta biết rằng chúng theo thứ tự). Sau đó, khi chúng ta bơm xuống (tức là i = 0 trường hợp), chúng tôi nhận được chuỗi mới s ' = một p - k 1 b p - k 2vxyabvy=ak1bk2abvyi=0 , nhưng sau đó nếu s ' có thể được chia thành w w , trung điểm phải ở đâu đó trong lần thứ hai một phần, vì vậy nửa đầu là một p - k 1 b p - k 2 một ( k 1 + k 2 ) / 2 , và nửa sau là một p - ( k 1 + k 2 ) / 2 b ps=apk1bpk2apbpswwaapk1bpk2a(k1+k2)/2ap(k1+k2)/2bp. Rõ ràng đây không phải là cùng một chuỗi, vì vậy chúng ta không thể đặt y ở đó.vy

Các trường hợp còn lại phải khá minh bạch từ đó - chúng là những ý tưởng giống nhau, chỉ đưa y vào 3 vị trí khác trong ví dụ đầu tiên và 2 điểm trong ví dụ thứ hai. Trong mọi trường hợp, bạn có thể bơm nó theo cách mà thứ tự rõ ràng bị rối khi bạn chia chuỗi thành một nửa.vy


Thật vậy, trò chơi của kozen là cách để giải quyết vấn đề này.
Socrates

45

Bổ đề của Ogden

Bổ đề (Ogden). Đặt là ngôn ngữ không ngữ cảnh. Sau đó, có một hằng số N sao cho với mọi z L và mọi cách đánh dấu N hoặc nhiều vị trí (ký hiệu) của z là "vị trí phân biệt", thì z có thể được viết là z = u v w x y , sao choLNzL Nzzz=uvwxy

  1. có ít nhất một vị trí phân biệt.vx
  2. có nhiều nhất N vị trí phân biệt.vwxN
  3. Đối với tất cả , u v i w x i y L .i0uviwxiyL

Thí dụ. Đặt . Giả sử L không có ngữ cảnh và đặt N là hằng số được đưa ra bởi bổ đề của Ogden. Đặt z = a N b N + N ! c N + 2 N ! (thuộc về L ) và giả sử chúng tôi đánh dấuL={aibjck:ij,jk,ik}LNz=aNbN+N!cN+2N!Lnhư phân biệt tất cả các vị trí của ký hiệu (tức là N vị trí đầu tiên của z ). Đặt z = u v w x y là một phép phân tách z thỏa mãn các điều kiện từ bổ đề của Ogden.aNzz=uvwxyz

  • Nếu hoặc x chứa các ký hiệu khác nhau, sau đó u v 2 w x 2 y L , vì sẽ có những biểu tượng theo thứ tự sai.vxuv2wx2yL
  • Ít nhất một trong số x phải chỉ chứa các ký hiệu a , vì chỉ có các chữ cái đã được phân biệt. Vì vậy, nếu x L ( b * ) hoặc x L ( c * ) , sau đó v L ( A + ) . Đặt p = | v | . Sau đó 1 p N , có nghĩa là p chia N ! . Hãy để qvxaaxL(b)xL(c)vL(A+)p=|v|1pNpN! . Sau đó, z ' = u v 2 q + 1 w x 2 q + 1 y phải thuộc về L . Tuy nhiên, v 2 q + 1 = a 2 p q + p = a 2 N ! + p . Kể từ khi u w y có chính xác N - p ký tự một , sau đó zq=N!/pz=uv2q+1wx2q+1yLv2q+1=a2pq+p=a2N!+puwyNpa 2 N ! + N ký hiệu a . Nhưng cả hai v x không có c 's, vì vậy z ' cũng có 2 N ! + N ký tự c , có nghĩa là z 'L , và điều này mâu thuẫn với Bổ đề Ogden của. Một mâu thuẫn tương tự xảy ra nếu x L ( A + ) hoặc x L ( c ) . Chúng tôi kết luận Lz2N!+Navxcz'2VIẾT SAI RỒI!+VIẾT SAI RỒIcz'LxL(Một+)xL(c*)L không có ngữ cảnh.

Tập thể dục. Sử dụng bổ đề Ogden của, cho thấy không phải là bối cảnh tự do.L= ={mộtTôibjckCười mở miệng:Tôi= =0 hoặc là j= =k= =}

Bổ đề bơm

Đây là một trường hợp cụ thể của Bổ đề của Ogden trong đó tất cả các vị trí được phân biệt.

Bổ đề. Đặt là ngôn ngữ không ngữ cảnh. Khi đó có một hằng số N sao cho với mọi z L , z có thể được viết là z = u v w x y , sao choLVIẾT SAI RỒIzLzz= =bạnvwxy

  1. .|vx|>0
  2. .|vwx|N
  3. Đối với tất cả , u v i w x i y L .i0uviwxiyL

Định lý Parikh

Điều này thậm chí còn kỹ thuật hơn bổ đề của Ogden.

Định nghĩa. Hãy . Chúng ta xác định Ψ Σ : Σ N n bởi Ψ Σ ( w ) = ( m 1 , Vượt , m n ) , trong đó m i là số lần xuất hiện của a i trong w .Σ={a1,,an}ΨΣ:ΣNn

ΨΣ(w)=(m1,,mn),
miaiw

Định nghĩa. Một tập hợp con của N n được gọi là tuyến tính nếu nó có thể được viết như sau: S = { u 0 + Σ 1 i k một i u i :  đối với một số bộ  u iN n  và  một iN }SNn

S={u0+1ikaiui: for some set of uiNn and aiN}

Định nghĩa. Một tập con của N n được gọi là bán tuyến tính nếu nó là tập hợp của một tập hợp hữu hạn của các tập tuyến tính.SNn

Định lý (Parikh). Đặt là ngôn ngữ trên Σ . Nếu L là bối cảnh tự do, sau đó Ψ Σ [ L ] = { Ψ Σ ( w ) : w L } là semi-tuyến tính.LΣL

ΨΣ[L]={ΨΣ(w):wL}

Tập thể dục. Sử dụng Định lý Parikh, cho thấy không có ngữ cảnh.L={0m1n:m>n or (m is prime and mn)}

Tập thể dục. Sử dụng Định lý Parikh, cho thấy rằng bất kỳ ngôn ngữ không ngữ cảnh nào trên bảng chữ cái đơn nhất cũng đều đặn.


1
Tôi chấp nhận câu trả lời của jmad vì câu hỏi đề cập rõ ràng về việc bơm bổ đề. Tôi đánh giá cao câu trả lời của bạn rất nhiều, mặc dù; có tất cả các phương pháp chính được thu thập ở đây là một điều tuyệt vời.
Raphael

1
Điều đó tốt, nhưng lưu ý rằng bổ đề bơm là một trường hợp cụ thể của bổ đề của Ogden ;-)
Janoma

Tất nhiên. Tuy nhiên, hầu hết mọi người sẽ thử PL trước; nhiều người thậm chí không biết CV.
Raphael

1
Một định lý của Ginsburg và Spanier, dựa trên định lý của Parikh, đưa ra một điều kiện cần thiết và đủ cho bối cảnh trong trường hợp bị ràng buộc. math.stackexchange.com/a/122472
sdcvvc

Bạn có thể vui lòng xác định "vị trí phân biệt" trong điều khoản của các hoạt động khác? Hoặc ít nhất là không chính thức? Tôi tìm thấy định nghĩa của OL sao chép nguyên văn ở nhiều nơi khác nhau, nhưng cho đến nay không ai trong số họ quan tâm để giải thích điều đó có nghĩa là gì.
wvxvw

34

Thuộc tính đóng cửa

Khi bạn có một bộ sưu tập nhỏ các ngôn ngữ không có ngữ cảnh, bạn thường có thể sử dụng các thuộc tính đóng của như thế này:CFL

Giả sử . Sau đó, bằng cách đóng cửa tài sản X (cùng với Y), L 'C F L . Điều này mâu thuẫn L 'C F L mà chúng ta biết giữ, do đó L C F L .LCFLLCFLLCFLLCFL

Điều này thường ngắn hơn (và thường ít bị lỗi hơn) so với việc sử dụng một trong những kết quả khác sử dụng ít kiến ​​thức trước đó. Nó cũng là một khái niệm chung có thể được áp dụng tất cả các loại lớp đối tượng.

Ví dụ 1: Giao lộ với các ngôn ngữ thông thường

Chúng tôi lưu ý ngôn ngữ thông thường được chỉ định bởi bất kỳ biểu thức chính quy e .L(e)e

Hãy . NhưL={ww{a,b,c},|w|a=|w|b=|w|c}

LL(abc)={anbncnnN}CFL

được đóng dưới ngã tư với các ngôn ngữ thông thường, L C F L .CFLLCFL

Ví dụ 2: (nghịch đảo) Đồng cấu

Đặt . Với sự đồng hìnhL={(ab)2ncmd2nm(aba)nm,nN}

ϕ(x)={ax=aεx=bbx=cx=d

chúng ta có ϕ(L)={a2nb2na2nnN}.

Bây giờ với

ψ(x)={aax=ax=cbbx=bandL1={xnbnynx,y{a,c}nN},

ta được .L1=ψ1(ϕ(L)))

Cuối cùng, giao nhau với ngôn ngữ thường xuyên L 2 = L ( một * b * c * ) chúng tôi nhận được ngôn ngữ L 3 = { một n b n c n | n N } .L1L2=L(abc)L3={anbncnnN}

Tổng cộng, chúng ta có .L3=L2ψ1(ϕ(L))

Bây giờ giả sử rằng là không có ngữ cảnh. Sau đó, vì C F L được đóng lại chống đồng cấu, đồng cấu nghịch đảo và giao với các bộ thông thường, L 3 cũng không có ngữ cảnh. Nhưng chúng ta biết (thông qua Pumping Lemma, nếu cần) rằng L 3 không có ngữ cảnh, vì vậy đây là một mâu thuẫn; chúng tôi đã chỉ ra rằng L C F L .LCFLL3L3LCFL


Bổ đề trao đổi

Các Interchange Bổ đề [1] đề xuất một điều kiện cần thiết cho bối cảnh freeness mà thậm chí còn mạnh hơn Bổ đề Ogden của . Ví dụ, nó có thể được sử dụng để chỉ ra rằng

{xyyzx,y,z{a,b,c}+}CFL

mà chống lại nhiều phương pháp khác. Đây là bổ đề:

Hãy . Sau đó là một hằng số c L như vậy mà cho bất kỳ số nguyên n 2 , bất kỳ tập Q nL n = L Σ n và bất kỳ số nguyên m với n m 2k | Q n |LCFLcLn2QnLn=LΣnmnm2 chuỗiziQnvớik|Qn|cLn2ziQn

  1. cho i = 1 , ... , k ,zi=wixiyii=1,,k
  2. ,|w1|=|w2|==|wk|
  3. ,|y1|=|y2|==|yk|
  4. m|x1|=|x2|==|xk|>m2
  5. cho tất cả ( i , j ) [ 1 .. k ] 2 .wixjyiLn(i,j)[1..k]2

Áp dụng nó có nghĩa là tìm Q n sao cho 1.-4. giữ nhưng 5. bị vi phạm. Ví dụ ứng dụng được đưa ra trong bài báo gốc rất dài dòng và do đó bị bỏ lại ở đây.n,mQn

Tại thời điểm này, tôi không có tài liệu tham khảo có sẵn miễn phí và công thức trên được lấy từ bản in lại của [1] từ năm 1981. Tôi đánh giá cao sự giúp đỡ trong việc theo dõi các tài liệu tham khảo tốt hơn. Dường như cùng một tài sản đã được (tái) phát hiện gần đây [2].


Các điều kiện cần thiết khác

Boonyavatana và Slutzki [3] khảo sát một số điều kiện tương tự như Bổ đề bơm và trao đổi.


  1. Một giao diện Lemma Lemma cho các ngôn ngữ không có ngữ cảnh của W. Ogden, RJ Ross và K. Winklmann (1985)
  2. Trao đổi bổ đề cho ngôn ngữ thông thường và không có ngữ cảnh của T. Yamakami (2008)
  3. Các bổ đề trao đổi hoặc bơm (DI) cho các ngôn ngữ không ngữ cảnh của R. Boonyavatana và G. Slutzki (1988)


19

Không có phương pháp chung vì các ngôn ngữ không ngữ cảnh được đặt không phải là bán có thể quyết định (akare). Nếu có một phương pháp chung, chúng ta có thể sử dụng nó để quyết định bán bộ này.

Tình hình thậm chí còn tồi tệ hơn, vì đã đưa ra hai CFL, không thể quyết định liệu giao điểm của chúng có phải là CFL hay không.

Tham khảo: Hopcroft và Ullman, "Giới thiệu về lý thuyết, ngôn ngữ và tính toán tự động", 1979.


2
Một câu hỏi thú vị (nhưng có lẽ là nâng cao hơn và kết thúc mở) sẽ được phân loại lớp con của những người không phải CFL có thể được chứng minh là không phải CFL bằng một phương pháp cụ thể.
Kaveh

Tôi không tìm kiếm một phương pháp tính toán mà cho các kỹ thuật bằng chứng bút & giấy. Cái sau không nhất thiết ngụ ý cái trước.
Raphael

13

Một phiên bản mạnh mẽ hơn của tình trạng của Ogden ( OC ) là

Tình trạng của Bader-Moura (BMC)

Một ngôn ngữ thỏa mãn BMC nếu có tồn tại một hằng số n như rằng nếu z L và chúng ta gọi nó ở vị trí "phân biệt" d ( z )LΣ*viết sai rồizLCười mở miệng(z)e(z)Cười mở miệng(z)>viết sai rồie(z)+1z= =bạnvwxy

  1. Cười mở miệng(vx)1e(vx)= =0
  2. d(vwx)ne(vwx)+1
  3. i0uviwxiyL

LBMC(Σ)L

CFL(Σ)BMC(Σ)OC(Σ)

Tham khảo: Bader, C., Moura, A., Một khái quát về bổ đề của Ogden. JACM 29, không. 2, (1982), 404


2
Tại sao không đi tất cả các cách để khái quát hóa của Dömösi và Kudlek dx.doi.org/10.1007/3-540-48321-7_18 ...
András Salamon

@ AndrásSalamon: Tôi không biết điều đó! :-) ... có lẽ bạn có thể đăng nó dưới dạng câu trả lời mới nói rằng OC, BMC, PC là những trường hợp đặc biệt của nó (tất cả các vị trí được phân biệt hoặc không loại trừ).
Vor

bạn được chào đón để đăng nó, không có thời gian ngay bây giờ.
András Salamon

Câu trả lời này sẽ có lợi từ một ví dụ.
Raphael
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.