[La complexité informatique et la théorie des catégories] semblent être de telles paires naturelles.
Compte tenu de l'importance de la complexité informatique en tant que domaine de recherche, s'il s'agissait de compagnons naturels, peut-être que quelqu'un aurait déjà fait ressortir le lien?
Spéculation sauvage.
Permettez-moi de divertir le lecteur avec des réflexions sur les raisons pour lesquelles un rendu catégorique de la complexité de calcul est difficile. On peut soutenir que le groupe de concepts clés dans la théorie des catégories se concentre sur les constructions / propriétés universelles (avec l'appareil de foncteurs associé, les transformations naturelles, les adjonctions, etc.). Si nous pouvons montrer qu'une construction mathématique a une propriété universelle, cela donne beaucoup de perspicacité. Donc, si nous voulions une approche catégorielle de la complexité de calcul, nous aurions besoin de trouver une catégorie pratique et de montrer comment les concepts clés de la théorie de la complexité (par exemple LOGSPACE ou NP-hardness) peuvent être donnés par des constructions universelles utilisant cette catégorie. Cela n'a pas encore été fait, et je pense que c'est parce que c'est un problème vraiment difficile.
Je soupçonne que la raison de cette difficulté est que l'objet clé de la théorie de la complexité, la machine de Turing, n'est pas bien compris algébriquement. Le problème avec les MT est qu'elles ne sont pas naturellement équipées d'une belle algèbre qui permet de construire des programmes de manière compositionnelle. J'entends par là que nous ne programmons généralement pas de MT en disant que notre programme cible est le TM T qui est composé par exemple de où les sont des TM plus petites et sont opérateurs algébriques sur les MT: nous n'avons tout simplement pas d'opérations algébriques (naturelles) sur les MT qui nous permettent de construire des MT par étapes de manière perspicace 1T i ⊕ , ⊗T= T1⊕ T2⊗ T3Tje⊕ , ⊗. Au lieu de cela, nous construisons des MT en spécifiant leurs deux composants séparément: le contrôle (un FSM) et la bande. Ni le contrôle ni la bande n'ont eux-mêmes de bonnes algèbres.
Regardons d'abord les bandes. Il existe deux façons naturelles de composer des bandes, dont aucune ne semble fonctionner pour une description de la composition des MT.
Collez-les ensemble comme addition ordinale.
Ce n'est pas la bonne idée, parce que les bandes sont infinies et en les collant comme une addition ordinale, nous obtenons un double objet infini qui va au-delà de la calculabilité finie, conduisant à un calcul / hyper-calcul infini, qui sont intéressants en tant que mathématiques mais ne correspondent pas à calcul possible.
Collez-les en parallèle , par exemple deux machines à 3 têtes se transforment en une machine à 6 têtes. Cela ne nous dit pas comment les machines composants interagissent entre elles.
Bandes entrelacées. Un problème avec cette approche est qu'il n'est pas clair ce que l'entrelacement canonique pourrait être, le cas échéant. De plus, l'entrelacement «confondra» le contrôle existant, qui a tendance à être finement réglé vers une disposition de bande spécifique. Nous ne pouvons donc pas réutiliser le contrôle directement.
Avec les FSM, la situation est un peu meilleure, car nous avons des théories algébriques significatives sur le plan du calcul de la construction d'automates, dont les plus connues pourraient être des algèbres de processus comme CSP, CCS, -calculus, ACP, etc. Mais aucun d'eux n'est un calcul des mouvements de la tête de bande, ce dont nous aurions besoin si nous voulions composer des MT.π
Dans l'ensemble, nous sommes assez loin d'un traitement algébrique / catégorique substantiel de la complexité informatique, et nous aurions besoin de plusieurs avancées conceptuelles pour y arriver.
1 Notez que ceci est assez différent des autres formalismes de calcul comme
-calculus et -calculus, qui sont des calculs algébriques. Parce qu'ils sont algébriques, il a été facile de développer des théories de type pour -calculus et -calculus comme moyen de contraindre les programmes. Cependant, ces calculs ont des opérations puissantes comme la génération de nouveaux noms, l'extrusion de portée, conversion et la copie illimitée de termes, ce qui les rend a priori inadaptés comme formalismes de base pour la théorie de la complexité. En effet, on peut facilement montrer par exemple P = NP si on ne fait pas attention. Ce n'est qu'en 2014 qu'Accattoli et Dal Lago ont montré (dans: Beta Reduction is Invariant, Indeed ) queπ λ π α λ πλπλπαλ -calculus peut être utilisé pour définir la complexité temporelle si l'on fait attention. Aucun résultat correspondant n'est connu pour la complexité de l'espace ou pour -calculus.π