Na introdução e explicação das classes de complexidade P e NP, muitas vezes dadas pela máquina de Turing. Um dos modelos de computação é o cálculo lambda. Entendo que todos os modelos de computação são equivalentes (e se podemos introduzir algo em termos de máquina de Turing, podemos introduzi-lo em termos de qualquer modelo de computação), mas nunca vi a ideia explicativa das classes de complexidade P e NP através do cálculo lambda . Alguém pode explicar as noções de complexidade P e NP sem a máquina de Turing e apenas com o cálculo lambda como modelo de computação.
36
Respostas:
Máquinas de Turing eλ cálculo são equivalentes apenas nas funções N→N que podem definir.
Do ponto de vista da complexidade computacional, eles parecem se comportar de maneira diferente. A principal razão pela qual as pessoas usam máquinas de Turing e não oλ calcculus para raciocinar sobre a complexidade é que o uso do λ calcculus leva a medidas de complexidade irrealistas, porque você pode copiar termos (de tamanho arbitrário) livremente em etapas de redução β , por exemplo (λx.xxx)M→MMM. Em outras palavras, etapas de redução única em λ -calculus são um péssimo modelo de custo. Por outro lado, as etapas de redução de uma máquina de Turing funcionam muito bem (no sentido de serem bons preditores do tempo de execução do programa no mundo real).
Não se sabe como recuperar completamente a teoria da complexidade convencional baseada em máquina de Turing noλ cálculo. Em uma recente descoberta (2014), Accattoli e Dal Lago
conseguiram mostrar que grandes classes de complexidade de tempo, como P , NP e EXP podem receber uma formulação natural de cálcio- λ . Mas classes menores como O(n2) ou O(nlogn) não pode ser apresentado usando as técnicas Accattoli / Dal Lago.
Como recuperar a complexidade do espaço convencional usando oλ calcculus é desconhecido.
fonte
Eu colo parte de uma resposta que escrevi para outra pergunta :
Existem caracterizações de (pelo menos) por meio de λ -calculus.FP λ
fonte
Não sei se isso responde (parte da) sua pergunta, mas existem de fato caracterizações alternativas das classes de complexidade (especialmenteP e NP ) em termos de lógicas (lógica de 1ª ordem, lógica de 2ª ordem, etc.).
Por exemplo, o trabalho de R. Fagin (et al.) Nessa área é notável (e imo pode fornecer informações relacionadas ao problemaP vs NP e às relações com complexidade descritiva e algorítmica )
Algumas caracterizações adicionais das classes de complexidade computacional em termos de complexidade algorítmica (Kolmogorov-Solomonov) podem ser encontradas (por exemplo) aqui e aqui .
fonte