Làm thế nào để chỉ ra rằng L = L (G)?


22

Chỉ định ngôn ngữ chính thức bằng cách đưa ra các ngữ pháp chính thức là một nhiệm vụ thường xuyên: chúng ta cần ngữ pháp không chỉ để mô tả các ngôn ngữ, mà còn để phân tích chúng, hoặc thậm chí làm khoa học thích hợp . Trong mọi trường hợp, điều quan trọng là ngữ pháp trong tay là chính xác , được tạo ra chính xác các từ mong muốn.

Chúng ta thường có thể tranh luận ở mức độ cao tại sao ngữ pháp là một đại diện đầy đủ của ngôn ngữ mong muốn, bỏ qua một bằng chứng chính thức. Nhưng điều gì sẽ xảy ra nếu chúng ta nghi ngờ hoặc cần một bằng chứng chính thức vì một số lý do? Kỹ thuật chúng ta có thể áp dụng là gì?

Điều này được cho là để trở thành một câu hỏi tham khảo . Do đó, xin vui lòng lưu ý để đưa ra các câu trả lời chung chung, được trình bày một cách chính thức được minh họa bằng ít nhất một ví dụ nhưng dù sao cũng bao gồm nhiều tình huống. Cảm ơn!

Câu trả lời:


21

Ngữ pháp vốn là đối tượng đệ quy, vì vậy câu trả lời có vẻ hiển nhiên: bằng cảm ứng. Điều đó nói rằng, các chi tiết cụ thể thường là khó khăn để có được đúng. Trong phần tiếp theo tôi sẽ mô tả một kỹ thuật cho phép giảm nhiều bằng chứng chính xác về ngữ pháp đối với các bước cơ học, miễn là một số tiền xử lý sáng tạo được thực hiện.

Ý tưởng cơ bản là không giới hạn bản thân trong các từ ngữ pháp và ngôn ngữ; thật khó để nắm bắt cấu trúc của ngữ pháp theo cách này. Thay vào đó, chúng tôi sẽ tranh luận về tập hợp các câu mà ngữ pháp có thể tạo ra. Hơn nữa, chúng tôi sẽ chia một mục tiêu bằng chứng đáng ngại thành nhiều mục tiêu nhỏ dễ thực hiện hơn.

Hãy một ngữ pháp chính thức với không bến , nhà ga , quy tắc và bắt đầu biểu tượng . Chúng tôi biểu thị bằng tập hợp các câu có thể bắt nguồn từ được cho , đó là . Ngôn ngữ được tạo bởi là . Giả sử chúng tôi muốn chỉ ra rằng cho một số .G=(N,T,δ,S)NTδSNϑ(G)Sδαϑ(G)SαGL(G)=ϑ(G)TL=L(G)LT

Ansatz

Đây là cách chúng tôi đi về điều đó. Chúng tôi xác định sao choM1,,Mk(NT)

  1. ϑ(G)=i=1kMi
  2. Ti=1kMi=L .

Trong khi 2. thường rõ ràng theo định nghĩa của , 1. yêu cầu một số công việc nghiêm túc. Hai mục cùng nhau ngụ ý rõ ràng như mong muốn.MiL(G)=L

Để dễ ghi chú, hãy biểu thị .M=i=1kMi

Con đường đá

Có hai bước chính để thực hiện một bằng chứng như vậy.

  • Làm thế nào để tìm (tốt) ? Mi
    Một chiến lược là điều tra các giai đoạn mà ngữ pháp hoạt động thông qua. Không phải mọi ngữ pháp đều phù hợp với ý tưởng này; nói chung, đây là một bước sáng tạo. Nó giúp nếu chúng ta có thể tự xác định ngữ pháp; với một số kinh nghiệm, chúng tôi sẽ có thể định nghĩa ngữ pháp dễ hiểu hơn với phương pháp này.

  • Làm thế nào để chứng minh 1.?
    Như với bất kỳ bình đẳng thiết lập, có hai hướng.

    • ϑ(G)M : (cấu trúc) cảm ứng trên các sản phẩm của .G
    • Mϑ(G) : Thông thường một cảm ứng bởi , bắt đầu từ một trong đó chứa .MiS

Điều này là cụ thể như nó được; các chi tiết phụ thuộc vào ngữ pháp và ngôn ngữ trong tay.

Thí dụ

Xem xét ngôn ngữ

L={anbncmn,mN}

và ngữ pháp với được cung cấp bởiG=({S,A},{a,b,c},δ,S)δ

SScAAaAbε

mà chúng tôi muốn chỉ ra rằng . Các giai đoạn ngữ pháp này hoạt động thông qua là gì? Chà, đầu tiên nó tạo ra và sau đó . Điều này ngay lập tức thông báo sự lựa chọn của chúng tôi về , cụ thể làL=L(G)cmanbnMi

M0={ScmmN},M1={anAbncmm,nN},M2={anbncmm,nN}.

Vì và , mục 2. đã được xử lý. Hướng tới 1., chúng tôi chia bằng chứng thành hai phần như đã thông báo.M2=LM0T=M1T=

ϑ(G)M

Chúng tôi thực hiện cảm ứng cấu trúc cùng các quy tắc của .G

IA: Vì chúng tôi neo thành công.S=Sc0M0

IH: Giả sử đối với một số bộ câu mà chúng ta cũng biết .Xϑ(G)XM

