Nos anos 50, foram inventados vários métodos de minimização de circuitos para funções booleanas . Existe uma extensão desses métodos ou algo semelhante para otimizar a complexidade do tempo ou espaço dos algoritmos?
Por exemplo, uma implementação de classificação por bolhas como uma entrada para esse algoritmo produziria uma implementação de um algoritmo de classificação com complexidade de tempo mais próxima de.
Respostas:
Consulte o teorema da velocidade de Blum (sim, este artigo é menos informativo; consulte um livro sobre teoria da complexidade). Essencialmente, diz que existem programas para os quais existe um programa que executa o mesmo trabalho que é mais rápido por qualquer margem especificada para quase todos os dados de entrada.
Pelo teorema de Rice , é impossível saber se dois programas dados fazem o mesmo trabalho.
Sim, para algumas noções muito restritas de "programa", dado um exemplo, é possível construir o programa "melhor possível" para o trabalho. Classes importantes, até. Mas está muito longe de qualquer coisa capaz de expressar bolhas.
fonte