Có bao nhiêu từ có độ dài


9

EDITED TO ADD : Câu hỏi này về cơ bản đã được trả lời; vui lòng xem mục blog này để biết thêm chi tiết. Cảm ơn tất cả những người đã đăng ý kiến ​​và câu trả lời ở đây.


CÂU HỎI GỐC

Đây là phiên bản thông minh hơn và thông tin tốt hơn về câu hỏi tôi đã hỏi trên MathOverflow. Khi tôi hỏi câu hỏi đó, tôi thậm chí không biết tên của lĩnh vực toán học mà vấn đề của tôi là. Bây giờ tôi khá chắc chắn rằng nó nằm trong Thuật toán kết hợp thuật toán trên các từ một phần. (Cuốn sách gần đây về chủ đề ở đây .)

Tôi muốn tạo một danh sách các từ trên chữ . Mỗi từ có độ dài chính xác k . Thỏa thuận này là, nếu một j b nằm trong danh sách, nơi là một biểu tượng ký tự đại diện / đừng chăm sóc, sau đó một j b có thể không bao giờ xuất hiện trở lại trong danh sách. (Điều này cũng đúng nếu một = b , hoặc nếu j = 0 và do đó subword cấm là một b .)lkajbajba=bj=0ab

Ví dụ trong đó l = 5 :k=4l=5

b d c e d c b một <- bị cấm vì d c xuất hiện trong dòng trên một e e d <- bị cấm vì một d xuất hiện trên dòng đầu tiênabcd
bdce
dcbadc
aeedad

Các tài liệu về "các từ một phần có thể tránh được" mà tôi đã tìm thấy đều không có gì đặc biệt - cuối cùng một số mẫu từ là không thể tránh khỏi nếu kích thước từ đủ lớn. Tôi muốn tìm các phiên bản hữu hạn của các định lý như vậy. Vì vậy, câu hỏi:

Cho một từ có dạng trong bảng chữ cái gồm các chữ cái l , có bao nhiêu từ có độ dài k tránh được và chúng có thể được tạo ra một cách rõ ràng trong thời gian đa thức không?ajblk

Tôi không hy vọng câu hỏi trên là khó, và, trừ khi tôi thiếu một sự tinh tế, tôi có thể tự mình tính toán nó. Lý do thực sự tôi đăng trên trang này là vì tôi cần biết nhiều hơn về các thuộc tính của danh sách từ đó cho ứng dụng của mình, vì vậy tôi hy vọng ai đó có thể trả lời câu hỏi tiếp theo:

Điều này đã được nghiên cứu trong tổng quát? Một số giấy tờ xem xét, không chỉ là liệu một từ cuối cùng là không thể tránh khỏi, mà là "mất bao lâu" trước khi nó trở nên không thể tránh khỏi?

Cảm ơn.


(1) Tôi không thể hiểu được sự tương ứng giữa câu hỏi đầu tiên của bạn và ví dụ được nêu trước nó. Đầu vào trong ví dụ của bạn là gì? (2) Trong câu hỏi đầu tiên của bạn, bạn có đang sử dụng k cho hai mục đích khác nhau không?
Tsuyoshi Ito

Về (2), vâng tôi đã mắc lỗi, hiện đã được chỉnh sửa, cảm ơn bạn.
Aaron Sterling

Về (1), tôi muốn biết "tôi còn bao nhiêu phòng" khi một từ xuất hiện. Nhưng có, câu hỏi thực sự là làm thế nào để tạo ra các danh sách giống như danh sách xuất hiện trong ví dụ (không có các từ bị cấm một phần). Vì vậy, đầu vào sẽ là các giá trị của l và một số lượng từ mong muốn để tạo ra trong một danh sách, tất cả đều có "tính chất tránh các thuộc tính từ xuất hiện trước đó". kl
Aaron Sterling

2
@Aaron, tôi không biết ứng dụng cuối cùng của bạn là gì, nhưng các chuỗi Davenport-Schinzel (và khái quát hóa) hỏi về độ dài tối đa của một chuỗi không chứa một mẫu lặp lại cụ thể. Đó là một khái niệm liên quan.
Suresh Venkat

1
Seth Pettie đã nghiên cứu một số khái quát rất tiện lợi để cấm các mô hình con.
Suresh Venkat

Câu trả lời:


4

kF(k+3)F(n)nthF(1)=1,F(2)=1

a0akl+1af(k)

f(k)=lf(k1)+lf(k2)
f(0)=1,f(1)=l+1
klak1aak2

Bạn có thể xác minh rằng dưới đây là một hình thức đóng cho sự lặp lại ở trên: trong đó chúng tôi hiểu khi .

f(k)=i=0k(k+1ii)lki
(ni)=0i>n

EDIT # 2: Chúng ta hãy loại bỏ một trường hợp nữa - a . Chúng tôi sẽ gọi các chuỗi trên bảng chữ cái -ement không chứa chuỗi con , "hợp lệ" và để biểu thị tập hợp các chuỗi có độ dài hợp lệ . Hơn nữa, hãy định nghĩa là tập con của bao gồm các chuỗi bắt đầu bằng và là các chuỗi không bắt đầu bằng . Cuối cùng, cho,,.0b,ablabSkkTkSkbUkbf(k)=|Sk|g(k)=|Tk|h(k)=|Uk|

