¿Cómo se termina con un exponente no entero en la complejidad del tiempo? (por ejemplo, )

8

Periódicamente me encuentro con oraciones como

"Se considera la variante de Winograd [20] de este algoritmo, cuya complejidad asintótica también es " (de https://www.cise.ufl.edu/~sahni/papers/strassen.pdf )O(norte2,81)

Entiendo intuitivamente cómo terminamos con complejidades como y porque puedo ver cómo funcionan los bucles y los árboles. Pero no tengo idea de cómo uno termina derivando una complejidad con un decimal. ¿Alguien puede darme un ejemplo de cómo sucede esto?O(norte2)O(norteIniciar sesiónnorte)

Joe
fuente

Respuestas:

9

La complejidad del tiempo de ejecución del algoritmo de Strassen viene dada por la recurrencia (Con un caso base adecuado). La solución de esta recurrencia es .

T(norte)=7 7T(norte/ /2)+O(norte2).
T(norte)=O(norteIniciar sesión27 7)

El algoritmo de Strassen multiplica dos matrices descomponiéndolas en cuatro matrices cada una, calculando siete combinaciones lineales de las matrices más pequeñas cada una, digamos , calculando recursivamente , y calculando las cuatro matrices del resultado tomando combinaciones lineales de las matrices . Así es como llegó este tiempo de ejecución. Si desea obtener más información, hay mucha información sobre el algoritmo de Strassen. Hay, por cierto, algoritmos asintóticamente más rápidos para la multiplicación de matrices, siendo el actual campeón Le Gall .norte×norteUNA,si(norte/ /2)×(norte/ /2)(UNAyo,siyo)yo=1,...,7 7Cyo=UNAyosiyo(norte/ /2)×(norte/ /2)Cyo

Yuval Filmus
fuente
Creo que estoy buscando la respuesta: 'obtienes un decimal, en este caso, al resolver esta relación de recurrencia'. - Realmente estoy tratando de hacer una pregunta un poco más general sobre las circunstancias en las que esto sucede. ¿Es una relación de recurrencia la única forma posible de obtener un exponente no entero?
Joe
1
Hay otras formas Por ejemplo, en los algoritmos de flujo de red, algunos algoritmos iterativos pueden converger en pasos de . Otros ejemplos son los polinomios de Chebyshev, que se comportan "como" polinomios de grado pero tienen grado . Podría haber más ejemplos y, en cualquier caso, no hay razón para que ninguna lista sea exhaustiva: siempre surgen nuevas ideas. norterere
Yuval Filmus