Pour autant que je sache, les principaux modèles de calculabilité sont le λ-calcul, les machines de Turing et les fonctions récursives . Je ne connais pas la situation concernant la complexité des fonctions récursives, elles peuvent ou non être inutiles pour la complexité.
Il peut être considéré comme une heureuse coïncidence que les machines de Turing, qui ne sont pas si probablement des machines très inefficaces, soient également un très bon modèle de complexité. Ce qui a rendu les choses naturelles, c'est qu'il y a beaucoup de transformations impliquant des MT qui sont polynomiales. (Machine universelle, simulation d'une machine à bandes avec une machine à 1 bande, d'un alphabet arbitraire à un binaire, simulant une PRAM , ...) et que les polynômes sont une classe de fonctions stables par les opérations arithmétiques et la composition - ce qui en fait un bon candidat pour la théorie de la complexité.n
Le λ-calcul pur était en soi inutile pour la complexité. Cependant, un système de type simple est entré en jeu et a permis de garantir la terminaison de certains termes λ de manière très simple. Puis d'autres systèmes (systèmes T , F , ..) ont permis une grande expressivité tout en gardant la terminaison.
L'efficacité ou la complexité étant un raffinement de terminaison et les types étant étroitement liés à la logique, sont venues plus tard des logiques linéaires légères qui caractérisent plusieurs classes de complexité. ( Élémentaire , P, et quelques variantes pour PSPACE et autres). La recherche dans ce domaine est très active et ne se limite pas à ces classes de complexité, ni même au λ-calcul.
tl; dr: λ-calcul était utile pour la calculabilité, la terminaison et la théorie de la complexité.
Cependant, donner du crédit là où le crédit est dû Les machines de Turing sont un bon moyen à l'unanimité de définir ce qu'est la complexité, mais cela n'est vrai que pour les limites lâches comme le "polynôme", pas pour les limites strictes pour lesquelles les modèles de type PRAM conviennent mieux.
En termes de complexité temporelle, je pense que ce dur sur le calcul lambda. La raison en est que l'étape de calcul unitaire dans le calcul lambda est -reduction ( entrée wikipedia ): Toutes les expressions, quelle que soit de leur longueur, prendrait pas de temps de calcul sous ce modèle.β
la source
À propos de l'inclusion du λ-calcul dans le modèle de complexité standard, voici le résumé de quelques (très) nouvelles recherches sur le sujet. Il donne une réponse à cette question pour une forme restreinte de réduction β. Fondamentalement, la complexité dans le modèle de coût standard est similaire au comptage des étapes de réduction β lorsqu'il est limité à la réduction de la tête (qui comprend les stratégies appel par nom et appel par valeur).
Sur l'invariance du modèle de coût unitaire pour la réduction de la tête de Beniamino Accattoli et Ugo Dal Lago. (WST2012, lien vers la procédure )
la source