Tìm kiếm yếu tố tối đa của các ngôn ngữ thông thường


13

Đặt ngôn ngữ là thường xuyên.LΣ*

Một hệ số của là một cặp tối đa của các bộ từ vớiL(X,Y)

  • XYL
  • XY ,

trong đó XY= ={xy | xX,yY} .

(X,Y) là tối đa nếu với mỗi cặp (X',Y')(X,Y) với X'Y'L hoặc XX' hoặc YY' .

Có một thủ tục đơn giản để tìm ra cặp nào là tối đa?

Thí dụ:

Đặt L= =Σ*mộtbΣ* . Tập hợp F= ={bạn,v,w} được tính:

  • bạn= =(Σ*,Σ*mộtbΣ*)

  • v= =(Σ*mộtΣ*,Σ*bΣ*)

  • w= =(Σ*mộtbΣ*,Σ*)

trong đó Σ= ={một,b} .

Một vi dụ khac:

Σ= ={một,b}L= =Σ*mộtΣ Factorization đặt F={q,r,s,t} với

  • q=(Σ,L)

  • r=(Σa,Σ+L)

  • s=(Σaa,ϵ+Σ+L)

  • t=(L,ϵ+L)


4
Tôi khuyên bạn nên đọc bài viết sau (đặc biệt là tiểu mục 4.1) của Jacques Sakarovitch: Perso.telecom-paristech.fr/~jsaka/PUB/Files/TUA.pdf
Thương hiệu Cornelius

1
Tôi tự hỏi nếu bạn có thể muốn được cụ thể hơn về vấn đề, tức là câu cuối cùng của câu hỏi của bạn? Có phải chúng tôi đã cho và chúng tôi muốn kiểm tra xem có phải là tối đa không? Là nhiệm vụ của chúng tôi để liệt kê tất cả là tối đa? Nếu sau này, rõ ràng danh sách này là hữu hạn hoặc đa thức có kích thước? Có lẽ không có nghĩa gì khi yêu cầu một thuật toán liệt kê tất cả các khả năng nếu có nhiều trong số chúng. Ngoài ra, bạn có muốn chỉ định cách ngôn ngữ được trình bày khi nó được trình bày cho chúng tôi không và cách trình bày ? (ví dụ: DFA, NFA, regrec)( X , Y ) ( X , Y )X,Y(X,Y)(X,Y) X , YLX,Y
DW

2
Tôi không hiểu ví dụ của bạn. Là được cho là tất cả các cặp tối đa? dường như không hợp lệ ...vu,v,wv
Raphael

1
Ví dụ được lấy từ bài báo đã đề cập ở trên. được coi là cặp tối đa. Tôi cũng không hiểu cách được tính toán vì dường như không nhất thiết phải có trong . Tôi sẽ đăng một ví dụ khác. v Lu,v,wvL
Laura

