Ước tính trung bình theo thời gian đa thức


20

Hãy là một hàm Chúng ta muốn ước tính trung bình. F , đó là: E [ f ( n ) ] = 2 - n Σ x { 0 , 1 } n f ( x ) .f:{0,1}n(2n,1]fE[f(n)]=2nx{0,1}nf(x)

NOTE: In the OP, the range of f was [0,1]. I changed this a bit for technical reasons. (This should simplify the problem; if not, forget it!)

Đặt là thuật toán ước lượng (ngẫu nhiên). Giả sử rằng E có quyền truy cập hộp đen vào f . Chúng tôi biểu thị điều này bởi E f .EEfEf

Có hai điều kiện:

1) thời gian chạy Công cụ ước tính: Có tồn tại một đa thức đơn sao cho với mọi n và tất cả các e , thời gian chạy của E f ( 1 n ) được bao bọc bởi p ( n )p()nfEf(1n) .p(n)E[f(n)]

2) Độ chính xác của công cụ ước tính với độ tin cậy : Tồnδ tại một đa thức , sao cho với tất cả n và tất cả f , chúng ta có 1q()nfvới xác suất ít nhấtδ.1q(n)<Ef(1n)E[f(n)]<q(n)δ

NOTE: The confidence δ was not in the OP. The parameter δ is in (0,1), and may depend on n. For instance, it may be 1-1/2^n.

Những người ước tính như vậy có tồn tại?

Bối cảnh và động lực

Tôi đã không đề cập đến động lực của tôi ngay từ đầu vì nó đòi hỏi rất nhiều kiến ​​thức nền tảng. Dù sao, đối với những người đam mê, tôi mô tả ngắn gọn: Nhu cầu về những người ước tính như vậy nảy sinh trong bối cảnh "Bằng chứng về Khả năng", như được định nghĩa trong bài viết sau:

Mihir Bellare, Golddedich. Chứng minh khả năng tính toán , 1992. Bản thảo chưa xuất bản.

Cụ thể, ở cuối trang 5, các tác giả mặc nhiên cho rằng sự tồn tại của các công cụ ước tính đó (Không có đề cập đến độ chính xác và thời gian chạy không được xác định chính xác; bối cảnh xác định rõ ràng mọi thứ.)

Nỗ lực đầu tiên của tôi là đọc " Một mẫu của Samplers --- Một quan điểm tính toán về lấy mẫu ." Nó liên quan đến một vấn đề rất giống nhau, nhưng xác suất lỗi được xác định là phụ gia, trong khi chúng ta là số nhân. (Tôi đã không đọc hết bài báo, có lẽ nó đề cập đến những gì tôi cần ở đâu đó.)

EDIT (theo yêu cầu của Tsuyoshi): Trên thực tế, định nghĩa của "Bằng chứng về khả năng tính toán" đòi hỏi sự tồn tại của một "trình trích xuất tri thức" có thời gian chạy (dự kiến) là . Vì chúng tôi không biếtE[f(n)], chúng tôi muốn ước tính nó; Tuy nhiên, điều này không được thay đổi đáng kể thời gian chạy: nó nên thay đổi nó thành một yếu tố đa thức. Các điều kiện chính xác cố gắng để nắm bắt yêu cầu như vậy.p(n)E[f(n)]E[f(n)]


Tôi không thể hiểu điều kiện chính xác. Điều gì ngăn thuật toán E luôn xuất ra 1? Ý của bạn là 1 / q (n) <(Giá trị thực) / (Giá trị ước tính) <q (n)?
Tsuyoshi Ito

Có vẻ như p (n) = q (n) = O (1) và thuật toán tầm thường xuất ra "1" sẽ hoạt động. Thời gian chạy của nó là O (1), giới hạn bởi p ( n )Ef(1n) . Và độ chính xác của nó là <= 1, nhỏ hơn q (n). p(n)E[f(n)]
Robin Kothari

@Tsuyoshi & Robin: Xin lỗi các bạn, tôi đã bỏ lỡ một điều kiện trong độ chính xác. Kiểm tra nó ngay!
MS Dousti

Ngoài ra, tôi đoán rằng công cụ ước tính là ngẫu nhiên (chỉ vì nó có vẻ không thể khác). Đây có phải là trường hợp? Ngoài ra, nếu có, điều kiện thời gian chạy và điều kiện chính xác yêu cầu chính xác là gì?
Tsuyoshi Ito

1
Tôi nghĩ rằng tôi không hiểu rõ câu hỏi. Tại sao một người lấy mẫu ngây thơ với ràng buộc chernoff không phải là một người ước lượng tốt?
Sylvain Peyronnet

Câu trả lời:


15

EDIT: Điều này giải quyết phiên bản của vấn đề trong đó f chỉ xuất ra 0 hoặc 1. Nhưng tôi nghĩ giải pháp có thể được điều chỉnh để làm cho nó hoạt động cho trường hợp tổng quát hơn.

Có lẽ tôi đã hiểu nhầm câu hỏi, nhưng điều này không quá khó.

