Le non-déterminisme dans une machine de turing non déterministe est-il différent de celui des automates finis et des automates push down?


9

Soit une chaîne d'entrée donnée comme . Ensuite, si un NFA est actuellement dans l'état (et a lu l'entrée jusqu'à l'alphabet ), puis avant de lire le symbole d'entrée suivant, le NFA se divise en deux NFA, l'un étant dans l'état r et l'autre dans s , s'il y a une transition de le type r \ xrightarrow {\ epsilon} s . S'il existe un cycle de type r \ xrightarrow {\ epsilon} s \ xrightarrow {\ epsilon} q_1 .... \ xrightarrow {\ epsilon} q_k \ xrightarrow {\ epsilon} r , où q_i sont des états de NFA, alors il est inutile de se souvenir d'un autre NFA dans l'état r jusqu'au point où l'entrée a été lue jusqu'à l'alphabet w_iw1w2...wnrwirsrϵsrϵsϵq1....ϵqkϵrqirwi.

Si un PDA (non déterministe) est dans l'état r (et l'entrée est lue jusqu'à wi ) et qu'il existe un cycle rϵ,ϵasϵ,ϵaq1....ϵ,ϵaqkϵ,ϵar (où transition ϵ,ϵa moyen qui ne signifie rien après wi est lu depuis l'entrée, rien n'est sauté ou lu depuis la pile et l'alphabet a est poussé sur la pile) puis avant de lire l'alphabet d'entrée suivant wi+1 il y aura un PDA infini dans les états r,s,q1,...qk car contrairement au NFA bien que les états soient finis, le contenu de la pile peut être différent (possibilités infinies), si je ne me trompe pas.

Comme avec NFA et PDA, la puissance du non-déterminisme provient des transitions ϵ . Je suppose donc que la machine de Turing non déterministe obtient également son non-déterminisme à partir de transitions ϵ comme NFA et PDA (plus comme PDA). Je sais qu'une machine de Turing déterministe peut simuler une machine non déterministe (je connais la preuve qui utilise la recherche en premier). Mais maintenant, je doute que cela soit possible. Parce que si un cycle du type dans PDA ci-dessus, existe dans le diagramme d'état de la machine de Turing non déterministe alors avant de lire le symbole suivant wi+1la machine de Turing déterministe même lors de la simulation d'une configuration dans une branche de la machine de Turing non déterministe (alors que bfs) devrait garder une trace de la machine de Turing infinie (encore une fois les états sont finis mais les symboles sur la bande ont des possibilités infinies).
Alors, comment exactement le non-déterminisme est-il défini dans le cas des machines de Turing? Suis-je en train de mal comprendre quelque chose de trivial? Les machines de Turing non déterministes utilisent-elles des transitions ?ϵ


Je suis désolé pour mes doutes insignifiants. Si quelque chose ne va pas, je peux mettre à jour ma question.


2
en ce qui concerne la question du titre, il n'y a pas beaucoup de différence dans les définitions formelles. quant à la puissance émergente, oui, elle a des implications très différentes dans chaque modèle de machine. quant au reste de la question, j'ai du mal à analyser. :(
vzn


@YuvalFilmus oui je l'ai. La définition de la fonction de transition comprend l'ensemble de puissance que je comprends. Mais la chose à propos des transitions dans les machines Turing n'est toujours pas claire pour moi. epsilon
sashas

@vzn Je le pensais. Je suis vraiment désolé. Je suis mal à mettre en avant mes doutes. Mais je peux m'améliorer si vous donnez des suggestions.
sashas

Réponses:


8

Le non-déterminisme est le même concept dans tous les contextes - la machine dispose de plusieurs options pour procéder à un moment donné. Cependant, la sémantique est un peu différente car les DFA / NFA et les PDA définissent toujours les fonctions totales , tandis que les machines de Turing (déterministes ou non déterministes) définissent en général les fonctions partielles .

Une fonction partielle est une fonction définie uniquement sur une partie du domaine. Si n'est pas défini sur x alors on écrit f ( x ) = . (Donc, f est vraiment une fonction totale, mais il y a un élément spécial dans la plage signifiant que la sortie n'est pas définie.) Une machine de Turing déterministe M définit une fonction partielle comme suit: si M s'arrête sur x alors M ( x ) est le contenu de la bande lorsque M s'arrête sur x ; et sinon, M ( x ) = fxf(x)=fMMxM(x)MxM(x)=.

Un décideur de machine de Turing déterministe a deux types d'états d'arrêt, acceptant et rejetant, et définit une fonction partielle comme suit: si s'arrête sur x à un état acceptant, alors M ( x ) = 1 ; s'il s'arrête à un état de rejet, alors M ( x ) = 0 ; s'il ne s'arrête pas, alors M ( x ) = . Si M s'arrête toujours alors on dit qu'il accepte le langage L = { x : M ( xMxM(x)=1M(x)=0M(x)=M .L={x:M(x)=1}

Une machine de Turing non déterministe (qui est toujours un décideur) est autorisée à "se ramifier" (avoir plusieurs options possibles à un moment donné) et a la sémantique suivante:

  • si sur l'entrée x , la machine M s'arrête sur toutes les branches, s'arrêtant à l'état d'acceptation pour au moins une branche.M(x)=1xM
  • si sur l'entrée x , la machine M s'arrête sur toutes les branches, s'arrêtant toujours à un état de rejet.M(x)=0xM
  • si sur l'entrée x il existe une branche sur laquelle M ne s'arrête pas.M(x)=xM

Compte tenu de cette définition, il est à espérer clairement comment simuler une machine de Turing non déterministe à l'aide d'un décideur de machine de Turing déterministe: vous essayez toutes les branches, en vérifiant si l'une d'elles conduit à un état d'arrêt d'acceptation. Une fois que toutes les succursales se sont arrêtées, vous pouvez décider de passer à un état acceptant ou à un état rejetant. Si la machine de Turing non déterministe ne s'arrête pas sur une branche, il en sera de même pour la déterministe.


Qu'en est-il des mouvements ? Ils causent des problèmes dans la mesure où l'automate correspondant peut ne jamais s'arrêter. Pour les automates finis (NFA et PDA), nous ignorons silencieusement les calculs sans interruption. Notre raison pour cela est que les langues résultantes sont toujours calculables, même si l'algorithme naïf pour les simuler de manière déterministe (simulant tous les chemins de calcul) ne fonctionne pas tout à fait. Ce n'est pas si difficile pour les NFA, qui peuvent être convertis en DFA. Cependant, les PDA déterministes sont strictement plus faibles que les PDA non déterministes. Néanmoins, vous pouvez montrer que chaque PDA est équivalent à un sans transitions ϵ (bien que la preuve puisse passer par des grammaires sans contexte).ϵϵ

Vous pouvez simuler les mouvements dans les machines Turing, mais vous devez faire attention à ce qu'il n'y ait pas de boucles qui provoquent des calculs sans interruption. Dans certains cas, cependant, nous pouvons utiliser la même astuce que ci-dessus. Par exemple, supposons que votre machine Turing soit contrainte par l'espace: nous connaissons une limite supérieure sur l'espace qu'elle utilise (en fonction de la longueur d'entrée). Dans ce cas, chaque calcul sans interruption s'arrête nécessairement (puisque la machine de Turing a un nombre fini d'états, y compris le contenu de la bande), et donc si nous "ignorons" les calculs sans interruption comme ci-dessus, le modèle de calcul résultant est toujours calculable. Plus généralement, cela fonctionne tant que nous sommes garantis que chaque cycle de calcul sans interruption. (C'est le cas pour les NFA mais pas pour les PDA.)ϵ


Je vous remercie. J'avais un dernier doute. Dans un PDA avec la transition , si le PDA est dans l'état r, il ne se divisera que si b ( b est l'alphabet lu sur la bande d'entrée, c est l'alphabet sauté de la pile et a est poussé vers la pile ) est ϵ indépendamment de ce que sont a et c ( ϵ ou alphabets de pile standard). Ai-je raison ? rb,casrbbcaϵacϵ
sashas

@sasha Execution "se divise" chaque fois qu'il existe plusieurs options pour continuer.
Yuval Filmus

Comment prouver qu'un PDA avec transitions peut être converti en un sans eux? Je sais que je peux toujours prouver que le langage accepté par n'importe quel PDA est décidable en le convertissant en son CFG sous forme Chomsky normale. Mais ne peut toujours pas se convertir au PDA sans transitions epsilon. J'apprécierais vraiment tout indice. ϵ
sashas

1
@sasha Vous pouvez convertir une grammaire sans contexte sous la forme normale de Greibach en PDA sans transition (du moins selon Wikipedia). ϵ
Yuval Filmus

1
@YuvalFilmus, une construction non déterministe de GNF est essentiellement une descente récursive: pour une production , si A est en haut de la pile, en entrée a remplacer l' A par B 1B n sur la pile. Non ϵ en vue. Toujours non déterministe (il peut y avoir plusieurs productions A qui commencent un ). AaB1B2BnAaAB1BnϵAa
vonbrand
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.