Tại sao các biểu thức chính quy được định nghĩa với các phép toán liên kết, nối và sao?


11

Một biểu thức chính quy được định nghĩa đệ quy là

  1. một Σa đối với một số là biểu thức chính quy,aΣ
  2. ε là một biểu thức chính quy,
  3. là một biểu thức chính quy,
  4. R 1 R 2(R1R2) trong đó và là biểu thức chính quy là biểu thức chính quy,R1R2
  5. R 1 R 2(R1R2) trong đó và là biểu thức chính quy là biểu thức chính quy,R1R2
  6. R 1(R1) trong đó là biểu thức chính quy là biểu thức chính quy.R1

Định nghĩa này được lấy từ trang 64 của

Sipser, Michael. Giới thiệu về Lý thuyết tính toán, tái bản lần thứ 3. Học thuật báo thù, 2012.

Bây giờ, tôi có những câu hỏi sau đây.

  • Tại sao định nghĩa không chứa intersection, complementhoặc reversehoạt động?
  • Nếu chúng ta thay đổi mục thứ 4 thành , chúng ta có nhận được một định nghĩa tương đương, tức là đối với mỗi ngôn ngữ thông thường, có một biểu thức chính quy được sửa đổi và ngược lại không?R1R2
  • Tôi biết rằng định nghĩa này là đầy đủ và được xác định rõ, nhưng tại sao nó lại được ưa thích hơn các định nghĩa tương đương, được xác định rõ và đầy đủ?

2
Vui lòng giới hạn bản thân một câu hỏi cho mỗi bài viết.
Raphael

Câu trả lời:


16

1) Nếu chúng ta cũng cho phép giao nhau và bổ sung, thì các biểu thức kết quả đôi khi được gọi là biểu thức chính quy mở rộng; vì các ngôn ngữ thông thường được đóng dưới các hoạt động boolean, không có gì đạt được bởi chúng. Nó chỉ là cú pháp đường. Một kết luận tương tự giữ cho hoạt động ngược lại. Một phần lý do tại sao trong trường hợp đầu tiên, tất cả các hoạt động khác không được đề cập là mục tiêu giữ cho định nghĩa càng đơn giản càng tốt, để bằng chứng (quy nạp) không phải quan tâm đến nhiều trường hợp. Một nguyên nhân khác có thể là nếu chúng ta cho phép một số thao tác nhất định, nhưng một số trường hợp khác thì không, trong một số trường hợp, kết quả là các lớp ngôn ngữ rất khác biệt (không thường xuyên), ví dụ nếu chúng ta xem xét biểu thức chính quy mở rộng mà không có toán tử sao, thì chúng ta có một lớp con thích hợp của các lớp thông thường , cái gọi là ngôn ngữ không có sao hoặc ngôn ngữ định kỳ, xem wikipedia: ngôn ngữ không có sao .

2) Nếu chúng ta giữ các mục 1. - 6. nhưng chỉ thay đổi mục 4. trong việc sử dụng giao lộ thay vì kết hợp, chúng ta sẽ có được một lớp con thích hợp của các ngôn ngữ thông thường. Ví dụ: chúng tôi không còn có thể mô tả ngôn ngữ vì nó sẽ liên quan đến sự kết hợp của và (xem bằng chứng bên dưới). Nếu chúng tôi cho phép bổ sung, mọi thứ sẽ thay đổi khi chúng tôi kết hợp lại theo luật của DeMorgan.{ a } { b }L={a,b}{a}{b}

