Giúp về vấn đề tổ hợp sau đây?


8

Tôi có các vectơ bit, mỗi vectơ được tạo bởi bit. Hãy biểu thị với là -thứ chút của -thứ vector, . Mỗi vectơ bit phải tuân theo 2 hạn chế sau:m v i [ j ] j i i , j [ 1 , m ] v immvi[j]jii,j[1,m]vi

  1. vi[j]=0 ji .
  2. vi[j]=1 j<imlog(m) .
  3. Các bit không thuộc các hạn chế ở trên có thể là hoặc , nhưng trong trường hợp đó, số có thể nhiều nhất là . 1 0 1201012

Bây giờ tôi có một vector bit , của bit: ban đầu tất cả các bit được thiết lập để . Bằng cách "áp dụng cho " Tôi có nghĩa là thực hiện một bit AND giữa và , và sau đó lưu trữ kết quả trong . Tôi quan tâm đến sự phát triển của sau khi các ứng dụng lặp lại của vectơ được đưa ra trong đầu vào. m m s 1 v i s s v i s s v 1 , . . . , v msmms1vissvissv1,...,vm

Chúng ta hãy gọi những "ứng dụng lặp lại" đó là một quỹ đạo và hãy xác định quỹ đạo đó một cách chính thức hơn. Quỹ đạo là một chuỗi được tạo bởi hầu hết các vectơ (được chọn từ các được đưa vào trong đầu vào) sao cho nếu nằm trong chuỗi, thì tất cả sau nó phải có . Vì vậy, ví dụ: là một quỹ đạo, trong khi thì không (vì ). v 1 , . . . , V m v i v j j < i < v 8 , v 3 > < v 3 , v 8 , v 7 > 8 3mv1,...,vmvivjj<i<v8,v3><v3,v8,v7>83

Rõ ràng, có quỹ đạo khác nhau. Đặt . Giả sử lấy và để cho nó trải qua một quỹ đạo : cho mỗi bước của quỹ đạo , đặt giá trị mới lấy bằng trong . Sau đó lặp lại quy trình tương tự cho một quỹ đạo khác (luôn bắt đầu từ và luôn đặt mọi giá trị mới của vào ). Sau đó, một lần nữa, cho đến khi bạn thử tất cả các quỹ đạo có thể . Cuối cùng, tập sẽ chứa tất cả các giá trị có thể là S = s = 1 m T 12mS=s=1mT1 s S T 2 s = 1 m s S 2 m S sT1sST2s=1msS2mSs có thể bao giờ giả định cho các vectơ trong đầu vào.

Câu hỏi

  1. Tôi có trong đầu vào. Tôi muốn biết, Tức là có bao nhiêu giá trị khác biệt có thể bao giờ thừa nhận. Tất nhiên, tôi muốn tính toánhiệu quả, tức là không thử tất cả các quỹ đạo có thể từng cái một.| S | s | S |vi,...,vm|S|s|S|
  2. Giả sử để loại bỏ giới hạn thứ 2 trên các vectơ trong đầu vào. Làm thế nào để ảnh hưởng đến? |S|
  3. Quan trọng hơn, điều tôi quan tâm nhất là làm thế nàophát triển với . Làtại đa thức nhất trong ? Lànhiều nhất theo cấp số nhân tính theo ? Hoặc có tồn tại các trường hợp xấu trên đócó nhất thiết phải theo cấp số nhân trong ?m | S | m | S | m | S | m|S|m|S|m|S|m|S|m

Hình dưới đây là một ví dụ với : m=17Thí dụ

Tôi đang thu thập dữ liệu thử nghiệm để cố gắng tìm ra mối quan hệ giữa và. Cho đến nay, các thí nghiệm dường như cho thấy rằngphát triển nhanh hơn và chậm hơn . Tuy nhiên, hiện tại những dữ liệu đó không có nhiều ý nghĩa: Tôi chỉ có thể thực hiện các thử nghiệm lên đến , do đó, có thể có một hằng số ẩn lớn hoặc một số yếu tố khác cho phép một luật hàm mũ giống như một luật đa thức cho nhỏ . Tôi cần giúp đỡ trong việc tìm ra hành vi tiệm cận củađối với . m|S||S|m3m4m=90m|S|m


4
@Downvoter: Tại sao lại bỏ phiếu? Hãy động viên.
Giorgio Camerani

Không phải quỹ đạo đã quá phức tạp sao? Bạn chỉ có thể nói về các tập con của {1m}
Peter Taylor

