Aquí hay una prueba de que este algoritmo se ejecuta en tiempo en expectativa y con alta probabilidad.O(nm)
Primero considere el algoritmo modificado para que sea elegido en lugar de aleatoriamente en .{ 2 , 3 , . . , Min ( c , n ) } { 1 , 2 , . . . , min ( c , n ) }k{2,3,..,min(c,n)}{1,2,...,min(c,n)}
Lema 1. Para este algoritmo modificado, independientemente de las elecciones aleatorias del algoritmo, el tiempo siempre es .O(nm)
Prueba. una entrada y y arregle las elecciones aleatorias del algoritmo arbitrariamente. En cada llamada (posiblemente recursiva) a la partición (), los dos argumentos corresponden respectivamente a dos submatrices: un subconjunto de y una submatriz
de . Identifique dicha llamada con el rectángulo
. Por lo tanto, la llamada de nivel superior es
, y cada llamada recursiva corresponde a un sub-rectángulo dentro de esteB [ 1 .. m ] A [ i 1 . . i 2 ] A B [ j 1 . . j 2 ]A[1..n]B[1..m]A[i1..i2]AB[j1..j2][ i 1 - 1 , i 2 ] × [ j 1 - 1 , j 2 ] [ 0 , n ] × [ 0 , m ] nB[i1−1,i2]×[j1−1,j2][0,n]×[0,m]k × k kn×mrectángulo. Estos rectángulos forman un árbol, donde el rectángulo correspondiente a una llamada tiene como hijos los rectángulos que corresponden a las llamadas realizadas directamente por esa llamada. Cada rectángulo principal está dividido por sus rectángulos secundarios, que forman una cuadrícula (de rectángulos no uniformes) con al menos 2. Por supuesto, las esquinas de cada rectángulo tienen solo coordenadas enteras.k×kk
El tiempo de ejecución del algoritmo está limitado por una constante por la suma, sobre los rectángulos, de los perímetros de todos estos rectángulos. (Esto se debe a que el tiempo dentro de cada llamada es O (n + m), y el perímetro del rectángulo correspondiente es .2(n+m)
Afirmo que en cualquier conjunto de rectángulos como se describió anteriormente, la suma de los perímetros es como máximo . Si es cierto, esto prueba el lema.12nm
Para probar la afirmación, observe primero que, debido a que , para cualquier rectángulo principal, el perímetro de los padres es como máximo 2/3 veces el perímetro total de los hijos. (El perímetro de los padres es . El perímetro total de los niños es y )2 ( n + m ) ( 1 + k ) ( n + m ) k > = 2k≥22(n+m)(1+k)(n+m)k>=2
Se sigue por un argumento de carga estándar que el perímetro total de todos los rectángulos es como máximo veces el perímetro de solo los rectángulos de hoja . (La observación implica que , donde es el perímetro total de los rectángulos sin hojas y es el perímetro total de todos los rectángulos. Esto implica , y es el perímetro total de los rectángulos de las hojas).P N ≤ ( 2 / 3 ) P T P N P T P T ≤ 3 ( P T - P N ) P T - P N(1+2/3+(2/3)2+…)=3PN≤(2/3)PTPNPTPT≤3(PT−PN)PT−PN
A continuación, observe que los rectángulos de hoja dividen el rectángulo . El perímetro máximo posible de las hojas se obtiene cuando las hojas corresponden a los cuadrados unitarios con puntos finales enteros, en cuyo caso el perímetro total de las hojas es . Por lo tanto, la suma de los perímetros es como máximo , es decir, como máximo .4n×m3 ⋅ 44nm12 n3⋅4nm12nm
Esto prueba Lemma 1.
Corolario: el algoritmo original se ejecuta en tiempo en expectativa.O(nm)
Prueba. Si la partición elige , simplemente duplica el rectángulo. Como , la probabilidad de que sea como máximo 1/2. Por lo tanto, el número esperado de veces que se duplica cada rectángulo es como máximo 1 (y el número esperado de copias de cada rectángulo es como máximo 2). Por lo tanto, para el algoritmo original, la suma esperada de los perimitros de todos los rectángulos es como máximo dos veces la del algoritmo modificado, es decir, como máximo . Al igual que en el análisis de ese algoritmo, el tiempo de ejecución es proporcional a esta suma, también lo es . QEDn > 1 k = 1 24 nk=1n>1k=1O ( n24nmO(nm)
Corolario. El límite también se mantiene con alta probabilidad (suponiendo que tanto como tienden al infinito).mnm
Bosquejo de prueba. Arreglando cada elección aleatoria, excepto el número de duplicados de cada rectángulo, el tiempo es proporcional a
donde es el conjunto de rectángulos generados, es el número de veces que se duplica (es decir, veces cuando para ese rectángulo), yes el perímetro de .RXrrk=1| r| r
∑r∈R(1+Xr)|r|
RXrrk=1|r|r
Las variables son independientes, y cadaes , por lo que, según un límite estándar de Chernoff, la probabilidad de que la suma exceda el doble de su expectativa es . (Más específicamente, tome , luego aplique Chernoff a la suma de los 's.) QED| r | O ( n + m ) = o ( n m ) o ( 1 ) Y r = ( 1 + X r ) | r | / 2 ( n + m ) Y r{Xr:r∈R}|r|O(n+m)=o(nm)o(1)Yr=(1+Xr)|r|/2(n+m)Yr
Como comentario aparte: si el algoritmo eligiera al azar hasta lugar de y luego haga trabajar en cada llamada (en lugar de ), el tiempo total seguiría siendo en expectativa.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)
Prueba. Primero tenga en cuenta que el tiempo total sería proporcional a la suma de las áreas de todos los rectángulos. Esta suma es igual a la suma, sobre las coordenadas enteras , del número de rectángulos en los que ocurre. Esto es en expectativa porque, en expectativa, cualquier dado en el rectángulo original ocurre en rectángulos. ( i , j ) O ( n m ) ( i , j ) O ( 1 )(i,j)(i,j)O(nm)(i,j)O(1)
Para ver esto, suponga que está contenido en un rectángulo , y considere la llamada a la partición en . Deje . Sea el rectángulo que es el hijo (que contiene ) de . Con una probabilidad de al menos , se elige para que sea al menos . Condicionado a eso, , entonces con probabilidad constante es como máximo 1. Si eso sucede, entonces es una hoja (no tiene hijos). De esto se deduce que el número esperado de rectángulos quer r q ( r(i,j)rrr ' ( i , j ) r 1 / 3 k ( 2 / 3 ) q ( r ) E [ qq(r)=min(nr,mr)r′(i,j)r1/3k(2/3)q(r)q ( r ' ) r ' (E[q(r′)]≤3/2q(r′)r′O ( 1 )(i,j)está en is . QEDO(1)
(Si el límite se mantendría con alta probabilidad es una pregunta interesante ... Creo que lo sería. Ciertamente, mantendría whp)O ( n m log ( n m ) )O(nm)O(nmlog(nm))