Une machine probabiliste de Turing peut-elle résoudre le problème d'arrêt?

29

Un ordinateur doté d'un flux infini de bits vraiment aléatoires est plus puissant qu'un ordinateur sans un. La question est: est-elle suffisamment puissante pour résoudre le problème de l'arrêt?

Autrement dit, un ordinateur probabiliste peut-il déterminer si un programme déterministe s'arrête ou non ?

Exemple d'un ordinateur probabiliste faisant quelque chose de déterministe ne peut pas: Considérez un petit programme (moins d'un kilo-octet de longueur) qui produit une chaîne avec une complexité de Kolmogorov supérieure à un gigaoctet. La complexité de Kolmogorovd'une chaîne est la longueur du programme déterministe le plus court produisant cette chaîne. Ainsi, par définition, un programme déterministe ne peut pas produire une chaîne dont la complexité est supérieure à sa propre longueur. Cependant, si on lui donne un flux infini de bits vraiment aléatoires, un petit programme est capable de réaliser la tâche avec 99,99999 ...% de succès en faisant simplement écho, disons, 10 milliards de bits aléatoires et en espérant que la complexité de Kolmogorov de ces bits est suffisamment élevée . Par conséquent, la production d'une chaîne de complexité Kolmogorov supérieure est dans l'horizon de possibilité du programme probabiliste, mais pas du tout possible pour le programme déterministe.

Cela dit, je me demande s'il est possible d'utiliser des bits vraiment aléatoires pour scier le problème d'arrêt. Par exemple, un algorithme peut générer aléatoirement des théorèmes et les prouver / réfuter / rejeter jusqu'à ce qu'il en sache assez pour prouver / réfuter qu'un programme déterministe donné s'arrête.

Joey Adams
la source
3
@downvoter: Cela n'aurait pas dû recevoir un vote négatif sans commentaire.
Dave Clarke
3
Qu'est-ce qui empêche une MT déterministe d'énumérer tous les cas? Ici, vérifier une supposition est le problème, pas se deviner. Notez également que vous ne pouvez pas vraiment dire que vous êtes strictement plus puissant si vous ne créez le résultat souhaité qu'avec une probabilité . p<1
Raphael
1
"un programme déterministe ne peut pas produire une chaîne dont la complexité est supérieure à sa propre longueur." Il suffit qu'une autre machine déterministe produise la même sortie. Notez que les MT déterministes peuvent simuler non seulement des MT probabilistes, mais même des MT non déterministes (avec un nombre arbitraire d'alternances).
Kaveh
Hier, j'allais dire - en regardant Kaveh et al - c'était une question trop basique pour ce site (la même question pour NTM est un résultat basique dans chaque premier cours théorique). Étant donné qu'il a fallu beaucoup d'efforts pour formaliser la «MT probabiliste», je suis heureux de ne pas l'avoir fait.
Raphael
1
Et voir les réponses de clarification à ma question TCS connexe précédente: cstheory.stackexchange.com/questions/1263/…
Joseph O'Rourke

Réponses:

22

edit: Je viens de réaliser que certaines des choses que j'ai écrites étaient totalement absurdes, désolé pour cela. Maintenant, j'ai changé la preuve et rendu la définition de la machine probabiliste que j'utilise plus précise.

Je ne sais pas si je comprends bien votre définition de la machine de Turing probabiliste: c'est une machine avec une bande supplémentaire sur laquelle une chaîne incompressible infinie est écrite, et à côté de cela, elle agit exactement comme une machine déterministe? Si nous réparons la chaîne incompressible, la classe que nous obtenons ne semble pas être intéressante.

Je pense que nous pouvons définir une machine de Turing probabiliste de plusieurs manières. Je vais utiliser une définition qui semble assez naturelle (et pour laquelle ma preuve fonctionne;) Définissons une machine probabiliste comme ça: elle obtient une bande supplémentaire sur laquelle une chaîne infinie est écrite, on dit que cette machine décide un langage si pour chaque x L il s'arrête et accepte avec probabilité > 1LxL , lorsque la probabilité est prise sur ces chaînes aléatoires supplémentaires, et pour chaquexL,elle s'arrête et rejette avec une probabilité>1>12xL .>12

