Le problème d'arrêt indique qu'il est impossible d'écrire un programme qui peut déterminer si un autre programme s'arrête, pour tous les programmes d'entrée possibles .
Je peux, cependant, certainement écrire un programme qui peut calculer le temps d'exécution d'un programme comme:
for(i=0; i<N; i++)
{ x = 1; }
et retourner une complexité temporelle de , sans jamais l'exécuter.
Pour tous les autres programmes d'entrée, il retournerait un indicateur indiquant qu'il n'a pas pu déterminer la complexité temporelle.
Ma question est la suivante:
Quelles conditions doivent être remplies pour que nous puissions déterminer algorithmiquement la complexité temporelle d'un programme donné?
* S'il existe une référence canonique ou un article de synthèse à ce sujet, j'apprécierais un lien vers celui-ci dans les commentaires.