Dans l'introduction et l'explication, les classes de complexité P et NP souvent données par la machine de Turing. L'un des modèles de calcul est le lambda-calcul. Je comprends que tous les modèles de calcul sont équivalents (et si nous pouvons introduire n'importe quoi en termes de machine de Turing, nous pouvons le présenter en termes de n'importe quel modèle de calcul), mais je n’ai jamais vu d’explication d’idée les classes de complexité P et NP à travers le lambda-calcul . Quelqu'un peut-il expliquer les notions de classes de complexité P et NP sans machine de Turing et uniquement avec le calcul lambda comme modèle de calcul?
36
Réponses:
Les machines de Turing etλ -calcul ne sont équivalentes que par les fonctions N→N qu'elles peuvent définir.
Du point de vue de la complexité informatique, ils semblent se comporter différemment. La raison principale pour laquelle les gens utilisent les machines de Turing et non pasλ calcul pour raisonner sur la complexité est que l'utilisation de λ calculus conduit naïvement à des mesures de complexité irréalistes, car vous pouvez copier des termes (de taille arbitraire) librement dans des étapes de β réduction, par exemple (λx.xxx)M→MMM. En d'autres termes, les étapes de réduction simples dans λ -calcul sont un modèle de coût moche. En revanche, les étapes simples de réduction de la machine de Turing fonctionnent très bien (en ce sens qu’elles sont de bons prédicteurs de l’exécution d’un programme dans le monde réel).
On ne sait pas comment récupérer complètement la théorie classique de la complexité basée sur la machine de Turing dans le calcul-λ . Lors d'une récente percée (2014), Accattoli et Dal Lago ont
réussi à montrer que de grandes classes de complexité temporelle telles que P , NP et EXP peuvent recevoir une formulation naturelle de λ calcul. Mais des classes plus petites comme O(n2) ou O(nlogn) ne peut pas être présenté en utilisant les techniques Accattoli / Dal Lago.
Comment récupérer la complexité de l'espace conventionnel à l'aide deλ -calculus est inconnu.
la source
Je colle une partie de la réponse que j'ai écrite pour une autre question :
Il existe des caractérisations de (au moins) au moyen de λ -calcul.FP λ
la source
Je ne sais pas si cela répond (en partie) à votre question, mais il existe effectivement des caractérisations alternatives des classes de complexité (en particulierP et NP ) en termes de logique (logique du 1er ordre, logique du 2ème ordre, etc.).
Par exemple, les travaux de R. Fagin (et al.) Dans ce domaine sont remarquables (et l’imo pourrait donner un aperçu du problèmeP vs NP et des relations avec complexité algorithmique ).
Certaines caractérisations supplémentaires des classes de complexité de calcul en termes de complexité algorithmique (Kolmogorov-Solomonov) peuvent être trouvées (par exemple) ici et ici .
la source