Làm thế nào để phân tích một thuật toán đệ quy ngẫu nhiên?


8

Xét thuật toán sau, trong đó là hằng số cố định.c

void partition(A[1..m], B[1..n])
{
   if m=1 or n=1
      return

   k = random(min(c,m,n));
   partition A into k sublists Asub[1..k] at k-1 distinct random indices
   partition B into k sublists Bsub[1..k] at k-1 distinct random indices

   for i = 1 to k
     for j = 1 to k
        partition(Asub[i], Bsub[j])

   Do something that takes O(n+m) time.
}

Thời gian chạy dự kiến ​​của thuật toán này là gì? Thời gian chạy dường như là , nhưng tôi không thể tìm thấy bằng chứng cho điều này.O(mn)

Thay vào đó, nếu chúng ta phân vùng danh sách đầu vào thành phần khác nhau có độ dài bằng nhau, chúng ta sẽ có sự lặp lại với trường hợp cơ sở ; không khó để chứng minh rằng . Tuy nhiên, thuật toán phân vùng đầu vào thành một ngẫu nhiên số bộ phận với ngẫu nhiên kích cỡ. (Như thường lệ, "ngẫu nhiên" là viết tắt của "thống nhất ngẫu nhiên".) Làm thế nào để người ta phân tích một thuật toán như vậy?kT(n,m)=k2T(n/k,m/k)+O(n+m)T(1,n)=T(m,1)=O(1)T(n,m)=O(mn)


Thuật toán của bạn được gọi là phân vùng thuộc loại danh sách -> danh sách -> void, nhưng đối với tôi, trong lần gọi cuối cùng của thuật toán, nó có loại -> -> void? Tôi có hiểu lầm gì không? aaaa
Gopi

8
Câu hỏi được viết kém, nhưng bên dưới nó có một câu hỏi thực sự về việc phân tích các đợt tái phát ngẫu nhiên.
Suresh Venkat

5
Chỉnh sửa chính. Hy vọng rằng tôi đã bảo tồn ý nghĩa của câu hỏi.
Jeffε

1
@ Jɛ ff E bây giờ bạn nên trả lời nó :)
Suresh Venkat

1
Bạn đã xem bài báo Chaudhuri-Dubhashi về các đợt tái phát có xác suất (điều này phát triển thêm công việc ban đầu của Karp về vấn đề này): scTHERirect.com/science/article/pii/S0304397596002617
Suresh Venkat

Câu trả lời:


9

Dưới đây là một bằng chứng cho thấy thuật toán này chạy trong thời gian trong kỳ vọng và với xác suất cao.O(nm)

k{ 1 , 2 , . . . , tối thiểu ( c , n ) }{2,3,..,min(c,n)}{1,2,...,min(c,n)}

Bổ đề 1. Đối với thuật toán được sửa đổi này, bất kể các lựa chọn ngẫu nhiên của thuật toán, thời gian luôn là .O(nm)

Bằng chứng. Sửa lỗi đầu vào và và sửa các lựa chọn ngẫu nhiên của thuật toán một cách tùy ý. Trong mỗi (có thể đệ quy) gọi để phân vùng (), hai đối số tương ứng lần lượt là hai subarrays: một mảng con của và một subarray của . Xác định cuộc gọi như vậy với hình chữ nhật . Do đó, cuộc gọi cấp cao nhất là và mỗi cuộc gọi đệ quy tương ứng với một hình chữ nhật phụ trongB [ i 1 - 1 , i 2 ] × [ j 1 - 1 , j 2 ] [ 0 , n ] × [ 0 , m ] n × m k × k kA[1..n]A [ i 1 . . i 2 ] A B [ j 1 . . j 2 ]B[1..m]A[i1..i2]AB[j1..j2]B[i11,i2]×[j11,j2][0,n]×[0,m]n×mhình chữ nhật. Các hình chữ nhật này tạo thành một cái cây, trong đó hình chữ nhật tương ứng với một cuộc gọi có hình chữ nhật tương ứng với các cuộc gọi được thực hiện trực tiếp bởi cuộc gọi đó. Mỗi hình chữ nhật cha được phân vùng bởi các hình chữ nhật con của nó, tạo thành một lưới (của hình chữ nhật không đồng nhất) với ít nhất 2. Tất nhiên mỗi góc của hình chữ nhật chỉ có tọa độ nguyên.k×kk

Thời gian chạy của thuật toán được giới hạn bởi một số lần không đổi tổng, trên các hình chữ nhật, chu vi của tất cả các hình chữ nhật này. (Điều này là do thời gian trong mỗi cuộc gọi là O (n + m) và giá trị của hình chữ nhật tương ứng là .)2(n+m)

