Détermination des capacités des machines à états min-tas (ou autres exotiques)

44

Reportez-vous à la fin de cet article pour obtenir des éclaircissements sur la définition des automates min-tas.

On peut imaginer utiliser diverses structures de données pour stocker des informations destinées à être utilisées par des machines à états. Par exemple, les automates déroulants stockent des informations dans une pile et les machines Turing utilisent une bande. Les machines d'état utilisant des files d'attente et celles utilisant deux piles ou bandes multiples se sont révélées être équivalentes en puissance aux machines de Turing.

Imaginez une machine min-tas. Cela fonctionne exactement comme un automate à pile, avec les exceptions suivantes:

  1. Au lieu de regarder la dernière chose que vous avez ajoutée au tas, vous ne pouvez regarder que le plus petit élément (avec le classement défini machine par machine) actuellement sur le tas.
  2. Au lieu d’obtenir la suppression de la dernière chose ajoutée au segment de mémoire, vous ne pouvez supprimer qu’un des éléments les plus petits (avec le classement défini machine par machine) actuellement sur le segment de mémoire.
  3. Au lieu d’obtenir l’ajout d’un élément au sommet du segment de mémoire, vous pouvez uniquement ajouter un élément au segment de mémoire, sa position étant déterminée en fonction des autres éléments du segment (le classement étant défini machine par machine).

Cette machine peut accepter toutes les langues normales, simplement en n'utilisant pas le tas. Il peut également accepter la langue en ajoutant 's au tas, et retirer du tas quand il lit . Il peut accepter une variété d'autres langues sans contexte. Cependant, il ne peut pas accepter, par exemple, (indiqué sans preuve). EDIT: ou peut-il? Je ne pense pas que ce soit le cas, mais j'ai déjà été surpris par le passé et je suis sûr que je continuerai de l'être lorsque mes hypothèses me permettront de continuer à faire de moi un ... bien.{anbn{a,b}n0}aab{w{a,b}w=wR}

Peut-il accepter n'importe quelle langue contextuelle ou complète de Turing?

Plus généralement, quelles recherches, le cas échéant, ont été menées dans cette direction? Quels sont les résultats, le cas échéant? Je m'intéresse également à d'autres types de machines à états exotiques, éventuellement celles utilisant d'autres structures de données pour le stockage ou divers types de restrictions d'accès (par exemple, la façon dont les LBA sont des MT restreintes). Les références sont appréciées. Je m'excuse par avance si cette question démontre de l'ignorance.


Définition formelle:

Je fournis quelques définitions plus détaillées des automates min-tas ici afin de clarifier la discussion ultérieure dans les questions qui référencent ce matériau.

Nous définissons un automate min-tas non déterministe de type 1 comme un 7-tuple où ...

(Q,q0,A,Σ,Γ,Z0,δ)
  1. Q est un ensemble fini d'états non vides;
  2. q0Q est l'état initial;
  3. AQ est l'ensemble des états acceptants;
  4. Σ est un alphabet fini, non vide;
  5. γ r w ( γ ) N w ( γ 1 ) = w ( γ 2 )Γ est un alphabet fini, non vide, où le poids d'un symbole , , est tel que ;γΓw(γ)Nw(γ1)=w(γ2)γ1=γ2
  6. Z0Γ est le symbole spécial du bas du tas;
  7. δ:Q×(Σ{ϵ})×(Γ{Z0})P(Q×Γ) est la fonction de transition.

La fonction de transition fonctionne en supposant un tas initialement vide composé uniquement de . La fonction de transition peut ajouter au tas une collection arbitraire (finie, mais éventuellement vide ou répétée) d'éléments . Sinon, la fonction de transition peut supprimer une instance de l'élément avec le poids le plus bas de tous les éléments restant sur le segment de mémoire (c'est-à-dire l'élément situé au-dessus du segment de mémoire). La fonction de transition ne peut utiliser que l’instance de symbole la plus haute (c’est-à-dire de poids minimal) pour déterminer une transition donnée.Z0γ1,γ2,...,γkΓγw(γ)