3) Điều này đã được tôi trả lời một phần trong 1), nhưng ý bạn là gì khi bạn nói rằng định nghĩa này được ưa thích? Tôi biết các định nghĩa trong đó 2. bị bỏ qua (như chúng ta có 6. rằng ) hoặc 3. bị bỏ qua (vì chúng ta có )) hoặc cả hai đều bị bỏ qua; vì vậy đây không phải là định nghĩa tối thiểu có thể (nó cũng cung cấp cho chúng ta một số đường cú pháp vì chúng ta có thêm các ký hiệu để mô tả và ).= L ( ¯ X * { ε } L()={ε}=L(X¯{ε}

EDIT : Nhận xét được đề cập đầu tiên của tôi trong 2) là sai, ví dụ, các ngôn ngữ trong phần đóng quy nạp trong , và không phải là các tập hợp con của đối với một số , ví dụ xem xét . Tuy nhiên, chúng ta có không thể được mô tả bằng biểu thức như vậy. Tôi sẽ đưa ra một bằng chứng, cụ thể là tôi chứng minh rằng nếu cho một số biểu thức với mục thứ 4 đã sửa đổi, thì nếu (và do đó ) Bằng chứng đi theo cảm ứng trên biểu thứcx x X L ( a b ) = { a b } L = { a , b } L = L ( R ) X = { a , b } a b { a , b } L một b L . R L ( R 1 )xxXL(ab)={ab}L={a,b}L=L(R)X={a,b}ab

{a,b}LabL.
R . Đối với trường hợp cơ sở, nó giữ trống, bây giờ giả sử nó giữ cho . Nếu và , thì từ đó bởi giả thuyết quy nạp chúng ta có . Nếu thì là chúng ta phải có và hoặc ngược lại. Giả sử trường hợp đầu tiên. Nếu , thì theo giả thuyết cảm ứng, do đóL = L ( R 1R 2 ) = L ( R 1 ) L ( R 2 ) { một , b } L { một , b } L ( R i ) , i = 1 , 2 một b L ( R 1 ) L(R1),L(R2)L=L(R1R2)=L(R1)L(R2){a,b}L{a,b}L(Ri),i=1,2{ a , b } L ( R 1R 2 ) = L ( R 1 ) L ( R 2 ) a = a ε = ε a a L ( R 1 ) ε L ( R 2 ) b L ( R 1 ) mộtabL(R1)L(R2){a,b}L(R1R2)=L(R1)L(R2)a=aε=εaaL(R1)εL(R2)bL(R1)abL(R1)ab=abεL(R1)L(R2) . Bây giờ giả sử , thì chúng ta có theo định nghĩa của . Cuối cùng, nếu , thì và với một số . Nếu chúng ta tìm thấy theo giả thuyết cảm ứng, thì giả sử , nhưng điều này cho ra , tương tự hoặc cho và giả thuyết cảm ứng đưa rabL(R2)abL(R2)L(R2)L(R1)L(R2)a,bL(R1)aL(R1)nbL(R2)mn,m>0n=m=1abL(R1)n>1aL(R1)m=1m>1bL(R1)abL(R1)L(R1).

Ghi chú: Một kết luận thường được sử dụng: Nếu , thì hoặc . Điều này theo sau, do đó và hoặc và . Trong trường hợp đầu tiên, chúng ta có và do đó .u = a w =a=uwu=aw=a1=|a|=|uw|=|u|+|w||u|=0|w|=1|u|=1|w|=0u=εa=w


2
Thật vậy, không nằm trong tập hợp các ngôn ngữ "không thường xuyên", nhưng là vì . { một , b } * { một , b } * = ( một *b * ) *{a,b}{a,b}{a,b}=(ab)
rici

Vâng, đôi khi có một chút khó khăn để xem những gì có thể được thể hiện và những gì không như với sự kết hợp thông minh của ngôi sao và những người khác mà bạn có thể nhận được khá xa.
StefanH

10

Báo cáo kỹ thuật giới thiệu các ngôn ngữ thông thường, biểu thức chính quy và automata hữu hạn đặt câu hỏi của bạn trên trang 70:

Câu hỏi có thể xảy ra với người đọc, tại sao chúng tôi chọn ba thao tác cụ thể , và ?EFEFEF

(Ngay sau đó, đã lưu ý rằng là một toán tử thuận tiện hơn và có sức mạnh tương đương. Vì vậy, những ngày này, chúng tôi sử dụng thay thế.)EEFE

Câu trả lời chiếm vài trang. Đầu tiên, cần lưu ý rằng câu trả lời phải được tìm kiếm trong việc liệu các ngôn ngữ kết quả tạo thành một lớp thú vị và cách chúng so sánh với các ngôn ngữ được mô tả bằng các phương tiện khác. Trên trang 72, có nhận xét rằng phủ định và kết hợp là dư thừa: chúng không thêm bất kỳ sức mạnh biểu cảm nào. Trên trang 80 và hơn thế nữa, người ta đã chứng minh rằng các ngôn ngữ thông thường chính xác là ngôn ngữ được công nhận bởi các máy trạng thái hữu hạn.

Nói cách khác: câu trả lời của Stefan có thể được coi là kết luận một cách an toàn, vì nó đã được đưa ra trong báo cáo lần đầu tiên giới thiệu các khái niệm này.


Cảm ơn các liên kết. Tôi luôn giải thích cho học sinh của mình rằng các phép toán là sự trừu tượng tự nhiên từ chuỗi lựa chọn (như if-then-other) (hướng dẫn theo nhau) và lặp lại (như while-do). Nhưng dường như điều đó không được Kleene nhắc đến?
Hendrik

Tôi chỉ là một người tìm kiếm bài báo của Kleene và ngạc nhiên rằng mọi thứ trong câu trả lời của tôi đã ở đó. Tôi không biết gì nữa. Vì vậy, tôi cho rằng câu trả lời là đọc bài báo và có lẽ tìm kiếm bất cứ điều gì mà Kleene đã viết về điều này trước đây.
Revierpost

4

Từ lựa chọn toán tử này (liên kết, ghép và sao), người ta có thể xây dựng một NFA với kích thước tuyến tính theo kích thước của biểu thức. Mặt khác, nếu bạn thêm giao điểm và bổ sung, kích thước của máy tự động tương đương có thể phát nổ không theo nguyên tố, điều này thường không được mong muốn.

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.