Tôi khẳng định rằng trong bất kỳ tập hợp hình chữ nhật nào như được mô tả ở trên, tổng chu vi nhiều nhất là . Nếu đúng, điều này chứng tỏ bổ đề.12nm

Để chứng minh cho yêu cầu, trước tiên hãy quan sát rằng, vì , đối với bất kỳ hình chữ nhật cha mẹ nào, chu vi của cha mẹ nhiều nhất bằng 2/3 lần tổng chu vi của con cái. (Chu vi của cha mẹ là . Tổng chu vi của con cái là và )2 ( n + m ) ( 1 + k ) ( n + m ) k > = 2k22(n+m)(1+k)(n+m)k>=2

Tiếp theo là một đối số tính phí tiêu chuẩn rằng tổng số perimiter của tất cả các hình chữ nhật nhiều nhất là lần so với perimiter của chỉ các hình chữ nhật . (Quan sát ngụ ý rằng , trong đó là tổng chu vi của hình chữ nhật không có lá và là tổng chu vi của tất cả các hình chữ nhật. Điều này ngụ ý , và là tổng chu vi của hình chữ nhật lá.)P N( 2 / 3 ) P T P N P T P T3 ( P T - P N ) P T - P N(1+2/3+(2/3)2+)=3PN(2/3)PTPNPTPT3(PTPN)PTPN

Tiếp theo, quan sát rằng các hình chữ nhật lá phân vùng hình chữ nhật ban đầu . Chu vi tối đa có thể có của lá thu được khi lá tương ứng với bình phương đơn vị có điểm cuối nguyên, trong trường hợp đó tổng chu vi của lá là . Do đó, tổng các chu vi nhiều nhất là , nghĩa là nhiều nhất là .4n×m3 44nm12 n34nm12nm

Điều này chứng minh bổ đề 1.

Hệ quả: Thuật toán ban đầu chạy trong thời gian trong kỳ vọng.O(nm)

