La question posée est de savoir si la question suivante est décidable:
Problème Étant donné un entier et que la machine de Turing trouverait dans P, le temps d’exécution de par rapport à la longueur en entrée ?M M O ( n k ) n
Une réponse étroite de «oui», «non» ou «ouverte» est acceptable (avec références, esquisse de preuve ou revue des connaissances actuelles), mais des réponses plus larges sont également les bienvenues.
Répondre
Emanuele Viola a publié une preuve que la question est indécidable (voir ci-dessous).
Contexte
Pour moi, cette question s'est posée naturellement en analysant la réponse de Luca Tevisan à la question. Les temps d'exécution pour P nécessitent-ils des ressources EXP au maximum ? … Est-ce que des exemples concrets sont connus?
La question concerne également une question de MathOverflow: Quels sont les problèmes les plus attrayants de Turing en mathématiques? , dans une variante dans laquelle le mot "mathématiques" est remplacé par "ingénierie", reconnaissant que l'estimation de l'exécution est un problème d'ingénierie omniprésent associé à (par exemple) la théorie de commande et la conception de circuits.
Ainsi, l’objectif général de cette question est de mieux comprendre quels sont les aspects pratiques de l’estimation à la volée de la classe de complexité P qui sont réalisables (c’est-à-dire qui nécessitent des ressources de calcul dans P pour estimer), par opposition à ceux qui sont irréalisables (c.-à-d. nécessite des ressources de calcul en EXP pour estimer), par opposition à formellement indécidable.
--- modifier (post-réponse) ---
J'ai ajouté le théorème de Viola au wiki de communauté de MathOverflow "Des problèmes attrayants de Turing-indécidables". C'est la première contribution de ce wiki associée à la classe de complexité P; cela témoigne de la nouveauté, de la naturalité et de la vaste portée du théorème de Viola (et de sa beauté aussi).
--- modifier (post-réponse) ---
La monographie de Juris Hartmanis Les calculs réalisables et les propriétés de complexité prouvables (1978) couvrent une grande partie du même matériau que la preuve d'Emanuele Viola.
la source
Réponses:
Le problème est indécidable. Plus précisément, vous pouvez réduire le problème d’arrêt comme suit. Soit une instance du problème d’arrêt, construisons une nouvelle machine qui fonctionne comme suit: sur des entrées de longueur , elle simule sur pour étapes. Si accepte, bouclez pendant étapes et arrêtez; sinon, bouclez pendant étapes et arrêtez-vous.M ' n M x n M n 2 n 3( M, x ) M′ n M X n M n2 n3
Si s'arrête sur il le fait en étapes , de sorte que le temps d'exécution de est à . Si ne s’arrête jamais, le temps d’exécution de est d’au moins .x t = O ( 1 ) M ' O ( n 2 ) M M ' n 3M X t = O ( 1 ) M′ O ( n2) M M′ n3
Par conséquent, vous pouvez décider si accepte en décidant si le temps d'exécution de est ou .x M ' O ( n 2 ) O ( n 3 )M x M′ O(n2) O(n3)
la source
Il s'agit d'une reformulation de la réponse d'Emanuele Viola dans le but d'être plus compréhensible.
Nous montrons que le problème donné est indécidable en réduisant le problème de l' arrêt général lui.HP H
Soit un cas quelconque du problème d’arrêt, c’est-à-dire qu’il faut décider si ( s’arrête sur ). Construisez une machine de Turing qui fonctionne comme suit:M ( x ) ↓ M x M *(M,x) M(x)↓ M x M∗
Nous observons maintenant les implications suivantes:
et
Par conséquent, . En supposant que était décidable par algorithme, il en serait de même pour , ce qui donne une contradiction. P H ◻H(M,x)⇔P(M∗,2) P H □
la source
Du côté positif, il est décidable de savoir si une machine Turing à bande unique fonctionne dans le temps pour , voir:n↦C⋅n+D C,D∈N
la source
Le problème a également été résolu dans mon article " Le contenu intensif du théorème de Rice " POPL'2008, où je prouve qu'aucune "clique de la complexité" n'est décidable. Une clique de la complexité est une classe de programmes fermés par des programmes ayant un comportement et une complexité similaires . Je fournit également les conditions nécessaires pour les propriétés semi-décidables.
Les programmes en cours d'exécution dans O (n ^ k) sont une clique de complexité dans le sens ci-dessus, donc l'ensemble n'est pas décidable.
Le résultat a également été récemment étendu aux paramètres subrécursifs (tels que P) de Mathieu Hoyrup: Les propriétés décidables des fonctions subrécursives (ICALP 2016).
la source
Pour ajouter aux réponses précédentes, ce problème est non seulement indécidable, mais complet. Ainsi, il est indécidable même si le décideur a un oracle pour résoudre le problème.Σ02
Pour clarifier l'exhaustivité, bien que la condition de promesse de temps P soit également , il existe un ensemble de codes décidables tels que toutes les machines de soient des polynômes et que la question soit compléter le .Σ02 S S O(n2) Σ02 S
Pour le prouver, choisir un complète , avec temps polynomial (pour les nombres binaires).Σ02 φ φ(x)⇔∃k∀mψ(x,k,m) ψ
Alors est valable si la machine suivante est où est la longueur entrée (la machine ne se préoccupe que de la longueur entrée):φ(x) O(n2) n
pour dans 0 à : si : # testé à l'aide d'une boucle d' arrêt, attendez étapes d' arrêtn ∀ m < nk n ∀m<nψ(x,k,m)
n2
n 2
Notez que pour chaque pas trop petit , si un programme s'arrête toujours (par exemple), étapes est complet, mais poser des questions sur les limites de manière robuste donne .≤ n 2 + c Π 0 1 Σ 0 2c ≤n2+c Π01 Σ02
la source
voici de nouvelles analyses / angles / résultats plus systématiques récents sur cette question et les questions connexes, introduisant le concept de "vérifiabilité algorithmique" et un analogue de Rice similaire à la théorie de la complexité. une section pertinente de l’abrégé est donnée ci-après et il existe de nombreux autres théorèmes liés à la prouvabilité de P vs NP, etc.
Pourquoi le concept de complexité informatique est difficile en mathématiques vérifiables / Hromkovic
la source
La solution de Viola peut être généralisée à n’importe quel temps de fonctionnement (au-delà de poly): Vous pouvez y réduire le problème d’arrêt de la manière suivante. Soit une instance (M, x) du problème d’arrêt, construisons une nouvelle machine M ’qui fonctionne comme suit: sur des entrées de longueur n, elle simule M sur x pour f (n) étapes ou jusqu’à ce que M s’arrête, où f (n ) est une fonction croissante arbitraire (supérieure à constante) de n. (Obs .: M 'lit l'entrée progressivement pour éviter de perdre du temps linéaire [O (n)] juste pour lire inutilement toute l'entrée si elle est assez grande et que M s'arrête.)
Si M s’arrête sur x, il le fait par pas de T = O (1), de sorte que le temps d’exécution de M ′ serait de 0 (1). Si M ne s’arrête jamais, le temps d’exécution de M ′ est O (n ^ 2 * f (n)).
Par conséquent, vous pouvez décider si M accepte x en décidant si le temps d’exécution de M ’est O (1) ou O (n ^ 2 * f (n)).
Ensuite, le code auxiliaire de Raphaël peut être généralisé en conséquence par:
Soit (M, x) une instance du problème d’arrêt, c’est-à-dire qu’il faut décider si M s’arrête sur x. Construisez une machine de Turing déterministe (DTM) M * qui fonctionne comme suit:
Nous observons maintenant les implications suivantes:
M s'arrête sur x après au plus k étapes (constantes) => T (M *) = O (1) et
M ne s’arrête jamais sur x => T (M *) = O (n ^ 2 * f (n))
Par conséquent, même décider si le temps d'exécution d'un DTM arbitraire est simplement plus grand que constant est aussi difficile que Halting Problem. □
la source