Mất bao lâu để tìm thấy một chu kỳ ngắn trong một biểu đồ ngẫu nhiên?


9

Đặt là một biểu đồ ngẫu nhiên trên các cạnh . Với xác suất rất cao, có nhiều xe máy. Mục tiêu của chúng tôi là xuất ra bất kỳ một trong chiếc xe này càng nhanh càng tốt.GG(n,n1/2)n3/2G44

Giả sử chúng ta có quyền truy cập vào ở dạng danh sách kề, chúng ta có thể thành công với xác suất không đổi trong thời gian như sau: chọn bất kỳ nút và bắt đầu tạo ngẫu nhiên bắt đầu từ ; một khi chúng ta tìm thấy hai biệt -paths chia sẻ một thiết bị đầu cuối, chúng tôi đã làm xong. Có điểm cuối có thể và bằng nghịch lý sinh nhật, chúng tôi sẽ thành công với xác suất không đổi sau khi khám phá về trong số đó.GO(n)v2v2nn

Chúng ta có thể làm tốt hơn không? Cụ thể, một thuật toán thời gian không đổi có thành công với xác suất không đổi có thể xảy ra không?


Dường như với tôi biểu đồ này có quá ít cạnh có thuộc tính mà bạn muốn, nếu bạn đang sử dụng các thuật ngữ tiêu chuẩn, nó giống như một G(n,p) mẫu với p=(n/C(n,2))=O(n3/2)
kodlu

Cảm ơn, bạn nói đúng rằng tôi có nghĩa p=n1/2 (chỉnh sửa). Các biểu đồ này sẽ có C4 s bất cứ khi nào hai nút chia sẻ 2 lân cận, xảy ra với xác suất không đổi trên mỗi cặp nút.
GMB

Tôi đang sử dụng thuật ngữ ở đây ( en.wikipedia.org/wiki/Erd%C5%91s%E2%80%93R%C3%A9nyi_model ), trong đó mỗi cạnh được bao gồm độc lập với xác suất - vì vậy, cạnh trong kỳ vọng. pp(n2)
GMB

Câu trả lời:


6

Không, bạn không thể đánh bại các truy vấn . Tôi sẽ giải thích làm thế nào để chính thức hóa bản phác thảo bằng chứng của exfret về điều này, theo cách phù hợp với các thuật toán thích ứng. Đây là tất cả dự đoán trong câu trả lời của exfret; Tôi chỉ điền vào một số chi tiết.Θ(n)

Xem xét bất kỳ thuật toán (có thể thích ứng) nào tạo ra một chuỗi các truy vấn, trong đó mỗi truy vấn là "lấy cạnh thứ của danh sách kề của đỉnh " hoặc "kiểm tra xem các đỉnh có được nối với nhau không". Chúng ta có thể giả định rằng không có truy vấn nào được lặp lại, vì bất kỳ thuật toán nào lặp lại truy vấn đều có thể được chuyển đổi thành truy vấn không bao giờ lặp lại bất kỳ truy vấn nào. Tương tự như vậy, chúng ta có thể giả định rằng các thuật toán không bao giờ thực hiện một truy vấn kết nối trên bất kỳ cặp đỉnh mà đã được biết đến để được nối với nhau bằng một cạnh (cụ thể là, kiểm tra khi trước đây được trả về bởi một lấy truy vấn trên hoặc là trước đó được trả về bởi một truy vấn tìm nạp trênivv,wv,wwvvwhoặc trước đây chúng tôi đã thử nghiệm kết nối của ).w,v

Đặt biểu thị sự kiện rằng, trong các truy vấn đầu tiên , không có đỉnh được trả về bởi nhiều hơn một truy vấn tìm nạp và không có truy vấn tìm nạp nào trả về một đỉnh đã được truy vấn trước đó và không có truy vấn kiểm tra kết nối nào được trả về ". Chúng tôi sẽ chứng minh rằng nếu . Theo sau, không có thuật toán nào tạo ra các truy vấn có thể có xác suất tìm thấy 4 chu kỳ không đổi.EkkwPr[Eq]=1o(1)q=o(n)o(n)