En outre, définissez un automate déterministe min-tas de type 1 comme un automate min-tas non déterministe de type 1 qui vérifie la propriété suivante: pour toutes les chaînes telles que et , .xσyΣ|x|=nσΣ|δn+1(q0,xσy,Z0)|1

Définissez également un automate min-tas non déterministe de type 2 exactement identique à un automate min-tas non déterministe de type 1, à l'exception des modifications suivantes:

  1. γ r w ( γ ) N w ( γ 1 ) = w ( γ 2 ) γ 1 = γ 2Γ est un alphabet fini, non vide, où le poids d'un symbole , , est tel que n'implique pas nécessairement ; En d'autres termes, différents symboles de tas peuvent avoir le même poids.γΓw(γ)Nw(γ1)=w(γ2)γ1=γ2
  2. Lorsque des instances de symboles de segment distincts ayant le même poids sont ajoutées au segment de mémoire, leur ordre relatif est conservé selon un ordre de pile de type dernier entré, premier sorti (LIFO).

Merci à Raphael d'avoir signalé cette définition plus naturelle, qui capture (et étend) les langages sans contexte.


Quelques résultats démontrés jusqu'à présent:

  1. Les automates min-tas de type 1 reconnaissent un ensemble de langages qui n'est ni un sous-ensemble ni un sur-ensemble des langages sans contexte. [ 1 , 2 ]
  2. Les automates min-tas de type 2, de par leur définition, reconnaissent un ensemble de langages qui est un sur-ensemble correct des langages sans contexte, ainsi qu'un sur-ensemble correct des langages acceptés par les automates min-tas de type 1.
  3. Les langues acceptées par les automates à tas min de type 1 semblent être fermées sous l'union, la concaténation et l'étoile de Kleene, mais pas sous la complémentation [ 1 ], l'intersection ou la différence;
  4. Les langues acceptées par les automates non déterministes de type 1 non déterministes semblent être un surensemble des langues acceptées par les automates déterministes de type 1 ministe.

Il y a peut-être quelques autres résultats que j'ai manqués. Plus de résultats sont (éventuellement) sur le chemin.


Questions de suivi

  1. Fermeture en cours d'inversion? - ouvert
  2. Fermeture en complémentation? -- Non!
  3. Le non déterminisme augmente-t-il le pouvoir? -- Oui?
  4. Est pour le type 2? HALCSL- ouvert
  5. L'ajout de tas augmente-t-il la puissance du type 1? - pour (?)HAL1HAL2=HALkk>2
  6. L'ajout d'une pile augmente-t-il la puissance du type 1? - ouvert
Patrick87
la source
1
Super question au fait. Je suis tenté de chercher un lemme de pompage pour ces automates.
Raphaël
@Raphael: Je pense que vous pouvez utiliser ma preuve (mise à jour) pour un tel lemme: toute langue pour laquelle vous devez "mémoriser" plus qu'une quantité linéaire d'informations dans une sous-chaîne afin de faire correspondre correctement une sous-chaîne ultérieure ne peut pas être analysée automates min-tas. Je ne sais pas si un vrai lemme de pompage est possible - cela pourrait aussi devenir un cas particulier de mon lemme.
Alex ten Brink
@AlextenBrink Etant donné que des combinaisons de nombres de symboles de tas peuvent être utilisées pour encoder des éléments, je ne suis pas sûr qu'une limite linéaire soit suffisante.
Raphaël

Réponses:

25

Vous pouvez reconnaître le langage canonique avec ce type de machine à états. Le point crucial est que vous ajoutez jetons au tas pour chaque caractère, et lors de l' analyse des caractères, vous ajoutez des jetons « grands » au tas, de sorte qu'ils ne finissent au fond du tas lorsque vous avez analysé tous les personnages.{anbncn | n1}abb

Les symboles de tas sont et , où . Nous consommons tous les des symboles sur l'entrée et ajouter symbole sur le tas. Si nous rencontrons un , nous changeons de stratégie: pour chaque nous rencontrons par la suite, nous retirons un du tas et ajoutons un au tas. Lorsque nous rencontrons un nous devrions avoir épuisé s pour le supprimer, puis pour chaque de l'entrée restante, nous supprimons un du tas. Si le tas est vide à la fin, la chaîne est dans la langue. Évidemment, nous refusons si quelque chose ne va pas.aba<baabbabcacb

