Le défaut de votre argument est que "dépasser" ne signifie pas seulement que vous devriez être capable d'exécuter tous les algorithmes, il inclut une notion de complexité, c'est-à-dire combien de pas de temps vous devrez prendre pour simuler un algorithme.
Comment simuler un algorithme avec une machine de Turing? Une machine de Turing se compose d'une machine à états finis et d'une bande infinie. Une machine de Turing exécute un algorithme, déterminé par son état initial et la matrice de transition d'état, mais je pense que vous parlez de machines de Turing universelles (UTM) qui peuvent lire le "code" (qui est généralement la description d'une autre machine de Turing). ) écrit sur un "segment de code" de la bande, puis simuler cette machine sur des données d'entrée écrites sur le "segment de données" de la bande.
Les machines Turing peuvent différer dans le nombre d'états dans leurs machines à états finis (et aussi dans l'alphabet qu'elles écrivent sur la bande, mais tout alphabet fini est facilement encodé en binaire, donc cela ne devrait pas être la principale raison des différences entre les machines Turing). Ainsi, vous pouvez avoir des UTM avec des machines d'état plus grandes et des UTM avec des machines d'état plus petites. Le plus grand UTM pourrait surpasser le plus petit s'il utilise le même codage pour la partie "code" de la bande.
Vous pouvez également jouer avec le code utilisé pour décrire la MT en cours de simulation. Ce code pourrait être C ++, par exemple, ou pourrait être un réseau neuronal avec la force de synapse écrite comme une matrice. La description qui convient le mieux au calcul dépend du problème.
Un exemple de comparaison entre les UTM avec différentes machines à états: considérez différents compilateurs pour le même langage, par exemple C ++. Les deux compileront d'abord C ++ en assembleur, puis exécuteront une autre UTM qui lit et exécute l'assemblage (votre CPU physique). Ainsi, un meilleur compilateur exécutera le même code plus rapidement.
De retour aux humains contre les ordinateurs, les humains sont des réseaux de neurones qui exécutent des algorithmes comme ceux que vous écririez en C ++. Cela implique une conversion coûteuse et inefficace de l'algorithme en mouvements de main. Un ordinateur utilise un compilateur pour convertir C ++ en assembleur qu'il peut exécuter en mode natif, il peut donc effectuer une implémentation beaucoup plus efficace du code C ++. Alternativement, les humains ont une tonne de neurones, et le code neuronal, c'est-à-dire la force des synapses, est difficile à lire, donc les ordinateurs actuels ne peuvent pas encore exécuter ce code.