Làm thế nào để chúng tôi chứng minh điều này? Hãy tính . Có hai trường hợp: hoặc truy vấn thứ là truy vấn tìm nạp hoặc đó là truy vấn kiểm tra kết nối:Pr[Ek|Ek1]k

  1. Nếu truy vấn thứ là truy vấn tìm nạp trên đỉnh , có đỉnh được đề cập trong số các truy vấn đầu tiên và nếu truy vấn thứ trả về một trong những truy vấn đó thì chúng ta sẽ có , nếu không chúng ta sẽ có . Bây giờ, phản hồi cho truy vấn thứ được phân phối đồng đều trên một tập hợp các đỉnh , trong đó chứa tất cả các đỉnh chưa được trả về bởi các truy vấn tìm nạp trước trên , do đó, phản hồi cho truy vấn thứ được phân phối đồng đều trên một tập hợp có kích thước tối thiểukv2(k1)k1k¬EkEkkSSvknk+12 ( k - 1 ) / ( n - k + 1 ) Pr [ E k | E k - 1 ] 1 - 2 ( k - 1 ). Xác suất trúng ít nhất một trong số này là , vì vậy trong trường hợp này, .2(k1)/(nk+1)Pr[Ek|Ek1]12(k1)/(nk+1)

  2. Nếu truy vấn thứ là truy vấn kiểm tra kết nối, thì .kPr[Ek|Ek1]11/n

Trong cả hai trường hợp, nếu chúng ta cóq=o(n)

Pr[Ek|Ek1]12(k1)(nk+1).

Hiện nay,

Pr[Eq]=k=1qPr[Ek|Eq1].

Nếu , thìkqn

Pr[Ek|Ek1]12qnq,

vì thế

Pr[Eq](12qnq)q.

Phía bên tay phải là khoảng . Khi , đây là .điểm kinh nghiệm{-2q2/(n-q)}q= =o(n)1-o(1)

Tóm lại: khi . Theo sau bạn cần để có xác suất liên tục tìm thấy bất kỳ chu kỳ nào (huống chi là 4 chu kỳ).Pr[Eq]= =1-o(1)q= =o(n)Ω(n)


"Nếu truy vấn thứ k là truy vấn kiểm tra kết nối, thì ." Tôi đang suy nghĩ ? (Ngay cả khi như vậy, kết luận vẫn đi qua tất nhiên.)1 - 1 / Pr[Ek|Ek-1]1-1/n1-1/n
usul

@usul, ôi, vâng, cảm ơn bạn! Đã sửa.
DW

5

Giả sử chúng ta chỉ có thể truy vấn cạnh thứ Tôi của danh sách kề của một đỉnh đã cho (mà tôi giả sử là không được sắp xếp) hoặc liệu hai đỉnh đã cho có liền kề nhau không. Trong trường hợp này cần n truy vấn để thậm chí tìm một chu kỳ. Điều này là do có khả năng1o(1)rằng tất cả các truy vấn của chúng tôi thuộc loại thứ nhất trả về các đỉnh khác nhau và tất cả các truy vấn của chúng tôi thuộc loại thứ hai trả về rằng hai đỉnh không được kết nối.

Xin hãy sửa tôi nếu tôi sai ở đâu đó hoặc hiểu sai vấn đề.


1
Bản phác thảo bằng chứng này nghe có vẻ như tôi chỉ hoạt động đối với các thuật toán không lưu trữ (tức là các truy vấn được cố định trước).
usul

@usul Tại sao lại như vậy? Khi chúng ta chỉ sử dụng một nhánh của cây quyết định.
exfret

Có lẽ tôi nên làm rõ. Cần phải rõ ràng rằng nếu chúng tôi nhận được câu trả lời cho các truy vấn của mình theo quy định thì chúng tôi không thể xuất 4 chu kỳ với xác suất không đổi. Tuy nhiên, đối với bất kỳ cây quyết định nào có độ sâu cócơ hội1-o(1)chúng tôi được gửi xuống một chi nhánh như vậy. o(n)1-o(1)
exfret

Cảm ơn! Tôi (hơi tùy tiện) chấp nhận phiên bản xác thịt khác nhưng có vẻ như bạn đã nhận được nó. Đánh giá cao sự đáp ứng.
GMB

1
@GMB Tôi nghĩ bạn đã đưa ra quyết định chính xác; một câu trả lời khác là chất lượng cao hơn nhiều và xứng đáng được người khác nhìn thấy trước tiên.
exfret
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.