1
@Raphael, có vẻ như là hợp lệ. Để , , là một yếu tố, vì (xem xét bất kỳ chuỗi nào chứa một , sau đó bất kỳ chuỗi nào của và / hoặc ', cuối cùng là chuỗi : chuỗi này phải có một số điểm mà đầu tiên xuất hiện, vì vậy đó là điểm chứa ). Tôi không có bằng chứng nào cho thấy nó là tối đa, nhưng tôi không thể tìm thấy bất kỳ bộ nào lớn hơn là một yếu tố của . X = Σ a Σ Y = Σ b Σ ( X , Y ) X Y = L a a b b b a b X , Y LvX=ΣaΣY=ΣbΣ(X,Y)XY=LaabbbabX,YL
DW

Câu trả lời:


8

Như đã đề xuất trong các nhận xét cho câu hỏi, tôi sẽ cố gắng đưa ra câu trả lời (không may một phần) cho câu hỏi, ít nhất là đến mức tôi đã tự hiểu vấn đề (điều này ngụ ý rằng bạn cũng có thể tìm thấy lỗi và nếu bạn tìm thấy một cách để giải thích ngắn gọn hơn hoặc rõ ràng hơn một trong những điểm dưới đây, vui lòng chỉnh sửa câu trả lời cho phù hợp):

Đầu tiên, người ta cần lưu ý rằng chúng ta không thực sự phải tính toán tự động phổ quát của ngôn ngữ nếu chúng ta muốn tính toán các yếu tố của ngôn ngữ.

Từ bài báo được đề cập trong nhận xét của tôi , có sự tương ứng 1-1 giữa các yếu tố bên trái và bên phải của ngôn ngữ thông thường, nghĩa là, với một yếu tố bên trái của ngôn ngữ, yếu tố bên phải tương ứng được xác định duy nhất và ngược lại. Chính xác hơn, chúng ta có những điều sau đây:

Hãy là một thừa số của . Sau đó, nghĩa là, bất kỳ yếu tố bên trái nào cũng là giao điểm của các chỉ tiêu bên phải và bất kỳ yếu tố bên phải là một giao điểm của chỉ tiêu bên trái. Ngược lại, bất kỳ giao điểm của thương số bên trái của là một yếu tố phải của , và bất kỳ giao điểm của thương số bên phải của là một yếu tố bên trái của .L Y = x X x - 1 L , X = y Y L y - 1 , L(X,Y)L

Y=xXx1L,X=yYLy1,
LL LLLL

Lưu ý rằng đối với một ngôn ngữ thông thường, chỉ có một tập hợp hữu hạn các chỉ tiêu trái và phải, và do đó, vấn đề sẽ giảm khi tính toán các chỉ tiêu trái và phải của một ngôn ngữ, sau đó để tính toán đóng ổn định của chúng, nghĩa là superset tối thiểu của các chỉ tiêu được đóng dưới giao lộ. Đây là sau đó một cách chính xác các yếu tố đúng và các yếu tố còn lại, và sau đó nó thường là dễ dàng để xem những cặp là tập con của .L

Thí dụ

Để minh họa các điểm trên, hãy xem xét ví dụ đầu tiên trong câu hỏi (trong đó tôi cũng nghĩ rằng nó không đúng trong bài viết):

Đặt . Bây giờ, các thương số bên trái của là bộ cho , có nghĩa là, những lời trong có thể được bắt đầu bằng , tức là . Khi nào cho khác biệt ? Đây là trường hợp nếu và chỉ khi và có thể được tăng lên thành từ trong L x - 1 L x Σ * u Σ * x x u L y - 1L=ΣabΣLx1LxΣuΣxxuLx , y x y Ly1L=x1Lx,yxyLvới chính xác các hậu tố. Điều này có nghĩa, để đặt nó thành các thuật ngữ quen thuộc hơn, chúng tương đương với Nerode và các hậu tố cần thiết để nối các từ trong lớp Nerode chính xác là các chỉ tiêu bên trái tương ứng.

Đối với , chúng ta thấy rằng các lớp tương đương Nerode của chúng ta làL

  • a b aN1 , tập hợp các từ không chứa làm yếu tố và kết thúc bằng , aba
  • b a bN2 , tập hợp các từ kết thúc bằng và không chứa là một yếu tố và bab
  • a b N 3 = LN3 , tập hợp các từ có chứa là một yếu tố, nghĩa là,abN3=L

Chúng có thể được tăng thêm với các tập hợp sau (nghĩa là đây là các danh từ trái của các từ trong các lớp tương ứng):

  • x N 1 L a bS1=x1L cho trong bao gồm tất cả các từ trong (bất kỳ từ nào cũng có thể được thêm vào bằng một từ có chứa là một yếu tố và do đó trở thành một từ trong ) và , rằng làxN1Labb Σ * S 1LbΣS1=LbΣ
  • x N 2S2= =x-1L với trong là ngôn ngữ, nghĩa là, vàxN2S2= =L
  • x N 3 Σ * L S 2S 1S 3S 1 , S 2 , S 3S3= =x-1L cho trong rõ ràng là . Nghĩa là, chúng tôi đã tìm thấy ba yếu tố bên phải của . Vì , bao đóng ổn định của họ là tầm thường và đó là những yếu tố chính xác.xN3Σ*LS2S1S3S1,S2,S3

Do đó, bộ nhân tố của chúng tôi có dạng . ( P 1 , S 1 ),( P 2 , S 2 ),( P 3 , S 3 )FL(P1,S1),(P2,S2),(P3,S3)

Bây giờ, đối với các yếu tố bên trái , chúng tôi sử dụng các phương trình của phần đầu của câu trả lời này:PTôi

PTôi= =xSTôiLx-1
.

Đối với , đây sản lượng , cho chúng tôi nhận và cho , chúng tôi có được . Bạn có thể thấy điều này bằng cách kiểm tra (lý do phổ biến nhất cho việc quá lười biếng để đưa ra một bằng chứng chính thức) hoặc bằng cách tính toán rõ ràng các chỉ tiêu bên phải (tương đối giống nhau, mặc dù không hoàn toàn, để tính toán các chỉ tiêu bên trái). Do đó, các yếu tố của chúng tôi được đưa ra bởi trong đó L Σ * một P 2 Σ * PP1LΣ*mộtP2Σ* L F L = u , v , wP3LFL= =bạn,v,w

  • bạn= =(P1,S1)= =(Σ*mộtbΣ*Σ*một,Σ*mộtbΣ*bΣ*)
  • v=(P2,S2)=(Σ,ΣabΣ)
  • w=(P3,S3)=(ΣabΣ,Σ)

Tóm lược

Để tóm tắt (như bạn đã yêu cầu một thủ tục đơn giản):

  • Để tính factorizations của một ngôn ngữ , trước hết tính thương số bên trái của .LLL
  • Bạn có thể làm như vậy, bằng ngôn ngữ của bài báo, bằng cách xây dựng một DFA tối thiểu cho và sau đó cho mỗi trạng thái trong (tương ứng, như một lớp tương đương Nerode, với một thương số bên trái) tính tương lai của trong , do đó có được một thương số trái của ngôn ngữ cho mỗi trạng thái.L q A q AALqAqA
  • Tập hợp các chỉ số bên trái thu được theo cách này mang lại, nói chung, một tập hợp con của các yếu tố bên phải.SR
  • Tính toán sau đó đóng ổn định của , có thể được thực hiện trong thực tế bằng cách tạo giao điểm của bất kỳ tập hợp con nào của và thêm bất kỳ tập hợp con nào thu được theo cách này vào .S R S R S RSRSRSR
  • Tập cùng với tất cả các nút giao thông từ bước trước là sau đó thiết lập các yếu tố bên phải của . LSRL
  • Để có được những yếu tố bên trái, chúng ta có thể tính toán thương số bên phải của .L
  • Đây là các bộ có dạng , cho . Bây giờ, những điều này một lần nữa chỉ là rất nhiều và đối với , chúng ta có khi và chỉ khi cho tất cả , , nghĩa là chúng có thể được thêm tiền tố vào các từ trong ngôn ngữ với cùng một chuỗi các chuỗi. y Σ * x y L y - 1 = L x - 1 u Σ * u x L uLy1yΣxyLy1=Lx1uΣuxLuyL
  • Để tính , hãy xem xét các trạng thái trong sao cho được chứa trong tương lai của . Sự kết hợp của quá khứ của các quốc gia tạo thành một thương số đúng. Tìm tất cả các chỉ tiêu. q A xLx1qAxq
  • Bạn biết bạn đã hoàn thành khi bạn đã tìm thấy nhiều yếu tố bên trái như bạn có các yếu tố bên phải.
  • Tìm những cặp còn lại và các yếu tố đúng như rằng . Đây là .X,YF LXYLFL

  1. Universal Automaton của Lombardy và Sakarovitch (trong văn bản về logic và trò chơi, Tập 2: Logic và tự động: Lịch sử và quan điểm , 2007)

3
Đẹp! Chúng ta hãy lưu ý rằng có thể quyết định đối với các ngôn ngữ thông thường và các yếu tố , kết thúc đều đặn do thuộc tính đóng. Do đó, chúng tôi không chỉ có thể tính toán hiệu quả viên đạn cuối cùng trong bản tóm tắt mà còn có thể lọc ra các cặp cực đại. X YMộtBXY
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.