Il s'agit d'une question complémentaire à celle- ci .
Dans une question précédente sur les machines à états exotiques , Alex ten Brink et Raphael ont abordé les capacités de calcul d'une sorte particulière de machine à états: les automates à tas min. Ils ont pu montrer que l'ensemble des langages acceptés par de telles machines ( ) n'est ni un sous-ensemble ni un sur-ensemble de l'ensemble des langages hors contexte. Compte tenu de la résolution réussie et de l'intérêt apparent pour cette question, je vais poser plusieurs questions complémentaires.
Il est connu que les langages réguliers sont fermés sous une variété d'opérations (nous pouvons nous limiter aux opérations de base telles que l'union, l'intersection, le complément, la différence, la concaténation, l'étoile de Kleene et l'inversion), tandis que les langages sans contexte ont une fermeture différente propriétés (celles-ci sont fermées sous l'union, la concaténation, l'étoile de Kleene et l'inversion).
HAL est-il fermé en cas d'annulation?
la source
Réponses:
Considérons le langage (où # 0 ( x ) indique le nombre de zéros dans x ).
Il est facile de décider utilisant une machine HAL - observez que la machine doit garder une trace de deux propriétés: le nombre de zéros dans x vs y et la longueur de x , y (vs z ). Il peut pousser un dans le tas pour chaque zéro qu'il voit dans x (puis pop plus tard pour tout zéro vu dans y ); en outre, il pousse pour tout bit en x , y (et plus tard apparaît pour tout bit de z ). Puisque tous les s sont poussés vers le bas du tas, ils n'interfèrent pas avec le comptage. Le ⊥L×2 x y x,y z x y x,y z ⊥ sert de délimiteur et peut être pratiquement ignoré.
0
0
1
1
1
0
Soit maintenant , la langue inverse. Autrement dit, L = { z ⊥ y ⊥ x ∣ x , y , z ∈ { 0 , 1 } , # 0 ( x ) = # 0 ( y ) et | x | + | y | = z } Nous montrerons qu'aucune machine HAL ne peut décider LL=LR×2
L'intuition est la suivante. Comme ci-dessus, la machine doit suivre à la fois la longueur de et le nombre de zéros en x , y . Cependant, dans ce cas, il doit les suivre simultanément . Cela ne peut pas être fait via un tas. Plus en détail, après avoir lu z , le tas contient des informations sur la longueur de | x | + | y | . lors de la lecture de y, la machine doit également conserver dans le tas le nombre de zéros de y . Cependant, ces informations ne peuvent pas interférer avec les informations que le tas possède déjà sur la longueur que nous attendons xz x,y z |x|+|y| y y x être. Très intuitivement, soit les informations sur le nombre de zéros seront "en dessous" des informations sur la longueur de , puis nous ne pouvons pas y accéder en lisant xx x , soit elles sont "au-dessus" de ces informations, rendant ces dernières inaccessibles, ou deux informations seront "mélangées" et deviendront vides de sens.
Plus formellement, nous allons utiliser une sorte d'argument de "pompage". Autrement dit, nous prendrons une entrée très longue et montrerons que "l'état" de la machine doit se répéter pendant le traitement de cette entrée, ce qui nous permettra de "remplacer" l'entrée une fois que la machine répète son "état".
Pour la preuve formelle, nous demandons une simplification de la structure de la machine HAL, à savoir qu'elle ne contient pas de "boucle" de -transitions 1 . Avec cette hypothèse, nous pouvons voir que pour chaque symbole d'entrée que la machine traite, le contenu du tas peut augmenter / diminuer d'au plusε 1 (pour une constante c assez grande).c c
Preuve.H L 4n |x|=|y|=n |z|=2n ⊥ z,y #0(y)=n/2 différentsxtels quez⊥y⊥x∈L(nn/2) x z⊥y⊥x∈L .
Supposons que décide de L et considérons une entrée suffisamment longue (disons de longueur 4 n , donc | x | = | y | = n , | z | = 2 n , en ignorant les ⊥ s ci-après). Pour être concret, fixons z , y et supposons que # 0 ( y ) = n / 2 . Observez qu'il y a ( n
Considérez le contenu du tas immédiatement après le traitement de . Il contient au plus 3 n c symboles (où chaque symbole provient d'un alphabet fixe Γ ), selon notre hypothèse. Cependant, il existe ( nz⊥y 3nc Γ (nn/2) x′s x1,x2
It is clear that the machine must accept the wordz⊥y⊥xp1xs2 , where xp1 is a prefix of x of length n/2 and xs2 is a suffix of x2 of the same length. Note that the number of zeros in xp1xs2 differs from the number of zeros in x1 and x2 (that is, from #0(y) ), due to the way we chose x1 and x2 , thus we reached a contradiction.
la source