Est-il décidable si une langue décrite par nombre d'occurrences est régulière?

14

On sait que la langue des mots contenant un nombre égal de 0 et 1 n'est pas régulière, tandis que la langue des mots contenant un nombre égal de 001 et 100 est régulière ( voir ici ).

Étant donné deux mots w1,w2 , est-il décidable si la langue des mots contenant un nombre égal de w1 et w2 est régulière?

sdcvvc
la source
Pouvez-vous donner d'autres exemples de langues régulières ainsi définies, autres que 1i0 et 01i , ou 0i1 et 10i ? Qu'en est-il d'un exemple sur un alphabet à 3 symboles?
babou
Si w1 est un sous-mot strict de w2 , il y a de fortes chances que le langage soit vide, donc régulier. Je ne connais pas d'autres exemples.
sdcvvc
Je soupçonne que les exemples ci-dessus sont les seuls, ce qui rendrait le problème décidable.Si vous ne spécifiez que deux sous-chaînes, je suppose que c'est CF ... en fonction de ce que vous pouvez spécifier en ce qui concerne les événements. Vous ne précisez pas assez ce que vous entendez par «décrit par le nombre d'occurrences».
babou
Le corps de la question est assez précis OMI.
sdcvvc
1
Jusqu'à présent, les solutions pour des cas particuliers semblent reposer sur l'idée que les occurrences de sous-chaînes de ne garantissent que des occurrences uniques d'intervalle w 2 . donc en supposant que les réponses actuelles sont correctes [ce n'est pas encore clair pour moi] il semble qu'il y ait une relation entre w 1 , w 2 qui garantit au milieu du balayage de la chaîne que l'on peut être dans les états "égaux" ou "inégaux" ", mais uniquement par un nombre fini maximum pour le cas" inégal ". w1w2w1w2
vzn

Réponses:

3

Étant donné deux mots , w 2 , est-il décidable si la langue L de mots contenant un nombre égal de w 1 et w 2 est régulière?w1w2Lw1w2

D'abord quelques définitions:
elles pourraient être rendues plus concises, et les notations pourraient être améliorées si elles devaient être utilisées dans des épreuves. Ce n'est qu'un premier projet.

Étant donné deux mots et w 2 , nous disons que: w1w2

  • se produit toujoursavec w 2 , noté w 1w 2 , ssi w1 w2w1w2

    1. pour toute chaîne telle que s = x w 2 y avec x ,ss=xw2y et | x | 0 , | x | 1 | , | y | 0 , | y | 1 | 1 il y a une autre décomposition s = x w 1 y . Remarque: La condition que x et yx,y ≥∣w1+w2|x|0,|x|1|,|y|0,|y|1|1s=xw1y
      xycontiennent chacun au moins un 0 et un 1 est requis par un cas pathologique (trouvé par @sdcvvc): , w 2 = v 1 i + j et y 1 , et ses variantes symétriques.w1=1i0w2=v1i+jy1
    2. il y a une chaîne avec x ,s=xw2y telle qu'il y ait au plus une décomposition s = x w 1 y x,y ≥∣w1+w2s=xw1y
  • coïncide toujoursavec w 2 , noté w 1w1 w2 , si chacun se produit toujours avec l'autre,w1w2

  • et w 2 se produisent indépendamment, noté w 1w1w2 , si aucun ne se produit toujours avec l'autre,w1w2

  • apparaît toujours m fois ou plusque w 2 , noté w 1 m w 2 , ssi pour toute chaîne s telle que s = x w 2 y avecx , y | w 1+ w 2 il existe m autres décompositions s = x i w 1 y iw1 mw2w1mw2ss=xw2yx, y| ≥∣w1+w2ms=xiw1yipour tel que i j implique x ix j .i[1,m]ijxixj