Nous allons maintenant montrer que s'il existe une telle machine probabiliste qui résout le problème d'arrêt pour les machines déterministes, nous pourrions l'utiliser pour construire une machine déterministe H qui résout le problème d'arrêt pour les machines déterministes - et nous savons qu'une telle machine ne peut exister.PH

Supposons qu'un tel existe. On peut construire une machine déterministe M qui prend en entrée une machine probabiliste R avec une entrée x , quiPMRX

  • s'arrête et accepte si et seulement si accepte x (c'est-à-dire que R arrête et accepte x sur plus de la moitié des chaînes aléatoires).RXRX
  • s'arrête et rejette si et seulement si rejette x (c'est-à-dire que R arrête et rejette x sur plus de la moitié des chaînes aléatoires).RXRX
  • boucles sinon

Fondamentalement, sera pour tout i 1 , 2 , . . . simuler R sur l'entrée x et sur chaque chaîne de 0 , 1 i comme préfixe de la chaîne sur la bande aléatoire de R. À présent:Mje1,2,...RX0,1jeR

  • si pour préfixes de longueuriRarrêtés et acceptés sans essayer de lire plus deibits de la bande aléatoire,Ms'arrête et accepte>12je RjeM
  • si pour préfixes de longueuriRarrêtés et rejetés sans essayer de lire plus deibits de la bande aléatoire,Ms'arrête et rejette>12i RiM
  • sinon exécute la simulation avec i : = i + 1 .Mi:=i+1

Nous devons maintenant nous convaincre que si accepte (rejette) x avec une probabilité p > 1Rx , puis pour certainsjen'accepterai (rejet) pour>1p>12i préfixes de longueuride la chaîne aléatoire sans essayer de lire plus deibits de la bande aléatoire. C'est technique, mais assez facile - si nous supposons le contraire, alors la probabilité d'accepter (de rejeter) approchep>1>12ii commejevaisà l'infini, donc pour certainsi,il devra êtrep>1p>12ii .p>12

Maintenant, nous définissons simplement notre machine déterministe résolvant le problème d'arrêt (c'est-à-dire décider si une machine déterministe donnée N accepte un mot donné x ) a comme H ( N , x ) = M ( P ( N , x ) ) . Notez que M ( P ( N , x ) ) s'arrête toujours, car décider d'un langage par nos machines probabilistes a été défini de telle manière que l'un de ces deux se produit toujours:HNxH(N,x)=M(P(N,x))M(P(N,x))

  • la machine s'arrête et accepte plus de la moitié des chaînes aléatoires
  • la machine s'arrête et rejette pendant plus de la moitié des chaînes aléatoires.
Karolina Sołtys
la source
Merci d'avoir élaboré mon commentaire "juste énumérer"! ;) Deux commentaires techniques: Au premier point, vous voulez dire ? À la fin, vous voulez dire S ( Q ) ? >2i1S(Q)
Raphael
1
Notez que si vous n'avez pas besoin que P s'arrête toujours, il est trivial de construire même une machine de Turing déterministe P qui accepte si et seulement si la machine de Turing déterministe donnée s'arrête.
Tsuyoshi Ito
Quelle est votre hypothèse? Vous ne pouvez pas annuler une machine de Turing probabiliste à moins qu'il ne soit garanti qu'elle s'arrêtera éventuellement.
Tsuyoshi Ito du
La probabilité d'arrêt est prise sur la chaîne supplémentaire ET les mots d'entrée, ou quoi?
M. Alaggan
1
@Mohammad ALAGGAN: Non, cette partie est correcte comme il est écrit: la probabilité est prise en charge uniquement la chaîne supplémentaire (en spécifiant les résultats des tours de pièces). Comme nous ne supposons aucune distribution de probabilité sur la chaîne d'entrée, la probabilité sur la chaîne d'entrée n'est pas bien définie. Même si une distribution de probabilité sur la chaîne d'entrée est définie, la forte probabilité de réponse correcte sur la chaîne d'entrée implique seulement que l'algorithme est correct pour la plupart des entrées, ce qui est différent de l'exigence habituelle d'un algorithme.
Tsuyoshi Ito du
14

