Alguns algoritmos complicados ( união-localização ) têm a função Ackermann inversa quase constante que aparece na complexidade do tempo assintótico e, na pior das hipóteses, o ideal é o pior caso se o termo Ackermann inverso quase constante for ignorado.
Existem exemplos de algoritmos conhecidos com tempos de execução que envolvem funções que crescem fundamentalmente mais lentas que Ackermann inversa (por exemplo, inversões de funções que não são equivalentes a Ackermann sob transformações polinomiais ou exponenciais etc.), que fornecem o pior caso conhecido? complexidade para resolver o problema subjacente?
Respostas:
(Obrigado a Tsvi Kopelowitz por esta referência.)
fonte
fonte
Quando Alan Turing descobriu o computador, havia vários modelos para o computador proposto. Turing provou que alguns (3) desses modelos poderiam simular-se E calcular a função de Ackermann, enquanto outros modelos poderiam simular-se, mas não a função de Ackermann (para que não pudessem simular o 3). Portanto, esses três modelos (Turing Machine, von Neumann e um que eu não conheço), foram escolhidos como a arquitetura para um computador. Isso não significa que a função Ackermann seja o limite do computador, mas suponho que seja uma ciência difícil. Não conheço nenhuma função computável que cresça mais rápido que a função Ackermann.
Agora, não acho que exista um problema prático que corresponda à sua pergunta, mas talvez possamos construir um. Porém, precisamos colocar restrições na entrada. Como não podemos usar O (n), não podemos verificar toda a entrada. De fato, não podemos nem mesmo verificar o comprimento da entrada, pois seria O (log n). Portanto, precisamos como primeiro parâmetro uma representação do comprimento do restante da entrada, por exemplo c, de modo que Ackermann (c) seja o comprimento da entrada. Como isso também não é adequado, exigimos como primeiro valor em nossa entrada o parâmetro c, de forma que bb (c) seja sobre o comprimento da entrada, onde bb é a função de castor ocupado. Essa função é incomputável, mas bb (c) certamente existe. Então, o algoritmo é assim:
O objetivo do algoritmo é verificar se, se c é o inverso de bb, se o comprimento da entrada é maior que bb (c).
Se existe uma função computável que cresce mais rapidamente que a função Ackermann, acho que podemos usá-la inversa para criar um algoritmo que responda à sua pergunta em qualquer entrada.
fonte