@Peter: Có một quỹ đạo không gì khác hơn là một tập hợp con của . Tôi chỉ nghĩ rằng nói về quỹ đạo sẽ đưa ra một bức tranh trực quan hơn, "trực quan" hơn về vấn đề. Tôi muốn đưa giọng về sự tiến hóa của vector s , để nhấn mạnh thực tế là tôi đang quan tâm đến việc có bao nhiêu giá trị khác nhau có thể s giả trong tất cả các diễn biến thể của nó. {1,...,m}ss
Giorgio Camerani

3
@Walter: Một lý do có thể cho các downvote là tiêu đề của câu hỏi, không có ích gì. Bạn có thể muốn viết lại nó để nó không chứa "trợ giúp" và có thể gợi ý về các đối tượng bạn muốn đếm. Chúc mừng!
Michaël Cadilhac

@ MichaëlCadilhac: Vâng, phải thừa nhận rằng tiêu đề rất chung chung. Có lẽ tôi sẽ thay đổi nó thành một cái gì đó "hấp dẫn" hơn . Cảm ơn gợi ý của bạn, chúc mừng!
Giorgio Camerani

Câu trả lời:


8

Tôi đã suy nghĩ lại về điều này và ràng buộc ban đầu của tôi là chính xác. Trong trường hợp xấu nhất, |S|=Θ(m2mlgm)

Bằng chứng là trong hai phần. Thứ nhất, . Hãy xem xét các giá trị có thể củascủa một quỹ đạo mà kết thúc tạivx. Mỗi bits[j]chojxlà 0 và mọi bits[j]choj<x-m|S|=O(m2mlgm)svxs[j]jxs[j] là 1. Do đó chỉ có2mj<xmlgmgiá trị lg mscó thể lấy. Nhân với sốvxvà chúng ta có giới hạn trên.2mlgmsvx

Thứ hai, xem xét

    0 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 
    0 0 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1 
    0 0 0 1 1 1 0 1 1 1 1 1 1 1 1 1 1 
    0 0 0 0 1 1 1 0 1 1 1 1 1 1 1 1 1 
    0 0 0 0 0  1 1 1 0 1 1 1 1 1 1 1 1 
    0 0 0 0 0 0 1 1 1 0 1 1 1 1 1 1 1
    ...
    1 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 0 1 
    0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 0
     0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1
     0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1
     0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1

Tôi khẳng định rằng chương trình này mang lại cho bạn . Đối với mỗi cộtvxcũng xem xét(m|S|=Ω(m2mlgm)vxcột bên phải của nó. Mỗi cái2 m(mlgm2)kết hợp trong số họ đưa ra một khác nhaus, và trong mỗi ngườicác bit đầu bộ là bit đầu bộvx, vì vậy không có đôi về số lượng giữa khác nhauvx.2mlgm2ssvxvx


Cảm ơn câu trả lời của bạn. Bạn có bất kỳ manh mối nào cho dù ràng buộc thứ ba (tức là không quá số không) có tạo ra sự khác biệt nào không? Nói cách khác, bạn có tin rằng việc giới hạn các số không ở mức tối đa 12 hàm ý rằng số lượng các giá trị khác nhau được giới thiệu bởi các quỹ đạo kết thúc tại v x ít hơn 2 m / l o g m (bởi "ít hơn nhiều" ý tôi là không theo cấp số nhân tính bằng m / l o g m )? Cảm giác của tôi là nó không tạo ra bất kỳ sự khác biệt nào: ngay cả khi chúng tôi cho phép nhiều nhất là 1 không, dường như chúng tôi có thể tạo ra 2 m1212vx2m/logmm/logm1 các giá trị khác nhau cho ít nhất mộtvx. 2m/logmvx
Giorgio Camerani

@WalterBishop, ví dụ của tôi sử dụng không quá 1 không.
Peter Taylor

Xin lỗi tôi đã phân tích cả câu trả lời và ví dụ quá nhanh.
Giorgio Camerani

@WalterBishop, mặc dù nếu bạn giới hạn số lượng 1s thay vào đó (không quá của các giá trị miễn phí trong một vectơ có thể là 1) bạn sẽ nhận được | S | = O ( m k + 1 )k|S|=O(mk+1)
Peter Taylor

Làm thế nào để bạn xuất phát trong trường hợp như vậy? Đối với tôi, dường như trong trường hợp như vậy chúng ta sẽ có | S | = O ( m 2 k ) = O ( m ) (vì k là hằng số). Vì AND-ing 2 vectơ, 1 có thể trở thành 0 nhưng 0 không thể trở thành 1 : do đó, bất kể thực tế là "cửa sổ trượt" của chúng tôi có m / l|S|=O(mk+1)|S|=O(m2k)=O(m)k1001 vectơ, chúng ta có thể tạo tối đa 2 k vectơ khác nhau cho mỗivị trí m của"cửa sổ trượt". Tui bỏ lỡ điều gì vậy? m/logm2km
Giorgio Camerani
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.