Mise à jour:

La langue ne peut pas être reconnu par les automates min-tas. Supposons que nous ayons un automate min-tas capable de reconnaître . Nous examinons l'état de l'automate après la lecture de (la première partie de l'entrée, donc est la suivante). Le seul état que nous avons sont le contenu du tas et l'état particulier de l'automate est en. Cela signifie que , après avoir reconnu , ce besoin « d'État » pour contenir suffisamment d' informations pour correspondre .EPAL={wwR|w{a,b}}EPALwwRwwR

En particulier, pour ce faire, il doit y avoir différents états possibles (où ), car il y a mots possibles composés de caractères et . Comme il n'y a qu'un nombre fini d'états et qu'un nombre fini de caractères de segment de mémoire, cela implique qu'il existe un mot pour lequel le segment de mémoire contient un nombre exponentiel d'un caractère de segment de mémoire, disons .2nn=|w|2nabwx

Nous prouvons d’abord le théorème pour les automates déterministes min-tas, puis nous étendons cette preuve aux automates non déterministes min-tas. En particulier, les automates déterministes qui reconnaissent une langue ne se placeront pas dans une boucle infinie, ce qui est une propriété utile.

Nous allons prouver que le tas ne peut contenir qu'un nombre maximum de jetons de tas linéaires par le nombre de caractères lus à partir de l'entrée. Ceci exclut immédiatement que apparaisse un nombre exponentiel de fois sur le tas, ce qui complète la preuve ne peut pas être reconnu par les automates min-tas.xEPAL

Parce que nous avons seulement un nombre fini d'états dans notre automate et qu'un automate déterministe ne se mettra pas dans une boucle infinie, lors de la lecture d'un signal d'entrée, il ajoutera au plus un nombre constant de caractères de segment de mémoire sur le segment de mémoire. De même, lorsqu’il consomme un symbole de segment , il ne peut ajouter qu’un nombre constant de caractères de segment strictement supérieurs à et ne peut que réduire le nombre de symboles sur la pile (sinon, la boucle est infinie).yyy

Consommer des symboles de tas peut donc entraîner une (énorme) accumulation de plus gros symboles de tas, mais comme il n’existe qu’un nombre constant de types de symboles de tas différents, il ne s’agit que d’un nombre constant ne dépendant pas de . Cela implique que le nombre de symboles de tas est au plus égal à quelques (grands) constants multiplié par le nombre de symboles d'entrée lus jusqu'à présent. Ceci complète la preuve pour le cas déterministe.n

Dans le cas non déterministe, la preuve est similaire, mais un peu plus délicate: au lieu d’ajouter tout au plus un nombre constant de jetons de tas au tas, elle ajoute un nombre arbitraire de jetons de tas au tas. Cependant, le point crucial est que ce nombre ne dépend pas de . En particulier, si nous pouvons obtenir de manière non déterministe exactement les bons symboles de tas sur le tas après avoir reconnu (bon pour reconnaître ), nous pouvons également choisir de manière non déterministe les symboles de tas qui correspondent à un autre mot , et ainsi reconnaissez , contredisant ainsi le fait que l'automate min-tas reconnaît exactement .nwwRwwwREPAL

Mise à jour 3: Je vais rendre le dernier argument (sur le non-déterminisme) rigoureux. Par l’argument ci-dessus, il doit exister un ensemble infini de motstels que pour tout, après avoir reconnu, le segment de mémoire contient des éléments( notez que nous pouvons parler decar nous avons un ensemble infini de mots). Comme nous ne pouvons pas obtenir autant d'éléments sur le tas par des moyens déterministes, nous devons avoir eu une forme de boucle dans laquelle nous avons d'abord choisi de manière non déterministe d'ajouter d'autres éléments au tas (sans consommer d'entrée), puis de quitter ce boucle, et nous devons avoir traversé cette bouclefois.W{a,b}wWwω(|w|)O(f(|w|))ω(1)

Prenez l'ensemble de toutes ces boucles utilisées par . Comme il n'y a que des états , la taille de cet ensemble est et l'ensemble de tous ses sous-ensembles est également . Notez maintenant que la partie "déterministe" des chemins d'exécution ne peut que contribuer à des jetons, ce qui signifie qu'un grand nombre du nombre exponentiel de mots différents doit avoir des chemins d'exécution dont les parties "déterministes" contribuent de la même manière. jetons au tas. En particulier, la seule façon d'obtenir plus de jetons est de prendre les boucles que nous avons identifiées ci-dessus.WO(1)O(1)O(1)O(|w|)

En combinant ces observations, cela signifie qu'il doit y avoir deux mots distincts dans , et , dont la partie «déterministe» des chemins d'exécution contribue les mêmes jetons au tas, et qui se différencient en prenant un sous-ensemble des boucles ci-dessus. un nombre différent de fois, mais qui utilisent le même sous-ensemble de boucles (rappelez-vous qu'il n'y a que de ces boucles).Ww1w2O(1)

Nous pouvons maintenant montrer que peut également être reconnu par l'automate min-tas: nous suivons le chemin d'exécution pour comme ci-dessus, mais nous les boucles le même nombre de fois que le chemin d'exécution pour traverse. Ceci remplit le min-tas avec des jetons tels que soit accepté comme suffixe, complétant ainsi la preuve.w1w2w1w2w2

Mise à jour 2:

Je viens de me rendre compte que ce qui précède signifie que nous pouvons simuler un automate déterministe min-tas en utilisant uniquement l'espace logarithmique: nous gardons un compteur pour chaque type de personnage du min-tas. Comme indiqué ci-dessus, ce compteur sera au plus égal à et peut donc être stocké en utilisant uniquement un espace (car il n'y a qu'un nombre constant de ces compteurs). Cela nous donne:O(n)O(logn)

DHALL

HALNL

où est l'ensemble des langages reconnus par un automate déterministe min-tas.DHAL

Alex ten Brink
la source
1
+1 pour une excellente perspicacité, vous semblez avoir parfaitement compris mon sens. Ai-je raison de penser que de telles machines ne peuvent pas reconnaître les palindromes? L'ordre des symboles ajoutés n'étant pas préservé, cela ne semble pas possible.
Patrick87
@ Patrick87: Je pense à ce problème en ce moment :)
Alex ten Brink
@Raphael Observation très cool concernant les machines de Turing avec des contraintes de ressources logarithmiques, vous avez tous les deux effectué un travail fantastique en explorant ces automates. Vous savez, j'ai en quelque sorte lancé l'automate min-tas comme un exemple de ce qui m'intéressait, mais il semble avoir été bien reçu. A quelles autres questions peut-on répondre à propos de ces automates? Est-ce que DHAL = HAL? Quelles sont les propriétés de fermeture de HAL? Est-ce que d'autres explorations en valent la peine, et si oui, devraient-elles rester ici ou être posées à une nouvelle question? Merci encore pour les excellentes idées.
Patrick87
1
@Raphael: J'ai rendu cette partie complètement rigoureuse. Vous avez raison, doit être suffisamment grand. n
Alex ten Brink
1
@Raphael: En effet, c'est le cas. , donc par le théorème de la hiérarchie spatiale et certaines inclusions. CSL=NLINSPACEDHALCSL
Alex ten Brink
19

Voici ce que nous croyons savoir:

  • HALCFL (type-1, type-2)
  • CFLHAL (type-1)
  • CFLHAL (type 2, par définition)
  • CSLHAL (type-1, type-2)

Voir les détails et quelques autres notes ci-dessous.


HALCFL

Cette partie de la réponse concerne à la fois le type 1 et le type 2.

Un automate min-tas (HA) avec un alphabet de tas fini et totalement ordonné accepte .L={anbncnnN}CSLCFL

Hypothèses: Semblable à PDA, notre fonction de transition consomme le symbole de tas le plus élevé et écrit un nombre arbitraire de symboles de tas. Le segment contient initialement un symbole distinctif plus grand que tous les autres symboles de segment.$

Soit un automate min-tas avecA=(Q,ΣI,ΣH,,q0,QF)

  • Q={q0,q1,q2,qf} l'ensemble des états
  • ΣI={a,b,c} l'alphabet saisi.
  • ΣH=a,b,$ l'alphabet du tas avec la commande de .a<b<$
  • QF={qf}
  •  (Q×ΣI×ΣH)×(Q×ΣH) avec
    • (q0,a,σ)(q0,aσ) pour toutσΣH
    • (q0,b,a)(q1,b)
    • (q1,b,a)(q1,b)
    • (q1,c,b)(q2,ε)
    • (q2,c,b)(q2,ε)
    • (q2,c,$)(qf,ε)

L'automate écrit un dans le tas pour chaque dans l'entrée. Lorsqu'un se produit, il consomme autant comme il y a eu , écrire un au tas pour chaque trouvé . Cela ne comptant pas déranger car le tas conserve commodément sur le dessus. Seulement après tout sont pris dans le tas sont acceptées; seulement après avoir trouvé autant de que (et donc de ) trouvés, accepte-t-il avec tas vide et état final.aabbabbaaccbaA

Par conséquent, .L(A)=L


CFLHAL

Cette partie de la réponse ne concerne que le type 1.

Considérons l'ensemble des palindromes même et suppose qu'il ya HA avec .EPAL={wwRw{a,b}}AL(A)=L

Conjecture: on trouve avec ettels que trouve dans le même état et présente le même contenu de après avoir lu et , respectivement. Comme accepte les deux et , il accepte donc également (et ), ce qui est en contradiction avec .w1,w2{a,b}w1w2|w1|=|w2|Aw1w2Aw1w1Rw2w2Rw1w2REPALw2w1RL(A)=EPAL


CSLHAL

Cette partie de la réponse concerne à la fois le type 1 et le type 2.

Le même raisonnement que nous avons utilisé sur (pour le type 1) peut être utilisé pour montrer que le langage contextuel n'est pas dans .EPAL{www{a,b}}HAL


HAL?CSL

Ceci est toujours ouvert pour les types 1 et 2.


Autres infos

HA semble être orthogonal à un sous-ensemble des langages contextuels modérés acceptés par Embedded Pushdown Automata : Bien que HA puisse simuler un nombre limité d'empilements empilés, ils ne peuvent pas en simuler arbitrairement beaucoup (comme le permet EPA). Cependant, HA peut accéder aux symboles supérieurs des piles actuellement non superposées (ce que l’EPA ne peut pas obtenir).

Raphaël
la source
+1, excellente réponse. Essentiellement équivalent à la méthode de Brink, non? Malgré tout, la rigueur et la précision sont remarquables. Avez-vous réfléchi à la possibilité que de telles machines acceptent toutes les LFC? Cela semble impossible, puisque les informations de commande sont perdues par le tas ...
Patrick87
C'est la même idée qu'Alex avait, oui. Je suis content que vous puissiez néanmoins en tirer quelque chose. J'ai ajouté une idée pour la direction opposée mais il y a un fossé (énorme?). Il faut y penser avec lucidité demain et peut-être faucher certains collègues.
Raphaël
Je pense que j'aurais dû inclure une preuve d'exactitude afin de gagner des crédits supplémentaires pour la rigueur. ;) Il ne devrait pas être trop dur par induction sur , je suppose. n
Raphaël
Le schéma de preuve que vous qualifiez de conjecture est ce que j'avais en tête, et je le trouve plutôt convaincant ... également, et c'est un point technique mineur, je pense que vous utilisez le langage des palindromes de longueur égale, pas tous palindromes ... bien que la preuve fonctionne certainement dans les deux sens (notez que cela fonctionne également pour les palindromes simples, donc HAL n'est même pas aussi fort que les DPDA, autre résultat).
Patrick87
@ Patrick87 Le problème est qu'il peut exister plus de configurations possibles après la lecture de symboles que d'un mot, en particulier si nous autorisons les -transitions qui placent des symboles dans le tas. nε
Raphaël