IS: Hãy để tùy ý. Chúng ta phải chứng minh rằng bất kỳ hình thức có bất cứ điều gì và nguyên tắc được áp dụng tiếp theo, chúng tôi không rời khỏi . Chúng tôi làm điều này bằng cách phân biệt trường hợp đầy đủ. Theo giả thuyết cảm ứng, chúng ta biết rằng (chính xác) một trong những trường hợp sau đây được áp dụng:αXϑ(G)MαM

  • wM0 , đó là đối với một số . Hai quy tắc có thể được áp dụng, cả hai đều rút ra một câu trong : w=ScmmN
    M
    • ScmScm+1M0
    • ScmAcm=a0Ab0cmM1 .
  • wM1 , tức là đối với một số : w=anAbncmm,nN
    • wan+1Abn+1cmM1
    • wanbncmM2 .
  • wM3 : vì , không có dẫn xuất nào nữa.wT

Vì chúng tôi đã bao gồm thành công tất cả các trường hợp, cảm ứng đã hoàn tất.

ϑ(G)M

Chúng tôi thực hiện một bằng chứng (đơn giản) cho mỗi . Lưu ý cách chúng tôi xâu chuỗi các bằng chứng để "sau" có thể neo bằng cách sử dụng "trước đó" .MiMiMi

  • M1 : Chúng tôi thực hiện một cảm ứng trên , thả neo trong và sử dụng trong bước.mSc0=SSSc
  • M2 : Chúng tôi sửa thành một giá trị tùy ý và tạo ra . Chúng tôi neo trong , sử dụng bằng bằng chứng trước đây. Bước tiến triển thông qua .mnAcmSScmAcmAaAb
  • M3 : Đối với tùy ý chúng tôi sử dụng bằng chứng trước đây cho .m,nNSanAbncmanbncm

Điều này kết luận hướng thứ hai của bằng chứng 1., và chúng ta đã hoàn thành.

Chúng ta có thể thấy rằng chúng ta khai thác rất nhiều rằng ngữ pháp là tuyến tính . Đối với các ngữ pháp phi tuyến tính, chúng ta cần với nhiều hơn một tham số biến (trong chứng minh), có thể trở nên xấu. Nếu chúng ta có quyền kiểm soát ngữ pháp, điều này dạy chúng ta giữ cho nó đơn giản. Xem xét như ví dụ răn đe ngữ pháp này tương đương với :MiG

SaAbCεAaAbεCcCε

Tập thể dục

Đưa ra một ngữ pháp cho

L={bkal(bc)manbok,l,m,n,oN,ko,2l=n,m2}

và chứng minh tính đúng đắn của nó.

Nếu bạn gặp khó khăn, một ngữ pháp:

Hãy xem xét với các sản phẩmG=({S,Br,Bl,A,C},{a,b,c},δ,S)

SbSbBlBrBlbBlbABrBrbAbAaAaaCCbcCbcbc

và :Mi

M0={biSbiiN}M1={biBlbooN,io}M2={bkBrbikN,ik}M3={bkaiAa2ibok,o,iN,ko}M4={bkal(bc)iCa2lbok,o,l,iN,ko}M5=L

Thế còn ngữ pháp phi tuyến tính?

Đặc điểm đặc trưng của lớp ngôn ngữ không ngữ cảnh là ngôn ngữ Dyck : về cơ bản, mọi ngôn ngữ không ngữ cảnh có thể được thể hiện dưới dạng giao điểm của ngôn ngữ Dyck và ngôn ngữ thông thường. Thật không may, ngôn ngữ Dyck không phải là tuyến tính, nghĩa là chúng ta không thể đưa ra ngữ pháp phù hợp với phương pháp này.

Tất nhiên chúng ta vẫn có thể định nghĩa và làm bằng chứng, nhưng chắc chắn sẽ khó khăn hơn với các cảm ứng lồng nhau và những gì không. Có một cách chung mà tôi biết có thể giúp ích ở một mức độ nào đó. Chúng tôi thay đổi ansatz để cho thấy rằng chúng tôi tạo ra ít nhất tất cả các từ bắt buộc và chúng tôi tạo ra số lượng từ đúng (trên mỗi độ dài). Chính thức, chúng tôi cho thấy rằngMi

  1. ϑ(G)L
  2. |L(G)Tn|=|LTn|cho tất cả .nN

Bằng cách này, chúng ta có thể giới hạn bản thân theo hướng "dễ dàng" từ cấu trúc ansatz ban đầu và khai thác trong ngôn ngữ, bỏ qua các tính năng quá phức tạp mà ngữ pháp có thể có. Tất nhiên, không có bữa ăn trưa miễn phí: chúng tôi nhận toàn bộ nhiệm vụ mới là đếm các từ tạo ra cho mỗi . May mắn cho chúng tôi, điều này thường dễ kéo dài; xem ở đâyở đây để biết chi tiết¹. Bạn có thể tìm thấy một số ví dụ trong luận án cử nhân của tôi .G nN

Đối với các ngữ pháp mơ hồ và không có ngữ cảnh, tôi e rằng chúng ta sẽ quay trở lại với ansatz và nghĩ về mũ.


  1. Khi sử dụng phương pháp cụ thể đó để đếm, chúng tôi nhận được một phần thưởng là ngữ pháp không rõ ràng. Đổi lại, điều này cũng có nghĩa là kỹ thuật này phải thất bại đối với các ngữ pháp mơ hồ vì chúng ta không bao giờ có thể chứng minh được 2.
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.