Chúng tôi quan sát rằng và . Tiếp theo, chúng tôi suy ra các đợt tái phát sau: Điều đầu tiên xuất phát từ việc thêm vào đầu bất kỳ phần tử nào của tạo ra một phần tử . Thứ hai đến từ việc quan sát rằng chúng ta có thể xây dựng một phần tử của bằng cách thêm bất kỳ ký tự nào nhưng vào phía trước của bất kỳ phần tử nào của hoặc bằng cách thêm bất kỳ ký tự nào ngoài hoặc vào phía trước của bất kỳ phần tử nào trong .g(0)=0,h(0)=1,f(0)=1g(1)=1,h(1)=l1,f(1)=l

g(k+1)=f(k)h(k+1)=(l1)h(k)+(l2)g(k)
bSkTk+1Uk+1bUkabTk

Tiếp theo, chúng tôi sắp xếp lại các phương trình lặp lại để có được:

f(k+1)=g(k+1)+h(k+1)=f(k)+(l1)h(k)+(l2)g(k)=f(k)+(l1)f(k)g(k)=lf(k)f(k1)

Chúng ta có thể có được một giải pháp dạng đóng khá mờ đối với sự tái phát này bằng cách tìm kiếm một chút với chức năng tạo hoặc nếu chúng ta lười biếng, hãy đi thẳng đến Wolfram Alpha . Tuy nhiên, với một chút googling và chọc ngoáy trong OEIS , chúng tôi thấy rằng chúng tôi thực sự có: trong đó là đa thức của loại thứ hai (!) .

f(k)=Uk(l/2)
Ukkth

Điều đó rất thú vị, cảm ơn bạn.
Aaron Sterling

2

Một cách tiếp cận hoàn toàn khác cho câu hỏi đầu tiên sử dụng lại các câu trả lời cho câu hỏi gần đây về việc tạo từ trong ngôn ngữ thông thường : đủ để áp dụng các thuật toán này cho độ dài trên ngôn ngữ thông thường trong đó là bảng chữ cái.kΣaΣjbΣΣ


Cảm ơn. Tôi đã tự hỏi nếu có thể có một kết nối, và câu trả lời của bạn ở đây đã cho tôi sự thúc đẩy tôi cần để xem các bài báo được tham chiếu ở đó, và một trong số chúng chắc chắn giải quyết được một trong những vấn đề tôi đang xem xét.
Aaron Sterling

0

Cập nhật: câu trả lời này không chính xác :

giả sử là cố định, chúng ta có thể đếm số cách một mô hình có thể được xuất hiện: đầu tiên biểu tượng có thể được xuất hiện tại một số vị trí , và chúng tôi có khả năng trước thời điểm đó, giữa và và cho phần còn lại của chuỗi, do đó tổng cộng trường hợp. Như Tsuyoshi Ito đã lưu ý trong các bình luận, số này không phải là số lượng từ khác nhau phù hợp vớijajba1ikj1li1ljablkji1

i=1kj1li1ljlkji1=(kj1)lk2
ajbvì một từ duy nhất có thể khớp với cùng một mẫu theo những cách khác nhau. Chẳng hạn, được ghép ba lần trong , hai lần trong và hai lần trong . Chúng ta có thể cố gắng đếm số cách kết hợp các mẫu nhiều lần và thể hiện biểu thức "loại trừ bao gồm", nhưng các cách mẫu có thể chồng lấp khiến việc này quá dài.aaaaaaababababaabb

Đối với câu hỏi đầu tiên, theo cách hiểu rằng không cố định, tức là chúng tôi muốn tránh nhúng từ :jab

  • hoặc biểu tượng đầu tiên không bao giờ xuất hiện, chiếm các từ có thể,a(l1)k
  • hoặc xuất hiện đầu tiên ở một số vị trí , sau đó chúng ta không thể sử dụng trong phần còn lại của từ: có cho các yếu tố lên đến và lựa chọn cho phần còn lại, đưa ra tổng từ có thể. Cho dù là không liên quan.a1ikb(l1)i1a(l1)kii=1k(l1)i1(l1)ki=k(l1)k1a=b

Đối với câu hỏi thứ hai, tôi không có nhiều điều để đề xuất; có một mối quan hệ với các từ nhúng, nhưng kết quả mà tôi biết về các chuỗi xấu cho Bổ đề của Higman không được áp dụng ngay lập tức.


Cảm ơn rất nhiều, Sylvain, mặc dù tôi không nghĩ điều đó hoàn toàn đúng. Chúng ta có thể sử dụng sau trong từ nếu xuất hiện. Chúng ta không thể sử dụng nếu có chính xác các chữ cái ở giữa và , nếu xuất hiện trước đó. Có lẽ tôi đang hiểu nhầm lý lẽ của bạn. babjabajb
Aaron Sterling

Xin lỗi, tôi không chắc liệu đã được sửa hay chưa. Tôi cũng đã chỉnh sửa câu trả lời với cố định . jj
Sylvain

1
Tôi không nghĩ rằng trường hợp j cố định là chính xác. Ví dụ: nếu k = 4 và j = 1, từ aabb bị trừ hai lần. Tôi chưa đọc trường hợp j không cố định.
Tsuyoshi Ito

@Tsuyoshi Ito: bạn nói đúng, không có trường hợp nào phù hợp trong trường hợp đó.
Sylvain

Vui lòng đánh dấu một câu trả lời không chính xác như vậy.
Tsuyoshi Ito
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.