Bằng chứng. Nếu phân vùng chọn , nó chỉ nhân đôi hình chữ nhật. Vì , xác suất nhiều nhất là 1/2. Do đó, số lần dự kiến ​​mỗi hình chữ nhật được nhân đôi nhiều nhất là 1 (và số lượng bản sao dự kiến ​​của mỗi hình chữ nhật nhiều nhất là 2). Do đó, đối với thuật toán ban đầu, tổng số dự kiến ​​của các perimiter của tất cả các hình chữ nhật nhiều nhất gấp đôi so với thuật toán đã sửa đổi, tức là nhiều nhất là . Giống như trong phân tích của thuật toán đó, thời gian chạy tỷ lệ thuận với tổng này, . QEDn > 1 k = 1 24 nk=1n>1k=1O ( n24nmO(nm)

Hệ quả. Các ràng buộc cũng giữ với xác suất cao (giả sử cả và có xu hướng vô cùng).mnm

Bằng chứng phác thảo. Sửa mọi lựa chọn ngẫu nhiên ngoại trừ số lượng trùng lặp của mỗi hình chữ nhật, thời gian tỷ lệ thuận với Trong đó là tập hợp các hình chữ nhật được tạo, là số lần được nhân đôi (tức là lần cho hình chữ nhật đó) vàlà chu vi của .RXrrk=1| r| r

rR(1+Xr)|r|
RXrrk=1|r|r

Các biến là độc lập và mỗilà , do đó, theo giới hạn của tiêu chuẩn Chernoff, xác suất mà tổng vượt quá hai lần kỳ vọng của nó là . (Cụ thể hơn, lấy , sau đó áp dụng Chernoff cho tổng của 's.) QED| r | O ( n + m ) = o ( n m ) o ( 1 ) Y r = ( 1 + X r ) | r | / 2 ( n + m ) Y r{Xr:rR}|r|O(n+m)=o(nm)o(1)Yr=(1+Xr)|r|/2(n+m)Yr


Tạm biệt: nếu thuật toán chọn ngẫu nhiên tối đa thay vì và sau đó thực hiện trong mỗi cuộc gọi (thay vì ), tổng thời gian vẫn sẽ là trong kỳ vọng.min ( n , m ) min ( c , n ) O ( m n ) O ( m + n ) O ( m n )kmin(n,m)min(c,n)O(mn)O(m+n)O(mn)

Bằng chứng. Đầu tiên lưu ý rằng tổng thời gian sẽ tỷ lệ thuận với tổng diện tích của tất cả các hình chữ nhật. Tổng này bằng tổng, trên tọa độ nguyên , của số lượng hình chữ nhật mà xảy ra. Đây là trong kỳ vọng bởi vì, trong kỳ vọng, bất kỳ trong hình chữ nhật ban đầu xảy ra trong hình chữ nhật . ( i , j ) O ( n m ) ( i , j ) O ( 1 )(i,j)(i,j)O(nm)(i,j)O(1)

Để thấy điều này, giả sử được chứa trong một hình chữ nhật và xem xét lệnh gọi phân vùng trên . Đặt . Đặt là hình chữ nhật là con (chứa ) của . Với xác suất ít nhất là , được chọn là ít nhất . Dựa vào điều đó, , do đó với xác suất không đổi nhiều nhất là 1. Nếu điều đó xảy ra, thì là một chiếc lá (không có con). Từ đó có số lượng hình chữ nhật dự kiếnr r q ( r ) = min ( n r , m r ) r ' ( i , j ) r 1 / 3 k ( 2 / 3 ) q ( r ) E [ q ( r ' ) ] 3 / 2 q ( r ' ) r ' ((i,j)rrq(r)=min(nr,mr)r(i,j)r1/3k(2/3)q(r)E[q(r)]3/2q(r)rO ( 1 )(i,j)là trong . QEDO(1)

(Liệu giới hạn có giữ được xác suất cao hay không là một câu hỏi thú vị .. Tôi nghĩ rằng nó sẽ. Chắc chắn sẽ giữ whp)O ( n m log ( n m ) )O(nm)O(nmlog(nm))


Cảm ơn bạn rất nhiều, đây là ý tưởng thực sự thú vị và thông minh. Chỉ cần một lưu ý phụ, chúng tôi có thể sử dụng ý tưởng của bạn để phân vùng mảng d-chiều. Chỉ là về phần bạn nói rằng trẻ em đang tạo lưới , thực ra chúng chia cha mẹ thành phần hình chữ nhật, không cần các phần có cùng kích thước, vì vậy chúng sẽ không tạo lưới, nhưng vẫn còn đối số của bạn. chu vi của cha mẹ trên tổng số trẻ em. Ngoài ra tôi không thể hiểu làm thế nào nếu chúng ta thay thế bằng như chi phí thêm của mỗi lần chạy, chúng ta vẫn có tổng thời gian chạy . Một lần nữa cảm ơn bạn rất nhiều vì ý tưởng rất thông minh. K 2 2 / 3 O ( m + n ) O ( m n ) O ( m n )K×KK22/3O(m+n)O(mn)O(mn)
Saeed

Không có gì! Tôi sẽ chỉnh sửa bằng chứng để làm rõ những điểm bạn nêu lên ..
Neal Young

Làm rõ tốt đẹp và câu hỏi tốt cuối cùng, cảm ơn rất nhiều.
Saeed

4

Cách tiếp cận điển hình là phân tích giá trị dự kiến ​​của thời gian chạy của thuật toán. Trong trường hợp này, giá trị dự kiến ​​của thời gian chạy, trên bất kỳ vấn đề nào với , giống như lần thời gian chạy dự kiến ​​của phân vùng biểu tượng con [ ]. Với mỗi kích thước của biểu đồ con là một biến ngẫu nhiên.k 2 A i , B j i , jm,nk2Ai,Bji,j

Chiều dài của danh sách là sự khác biệt giữa các th và thứ thống kê theo thứ tự khi yếu tố này được rút ra từ UAR . Đây thực chất là (tức là lần rút từ một biến ngẫu nhiên ). Do đó chúng ta có i i + 1 k { 1 , . . . , M } m β ( k , m + k + 1 ) m β ( 1 , m + k + 1 )Aiii+1k{1,...,m}mβ(k,m+k+1)mβ(1,m+k+1)

T[m,n|k]=C(m+n)+k2x,yT(mx,ny)xk1yk1(1x)m+k1(1y)n+k1β(k,n+k+1)β(k,m+k+1)dxdy

Có một số lỗi làm tròn ở đây, vì chúng ta thực sự nên có trong integrand.T(mx,ny)

Thật không may là một biến ngẫu nhiên nên người ta cũng phải tích hợp trên nó. Tôi không nghĩ có bất kỳ điểm nào để yêu cầu , vì nếu bạn sẽ đơn giản phân vùng dữ liệu thành một danh sách phụ có thể trống. Vì vậy, nói được chọn thống nhất ngẫu nhiên từ . Sau đó, bạn có đượck n k n k 1 , Mạnh , ckknknk1,,c

T[m,n]=C(m+n)+k=1ck2cx,yT(mx,ny)xk1yk1(1x)m+k1(1y)n+k1β(k,n+k+1)β(k,m+k+1)dxdy

Sự tái diễn này khá kinh khủng, nhưng nếu bạn đoán được ràng buộc về (tôi cho rằng ) bạn có thể cắm nó vào và xác minh nó.T ( m , n ) = O ( ( log m + log n ) ( m + n ) )T[m,n]T(m,n)=O((logm+logn)(m+n))

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.