Cela dépend de ce que vous entendez par un algorithme probabiliste qui détermine un prédicat.

Il existe un algorithme probabiliste trivial P tel que, pour une machine de Turing déterministe M ,

  • P ( M ) accepte avec une probabilité non nulle si M s'arrête,
  • P ( M ) n'accepte jamais si M ne s'arrête pas, et
  • P ( M ) arrête avec une probabilité de 1 pour chaque M .

Par conséquent, l'algorithme probabiliste P résout le problème d'arrêt pour les machines de Turing déterministes dans ce sens. (Ici, « M s'arrête» signifie « M s'arrête sur l'entrée vide».)

Cependant, si vous renforcez l'exigence d'une manière sensée, il est peu probable que vous puissiez résoudre le problème d'arrêt des machines déterministes de Turing. Par exemple,

  • Si vous avez besoin que P ( M ) s'arrête toujours au lieu de simplement avec la probabilité 1 , alors il est clair que P peut être simulé par un algorithme déterministe. (Voir Wikipedia pour une explication de la différence entre «toujours» et «avec probabilité 1».)
  • Si vous rendez les limites d'erreur strictes en exigeant que P ( M ) s'arrête et donnez la bonne réponse avec une probabilité strictement supérieure à 1/2 pour chaque M (c'est-à-dire, vous ne vous souciez pas si P ( M ) ne s'arrête pas ou ne s'arrête pas et donner la mauvaise réponse dans le reste des cas), alors P peut être simulé par un algorithme déterministe en utilisant l'argument énoncé dans la réponse de Karolina Sołtys .

Par conséquent, un algorithme probabiliste ne peut pas résoudre le problème d'arrêt des machines déterministes de Turing dans ces sens.

Tsuyoshi Ito
la source
Pardonnez mon ignorance, mais quelle est la différence entre l'arrêt «toujours» et l'arrêt «avec probabilité 1»?
Rob Simmons
1
@Rob: Je pense que c'est un point délicat. Considérez une machine de Turing probabiliste simple qui lance simplement une pièce à plusieurs reprises jusqu'à ce que le résultat soit la tête. Cette machine de Turing s'arrête sauf lorsque tous les lancers de pièces entraînent des queues. Par conséquent, il s'arrête avec la probabilité 1, mais il ne s'arrête pas toujours.
Tsuyoshi Ito
J'ai trouvé une explication de la différence entre «toujours» et «avec probabilité 1» dans Wikipedia , et j'ai ajouté le même lien dans la réponse.
Tsuyoshi Ito
Si vous permettez à P (M) d'échouer en ne s'arrêtant pas, alors je ne sais pas comment vous pouvez faire une simulation déterministe. Par exemple, supposons que vous exécutiez votre simulation déterministe sur un ensemble de chaînes de préfixe de longueur N et qu'après un certain temps, <50% des préfixes se sont arrêtés et ont donné une réponse. Comment savoir si les chaînes de préfixe restantes ont simplement besoin de plus de temps pour renvoyer une réponse, ou si elles sont toutes bloquées dans une boucle infinie dans le cadre de la condition d'échec? Si l'ancien, vous continuez d'attendre. Dans ce dernier cas, vous terminez le tour en cours et exécutez à nouveau sur tous les préfixes de longueur N + 1.
Mike Battaglia
Mais cela est impossible à déterminer, car il est le problème de arrêt! Nous n'avons aucun moyen de savoir si la machine Turing s'arrêtera sur ces entrées ou non.
Mike Battaglia
12

PPP

Je pense que c'était le sens du commentaire de Raphaël.

Marc
la source
7

ANA

de Leeuw, K., Moore, EF, Shannon, CE et Shapiro, N. Computability by probabilistic machines, Automata studies, pp. 183–212. Annales d'études mathématiques, non. 34. Princeton University Press, Princeton, NJ, 1956.

G. Sacks, Degrees of Unsolvability, Princeton University Press, 1963.

Bjørn Kjos-Hanssen
la source