Ces définitions sont construites de sorte que nous pouvons ignorer ce qui se passe aux extrémités de la chaîne où et w 2 sont censés se produire. Les effets de frontière à la fin de la chaîne doivent être analysés séparément, mais ils représentent un nombre fini de cas (en fait, je pense que j'ai oublié un ou deux de ces sous-cas de frontière dans ma première analyse ci-dessous, mais cela n'a pas vraiment d'importance). Les définitions sont compatibles avec le chevauchement des occurrences.w1w2

Il y a 4 cas principaux à considérer (en ignorant la symétrie entre et w 2 ):w1w2

  1. Les deux mots se rejoignent nécessairement, sauf éventuellement aux extrémités de la chaîne. Cela ne concerne que les paires de la forme 1 i 0 et 01 i , ou 0 i 1 et 10 i . Ceci est facilement reconnu par unautomate finiqui vérifie uniquement les occurrences isolées aux deux extrémités de la chaîne à reconnaître, pour s'assurer qu'il existe une occurrence isolée aux deux extrémités ou à aucune extrémité. Il y a aussi le cas dégénéré quand w 1 = w 2 : alors le langage L est évidemment régulier.w1w2
    1i001i0i110iw1=w2

  2. , mais pas w 2w 1 L'un des 2 mots ne peut pas se produire sans l'autre, mais l'inverse n'est pas vrai (sauf éventuellement aux extrémités de la chaîne). Cela se produit lorsque:w1w2w2w1

    • est une sous-chaîne de w 2 : alors un automate fini peut simplement vérifier que w 1 ne se produit pas en dehors d'une instance de w 2 .w1w2w1w2

    • et w 2 = v 1 j pour un mot v { 0 , 1 } , v 01 i : puis un automate fini vérifie comme dans le cas précédent que w 1 ne se produit pas séparé de w 2 . Cependant, l'automate permet de compter une instance supplémentaire de w 1 qui permettra l'acceptation si w 2w1=1i0w2=v1jv{0,1}v01iw1w2w1w2est un suffixe de la chaîne. Il existe trois autres cas symétriques (symétrie 1-0 et symétrie gauche-droite).

  3. L'un des 2 mots apparaît deux fois dans l'autre. Cela peut être reconnu par une automatisation finie qui vérifie que le plus petit mot ne se produit jamais dans la chaîne. C'est aussi une variante légèrement plus complexe qui combine les deux variantes du cas 2. Dans ce cas, l'automate vérifie que la plus petite chaîne 1 i 0 ne se produit jamais, sauf éventuellement dans le cadre de v dans la plus grande v 1 j venant comme suffixe de la chaîne (et 3 autres cas par symétrie).w12w2
    1i0vv1j

  4. Les 2 mots peuvent apparaître indépendamment l'un de l'autre. Nous construisons une machine séquentielle généralisée (gsm) G qui génère a lorsqu'elle reconnaît une occurrence de w 1 et b lors de la reconnaissance d'une occurrence de w 2 , et oublie tout le reste. La langue L n'est régulière que si la langue G ( L ) est régulière. Mais G ( L ) = { w { a , b } w aw1w2
    Gaw1bw2LG(L) qui est clairement hors contexte et non régulier. Par conséquent, L n'est pas régulier. En fait, nous avons L = G - 1 ( G ( L ) ) . Puisque les langages réguliers et les langages sans contexte sont fermés sous mappage gsm et mappage gsm inverse, nous savons également que L est sans contexte.G(L)={w{a,b} wa=∣wb}L
    L=G1(G(L))L

Une façon d'organiser une preuve formelle pourrait être la suivante. Construisez d'abord un PDA qui reconnaît la langue. En fait, cela peut être fait avec une machine à 1 compteur, mais il est plus facile d'avoir deux symboles de pile pour éviter de dupliquer le contrôle fini. Ensuite, pour les cas où il doit s'agir d'une FA, montrez que le compteur peut être délimité par une constante qui ne dépend que des deux mots. Pour les autres cas, montrer que le compteur peut atteindre n'importe quelle valeur arbitraire. Bien entendu, le PDA doit être organisé de manière à ce que les preuves soient assez faciles à transporter.

Représenter le FA comme un PDA à 2 symboles de pile est probablement la représentation la plus simple pour lui. Dans le cas non régulier, la partie de contrôle fini du PDA est la même que celle du GSM dans l'esquisse de preuve ci-dessus. Au lieu de produire et un b comme le GSM, le PDA compte la différence de nombre avec la pile.ab

babou
la source
J'avais une question sur la non-contextualité dans le cas de trois mots. Je l'ai supprimé quand j'ai réalisé qu'il pouvait être analysé de la même manière. J'avais d'abord pensé que prouver la non-CFness ferait un exercice original, mais le GSM le gâche.
babou
2
Il n'est pas clair ce que vous entendez par «se produire indépendamment les uns des autres», «se rassembler nécessairement», etc. Veuillez plutôt écrire des définitions formelles et prouver qu'elles couvrent tous les cas.
sdcvvc
1
Je ne sais pas exactement ce que vous demandez et quel niveau de formalisation vous avez besoin, dans quel but. J'ai réalisé que l'analyse à la main des relations possibles des deux mots n'est pas garantie d'être correcte et n'a pas d'importance de toute façon. L'important est de savoir si une occurrence d'un mot peut exister sans créer en même temps une occurrence (ou plusieurs) de l'autre mot. Les détails n'ont pas d'importance car ils seront toujours localisés et donc gérables de manière définitive. Les deux extrémités n'ont pas d'importance non plus car elles sont également localisées. Même les chevauchements d'occurrences n'ont pas d'importance car ils ne peuvent être que plusieurs en un seul endroit
babou
1
Je vous ai posé des questions sur les définitions précises des termes mentionnés dans le commentaire. Merci de les avoir écrits. Étais-je censé les deviner auparavant? Quoi qu'il en soit, vous semblez affirmer que . Cela ne satisfait pas à la condition 1. de la définition de " w 1 se produit toujours avec w 2 ", car il n'y a aucune occurrence de 1 0 i en s = 0 M 0 i 1 1 M . 0i110iw1w210is=0M0i11M
sdcvvc
Désolé, je ne voulais pas vous faire deviner. Cela m'a seulement pris du temps pour comprendre ce que vous vouliez exactement. Mon échec seulement. Concernant votre exemple de compteur, vous avez raison. Mais pour moi, cela signifie seulement que je dois faire un peu plus attention aux télomères, dans la définition des relations. Je les ai définis trop rapidement, mais ou 1 M ne véhiculent pas beaucoup d'informations dans ce contexte. Il s'agit vraiment d'un exemple pathologique de limite dans un cas pathologique, qui ne peut en fait pas se produire lorsque plus de 2 symboles sont utilisés. Je ne crois tout simplement pas que cela change quoi que ce soit. 0M1M
babou