Thay vì ước tính, trung bình, chúng ta hãy nghĩ đến việc ước tính số lượng 1 và gọi số đó là k. Đặt . Vậy trung bình là k / N. Bạn muốn ước tính điều này trong một hệ số nhân đa thức trong thời gian O (N polylog (N) / k).N=2n

Tôi nghĩ rằng điều này có thể được thực hiện trong bất kỳ yếu tố nhân liên tục quá. Ví dụ: giả sử bạn muốn ước tính giá trị này trong phạm vi 2. Vì vậy, đầu ra của thuật toán sẽ nằm trong khoảng từ k / 2 đến 2k.k

Tôi sẽ phác thảo một thuật toán, cần có thời gian chạy phù hợp. Trước tiên hãy kiểm tra xem k có nằm trong khoảng từ N / 2 đến N. Điều này thật dễ dàng, chỉ cần lấy mẫu một vài giá trị ngẫu nhiên và nếu bạn nhận được hơn nửa 1 giây, thì đó là trong khoảng này. Vì vậy, bạn có một xấp xỉ 2. Nếu không, sau đó kiểm tra xem nó có nằm trong khoảng từ N / 4 đến N / 2 không. Và như vậy. Mỗi khi bạn thực hiện khoảng thời gian nhỏ hơn, sẽ tốn kém hơn để ước tính liệu k có nằm trong phạm vi đó hay không. Nhưng chi phí tỷ lệ nghịch với khoảng cách nhỏ.

N/2q2N/2qO(2q)N/2q2N/2qN/2q2qlà về k / N. Vì vậy, trong bước này, chúng tôi sẽ dành các truy vấn O (k / N). Nhưng để đến bước này cần có các bước khác, nhưng đó chỉ là một yếu tố polylog (N) bổ sung. Vì vậy, thời gian chạy tổng thể là O (N polylog (N) / k), cho xấp xỉ 2.

(Một người thực sự sẽ phải thực hiện khuếch đại lỗi để có độ chính xác cao trong từng bước. Nhưng đó chỉ là một yếu tố polylog phụ.)


kN/2q2n/2qk

Để thực hiện công việc này cho trường hợp đầu ra không phải là boolean, thay vì đếm số 1s, chỉ cần tính tổng các giá trị nhìn thấy. Tôi sẽ cố gắng tìm một tài liệu tham khảo để cho thấy rằng điều này hoạt động nghiêm ngặt.


(1) Vì hàm f có thể lấy các giá trị không tách rời, nên bạn có thể muốn sử dụng tổng của các giá trị thay vì số 1s. (2) Chúng ta có phải ước tính từng giai đoạn không? Tôi đoán rằng chúng ta có thể làm điều này trong một giai đoạn duy nhất, chỉ cần lặp lại cho đến khi tổng vượt quá một đa thức cố định. Xem thêm bình luận của tôi cho câu hỏi.
Tsuyoshi Ito

Ồ, tôi không nhận thấy phạm vi là [0,1]. Tôi nghĩ đó là {0,1}. Nhưng tôi đoán các thủ tục tương tự làm việc. Có lẽ chúng ta có thể giảm một vấn đề khác vì chúng ta có thể "đếm" số 1 ở một vị trí cụ thể của biểu diễn nhị phân của đầu ra với độ chính xác đủ. Về (2), tôi nghĩ thủ tục của bạn là tương đương. Tôi nghĩ về nó theo cách này vì nó cảm thấy giống như một quá trình đoán và kiểm tra, tức là, với một ước tính tệ hại của k, có được một quy trình tốt hơn. Tôi sẽ thêm điều này vào câu trả lời của tôi.
Robin Kothari

Tôi đồng ý rằng hai thuật toán về cơ bản là giống nhau. Ngoài ra, như đối với [0,1] và {0,1}, thuật toán của bạn có thể hoạt động như đã nêu sau khi thay thế từng đánh giá của giá trị không tách rời f (x) bằng cách lật đồng xu (1 wp f (x) và 0 wp 1 − f (x)).
Tsuyoshi Ito

@Robin: Cảm ơn câu trả lời. Một cái gì đó cũng không rõ ràng đối với tôi: Bạn nói: "Chỉ cần lấy mẫu một vài giá trị ngẫu nhiên và nếu bạn nhận được hơn nửa giây, thì đó là trong khoảng này." Tôi tin rằng điều này phải được định lượng: Có bao nhiêu mẫu cho kết quả chính xác? (Tôi đã thay đổi OP để xem xét sự tự tin như vậy. Nếu không, sẽ không thể thiết kế bộ lấy mẫu được yêu cầu!)
MS Dousti

@Sadeq: đó là một chernoff bị ràng buộc. nếu bạn mong đợi k là n / 2 (ví dụ như một đồng tiền công bằng) thì bạn có thể nhanh chóng viết ra một cái đuôi bị ràng buộc để nhìn thấy nhiều hơn n (1 + eps) / 2 và tương tự cho giới hạn dưới.
Suresh Venkat

3

f1,f2,f{0,1}nki=1kfiMMM=polylog(n)M/k

kμE(f)klowkhighμ1δi=1klowfi<Mi=1khighfi>Mfiklow<k<khigh1δM/k

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.