En la década de 1950 se inventaron varios métodos para la minimización de circuitos para funciones booleanas . ¿Existe una extensión de esos métodos o algo similar para optimizar el tiempo o la complejidad espacial de los algoritmos?
Por ejemplo, una implementación de clasificación de burbujas como entrada para dicho algoritmo produciría una implementación de un algoritmo de clasificación con una complejidad de tiempo más cercana a.
Respuestas:
Consulte el teorema de aceleración de Blum (sí, este artículo es poco informativo; consulte un libro sobre teoría de la complejidad). Básicamente dice que hay programas para los que hay un programa que hace el mismo trabajo que es más rápido por cualquier margen especificado para casi todos los datos de entrada.
Según el teorema de Rice , es imposible saber si dos programas dados hacen el mismo trabajo.
Sí, para algunas nociones muy restringidas de "programa", dado un ejemplo, se puede construir el "mejor programa posible" para el trabajo. Clases importantes, incluso. Pero muy lejos de cualquier cosa que sea capaz de expresar bubbleort.
fuente